// Please see documentation at https://learn.microsoft.com/aspnet/core/client-side/bundling-and-minification // for details on configuring this project to bundle and minify static web assets. // Write your JavaScript code. function parseValue(value, type = "string") { if (type === "string") { return value; } if (value === "") return null; // Boolean if (value.toLowerCase() === "true") return true; if (value.toLowerCase() === "false") return false; // Number if (!isNaN(value) && value.trim() !== "") return Number(value); // ISO dátum formátum felismerése (alap logika) if (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}/.test(value)) return new Date(value).toISOString(); return value; } function getFormAsNestedObject(formSelector) { var formArray = $(formSelector).serializeArray(); var result = {}; formArray.forEach(function (item) { var keys = item.name.split('.'); var inputElement = document.querySelector(`[name="${item.name}"]`); var type = inputElement?.dataset?.type || "string"; // ha nincs data-type, alap: string var value = parseValue(item.value, type); var current = result; for (var i = 0; i < keys.length; i++) { var key = keys[i]; if (i === keys.length - 1) { current[key] = value; } else { if (!current[key]) { current[key] = {}; } current = current[key]; } } }); return result; } function showConfirmModal(options) { return new Promise(function (resolve) { // Alapértelmezett értékek var defaults = { title: 'Megerősítés', message: 'Biztos vagy benne?', okText: 'Igen', cancelText: 'Mégsem' }; // Opciók összeolvasztása var settings = $.extend({}, defaults, options); // Beállítások betöltése a modalba $('#confirmModalLabel').text(settings.title); $('#confirmModalBody').html(settings.message); $('#confirmModalOkBtn').text(settings.okText); $('#confirmModalCancelBtn').text(settings.cancelText); // Események letisztítása $('#confirmModalOkBtn').off('click'); $('#confirmModalCancelBtn').off('click'); // OK gomb esemény $('#confirmModalOkBtn').on('click', function () { $('#confirmModal').modal('hide'); resolve('ok'); }); // Cancel gomb esemény $('#confirmModalCancelBtn').on('click', function () { resolve('cancel'); }); // Modal megjelenítése var modal = new bootstrap.Modal(document.getElementById('confirmModal'), { backdrop: 'static', keyboard: false }); modal.show(); }); } function showConfirmModalWithMessage(options) { return new Promise(function (resolve) { // Alapértelmezett értékek var defaults = { title: 'Megerősítés', message: 'Biztos vagy benne?', okText: 'Igen', cancelText: 'Mégsem' }; // Opciók összeolvasztása var settings = $.extend({}, defaults, options); // Beállítások betöltése a modalba $('#confirmModalLabel').text(settings.title); $('#confirmModalBody').html(`
A mező kitöltése kötelező.
`); $('#confirmModalOkBtn').text(settings.okText); $('#confirmModalCancelBtn').text(settings.cancelText); // Események letisztítása $('#confirmModalOkBtn').off('click'); $('#confirmModalCancelBtn').off('click'); // OK gomb esemény $('#confirmModalOkBtn').on('click', function () { var text = $('#confirmModalTextarea').val().trim(); if (text === '') { $('#confirmModalTextarea').addClass('is-invalid'); return; } $('#confirmModalTextarea').removeClass('is-invalid'); $('#confirmModal').modal('hide'); resolve({ action: 'ok', text: text }); }); // Cancel gomb esemény $('#confirmModalCancelBtn').on('click', function () { $('#confirmModal').modal('hide'); resolve({ action: 'cancel' }); }); // Modal megjelenítése var modal = new bootstrap.Modal(document.getElementById('confirmModal'), { backdrop: 'static', keyboard: false }); modal.show(); }); } function showMessageModal(options) { // Alapértelmezett értékek var defaults = { title: 'Üzenet', message: 'Ez egy információs üzenet.', okText: 'OK', redirectUrl: null }; var settings = $.extend({}, defaults, options); // Tartalom beállítása $('#messageModalLabel').text(settings.title); $('#messageModalBody').html(settings.message); $('#messageModalOkBtn').text(settings.okText); $('#messageModalOkBtn').off('click').on('click', function () { if (settings.redirectUrl) { window.location.href = settings.redirectUrl; } }); // Modal megnyitása var modal = new bootstrap.Modal(document.getElementById('messageModal'), { backdrop: 'static', keyboard: false }); modal.show(); } function renderActionButtons(rowId) { return ` `; } function renderActionButtonsDownloadImages(rowId) { return ` `; } function renderActionButtonsDownloadPDFs(rowId) { return ` `; } function renderActionButtonsforCheckListHeader(data, rowId) { if (data === 4) { return ` `; } if (data === 2) { return ` `; } if (data === 1) { return ` `; } if (data === 5) { return ` `; } if (data === 3 || data === 6) { return ``; } return ` `; //`; } function renderActionButtonsforCheckListTemplateHeader(rowId) { return ` `; } function renderCheckStatus(data) { //Open = 0, //InProgress = 1, //Blocked = 2, //Storno = 3, //Sent = 4, //Signed = 5, //Closed = 6 switch (data) { case 0: return 'Nyitott'; break; case 1: return 'Folyamatban'; break; case 2: return 'Blokkolt'; break; case 3: return 'Stornózva'; break; case 4: return 'Beküldve'; break; case 5: return 'Jóváhagyva'; break; case 6: return 'Lezárt'; break; default: return ''; break; } } function renderCheckBox(data) { if (data === true) { return ''; } if (data === false) { return ''; } return data; } function renderAnswerType(data) { if (data === 'SI-N') { return '
I
N
'; } if (data === 'I-SN') { return '
I
N
'; } if (data === 'PI-N') { return '
I
N
'; } if (data === 'I-PN') { return '
I
N
'; } if (data === 'P') { return '
'; } if (data === 'PN') { return '
'; } if (data === 'V') { return '
0,00
'; } return data; } function renderAnswerPhoto(data, row) { if ((row.checkListTemplateRowDTO.answerType === 'P' || row.checkListTemplateRowDTO.answerType === 'PN') && data.length > 0) { return `
Image
`; } if (row.checkListTemplateRowDTO.answerType === 'SI-N' && data === 'Igen') { return '
I
'; } if (row.checkListTemplateRowDTO.answerType === 'SI-N' && data === 'Nem') { return '
N
'; } if (row.checkListTemplateRowDTO.answerType === 'I-SN' && data === 'Igen') { return '
I
'; } if (row.checkListTemplateRowDTO.answerType === 'I-SN' && data === 'Nem') { return '
N
'; } if (row.checkListTemplateRowDTO.answerType === 'PI-N' && data === 'Igen') { return '
I
'; } if (row.checkListTemplateRowDTO.answerType === 'PI-N' && data === 'Nem') { return '
N
'; } if (row.checkListTemplateRowDTO.answerType === 'I-PN' && data === 'Igen') { return '
I
'; } if (row.checkListTemplateRowDTO.answerType === 'I-PN' && data === 'Nem') { return '
N
'; } return `
${data}
`; } //Törlési funkció adatbázisnál function deleteEntity(table, url, entityid) { showConfirmModal({ title: 'Törlés megerősítése', message: 'Biztosan törölni szeretnéd ezt az elemet?', okText: 'Törlés', cancelText: 'Mégsem' }).then(function (result) { if (result === 'ok') { $.ajax({ url: url, type: 'GET', data: { id: entityid }, success: function (data) { if (data) { showMessageModal({ title: 'Információ', message: 'A törlés sikerült!', okText: 'Értettem' }); table.ajax.reload(); } else { showMessageModal({ title: 'Hiba!', message: 'A törlés NEM sikerült!', okText: 'Értettem' }); } }, error: function (xhr, status, error) { showMessageModal({ title: 'Hiba!', message: 'A törlés NEM sikerült!', okText: 'Értettem' }); } }); } }); } function saveEntity(csrfToken, data, url) { $.ajax({ url: url, type: 'POST', headers: { 'X-CSRF-TOKEN': csrfToken, 'Content-Type': 'application/json' }, data: JSON.stringify(data), success: function (response) { if (response.success) { showMessageModal({ title: 'Figyelmem!', message: 'Sikeres mentés.', okText: 'Értettem' }); } else { showMessageModal({ title: 'Figyelmem, HIBA!', message: 'Sikertelen mentés.', okText: 'Értettem' }); } }, error: function (xhr, status, error) { console.error("Hiba: ", error); showMessageModal({ title: 'Hiba!', message: 'A mentés NEM sikerült!', okText: 'Értettem' }); } }); } function togglePasswordVisibility() { const passwordInput = document.getElementById("passwordInput"); const icon = document.getElementById("toggleIcon"); if (passwordInput.type === "password") { passwordInput.type = "text"; icon.classList.remove("bi-eye"); icon.classList.add("bi-eye-slash"); } else { passwordInput.type = "password"; icon.classList.remove("bi-eye-slash"); icon.classList.add("bi-eye"); } }