Internet_Programming_PIbd-2.../laba3/site/js/lines-ui.js
2023-11-10 09:18:55 +04:00

73 lines
3.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// модуль для работы с элементами управления
// объект для удобного получения элементов
// при обращении к атрибуту объекта вызывается
// нужная функция для поиска элемента
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;
}