73 lines
3.1 KiB
JavaScript
73 lines
3.1 KiB
JavaScript
|
// модуль для работы с элементами управления
|
|||
|
|
|||
|
// объект для удобного получения элементов
|
|||
|
// при обращении к атрибуту объекта вызывается
|
|||
|
// нужная функция для поиска элемента
|
|||
|
export const cntrls = {
|
|||
|
button: document.getElementById("items-add"),
|
|||
|
table: document.getElementById("items-table"),
|
|||
|
form: document.getElementById("items-form"),
|
|||
|
lineId: document.getElementById("items-line-id"),
|
|||
|
name: document.getElementById("name"),
|
|||
|
description: document.getElementById("description"),
|
|||
|
image: document.getElementById("image"),
|
|||
|
imagePreview: document.getElementById("image-preview"),
|
|||
|
};
|
|||
|
|
|||
|
// Дефолтное превью
|
|||
|
export const imagePlaceholder = "https://via.placeholder.com/200";
|
|||
|
|
|||
|
// функция создает тег option для select
|
|||
|
// <option value="" selected>name</option>
|
|||
|
export function createItemsOption(name, value = "", isSelected = false) {
|
|||
|
const option = document.createElement("option");
|
|||
|
option.value = value || "";
|
|||
|
option.selected = isSelected;
|
|||
|
option.text = name;
|
|||
|
return option;
|
|||
|
}
|
|||
|
// функция создает строку таблицы
|
|||
|
// <div class="row justify-content-center align-items-center g-2 mt-1 mb-1">
|
|||
|
// <div class="col-2">item.name</div>
|
|||
|
// <div class="col">item.description</div>
|
|||
|
// <a href="testPage.html" class="col-2 btn btn-primary startButton" >открыть тест</a>
|
|||
|
// </div>
|
|||
|
export function createTableRow(item, editPageCallback, deleteCallback) {
|
|||
|
const container = document.createElement("div");
|
|||
|
container.classList.add("row", "justify-content-center", "align-items-center", "g-2", "mt-1", "mb-1");
|
|||
|
|
|||
|
const nameDiv = document.createElement("div");
|
|||
|
nameDiv.classList.add("col-2");
|
|||
|
nameDiv.textContent = item.name;
|
|||
|
|
|||
|
const descriptionDiv = document.createElement("div");
|
|||
|
descriptionDiv.classList.add("col");
|
|||
|
descriptionDiv.textContent = item.description;
|
|||
|
|
|||
|
const link = document.createElement("a");
|
|||
|
link.href = "testPage.html";
|
|||
|
link.classList.add("col-2", "btn", "btn-primary", "startButton");
|
|||
|
link.textContent = "открыть тест";
|
|||
|
|
|||
|
const editLink = document.createElement("a");
|
|||
|
editLink.href = "#"; // Укажите нужный href
|
|||
|
editLink.classList.add("col-2", "btn", "btn-secondary", "startButton");
|
|||
|
editLink.textContent = "изменить";
|
|||
|
editLink.addEventListener("click", editPageCallback); // Привязка обработчика события
|
|||
|
|
|||
|
// Создание элемента для удаления
|
|||
|
const deleteLink = document.createElement("a");
|
|||
|
deleteLink.href = "#"; // Укажите нужный href
|
|||
|
deleteLink.classList.add("col-2", "btn", "btn-danger", "startButton");
|
|||
|
deleteLink.textContent = "удалить";
|
|||
|
deleteLink.addEventListener("click", deleteCallback); // Привязка обработчика события
|
|||
|
|
|||
|
container.appendChild(nameDiv);
|
|||
|
container.appendChild(descriptionDiv);
|
|||
|
container.appendChild(link);
|
|||
|
container.appendChild(editLink);
|
|||
|
container.appendChild(deleteLink);
|
|||
|
|
|||
|
return container;
|
|||
|
}
|