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;
|
||
}
|