"use strict"; // eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair /* eslint-disable unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); let lotOccupancyComments = exports.lotOccupancyComments; delete exports.lotOccupancyComments; function openEditLotOccupancyComment(clickEvent) { const lotOccupancyCommentId = Number.parseInt(clickEvent.currentTarget.closest('tr')?.dataset .lotOccupancyCommentId ?? '', 10); const lotOccupancyComment = lotOccupancyComments.find((currentLotOccupancyComment) => { return (currentLotOccupancyComment.lotOccupancyCommentId === lotOccupancyCommentId); }); let editFormElement; let editCloseModalFunction; function editComment(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(`${los.urlPrefix}/lotOccupancies/doUpdateLotOccupancyComment`, editFormElement, (rawResponseJSON) => { const responseJSON = rawResponseJSON; if (responseJSON.success) { lotOccupancyComments = responseJSON.lotOccupancyComments ?? []; editCloseModalFunction(); renderLotOccupancyComments(); } else { bulmaJS.alert({ title: 'Error Updating Comment', message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }); } }); } cityssm.openHtmlModal('lotOccupancy-editComment', { onshow(modalElement) { los.populateAliases(modalElement); modalElement.querySelector('#lotOccupancyCommentEdit--lotOccupancyId').value = lotOccupancyId; modalElement.querySelector('#lotOccupancyCommentEdit--lotOccupancyCommentId').value = lotOccupancyCommentId.toString(); modalElement.querySelector('#lotOccupancyCommentEdit--lotOccupancyComment').value = lotOccupancyComment.lotOccupancyComment ?? ''; const lotOccupancyCommentDateStringElement = modalElement.querySelector('#lotOccupancyCommentEdit--lotOccupancyCommentDateString'); lotOccupancyCommentDateStringElement.value = lotOccupancyComment.lotOccupancyCommentDateString ?? ''; const currentDateString = cityssm.dateToString(new Date()); lotOccupancyCommentDateStringElement.max = lotOccupancyComment.lotOccupancyCommentDateString <= currentDateString ? currentDateString : lotOccupancyComment.lotOccupancyCommentDateString ?? ''; modalElement.querySelector('#lotOccupancyCommentEdit--lotOccupancyCommentTimeString').value = lotOccupancyComment.lotOccupancyCommentTimeString ?? ''; }, onshown(modalElement, closeModalFunction) { bulmaJS.toggleHtmlClipped(); los.initializeDatePickers(modalElement); modalElement.querySelector('#lotOccupancyCommentEdit--lotOccupancyComment').focus(); editFormElement = modalElement.querySelector('form'); editFormElement.addEventListener('submit', editComment); editCloseModalFunction = closeModalFunction; }, onremoved() { bulmaJS.toggleHtmlClipped(); } }); } function deleteLotOccupancyComment(clickEvent) { const lotOccupancyCommentId = Number.parseInt(clickEvent.currentTarget.closest('tr')?.dataset .lotOccupancyCommentId ?? '', 10); function doDelete() { cityssm.postJSON(`${los.urlPrefix}/lotOccupancies/doDeleteLotOccupancyComment`, { lotOccupancyId, lotOccupancyCommentId }, (rawResponseJSON) => { const responseJSON = rawResponseJSON; if (responseJSON.success) { lotOccupancyComments = responseJSON.lotOccupancyComments; renderLotOccupancyComments(); } else { bulmaJS.alert({ title: 'Error Removing Comment', message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }); } }); } bulmaJS.confirm({ title: 'Remove Comment?', message: 'Are you sure you want to remove this comment?', okButton: { text: 'Yes, Remove Comment', callbackFunction: doDelete }, contextualColorName: 'warning' }); } function renderLotOccupancyComments() { const containerElement = document.querySelector('#container--lotOccupancyComments'); if (lotOccupancyComments.length === 0) { containerElement.innerHTML = `

There are no comments associated with this record.

`; return; } const tableElement = document.createElement('table'); tableElement.className = 'table is-fullwidth is-striped is-hoverable'; tableElement.innerHTML = ` Commentor Comment Date Comment Options `; for (const lotOccupancyComment of lotOccupancyComments) { const tableRowElement = document.createElement('tr'); tableRowElement.dataset.lotOccupancyCommentId = lotOccupancyComment.lotOccupancyCommentId?.toString(); tableRowElement.innerHTML = `${cityssm.escapeHTML(lotOccupancyComment.recordCreate_userName ?? '')} ${cityssm.escapeHTML(lotOccupancyComment.lotOccupancyCommentDateString ?? '')} ${cityssm.escapeHTML(lotOccupancyComment.lotOccupancyCommentTime === 0 ? '' : lotOccupancyComment.lotOccupancyCommentTimePeriodString ?? '')} ${cityssm.escapeHTML(lotOccupancyComment.lotOccupancyComment ?? '')}
`; tableRowElement .querySelector('.button--edit') ?.addEventListener('click', openEditLotOccupancyComment); tableRowElement .querySelector('.button--delete') ?.addEventListener('click', deleteLotOccupancyComment); tableElement.querySelector('tbody')?.append(tableRowElement); } containerElement.innerHTML = ''; containerElement.append(tableElement); } document.querySelector('#button--addComment')?.addEventListener('click', () => { let addFormElement; let addCloseModalFunction; function addComment(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(`${los.urlPrefix}/lotOccupancies/doAddLotOccupancyComment`, addFormElement, (rawResponseJSON) => { const responseJSON = rawResponseJSON; if (responseJSON.success) { lotOccupancyComments = responseJSON.lotOccupancyComments; addCloseModalFunction(); renderLotOccupancyComments(); } else { bulmaJS.alert({ title: 'Error Adding Comment', message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }); } }); } cityssm.openHtmlModal('lotOccupancy-addComment', { onshow(modalElement) { los.populateAliases(modalElement); modalElement.querySelector('#lotOccupancyCommentAdd--lotOccupancyId').value = lotOccupancyId; }, onshown(modalElement, closeModalFunction) { bulmaJS.toggleHtmlClipped(); modalElement.querySelector('#lotOccupancyCommentAdd--lotOccupancyComment').focus(); addFormElement = modalElement.querySelector('form'); addFormElement.addEventListener('submit', addComment); addCloseModalFunction = closeModalFunction; }, onremoved: () => { bulmaJS.toggleHtmlClipped(); document.querySelector('#button--addComment').focus(); } }); }); renderLotOccupancyComments();