diff --git a/public-typescript/adminTables.js b/public-typescript/adminTables.js index 3029a9fa..251bb786 100644 --- a/public-typescript/adminTables.js +++ b/public-typescript/adminTables.js @@ -16,13 +16,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); ``; } "use strict"; - /* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ + // eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair + /* eslint-disable unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); let workOrderTypes = exports.workOrderTypes; delete exports.workOrderTypes; function updateWorkOrderType(submitEvent) { submitEvent.preventDefault(); - cityssm.postJSON(los.urlPrefix + '/admin/doUpdateWorkOrderType', submitEvent.currentTarget, (rawResponseJSON) => { + cityssm.postJSON(`${los.urlPrefix}/admin/doUpdateWorkOrderType`, submitEvent.currentTarget, (rawResponseJSON) => { var _a; const responseJSON = rawResponseJSON; if (responseJSON.success) { @@ -41,11 +42,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); } }); } - const deleteWorkOrderType = (clickEvent) => { + function deleteWorkOrderType(clickEvent) { const tableRowElement = clickEvent.currentTarget.closest('tr'); const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; function doDelete() { - cityssm.postJSON(los.urlPrefix + '/admin/doDeleteWorkOrderType', { + cityssm.postJSON(`${los.urlPrefix}/admin/doDeleteWorkOrderType`, { workOrderTypeId }, (rawResponseJSON) => { var _a; @@ -75,7 +76,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); bulmaJS.confirm({ title: 'Delete Work Order Type', message: `Are you sure you want to delete this work order type?
- Note that no work orders will be removed.`, + Note that no work orders will be removed.`, messageIsHtml: true, contextualColorName: 'warning', okButton: { @@ -83,16 +84,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); callbackFunction: doDelete } }); - }; + } function moveWorkOrderType(clickEvent) { const buttonElement = clickEvent.currentTarget; const tableRowElement = buttonElement.closest('tr'); const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; - cityssm.postJSON(los.urlPrefix + - '/admin/' + - (buttonElement.dataset.direction === 'up' - ? 'doMoveWorkOrderTypeUp' - : 'doMoveWorkOrderTypeDown'), { + cityssm.postJSON(`${los.urlPrefix}/admin/${buttonElement.dataset.direction === 'up' + ? 'doMoveWorkOrderTypeUp' + : 'doMoveWorkOrderTypeDown'}`, { workOrderTypeId, moveToEnd: clickEvent.shiftKey ? '1' : '0' }, (rawResponseJSON) => { @@ -112,12 +111,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } function renderWorkOrderTypes() { - var _a; + var _a, _b, _c; const containerElement = document.querySelector('#container--workOrderTypes'); if (workOrderTypes.length === 0) { containerElement.innerHTML = ` -

There are no active work order types.

- `; +

There are no active work order types.

+ `; return; } containerElement.innerHTML = ''; @@ -125,44 +124,40 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tableRowElement = document.createElement('tr'); tableRowElement.dataset.workOrderTypeId = workOrderType.workOrderTypeId.toString(); - tableRowElement.innerHTML = - '' + - '
' + - '' + - ('
' + - '
' + - '' + - '
' + - '
' + - '' + - '
' + - '
') + - '
' + - '' + - '' + - '
' + - '
' + - los.getMoveUpDownButtonFieldHTML('button--moveWorkOrderTypeUp', 'button--moveWorkOrderTypeDown', false) + - '
' + - '
' + - '' + - '
' + - '
' + - ''; - tableRowElement - .querySelector('form') - .addEventListener('submit', updateWorkOrderType); + // eslint-disable-next-line no-unsanitized/property + tableRowElement.innerHTML = ` +
+ +
+
+ +
+
+ +
+
+
+ +
+
+ ${los.getMoveUpDownButtonFieldHTML('button--moveWorkOrderTypeUp', 'button--moveWorkOrderTypeDown', false)} +
+
+ +
+
+ `; + (_b = tableRowElement + .querySelector('form')) === null || _b === void 0 ? void 0 : _b.addEventListener('submit', updateWorkOrderType); tableRowElement.querySelector('.button--moveWorkOrderTypeUp').addEventListener('click', moveWorkOrderType); tableRowElement.querySelector('.button--moveWorkOrderTypeDown').addEventListener('click', moveWorkOrderType); - tableRowElement - .querySelector('.button--deleteWorkOrderType') - .addEventListener('click', deleteWorkOrderType); + (_c = tableRowElement + .querySelector('.button--deleteWorkOrderType')) === null || _c === void 0 ? void 0 : _c.addEventListener('click', deleteWorkOrderType); containerElement.append(tableRowElement); } } @@ -170,19 +165,19 @@ Object.defineProperty(exports, "__esModule", { value: true }); document.querySelector('#form--addWorkOrderType').addEventListener('submit', (submitEvent) => { submitEvent.preventDefault(); const formElement = submitEvent.currentTarget; - cityssm.postJSON(los.urlPrefix + '/admin/doAddWorkOrderType', formElement, (rawResponseJSON) => { - var _a; + cityssm.postJSON(`${los.urlPrefix}/admin/doAddWorkOrderType`, formElement, (rawResponseJSON) => { + var _a, _b; const responseJSON = rawResponseJSON; if (responseJSON.success) { workOrderTypes = responseJSON.workOrderTypes; renderWorkOrderTypes(); formElement.reset(); - formElement.querySelector('input').focus(); + (_a = formElement.querySelector('input')) === null || _a === void 0 ? void 0 : _a.focus(); } else { bulmaJS.alert({ title: 'Error Adding Work Order Type', - message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', + message: (_b = responseJSON.errorMessage) !== null && _b !== void 0 ? _b : '', contextualColorName: 'danger' }); } @@ -192,13 +187,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); // eslint-disable-next-line no-secrets/no-secrets "use strict"; - /* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ + // eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair + /* eslint-disable unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); let workOrderMilestoneTypes = exports.workOrderMilestoneTypes; delete exports.workOrderMilestoneTypes; function updateWorkOrderMilestoneType(submitEvent) { submitEvent.preventDefault(); - cityssm.postJSON(los.urlPrefix + '/admin/doUpdateWorkOrderMilestoneType', submitEvent.currentTarget, (rawResponseJSON) => { + cityssm.postJSON(`${los.urlPrefix}/admin/doUpdateWorkOrderMilestoneType`, submitEvent.currentTarget, (rawResponseJSON) => { var _a; const responseJSON = rawResponseJSON; if (responseJSON.success) { @@ -221,7 +217,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tableRowElement = clickEvent.currentTarget.closest('tr'); const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId; function doDelete() { - cityssm.postJSON(los.urlPrefix + '/admin/doDeleteWorkOrderMilestoneType', { + cityssm.postJSON(`${los.urlPrefix}/admin/doDeleteWorkOrderMilestoneType`, { workOrderMilestoneTypeId }, (rawResponseJSON) => { var _a; @@ -251,7 +247,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); bulmaJS.confirm({ title: 'Delete Work Order Milestone Type', message: `Are you sure you want to delete this work order milestone type?
- Note that no work orders will be removed.`, + Note that no work orders will be removed.`, messageIsHtml: true, contextualColorName: 'warning', okButton: { @@ -264,11 +260,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); const buttonElement = clickEvent.currentTarget; const tableRowElement = buttonElement.closest('tr'); const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId; - cityssm.postJSON(los.urlPrefix + - '/admin/' + - (buttonElement.dataset.direction === 'up' - ? 'doMoveWorkOrderMilestoneTypeUp' - : 'doMoveWorkOrderMilestoneTypeDown'), { + cityssm.postJSON(`${los.urlPrefix}/admin/${buttonElement.dataset.direction === 'up' + ? 'doMoveWorkOrderMilestoneTypeUp' + : 'doMoveWorkOrderMilestoneTypeDown'}`, { workOrderMilestoneTypeId, moveToEnd: clickEvent.shiftKey ? '1' : '0' }, (rawResponseJSON) => { @@ -288,11 +282,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } function renderWorkOrderMilestoneTypes() { + var _a, _b; const containerElement = document.querySelector('#container--workOrderMilestoneTypes'); if (workOrderMilestoneTypes.length === 0) { containerElement.innerHTML = ` -

There are no active work order milestone types.

- `; +

There are no active work order milestone types.

+ `; return; } containerElement.innerHTML = ''; @@ -300,44 +295,40 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tableRowElement = document.createElement('tr'); tableRowElement.dataset.workOrderMilestoneTypeId = workOrderMilestoneType.workOrderMilestoneTypeId.toString(); - tableRowElement.innerHTML = - '' + - '
' + - '' + - ('
' + - '
' + - '' + - '
' + - '
' + - '' + - '
' + - '
') + - '
' + - '' + - '' + - '
' + - '
' + - los.getMoveUpDownButtonFieldHTML('button--moveWorkOrderMilestoneTypeUp', 'button--moveWorkOrderMilestoneTypeDown', false) + - '
' + - '
' + - '' + - '
' + - '
' + - ''; - tableRowElement - .querySelector('form') - .addEventListener('submit', updateWorkOrderMilestoneType); + // eslint-disable-next-line no-unsanitized/property, no-secrets/no-secrets + tableRowElement.innerHTML = ` +
+ +
+
+ +
+
+ +
+
+
+ +
+
+ ${los.getMoveUpDownButtonFieldHTML('button--moveWorkOrderMilestoneTypeUp', 'button--moveWorkOrderMilestoneTypeDown', false)} +
+
+ +
+
+ `; + (_a = tableRowElement + .querySelector('form')) === null || _a === void 0 ? void 0 : _a.addEventListener('submit', updateWorkOrderMilestoneType); tableRowElement.querySelector('.button--moveWorkOrderMilestoneTypeUp').addEventListener('click', moveWorkOrderMilestoneType); tableRowElement.querySelector('.button--moveWorkOrderMilestoneTypeDown').addEventListener('click', moveWorkOrderMilestoneType); - tableRowElement - .querySelector('.button--deleteWorkOrderMilestoneType') - .addEventListener('click', deleteWorkOrderMilestoneType); + (_b = tableRowElement + .querySelector('.button--deleteWorkOrderMilestoneType')) === null || _b === void 0 ? void 0 : _b.addEventListener('click', deleteWorkOrderMilestoneType); containerElement.append(tableRowElement); } } @@ -345,19 +336,19 @@ Object.defineProperty(exports, "__esModule", { value: true }); document.querySelector('#form--addWorkOrderMilestoneType').addEventListener('submit', (submitEvent) => { submitEvent.preventDefault(); const formElement = submitEvent.currentTarget; - cityssm.postJSON(los.urlPrefix + '/admin/doAddWorkOrderMilestoneType', formElement, (rawResponseJSON) => { - var _a; + cityssm.postJSON(`${los.urlPrefix}/admin/doAddWorkOrderMilestoneType`, formElement, (rawResponseJSON) => { + var _a, _b; const responseJSON = rawResponseJSON; if (responseJSON.success) { workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes; renderWorkOrderMilestoneTypes(); formElement.reset(); - formElement.querySelector('input').focus(); + (_a = formElement.querySelector('input')) === null || _a === void 0 ? void 0 : _a.focus(); } else { bulmaJS.alert({ title: 'Error Adding Work Order Milestone Type', - message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', + message: (_b = responseJSON.errorMessage) !== null && _b !== void 0 ? _b : '', contextualColorName: 'danger' }); } @@ -366,25 +357,26 @@ Object.defineProperty(exports, "__esModule", { value: true }); renderWorkOrderMilestoneTypes(); "use strict"; - /* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ + // eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair + /* eslint-disable unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); let lotStatuses = exports.lotStatuses; delete exports.lotStatuses; function updateLotStatus(submitEvent) { submitEvent.preventDefault(); - cityssm.postJSON(los.urlPrefix + '/admin/doUpdateLotStatus', submitEvent.currentTarget, (rawResponseJSON) => { + cityssm.postJSON(`${los.urlPrefix}/admin/doUpdateLotStatus`, submitEvent.currentTarget, (rawResponseJSON) => { var _a; const responseJSON = rawResponseJSON; if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses; bulmaJS.alert({ - message: los.escapedAliases.Lot + ' Status Updated Successfully', + message: `${los.escapedAliases.Lot} Status Updated Successfully`, contextualColorName: 'success' }); } else { bulmaJS.alert({ - title: 'Error Updating ' + los.escapedAliases.Lot + ' Status', + title: `Error Updating ${los.escapedAliases.Lot} Status`, message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); @@ -395,7 +387,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tableRowElement = clickEvent.currentTarget.closest('tr'); const lotStatusId = tableRowElement.dataset.lotStatusId; function doDelete() { - cityssm.postJSON(los.urlPrefix + '/admin/doDeleteLotStatus', { + cityssm.postJSON(`${los.urlPrefix}/admin/doDeleteLotStatus`, { lotStatusId }, (rawResponseJSON) => { var _a; @@ -409,7 +401,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); tableRowElement.remove(); } bulmaJS.alert({ - message: los.escapedAliases.Lot + ' Status Deleted Successfully', + message: `${los.escapedAliases.Lot} Status Deleted Successfully`, contextualColorName: 'success' }); } @@ -438,11 +430,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); const buttonElement = clickEvent.currentTarget; const tableRowElement = buttonElement.closest('tr'); const lotStatusId = tableRowElement.dataset.lotStatusId; - cityssm.postJSON(los.urlPrefix + - '/admin/' + - (buttonElement.dataset.direction === 'up' - ? 'doMoveLotStatusUp' - : 'doMoveLotStatusDown'), { + cityssm.postJSON(`${los.urlPrefix}/admin/${buttonElement.dataset.direction === 'up' + ? 'doMoveLotStatusUp' + : 'doMoveLotStatusDown'}`, { lotStatusId, moveToEnd: clickEvent.shiftKey ? '1' : '0' }, (rawResponseJSON) => { @@ -454,7 +444,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { bulmaJS.alert({ - title: 'Error Moving ' + los.escapedAliases.Lot + ' Status', + title: `Error Moving ${los.escapedAliases.Lot} Status`, message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); @@ -462,58 +452,54 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } function renderLotStatuses() { + var _a, _b; const containerElement = document.querySelector('#container--lotStatuses'); if (lotStatuses.length === 0) { + // eslint-disable-next-line no-unsanitized/property containerElement.innerHTML = ` -

There are no active ${los.escapedAliases.lot} statuses.

- `; +

There are no active ${los.escapedAliases.lot} statuses.

+ `; return; } containerElement.innerHTML = ''; for (const lotStatus of lotStatuses) { const tableRowElement = document.createElement('tr'); tableRowElement.dataset.lotStatusId = lotStatus.lotStatusId.toString(); - tableRowElement.innerHTML = - '' + - '
' + - '' + - ('
' + - '
' + - '' + - '
' + - '
' + - '' + - '
' + - '
') + - '
' + - '' + - '' + - '
' + - '
' + - los.getMoveUpDownButtonFieldHTML('button--moveLotStatusUp', 'button--moveLotStatusDown', false) + - '
' + - '
' + - '' + - '
' + - '
' + - ''; - tableRowElement - .querySelector('form') - .addEventListener('submit', updateLotStatus); + // eslint-disable-next-line no-unsanitized/property + tableRowElement.innerHTML = ` +
+ +
+
+ +
+
+ +
+
+
+ +
+
+ ${los.getMoveUpDownButtonFieldHTML('button--moveLotStatusUp', 'button--moveLotStatusDown', false)} +
+
+ +
+
+ `; + (_a = tableRowElement + .querySelector('form')) === null || _a === void 0 ? void 0 : _a.addEventListener('submit', updateLotStatus); tableRowElement.querySelector('.button--moveLotStatusUp').addEventListener('click', moveLotStatus); tableRowElement.querySelector('.button--moveLotStatusDown').addEventListener('click', moveLotStatus); - tableRowElement - .querySelector('.button--deleteLotStatus') - .addEventListener('click', deleteLotStatus); + (_b = tableRowElement + .querySelector('.button--deleteLotStatus')) === null || _b === void 0 ? void 0 : _b.addEventListener('click', deleteLotStatus); containerElement.append(tableRowElement); } } @@ -521,19 +507,19 @@ Object.defineProperty(exports, "__esModule", { value: true }); document.querySelector('#form--addLotStatus').addEventListener('submit', (submitEvent) => { submitEvent.preventDefault(); const formElement = submitEvent.currentTarget; - cityssm.postJSON(los.urlPrefix + '/admin/doAddLotStatus', formElement, (rawResponseJSON) => { - var _a; + cityssm.postJSON(`${los.urlPrefix}/admin/doAddLotStatus`, formElement, (rawResponseJSON) => { + var _a, _b; const responseJSON = rawResponseJSON; if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses; renderLotStatuses(); formElement.reset(); - formElement.querySelector('input').focus(); + (_a = formElement.querySelector('input')) === null || _a === void 0 ? void 0 : _a.focus(); } else { bulmaJS.alert({ title: `Error Adding ${los.escapedAliases.Lot} Status`, - message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', + message: (_b = responseJSON.errorMessage) !== null && _b !== void 0 ? _b : '', contextualColorName: 'danger' }); } @@ -543,13 +529,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); // eslint-disable-next-line no-secrets/no-secrets "use strict"; - /* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ + // eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair + /* eslint-disable unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); let lotOccupantTypes = exports.lotOccupantTypes; delete exports.lotOccupantTypes; function updateLotOccupantType(submitEvent) { submitEvent.preventDefault(); - cityssm.postJSON(los.urlPrefix + '/admin/doUpdateLotOccupantType', submitEvent.currentTarget, (rawResponseJSON) => { + cityssm.postJSON(`${los.urlPrefix}/admin/doUpdateLotOccupantType`, submitEvent.currentTarget, (rawResponseJSON) => { var _a; const responseJSON = rawResponseJSON; if (responseJSON.success) { @@ -572,7 +559,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tableRowElement = clickEvent.currentTarget.closest('tr'); const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId; function doDelete() { - cityssm.postJSON(los.urlPrefix + '/admin/doDeleteLotOccupantType', { + cityssm.postJSON(`${los.urlPrefix}/admin/doDeleteLotOccupantType`, { lotOccupantTypeId }, (rawResponseJSON) => { var _a; @@ -615,11 +602,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); const buttonElement = clickEvent.currentTarget; const tableRowElement = buttonElement.closest('tr'); const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId; - cityssm.postJSON(los.urlPrefix + - '/admin/' + - (buttonElement.dataset.direction === 'up' - ? 'doMoveLotOccupantTypeUp' - : 'doMoveLotOccupantTypeDown'), { + cityssm.postJSON(`${los.urlPrefix}/admin/${buttonElement.dataset.direction === 'up' + ? 'doMoveLotOccupantTypeUp' + : 'doMoveLotOccupantTypeDown'}`, { lotOccupantTypeId, moveToEnd: clickEvent.shiftKey ? '1' : '0' }, (rawResponseJSON) => { @@ -639,8 +624,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } function renderLotOccupantTypes() { + var _a, _b; const containerElement = document.querySelector('#container--lotOccupantTypes'); if (lotOccupantTypes.length === 0) { + // eslint-disable-next-line no-unsanitized/property containerElement.innerHTML = `

There are no active ${los.escapedAliases.lot} ${los.escapedAliases.occupant} types.

@@ -653,98 +640,75 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tableRowElement = document.createElement('tr'); tableRowElement.dataset.lotOccupantTypeId = lotOccupantType.lotOccupantTypeId.toString(); - const formId = 'form--lotOccupantType-' + lotOccupantType.lotOccupantTypeId.toString(); - tableRowElement.innerHTML = - '' + - ('
' + - '
' + - '' + - '
' + - '
') + - '' + - '' + - ('
' + - '
fa-
' + - '
' + - '' + - '
' + - '
' + - '
' + - '
') + - '' + - '' + - ('
' + - '
' + - '' + - '
' + - '
') + - '' + - ('' + - ('
') + - '' + - '' + - '
' + - '') + - '' + - '
' + - '
' + - los.getMoveUpDownButtonFieldHTML('button--moveLotOccupantTypeUp', 'button--moveLotOccupantTypeDown', false) + - '
' + - '
' + - '' + - '
' + - '
' + - ''; + const formId = `form--lotOccupantType-${lotOccupantType.lotOccupantTypeId.toString()}`; + // eslint-disable-next-line no-unsanitized/property + tableRowElement.innerHTML = ` +
+
+ +
+
+ +
+
+ fa- +
+
+ +
+
+ + + +
+
+ +
+
+ +
+
+ +
+ + +
+ +
+
+ ${los.getMoveUpDownButtonFieldHTML('button--moveLotOccupantTypeUp', 'button--moveLotOccupantTypeDown', false)} +
+
+ +
+
+ `; const fontAwesomeInputElement = tableRowElement.querySelector("input[name='fontAwesomeIconClass']"); fontAwesomeInputElement.addEventListener('keyup', refreshFontAwesomeIcon); fontAwesomeInputElement.addEventListener('change', refreshFontAwesomeIcon); - tableRowElement - .querySelector('form') - .addEventListener('submit', updateLotOccupantType); + (_a = tableRowElement + .querySelector('form')) === null || _a === void 0 ? void 0 : _a.addEventListener('submit', updateLotOccupantType); tableRowElement.querySelector('.button--moveLotOccupantTypeUp').addEventListener('click', moveLotOccupantType); tableRowElement.querySelector('.button--moveLotOccupantTypeDown').addEventListener('click', moveLotOccupantType); - tableRowElement - .querySelector('.button--deleteLotOccupantType') - .addEventListener('click', deleteLotOccupantType); + (_b = tableRowElement + .querySelector('.button--deleteLotOccupantType')) === null || _b === void 0 ? void 0 : _b.addEventListener('click', deleteLotOccupantType); containerElement.append(tableRowElement); } } @@ -752,19 +716,19 @@ Object.defineProperty(exports, "__esModule", { value: true }); document.querySelector('#form--addLotOccupantType').addEventListener('submit', (submitEvent) => { submitEvent.preventDefault(); const formElement = submitEvent.currentTarget; - cityssm.postJSON(los.urlPrefix + '/admin/doAddLotOccupantType', formElement, (rawResponseJSON) => { - var _a; + cityssm.postJSON(`${los.urlPrefix}/admin/doAddLotOccupantType`, formElement, (rawResponseJSON) => { + var _a, _b; const responseJSON = rawResponseJSON; if (responseJSON.success) { lotOccupantTypes = responseJSON.lotOccupantTypes; renderLotOccupantTypes(); formElement.reset(); - formElement.querySelector('input').focus(); + (_a = formElement.querySelector('input')) === null || _a === void 0 ? void 0 : _a.focus(); } else { bulmaJS.alert({ title: `Error Adding ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, - message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', + message: (_b = responseJSON.errorMessage) !== null && _b !== void 0 ? _b : '', contextualColorName: 'danger' }); } diff --git a/public-typescript/adminTables/adminTables.ts b/public-typescript/adminTables/adminTables.ts index 86ddc75e..5ced86d9 100644 --- a/public-typescript/adminTables/adminTables.ts +++ b/public-typescript/adminTables/adminTables.ts @@ -1,12 +1,12 @@ // eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair /* eslint-disable unicorn/prefer-module */ -import type * as globalTypes from '../../types/globalTypes.js' +import type { LOS } from '../../types/globalTypes.js' declare const exports: Record ;(() => { // eslint-disable-next-line @typescript-eslint/no-unused-vars - const los = exports.los as globalTypes.LOS + const los = exports.los as LOS // eslint-disable-next-line @typescript-eslint/no-unused-vars function refreshFontAwesomeIcon(changeEvent: Event): void { diff --git a/public-typescript/adminTables/adminTablesLotOccupantTypes.js b/public-typescript/adminTables/adminTablesLotOccupantTypes.js index 21d738ab..6a6342f5 100644 --- a/public-typescript/adminTables/adminTablesLotOccupantTypes.js +++ b/public-typescript/adminTables/adminTablesLotOccupantTypes.js @@ -1,11 +1,12 @@ "use strict"; -/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ +// eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair +/* eslint-disable unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); let lotOccupantTypes = exports.lotOccupantTypes; delete exports.lotOccupantTypes; function updateLotOccupantType(submitEvent) { submitEvent.preventDefault(); - cityssm.postJSON(los.urlPrefix + '/admin/doUpdateLotOccupantType', submitEvent.currentTarget, (rawResponseJSON) => { + cityssm.postJSON(`${los.urlPrefix}/admin/doUpdateLotOccupantType`, submitEvent.currentTarget, (rawResponseJSON) => { var _a; const responseJSON = rawResponseJSON; if (responseJSON.success) { @@ -28,7 +29,7 @@ function deleteLotOccupantType(clickEvent) { const tableRowElement = clickEvent.currentTarget.closest('tr'); const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId; function doDelete() { - cityssm.postJSON(los.urlPrefix + '/admin/doDeleteLotOccupantType', { + cityssm.postJSON(`${los.urlPrefix}/admin/doDeleteLotOccupantType`, { lotOccupantTypeId }, (rawResponseJSON) => { var _a; @@ -71,11 +72,9 @@ function moveLotOccupantType(clickEvent) { const buttonElement = clickEvent.currentTarget; const tableRowElement = buttonElement.closest('tr'); const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId; - cityssm.postJSON(los.urlPrefix + - '/admin/' + - (buttonElement.dataset.direction === 'up' - ? 'doMoveLotOccupantTypeUp' - : 'doMoveLotOccupantTypeDown'), { + cityssm.postJSON(`${los.urlPrefix}/admin/${buttonElement.dataset.direction === 'up' + ? 'doMoveLotOccupantTypeUp' + : 'doMoveLotOccupantTypeDown'}`, { lotOccupantTypeId, moveToEnd: clickEvent.shiftKey ? '1' : '0' }, (rawResponseJSON) => { @@ -95,8 +94,10 @@ function moveLotOccupantType(clickEvent) { }); } function renderLotOccupantTypes() { + var _a, _b; const containerElement = document.querySelector('#container--lotOccupantTypes'); if (lotOccupantTypes.length === 0) { + // eslint-disable-next-line no-unsanitized/property containerElement.innerHTML = `

There are no active ${los.escapedAliases.lot} ${los.escapedAliases.occupant} types.

@@ -109,98 +110,75 @@ function renderLotOccupantTypes() { const tableRowElement = document.createElement('tr'); tableRowElement.dataset.lotOccupantTypeId = lotOccupantType.lotOccupantTypeId.toString(); - const formId = 'form--lotOccupantType-' + lotOccupantType.lotOccupantTypeId.toString(); - tableRowElement.innerHTML = - '' + - ('
' + - '
' + - '' + - '
' + - '
') + - '' + - '' + - ('
' + - '
fa-
' + - '
' + - '' + - '
' + - '
' + - '
' + - '
') + - '' + - '' + - ('
' + - '
' + - '' + - '
' + - '
') + - '' + - ('' + - ('
') + - '' + - '' + - '
' + - '') + - '' + - '
' + - '
' + - los.getMoveUpDownButtonFieldHTML('button--moveLotOccupantTypeUp', 'button--moveLotOccupantTypeDown', false) + - '
' + - '
' + - '' + - '
' + - '
' + - ''; + const formId = `form--lotOccupantType-${lotOccupantType.lotOccupantTypeId.toString()}`; + // eslint-disable-next-line no-unsanitized/property + tableRowElement.innerHTML = ` +
+
+ +
+
+ +
+
+ fa- +
+
+ +
+
+ + + +
+
+ +
+
+ +
+
+ +
+ + +
+ +
+
+ ${los.getMoveUpDownButtonFieldHTML('button--moveLotOccupantTypeUp', 'button--moveLotOccupantTypeDown', false)} +
+
+ +
+
+ `; const fontAwesomeInputElement = tableRowElement.querySelector("input[name='fontAwesomeIconClass']"); fontAwesomeInputElement.addEventListener('keyup', refreshFontAwesomeIcon); fontAwesomeInputElement.addEventListener('change', refreshFontAwesomeIcon); - tableRowElement - .querySelector('form') - .addEventListener('submit', updateLotOccupantType); + (_a = tableRowElement + .querySelector('form')) === null || _a === void 0 ? void 0 : _a.addEventListener('submit', updateLotOccupantType); tableRowElement.querySelector('.button--moveLotOccupantTypeUp').addEventListener('click', moveLotOccupantType); tableRowElement.querySelector('.button--moveLotOccupantTypeDown').addEventListener('click', moveLotOccupantType); - tableRowElement - .querySelector('.button--deleteLotOccupantType') - .addEventListener('click', deleteLotOccupantType); + (_b = tableRowElement + .querySelector('.button--deleteLotOccupantType')) === null || _b === void 0 ? void 0 : _b.addEventListener('click', deleteLotOccupantType); containerElement.append(tableRowElement); } } @@ -208,19 +186,19 @@ function renderLotOccupantTypes() { document.querySelector('#form--addLotOccupantType').addEventListener('submit', (submitEvent) => { submitEvent.preventDefault(); const formElement = submitEvent.currentTarget; - cityssm.postJSON(los.urlPrefix + '/admin/doAddLotOccupantType', formElement, (rawResponseJSON) => { - var _a; + cityssm.postJSON(`${los.urlPrefix}/admin/doAddLotOccupantType`, formElement, (rawResponseJSON) => { + var _a, _b; const responseJSON = rawResponseJSON; if (responseJSON.success) { lotOccupantTypes = responseJSON.lotOccupantTypes; renderLotOccupantTypes(); formElement.reset(); - formElement.querySelector('input').focus(); + (_a = formElement.querySelector('input')) === null || _a === void 0 ? void 0 : _a.focus(); } else { bulmaJS.alert({ title: `Error Adding ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, - message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', + message: (_b = responseJSON.errorMessage) !== null && _b !== void 0 ? _b : '', contextualColorName: 'danger' }); } diff --git a/public-typescript/adminTables/adminTablesLotOccupantTypes.ts b/public-typescript/adminTables/adminTablesLotOccupantTypes.ts index 37ee7da2..30d02c8f 100644 --- a/public-typescript/adminTables/adminTablesLotOccupantTypes.ts +++ b/public-typescript/adminTables/adminTablesLotOccupantTypes.ts @@ -1,25 +1,27 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ +// eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair +/* eslint-disable unicorn/prefer-module */ -import type * as globalTypes from '../../types/globalTypes' -import type * as recordTypes from '../../types/recordTypes' +import type { BulmaJS } from '@cityssm/bulma-js/types.js' +import type { cityssmGlobal } from '@cityssm/bulma-webapp-js/src/types.js' -import type { cityssmGlobal } from '@cityssm/bulma-webapp-js/src/types' - -import type { BulmaJS } from '@cityssm/bulma-js/types' +import type { LOS } from '../../types/globalTypes.js' +import type { LotOccupantType } from '../../types/recordTypes.js' declare const cityssm: cityssmGlobal declare const bulmaJS: BulmaJS -declare const los: globalTypes.LOS +declare const los: LOS +declare const exports: Record + declare const refreshFontAwesomeIcon: (changeEvent: Event) => void -let lotOccupantTypes: recordTypes.LotOccupantType[] = exports.lotOccupantTypes +let lotOccupantTypes = exports.lotOccupantTypes as LotOccupantType[] delete exports.lotOccupantTypes type ResponseJSON = | { success: true - lotOccupantTypes: recordTypes.LotOccupantType[] + lotOccupantTypes: LotOccupantType[] } | { success: false @@ -30,13 +32,13 @@ function updateLotOccupantType(submitEvent: SubmitEvent): void { submitEvent.preventDefault() cityssm.postJSON( - los.urlPrefix + '/admin/doUpdateLotOccupantType', + `${los.urlPrefix}/admin/doUpdateLotOccupantType`, submitEvent.currentTarget, (rawResponseJSON) => { const responseJSON = rawResponseJSON as ResponseJSON if (responseJSON.success) { - lotOccupantTypes = responseJSON.lotOccupantTypes! + lotOccupantTypes = responseJSON.lotOccupantTypes bulmaJS.alert({ message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Updated Successfully`, @@ -56,13 +58,13 @@ function updateLotOccupantType(submitEvent: SubmitEvent): void { function deleteLotOccupantType(clickEvent: Event): void { const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest( 'tr' - )! + ) as HTMLTableRowElement const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId function doDelete(): void { cityssm.postJSON( - los.urlPrefix + '/admin/doDeleteLotOccupantType', + `${los.urlPrefix}/admin/doDeleteLotOccupantType`, { lotOccupantTypeId }, @@ -70,7 +72,7 @@ function deleteLotOccupantType(clickEvent: Event): void { const responseJSON = rawResponseJSON as ResponseJSON if (responseJSON.success) { - lotOccupantTypes = responseJSON.lotOccupantTypes! + lotOccupantTypes = responseJSON.lotOccupantTypes if (lotOccupantTypes.length === 0) { renderLotOccupantTypes() @@ -109,16 +111,16 @@ function deleteLotOccupantType(clickEvent: Event): void { function moveLotOccupantType(clickEvent: MouseEvent): void { const buttonElement = clickEvent.currentTarget as HTMLButtonElement - const tableRowElement = buttonElement.closest('tr')! + const tableRowElement = buttonElement.closest('tr') as HTMLTableRowElement const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId cityssm.postJSON( - los.urlPrefix + - '/admin/' + - (buttonElement.dataset.direction === 'up' + `${los.urlPrefix}/admin/${ + buttonElement.dataset.direction === 'up' ? 'doMoveLotOccupantTypeUp' - : 'doMoveLotOccupantTypeDown'), + : 'doMoveLotOccupantTypeDown' + }`, { lotOccupantTypeId, moveToEnd: clickEvent.shiftKey ? '1' : '0' @@ -127,7 +129,7 @@ function moveLotOccupantType(clickEvent: MouseEvent): void { const responseJSON = rawResponseJSON as ResponseJSON if (responseJSON.success) { - lotOccupantTypes = responseJSON.lotOccupantTypes! + lotOccupantTypes = responseJSON.lotOccupantTypes renderLotOccupantTypes() } else { bulmaJS.alert({ @@ -146,6 +148,7 @@ function renderLotOccupantTypes(): void { ) as HTMLTableSectionElement if (lotOccupantTypes.length === 0) { + // eslint-disable-next-line no-unsanitized/property containerElement.innerHTML = `

There are no active ${los.escapedAliases.lot} ${los.escapedAliases.occupant} types.

@@ -163,104 +166,82 @@ function renderLotOccupantTypes(): void { tableRowElement.dataset.lotOccupantTypeId = lotOccupantType.lotOccupantTypeId.toString() - const formId = - 'form--lotOccupantType-' + lotOccupantType.lotOccupantTypeId.toString() + const formId = `form--lotOccupantType-${lotOccupantType.lotOccupantTypeId.toString()}` - tableRowElement.innerHTML = - '' + - ('
' + - '
' + - '' + - '
' + - '
') + - '' + - '' + - ('
' + - '
fa-
' + - '
' + - '' + - '
' + - '
' + - '
' + - '
') + - '' + - '' + - ('
' + - '
' + - '' + - '
' + - '
') + - '' + - ('' + - ('
') + - '' + - '' + - '
' + - '') + - '' + - '
' + - '
' + - los.getMoveUpDownButtonFieldHTML( - 'button--moveLotOccupantTypeUp', - 'button--moveLotOccupantTypeDown', - false - ) + - '
' + - '
' + - '' + - '
' + - '
' + - '' + // eslint-disable-next-line no-unsanitized/property + tableRowElement.innerHTML = ` +
+
+ +
+
+ +
+
+ fa- +
+
+ +
+
+ + + +
+
+ +
+
+ +
+
+ +
+ + +
+ +
+
+ ${los.getMoveUpDownButtonFieldHTML( + 'button--moveLotOccupantTypeUp', + 'button--moveLotOccupantTypeDown', + false + )} +
+
+ +
+
+ ` const fontAwesomeInputElement = tableRowElement.querySelector( "input[name='fontAwesomeIconClass']" - )! + ) as HTMLInputElement fontAwesomeInputElement.addEventListener('keyup', refreshFontAwesomeIcon) fontAwesomeInputElement.addEventListener('change', refreshFontAwesomeIcon) tableRowElement - .querySelector('form')! - .addEventListener('submit', updateLotOccupantType) + .querySelector('form') + ?.addEventListener('submit', updateLotOccupantType) ;( tableRowElement.querySelector( '.button--moveLotOccupantTypeUp' @@ -273,8 +254,8 @@ function renderLotOccupantTypes(): void { ).addEventListener('click', moveLotOccupantType) tableRowElement - .querySelector('.button--deleteLotOccupantType')! - .addEventListener('click', deleteLotOccupantType) + .querySelector('.button--deleteLotOccupantType') + ?.addEventListener('click', deleteLotOccupantType) containerElement.append(tableRowElement) } @@ -287,16 +268,16 @@ function renderLotOccupantTypes(): void { const formElement = submitEvent.currentTarget as HTMLFormElement cityssm.postJSON( - los.urlPrefix + '/admin/doAddLotOccupantType', + `${los.urlPrefix}/admin/doAddLotOccupantType`, formElement, (rawResponseJSON) => { const responseJSON = rawResponseJSON as ResponseJSON if (responseJSON.success) { - lotOccupantTypes = responseJSON.lotOccupantTypes! + lotOccupantTypes = responseJSON.lotOccupantTypes renderLotOccupantTypes() formElement.reset() - formElement.querySelector('input')!.focus() + formElement.querySelector('input')?.focus() } else { bulmaJS.alert({ title: `Error Adding ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, diff --git a/public-typescript/adminTables/adminTablesLotStatuses.js b/public-typescript/adminTables/adminTablesLotStatuses.js index ad366f74..9ab37f1c 100644 --- a/public-typescript/adminTables/adminTablesLotStatuses.js +++ b/public-typescript/adminTables/adminTablesLotStatuses.js @@ -1,23 +1,24 @@ "use strict"; -/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ +// eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair +/* eslint-disable unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); let lotStatuses = exports.lotStatuses; delete exports.lotStatuses; function updateLotStatus(submitEvent) { submitEvent.preventDefault(); - cityssm.postJSON(los.urlPrefix + '/admin/doUpdateLotStatus', submitEvent.currentTarget, (rawResponseJSON) => { + cityssm.postJSON(`${los.urlPrefix}/admin/doUpdateLotStatus`, submitEvent.currentTarget, (rawResponseJSON) => { var _a; const responseJSON = rawResponseJSON; if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses; bulmaJS.alert({ - message: los.escapedAliases.Lot + ' Status Updated Successfully', + message: `${los.escapedAliases.Lot} Status Updated Successfully`, contextualColorName: 'success' }); } else { bulmaJS.alert({ - title: 'Error Updating ' + los.escapedAliases.Lot + ' Status', + title: `Error Updating ${los.escapedAliases.Lot} Status`, message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); @@ -28,7 +29,7 @@ function deleteLotStatus(clickEvent) { const tableRowElement = clickEvent.currentTarget.closest('tr'); const lotStatusId = tableRowElement.dataset.lotStatusId; function doDelete() { - cityssm.postJSON(los.urlPrefix + '/admin/doDeleteLotStatus', { + cityssm.postJSON(`${los.urlPrefix}/admin/doDeleteLotStatus`, { lotStatusId }, (rawResponseJSON) => { var _a; @@ -42,7 +43,7 @@ function deleteLotStatus(clickEvent) { tableRowElement.remove(); } bulmaJS.alert({ - message: los.escapedAliases.Lot + ' Status Deleted Successfully', + message: `${los.escapedAliases.Lot} Status Deleted Successfully`, contextualColorName: 'success' }); } @@ -71,11 +72,9 @@ function moveLotStatus(clickEvent) { const buttonElement = clickEvent.currentTarget; const tableRowElement = buttonElement.closest('tr'); const lotStatusId = tableRowElement.dataset.lotStatusId; - cityssm.postJSON(los.urlPrefix + - '/admin/' + - (buttonElement.dataset.direction === 'up' - ? 'doMoveLotStatusUp' - : 'doMoveLotStatusDown'), { + cityssm.postJSON(`${los.urlPrefix}/admin/${buttonElement.dataset.direction === 'up' + ? 'doMoveLotStatusUp' + : 'doMoveLotStatusDown'}`, { lotStatusId, moveToEnd: clickEvent.shiftKey ? '1' : '0' }, (rawResponseJSON) => { @@ -87,7 +86,7 @@ function moveLotStatus(clickEvent) { } else { bulmaJS.alert({ - title: 'Error Moving ' + los.escapedAliases.Lot + ' Status', + title: `Error Moving ${los.escapedAliases.Lot} Status`, message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); @@ -95,58 +94,54 @@ function moveLotStatus(clickEvent) { }); } function renderLotStatuses() { + var _a, _b; const containerElement = document.querySelector('#container--lotStatuses'); if (lotStatuses.length === 0) { + // eslint-disable-next-line no-unsanitized/property containerElement.innerHTML = ` -

There are no active ${los.escapedAliases.lot} statuses.

- `; +

There are no active ${los.escapedAliases.lot} statuses.

+ `; return; } containerElement.innerHTML = ''; for (const lotStatus of lotStatuses) { const tableRowElement = document.createElement('tr'); tableRowElement.dataset.lotStatusId = lotStatus.lotStatusId.toString(); - tableRowElement.innerHTML = - '' + - '
' + - '' + - ('
' + - '
' + - '' + - '
' + - '
' + - '' + - '
' + - '
') + - '
' + - '' + - '' + - '
' + - '
' + - los.getMoveUpDownButtonFieldHTML('button--moveLotStatusUp', 'button--moveLotStatusDown', false) + - '
' + - '
' + - '' + - '
' + - '
' + - ''; - tableRowElement - .querySelector('form') - .addEventListener('submit', updateLotStatus); + // eslint-disable-next-line no-unsanitized/property + tableRowElement.innerHTML = ` +
+ +
+
+ +
+
+ +
+
+
+ +
+
+ ${los.getMoveUpDownButtonFieldHTML('button--moveLotStatusUp', 'button--moveLotStatusDown', false)} +
+
+ +
+
+ `; + (_a = tableRowElement + .querySelector('form')) === null || _a === void 0 ? void 0 : _a.addEventListener('submit', updateLotStatus); tableRowElement.querySelector('.button--moveLotStatusUp').addEventListener('click', moveLotStatus); tableRowElement.querySelector('.button--moveLotStatusDown').addEventListener('click', moveLotStatus); - tableRowElement - .querySelector('.button--deleteLotStatus') - .addEventListener('click', deleteLotStatus); + (_b = tableRowElement + .querySelector('.button--deleteLotStatus')) === null || _b === void 0 ? void 0 : _b.addEventListener('click', deleteLotStatus); containerElement.append(tableRowElement); } } @@ -154,19 +149,19 @@ function renderLotStatuses() { document.querySelector('#form--addLotStatus').addEventListener('submit', (submitEvent) => { submitEvent.preventDefault(); const formElement = submitEvent.currentTarget; - cityssm.postJSON(los.urlPrefix + '/admin/doAddLotStatus', formElement, (rawResponseJSON) => { - var _a; + cityssm.postJSON(`${los.urlPrefix}/admin/doAddLotStatus`, formElement, (rawResponseJSON) => { + var _a, _b; const responseJSON = rawResponseJSON; if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses; renderLotStatuses(); formElement.reset(); - formElement.querySelector('input').focus(); + (_a = formElement.querySelector('input')) === null || _a === void 0 ? void 0 : _a.focus(); } else { bulmaJS.alert({ title: `Error Adding ${los.escapedAliases.Lot} Status`, - message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', + message: (_b = responseJSON.errorMessage) !== null && _b !== void 0 ? _b : '', contextualColorName: 'danger' }); } diff --git a/public-typescript/adminTables/adminTablesLotStatuses.ts b/public-typescript/adminTables/adminTablesLotStatuses.ts index 8ab8e416..5dca8160 100644 --- a/public-typescript/adminTables/adminTablesLotStatuses.ts +++ b/public-typescript/adminTables/adminTablesLotStatuses.ts @@ -1,24 +1,25 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ +// eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair +/* eslint-disable unicorn/prefer-module */ -import type * as globalTypes from '../../types/globalTypes' -import type * as recordTypes from '../../types/recordTypes' +import type { BulmaJS } from '@cityssm/bulma-js/types.js' +import type { cityssmGlobal } from '@cityssm/bulma-webapp-js/src/types.js' -import type { cityssmGlobal } from '@cityssm/bulma-webapp-js/src/types' - -import type { BulmaJS } from '@cityssm/bulma-js/types' +import type { LOS } from '../../types/globalTypes.js' +import type { LotStatus } from '../../types/recordTypes.js' declare const cityssm: cityssmGlobal declare const bulmaJS: BulmaJS -declare const los: globalTypes.LOS +declare const los: LOS +declare const exports: Record -let lotStatuses: recordTypes.LotStatus[] = exports.lotStatuses +let lotStatuses = exports.lotStatuses as LotStatus[] delete exports.lotStatuses type ResponseJSON = | { success: true - lotStatuses: recordTypes.LotStatus[] + lotStatuses: LotStatus[] } | { success: false @@ -29,21 +30,21 @@ function updateLotStatus(submitEvent: SubmitEvent): void { submitEvent.preventDefault() cityssm.postJSON( - los.urlPrefix + '/admin/doUpdateLotStatus', + `${los.urlPrefix}/admin/doUpdateLotStatus`, submitEvent.currentTarget, (rawResponseJSON) => { const responseJSON = rawResponseJSON as ResponseJSON if (responseJSON.success) { - lotStatuses = responseJSON.lotStatuses! + lotStatuses = responseJSON.lotStatuses bulmaJS.alert({ - message: los.escapedAliases.Lot + ' Status Updated Successfully', + message: `${los.escapedAliases.Lot} Status Updated Successfully`, contextualColorName: 'success' }) } else { bulmaJS.alert({ - title: 'Error Updating ' + los.escapedAliases.Lot + ' Status', + title: `Error Updating ${los.escapedAliases.Lot} Status`, message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) @@ -55,13 +56,13 @@ function updateLotStatus(submitEvent: SubmitEvent): void { function deleteLotStatus(clickEvent: Event): void { const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest( 'tr' - )! + ) as HTMLTableRowElement const lotStatusId = tableRowElement.dataset.lotStatusId function doDelete(): void { cityssm.postJSON( - los.urlPrefix + '/admin/doDeleteLotStatus', + `${los.urlPrefix}/admin/doDeleteLotStatus`, { lotStatusId }, @@ -69,7 +70,7 @@ function deleteLotStatus(clickEvent: Event): void { const responseJSON = rawResponseJSON as ResponseJSON if (responseJSON.success) { - lotStatuses = responseJSON.lotStatuses! + lotStatuses = responseJSON.lotStatuses if (lotStatuses.length === 0) { renderLotStatuses() @@ -78,7 +79,7 @@ function deleteLotStatus(clickEvent: Event): void { } bulmaJS.alert({ - message: los.escapedAliases.Lot + ' Status Deleted Successfully', + message: `${los.escapedAliases.Lot} Status Deleted Successfully`, contextualColorName: 'success' }) } else { @@ -108,16 +109,16 @@ function deleteLotStatus(clickEvent: Event): void { function moveLotStatus(clickEvent: MouseEvent): void { const buttonElement = clickEvent.currentTarget as HTMLButtonElement - const tableRowElement = buttonElement.closest('tr')! + const tableRowElement = buttonElement.closest('tr') as HTMLTableRowElement const lotStatusId = tableRowElement.dataset.lotStatusId cityssm.postJSON( - los.urlPrefix + - '/admin/' + - (buttonElement.dataset.direction === 'up' + `${los.urlPrefix}/admin/${ + buttonElement.dataset.direction === 'up' ? 'doMoveLotStatusUp' - : 'doMoveLotStatusDown'), + : 'doMoveLotStatusDown' + }`, { lotStatusId, moveToEnd: clickEvent.shiftKey ? '1' : '0' @@ -126,11 +127,11 @@ function moveLotStatus(clickEvent: MouseEvent): void { const responseJSON = rawResponseJSON as ResponseJSON if (responseJSON.success) { - lotStatuses = responseJSON.lotStatuses! + lotStatuses = responseJSON.lotStatuses renderLotStatuses() } else { bulmaJS.alert({ - title: 'Error Moving ' + los.escapedAliases.Lot + ' Status', + title: `Error Moving ${los.escapedAliases.Lot} Status`, message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) @@ -145,9 +146,10 @@ function renderLotStatuses(): void { ) as HTMLTableSectionElement if (lotStatuses.length === 0) { + // eslint-disable-next-line no-unsanitized/property containerElement.innerHTML = ` -

There are no active ${los.escapedAliases.lot} statuses.

- ` +

There are no active ${los.escapedAliases.lot} statuses.

+ ` return } @@ -159,47 +161,43 @@ function renderLotStatuses(): void { tableRowElement.dataset.lotStatusId = lotStatus.lotStatusId.toString() - tableRowElement.innerHTML = - '' + - '
' + - '' + - ('
' + - '
' + - '' + - '
' + - '
' + - '' + - '
' + - '
') + - '
' + - '' + - '' + - '
' + - '
' + - los.getMoveUpDownButtonFieldHTML( - 'button--moveLotStatusUp', - 'button--moveLotStatusDown', - false - ) + - '
' + - '
' + - '' + - '
' + - '
' + - '' + // eslint-disable-next-line no-unsanitized/property + tableRowElement.innerHTML = ` +
+ +
+
+ +
+
+ +
+
+
+ +
+
+ ${los.getMoveUpDownButtonFieldHTML( + 'button--moveLotStatusUp', + 'button--moveLotStatusDown', + false + )} +
+
+ +
+
+ ` tableRowElement - .querySelector('form')! - .addEventListener('submit', updateLotStatus) + .querySelector('form') + ?.addEventListener('submit', updateLotStatus) ;( tableRowElement.querySelector( '.button--moveLotStatusUp' @@ -212,8 +210,8 @@ function renderLotStatuses(): void { ).addEventListener('click', moveLotStatus) tableRowElement - .querySelector('.button--deleteLotStatus')! - .addEventListener('click', deleteLotStatus) + .querySelector('.button--deleteLotStatus') + ?.addEventListener('click', deleteLotStatus) containerElement.append(tableRowElement) } @@ -226,16 +224,16 @@ function renderLotStatuses(): void { const formElement = submitEvent.currentTarget as HTMLFormElement cityssm.postJSON( - los.urlPrefix + '/admin/doAddLotStatus', + `${los.urlPrefix}/admin/doAddLotStatus`, formElement, (rawResponseJSON) => { const responseJSON = rawResponseJSON as ResponseJSON if (responseJSON.success) { - lotStatuses = responseJSON.lotStatuses! + lotStatuses = responseJSON.lotStatuses renderLotStatuses() formElement.reset() - formElement.querySelector('input')!.focus() + formElement.querySelector('input')?.focus() } else { bulmaJS.alert({ title: `Error Adding ${los.escapedAliases.Lot} Status`, diff --git a/public-typescript/adminTables/adminTablesWorkOrderMilestoneTypes.js b/public-typescript/adminTables/adminTablesWorkOrderMilestoneTypes.js index 1d26f60b..68b1f314 100644 --- a/public-typescript/adminTables/adminTablesWorkOrderMilestoneTypes.js +++ b/public-typescript/adminTables/adminTablesWorkOrderMilestoneTypes.js @@ -1,11 +1,12 @@ "use strict"; -/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ +// eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair +/* eslint-disable unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); let workOrderMilestoneTypes = exports.workOrderMilestoneTypes; delete exports.workOrderMilestoneTypes; function updateWorkOrderMilestoneType(submitEvent) { submitEvent.preventDefault(); - cityssm.postJSON(los.urlPrefix + '/admin/doUpdateWorkOrderMilestoneType', submitEvent.currentTarget, (rawResponseJSON) => { + cityssm.postJSON(`${los.urlPrefix}/admin/doUpdateWorkOrderMilestoneType`, submitEvent.currentTarget, (rawResponseJSON) => { var _a; const responseJSON = rawResponseJSON; if (responseJSON.success) { @@ -28,7 +29,7 @@ function deleteWorkOrderMilestoneType(clickEvent) { const tableRowElement = clickEvent.currentTarget.closest('tr'); const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId; function doDelete() { - cityssm.postJSON(los.urlPrefix + '/admin/doDeleteWorkOrderMilestoneType', { + cityssm.postJSON(`${los.urlPrefix}/admin/doDeleteWorkOrderMilestoneType`, { workOrderMilestoneTypeId }, (rawResponseJSON) => { var _a; @@ -58,7 +59,7 @@ function deleteWorkOrderMilestoneType(clickEvent) { bulmaJS.confirm({ title: 'Delete Work Order Milestone Type', message: `Are you sure you want to delete this work order milestone type?
- Note that no work orders will be removed.`, + Note that no work orders will be removed.`, messageIsHtml: true, contextualColorName: 'warning', okButton: { @@ -71,11 +72,9 @@ function moveWorkOrderMilestoneType(clickEvent) { const buttonElement = clickEvent.currentTarget; const tableRowElement = buttonElement.closest('tr'); const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId; - cityssm.postJSON(los.urlPrefix + - '/admin/' + - (buttonElement.dataset.direction === 'up' - ? 'doMoveWorkOrderMilestoneTypeUp' - : 'doMoveWorkOrderMilestoneTypeDown'), { + cityssm.postJSON(`${los.urlPrefix}/admin/${buttonElement.dataset.direction === 'up' + ? 'doMoveWorkOrderMilestoneTypeUp' + : 'doMoveWorkOrderMilestoneTypeDown'}`, { workOrderMilestoneTypeId, moveToEnd: clickEvent.shiftKey ? '1' : '0' }, (rawResponseJSON) => { @@ -95,11 +94,12 @@ function moveWorkOrderMilestoneType(clickEvent) { }); } function renderWorkOrderMilestoneTypes() { + var _a, _b; const containerElement = document.querySelector('#container--workOrderMilestoneTypes'); if (workOrderMilestoneTypes.length === 0) { containerElement.innerHTML = ` -

There are no active work order milestone types.

- `; +

There are no active work order milestone types.

+ `; return; } containerElement.innerHTML = ''; @@ -107,44 +107,40 @@ function renderWorkOrderMilestoneTypes() { const tableRowElement = document.createElement('tr'); tableRowElement.dataset.workOrderMilestoneTypeId = workOrderMilestoneType.workOrderMilestoneTypeId.toString(); - tableRowElement.innerHTML = - '' + - '
' + - '' + - ('
' + - '
' + - '' + - '
' + - '
' + - '' + - '
' + - '
') + - '
' + - '' + - '' + - '
' + - '
' + - los.getMoveUpDownButtonFieldHTML('button--moveWorkOrderMilestoneTypeUp', 'button--moveWorkOrderMilestoneTypeDown', false) + - '
' + - '
' + - '' + - '
' + - '
' + - ''; - tableRowElement - .querySelector('form') - .addEventListener('submit', updateWorkOrderMilestoneType); + // eslint-disable-next-line no-unsanitized/property, no-secrets/no-secrets + tableRowElement.innerHTML = ` +
+ +
+
+ +
+
+ +
+
+
+ +
+
+ ${los.getMoveUpDownButtonFieldHTML('button--moveWorkOrderMilestoneTypeUp', 'button--moveWorkOrderMilestoneTypeDown', false)} +
+
+ +
+
+ `; + (_a = tableRowElement + .querySelector('form')) === null || _a === void 0 ? void 0 : _a.addEventListener('submit', updateWorkOrderMilestoneType); tableRowElement.querySelector('.button--moveWorkOrderMilestoneTypeUp').addEventListener('click', moveWorkOrderMilestoneType); tableRowElement.querySelector('.button--moveWorkOrderMilestoneTypeDown').addEventListener('click', moveWorkOrderMilestoneType); - tableRowElement - .querySelector('.button--deleteWorkOrderMilestoneType') - .addEventListener('click', deleteWorkOrderMilestoneType); + (_b = tableRowElement + .querySelector('.button--deleteWorkOrderMilestoneType')) === null || _b === void 0 ? void 0 : _b.addEventListener('click', deleteWorkOrderMilestoneType); containerElement.append(tableRowElement); } } @@ -152,19 +148,19 @@ function renderWorkOrderMilestoneTypes() { document.querySelector('#form--addWorkOrderMilestoneType').addEventListener('submit', (submitEvent) => { submitEvent.preventDefault(); const formElement = submitEvent.currentTarget; - cityssm.postJSON(los.urlPrefix + '/admin/doAddWorkOrderMilestoneType', formElement, (rawResponseJSON) => { - var _a; + cityssm.postJSON(`${los.urlPrefix}/admin/doAddWorkOrderMilestoneType`, formElement, (rawResponseJSON) => { + var _a, _b; const responseJSON = rawResponseJSON; if (responseJSON.success) { workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes; renderWorkOrderMilestoneTypes(); formElement.reset(); - formElement.querySelector('input').focus(); + (_a = formElement.querySelector('input')) === null || _a === void 0 ? void 0 : _a.focus(); } else { bulmaJS.alert({ title: 'Error Adding Work Order Milestone Type', - message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', + message: (_b = responseJSON.errorMessage) !== null && _b !== void 0 ? _b : '', contextualColorName: 'danger' }); } diff --git a/public-typescript/adminTables/adminTablesWorkOrderMilestoneTypes.ts b/public-typescript/adminTables/adminTablesWorkOrderMilestoneTypes.ts index e2c3145b..5acbf1aa 100644 --- a/public-typescript/adminTables/adminTablesWorkOrderMilestoneTypes.ts +++ b/public-typescript/adminTables/adminTablesWorkOrderMilestoneTypes.ts @@ -1,25 +1,26 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ +// eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair +/* eslint-disable unicorn/prefer-module */ -import type * as globalTypes from '../../types/globalTypes' -import type * as recordTypes from '../../types/recordTypes' +import type { BulmaJS } from '@cityssm/bulma-js/types.js' +import type { cityssmGlobal } from '@cityssm/bulma-webapp-js/src/types.js' -import type { cityssmGlobal } from '@cityssm/bulma-webapp-js/src/types' - -import type { BulmaJS } from '@cityssm/bulma-js/types' +import type { LOS } from '../../types/globalTypes.js' +import type { WorkOrderMilestoneType } from '../../types/recordTypes.js' declare const cityssm: cityssmGlobal declare const bulmaJS: BulmaJS -declare const los: globalTypes.LOS +declare const los: LOS +declare const exports: Record -let workOrderMilestoneTypes: recordTypes.WorkOrderMilestoneType[] = - exports.workOrderMilestoneTypes +let workOrderMilestoneTypes = + exports.workOrderMilestoneTypes as WorkOrderMilestoneType[] delete exports.workOrderMilestoneTypes type ResponseJSON = | { success: true - workOrderMilestoneTypes: recordTypes.WorkOrderMilestoneType[] + workOrderMilestoneTypes: WorkOrderMilestoneType[] } | { success: false @@ -30,13 +31,13 @@ function updateWorkOrderMilestoneType(submitEvent: SubmitEvent): void { submitEvent.preventDefault() cityssm.postJSON( - los.urlPrefix + '/admin/doUpdateWorkOrderMilestoneType', + `${los.urlPrefix}/admin/doUpdateWorkOrderMilestoneType`, submitEvent.currentTarget, (rawResponseJSON) => { const responseJSON = rawResponseJSON as ResponseJSON if (responseJSON.success) { - workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes! + workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes bulmaJS.alert({ message: 'Work Order Milestone Type Updated Successfully', @@ -56,14 +57,14 @@ function updateWorkOrderMilestoneType(submitEvent: SubmitEvent): void { function deleteWorkOrderMilestoneType(clickEvent: Event): void { const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest( 'tr' - )! + ) as HTMLTableRowElement const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId function doDelete(): void { cityssm.postJSON( - los.urlPrefix + '/admin/doDeleteWorkOrderMilestoneType', + `${los.urlPrefix}/admin/doDeleteWorkOrderMilestoneType`, { workOrderMilestoneTypeId }, @@ -71,7 +72,7 @@ function deleteWorkOrderMilestoneType(clickEvent: Event): void { const responseJSON = rawResponseJSON as ResponseJSON if (responseJSON.success) { - workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes! + workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes if (workOrderMilestoneTypes.length === 0) { renderWorkOrderMilestoneTypes() @@ -97,7 +98,7 @@ function deleteWorkOrderMilestoneType(clickEvent: Event): void { bulmaJS.confirm({ title: 'Delete Work Order Milestone Type', message: `Are you sure you want to delete this work order milestone type?
- Note that no work orders will be removed.`, + Note that no work orders will be removed.`, messageIsHtml: true, contextualColorName: 'warning', okButton: { @@ -110,17 +111,17 @@ function deleteWorkOrderMilestoneType(clickEvent: Event): void { function moveWorkOrderMilestoneType(clickEvent: MouseEvent): void { const buttonElement = clickEvent.currentTarget as HTMLButtonElement - const tableRowElement = buttonElement.closest('tr')! + const tableRowElement = buttonElement.closest('tr') as HTMLTableRowElement const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId cityssm.postJSON( - los.urlPrefix + - '/admin/' + - (buttonElement.dataset.direction === 'up' + `${los.urlPrefix}/admin/${ + buttonElement.dataset.direction === 'up' ? 'doMoveWorkOrderMilestoneTypeUp' - : 'doMoveWorkOrderMilestoneTypeDown'), + : 'doMoveWorkOrderMilestoneTypeDown' + }`, { workOrderMilestoneTypeId, moveToEnd: clickEvent.shiftKey ? '1' : '0' @@ -129,7 +130,7 @@ function moveWorkOrderMilestoneType(clickEvent: MouseEvent): void { const responseJSON = rawResponseJSON as ResponseJSON if (responseJSON.success) { - workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes! + workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes renderWorkOrderMilestoneTypes() } else { bulmaJS.alert({ @@ -149,8 +150,8 @@ function renderWorkOrderMilestoneTypes(): void { if (workOrderMilestoneTypes.length === 0) { containerElement.innerHTML = ` -

There are no active work order milestone types.

- ` +

There are no active work order milestone types.

+ ` return } @@ -163,44 +164,42 @@ function renderWorkOrderMilestoneTypes(): void { tableRowElement.dataset.workOrderMilestoneTypeId = workOrderMilestoneType.workOrderMilestoneTypeId.toString() - tableRowElement.innerHTML = - '' + - '
' + - '' + - ('
' + - '
' + - '' + - '
' + - '
' + - '' + - '
' + - '
') + - '
' + - '' + - '' + - '
' + - '
' + - los.getMoveUpDownButtonFieldHTML( - 'button--moveWorkOrderMilestoneTypeUp', - 'button--moveWorkOrderMilestoneTypeDown', - false - ) + - '
' + - '
' + - '' + - '
' + - '
' + - '' + // eslint-disable-next-line no-unsanitized/property, no-secrets/no-secrets + tableRowElement.innerHTML = ` +
+ +
+
+ +
+
+ +
+
+
+ +
+
+ ${los.getMoveUpDownButtonFieldHTML( + 'button--moveWorkOrderMilestoneTypeUp', + 'button--moveWorkOrderMilestoneTypeDown', + false + )} +
+
+ +
+
+ ` tableRowElement - .querySelector('form')! - .addEventListener('submit', updateWorkOrderMilestoneType) + .querySelector('form') + ?.addEventListener('submit', updateWorkOrderMilestoneType) ;( tableRowElement.querySelector( '.button--moveWorkOrderMilestoneTypeUp' @@ -213,8 +212,8 @@ function renderWorkOrderMilestoneTypes(): void { ).addEventListener('click', moveWorkOrderMilestoneType) tableRowElement - .querySelector('.button--deleteWorkOrderMilestoneType')! - .addEventListener('click', deleteWorkOrderMilestoneType) + .querySelector('.button--deleteWorkOrderMilestoneType') + ?.addEventListener('click', deleteWorkOrderMilestoneType) containerElement.append(tableRowElement) } @@ -227,16 +226,16 @@ function renderWorkOrderMilestoneTypes(): void { const formElement = submitEvent.currentTarget as HTMLFormElement cityssm.postJSON( - los.urlPrefix + '/admin/doAddWorkOrderMilestoneType', + `${los.urlPrefix}/admin/doAddWorkOrderMilestoneType`, formElement, (rawResponseJSON) => { const responseJSON = rawResponseJSON as ResponseJSON if (responseJSON.success) { - workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes! + workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes renderWorkOrderMilestoneTypes() formElement.reset() - formElement.querySelector('input')!.focus() + formElement.querySelector('input')?.focus() } else { bulmaJS.alert({ title: 'Error Adding Work Order Milestone Type', diff --git a/public-typescript/adminTables/adminTablesWorkOrderTypes.js b/public-typescript/adminTables/adminTablesWorkOrderTypes.js index 93f9c74d..b1760b2c 100644 --- a/public-typescript/adminTables/adminTablesWorkOrderTypes.js +++ b/public-typescript/adminTables/adminTablesWorkOrderTypes.js @@ -1,11 +1,12 @@ "use strict"; -/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ +// eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair +/* eslint-disable unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); let workOrderTypes = exports.workOrderTypes; delete exports.workOrderTypes; function updateWorkOrderType(submitEvent) { submitEvent.preventDefault(); - cityssm.postJSON(los.urlPrefix + '/admin/doUpdateWorkOrderType', submitEvent.currentTarget, (rawResponseJSON) => { + cityssm.postJSON(`${los.urlPrefix}/admin/doUpdateWorkOrderType`, submitEvent.currentTarget, (rawResponseJSON) => { var _a; const responseJSON = rawResponseJSON; if (responseJSON.success) { @@ -24,11 +25,11 @@ function updateWorkOrderType(submitEvent) { } }); } -const deleteWorkOrderType = (clickEvent) => { +function deleteWorkOrderType(clickEvent) { const tableRowElement = clickEvent.currentTarget.closest('tr'); const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; function doDelete() { - cityssm.postJSON(los.urlPrefix + '/admin/doDeleteWorkOrderType', { + cityssm.postJSON(`${los.urlPrefix}/admin/doDeleteWorkOrderType`, { workOrderTypeId }, (rawResponseJSON) => { var _a; @@ -58,7 +59,7 @@ const deleteWorkOrderType = (clickEvent) => { bulmaJS.confirm({ title: 'Delete Work Order Type', message: `Are you sure you want to delete this work order type?
- Note that no work orders will be removed.`, + Note that no work orders will be removed.`, messageIsHtml: true, contextualColorName: 'warning', okButton: { @@ -66,16 +67,14 @@ const deleteWorkOrderType = (clickEvent) => { callbackFunction: doDelete } }); -}; +} function moveWorkOrderType(clickEvent) { const buttonElement = clickEvent.currentTarget; const tableRowElement = buttonElement.closest('tr'); const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; - cityssm.postJSON(los.urlPrefix + - '/admin/' + - (buttonElement.dataset.direction === 'up' - ? 'doMoveWorkOrderTypeUp' - : 'doMoveWorkOrderTypeDown'), { + cityssm.postJSON(`${los.urlPrefix}/admin/${buttonElement.dataset.direction === 'up' + ? 'doMoveWorkOrderTypeUp' + : 'doMoveWorkOrderTypeDown'}`, { workOrderTypeId, moveToEnd: clickEvent.shiftKey ? '1' : '0' }, (rawResponseJSON) => { @@ -95,12 +94,12 @@ function moveWorkOrderType(clickEvent) { }); } function renderWorkOrderTypes() { - var _a; + var _a, _b, _c; const containerElement = document.querySelector('#container--workOrderTypes'); if (workOrderTypes.length === 0) { containerElement.innerHTML = ` -

There are no active work order types.

- `; +

There are no active work order types.

+ `; return; } containerElement.innerHTML = ''; @@ -108,44 +107,40 @@ function renderWorkOrderTypes() { const tableRowElement = document.createElement('tr'); tableRowElement.dataset.workOrderTypeId = workOrderType.workOrderTypeId.toString(); - tableRowElement.innerHTML = - '' + - '
' + - '' + - ('
' + - '
' + - '' + - '
' + - '
' + - '' + - '
' + - '
') + - '
' + - '' + - '' + - '
' + - '
' + - los.getMoveUpDownButtonFieldHTML('button--moveWorkOrderTypeUp', 'button--moveWorkOrderTypeDown', false) + - '
' + - '
' + - '' + - '
' + - '
' + - ''; - tableRowElement - .querySelector('form') - .addEventListener('submit', updateWorkOrderType); + // eslint-disable-next-line no-unsanitized/property + tableRowElement.innerHTML = ` +
+ +
+
+ +
+
+ +
+
+
+ +
+
+ ${los.getMoveUpDownButtonFieldHTML('button--moveWorkOrderTypeUp', 'button--moveWorkOrderTypeDown', false)} +
+
+ +
+
+ `; + (_b = tableRowElement + .querySelector('form')) === null || _b === void 0 ? void 0 : _b.addEventListener('submit', updateWorkOrderType); tableRowElement.querySelector('.button--moveWorkOrderTypeUp').addEventListener('click', moveWorkOrderType); tableRowElement.querySelector('.button--moveWorkOrderTypeDown').addEventListener('click', moveWorkOrderType); - tableRowElement - .querySelector('.button--deleteWorkOrderType') - .addEventListener('click', deleteWorkOrderType); + (_c = tableRowElement + .querySelector('.button--deleteWorkOrderType')) === null || _c === void 0 ? void 0 : _c.addEventListener('click', deleteWorkOrderType); containerElement.append(tableRowElement); } } @@ -153,19 +148,19 @@ function renderWorkOrderTypes() { document.querySelector('#form--addWorkOrderType').addEventListener('submit', (submitEvent) => { submitEvent.preventDefault(); const formElement = submitEvent.currentTarget; - cityssm.postJSON(los.urlPrefix + '/admin/doAddWorkOrderType', formElement, (rawResponseJSON) => { - var _a; + cityssm.postJSON(`${los.urlPrefix}/admin/doAddWorkOrderType`, formElement, (rawResponseJSON) => { + var _a, _b; const responseJSON = rawResponseJSON; if (responseJSON.success) { workOrderTypes = responseJSON.workOrderTypes; renderWorkOrderTypes(); formElement.reset(); - formElement.querySelector('input').focus(); + (_a = formElement.querySelector('input')) === null || _a === void 0 ? void 0 : _a.focus(); } else { bulmaJS.alert({ title: 'Error Adding Work Order Type', - message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', + message: (_b = responseJSON.errorMessage) !== null && _b !== void 0 ? _b : '', contextualColorName: 'danger' }); } diff --git a/public-typescript/adminTables/adminTablesWorkOrderTypes.ts b/public-typescript/adminTables/adminTablesWorkOrderTypes.ts index 4420b25d..4ba13750 100644 --- a/public-typescript/adminTables/adminTablesWorkOrderTypes.ts +++ b/public-typescript/adminTables/adminTablesWorkOrderTypes.ts @@ -1,24 +1,25 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ +// eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair +/* eslint-disable unicorn/prefer-module */ -import type * as globalTypes from '../../types/globalTypes' -import type * as recordTypes from '../../types/recordTypes' +import type { BulmaJS } from '@cityssm/bulma-js/types.js' +import type { cityssmGlobal } from '@cityssm/bulma-webapp-js/src/types.js' -import type { cityssmGlobal } from '@cityssm/bulma-webapp-js/src/types' - -import type { BulmaJS } from '@cityssm/bulma-js/types' +import type { LOS } from '../../types/globalTypes.js' +import type { WorkOrderType } from '../../types/recordTypes.js' declare const cityssm: cityssmGlobal declare const bulmaJS: BulmaJS -declare const los: globalTypes.LOS +declare const los: LOS +declare const exports: Record -let workOrderTypes: recordTypes.WorkOrderType[] = exports.workOrderTypes +let workOrderTypes = exports.workOrderTypes as WorkOrderType[] delete exports.workOrderTypes type ResponseJSON = | { success: true - workOrderTypes: recordTypes.WorkOrderType[] + workOrderTypes: WorkOrderType[] } | { success: false @@ -29,13 +30,13 @@ function updateWorkOrderType(submitEvent: SubmitEvent): void { submitEvent.preventDefault() cityssm.postJSON( - los.urlPrefix + '/admin/doUpdateWorkOrderType', + `${los.urlPrefix}/admin/doUpdateWorkOrderType`, submitEvent.currentTarget, (rawResponseJSON) => { const responseJSON = rawResponseJSON as ResponseJSON if (responseJSON.success) { - workOrderTypes = responseJSON.workOrderTypes! + workOrderTypes = responseJSON.workOrderTypes bulmaJS.alert({ message: 'Work Order Type Updated Successfully', @@ -52,16 +53,16 @@ function updateWorkOrderType(submitEvent: SubmitEvent): void { ) } -const deleteWorkOrderType = (clickEvent: Event): void => { +function deleteWorkOrderType(clickEvent: Event): void { const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest( 'tr' - )! + ) as HTMLTableRowElement const workOrderTypeId = tableRowElement.dataset.workOrderTypeId function doDelete(): void { cityssm.postJSON( - los.urlPrefix + '/admin/doDeleteWorkOrderType', + `${los.urlPrefix}/admin/doDeleteWorkOrderType`, { workOrderTypeId }, @@ -69,7 +70,7 @@ const deleteWorkOrderType = (clickEvent: Event): void => { const responseJSON = rawResponseJSON as ResponseJSON if (responseJSON.success) { - workOrderTypes = responseJSON.workOrderTypes! + workOrderTypes = responseJSON.workOrderTypes if (workOrderTypes.length === 0) { renderWorkOrderTypes() @@ -95,7 +96,7 @@ const deleteWorkOrderType = (clickEvent: Event): void => { bulmaJS.confirm({ title: 'Delete Work Order Type', message: `Are you sure you want to delete this work order type?
- Note that no work orders will be removed.`, + Note that no work orders will be removed.`, messageIsHtml: true, contextualColorName: 'warning', okButton: { @@ -108,16 +109,16 @@ const deleteWorkOrderType = (clickEvent: Event): void => { function moveWorkOrderType(clickEvent: MouseEvent): void { const buttonElement = clickEvent.currentTarget as HTMLButtonElement - const tableRowElement = buttonElement.closest('tr')! + const tableRowElement = buttonElement.closest('tr') as HTMLTableRowElement const workOrderTypeId = tableRowElement.dataset.workOrderTypeId cityssm.postJSON( - los.urlPrefix + - '/admin/' + - (buttonElement.dataset.direction === 'up' + `${los.urlPrefix}/admin/${ + buttonElement.dataset.direction === 'up' ? 'doMoveWorkOrderTypeUp' - : 'doMoveWorkOrderTypeDown'), + : 'doMoveWorkOrderTypeDown' + }`, { workOrderTypeId, moveToEnd: clickEvent.shiftKey ? '1' : '0' @@ -126,7 +127,7 @@ function moveWorkOrderType(clickEvent: MouseEvent): void { const responseJSON = rawResponseJSON as ResponseJSON if (responseJSON.success) { - workOrderTypes = responseJSON.workOrderTypes! + workOrderTypes = responseJSON.workOrderTypes renderWorkOrderTypes() } else { bulmaJS.alert({ @@ -146,8 +147,8 @@ function renderWorkOrderTypes(): void { if (workOrderTypes.length === 0) { containerElement.innerHTML = ` -

There are no active work order types.

- ` +

There are no active work order types.

+ ` return } @@ -160,44 +161,42 @@ function renderWorkOrderTypes(): void { tableRowElement.dataset.workOrderTypeId = workOrderType.workOrderTypeId.toString() - tableRowElement.innerHTML = - '' + - '
' + - '' + - ('
' + - '
' + - '' + - '
' + - '
' + - '' + - '
' + - '
') + - '
' + - '' + - '' + - '
' + - '
' + - los.getMoveUpDownButtonFieldHTML( - 'button--moveWorkOrderTypeUp', - 'button--moveWorkOrderTypeDown', - false - ) + - '
' + - '
' + - '' + - '
' + - '
' + - '' + // eslint-disable-next-line no-unsanitized/property + tableRowElement.innerHTML = ` +
+ +
+
+ +
+
+ +
+
+
+ +
+
+ ${los.getMoveUpDownButtonFieldHTML( + 'button--moveWorkOrderTypeUp', + 'button--moveWorkOrderTypeDown', + false + )} +
+
+ +
+
+ ` tableRowElement - .querySelector('form')! - .addEventListener('submit', updateWorkOrderType) + .querySelector('form') + ?.addEventListener('submit', updateWorkOrderType) ;( tableRowElement.querySelector( '.button--moveWorkOrderTypeUp' @@ -210,8 +209,8 @@ function renderWorkOrderTypes(): void { ).addEventListener('click', moveWorkOrderType) tableRowElement - .querySelector('.button--deleteWorkOrderType')! - .addEventListener('click', deleteWorkOrderType) + .querySelector('.button--deleteWorkOrderType') + ?.addEventListener('click', deleteWorkOrderType) containerElement.append(tableRowElement) } @@ -224,16 +223,16 @@ function renderWorkOrderTypes(): void { const formElement = submitEvent.currentTarget as HTMLFormElement cityssm.postJSON( - los.urlPrefix + '/admin/doAddWorkOrderType', + `${los.urlPrefix}/admin/doAddWorkOrderType`, formElement, (rawResponseJSON) => { const responseJSON = rawResponseJSON as ResponseJSON if (responseJSON.success) { - workOrderTypes = responseJSON.workOrderTypes! + workOrderTypes = responseJSON.workOrderTypes renderWorkOrderTypes() formElement.reset() - formElement.querySelector('input')!.focus() + formElement.querySelector('input')?.focus() } else { bulmaJS.alert({ title: 'Error Adding Work Order Type', diff --git a/public-typescript/lotOccupancyEdit.js b/public-typescript/lotOccupancyEdit.js index 9637643f..0bee6d3c 100644 --- a/public-typescript/lotOccupancyEdit.js +++ b/public-typescript/lotOccupancyEdit.js @@ -1586,7 +1586,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); .querySelector('tbody')) === null || _g === void 0 ? void 0 : _g.append(tableRowElement); } ; - lotOccupancyTransactionsContainerElement.querySelector('#lotOccupancyTransactions--grandTotal').textContent = `\$${transactionGrandTotal.toFixed(2)}`; + lotOccupancyTransactionsContainerElement.querySelector('#lotOccupancyTransactions--grandTotal').textContent = `$${transactionGrandTotal.toFixed(2)}`; const feeGrandTotal = getFeeGrandTotal(); if (feeGrandTotal.toFixed(2) !== transactionGrandTotal.toFixed(2)) { lotOccupancyTransactionsContainerElement.insertAdjacentHTML('afterbegin', `
diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEditFees.js b/public-typescript/lotOccupancyEdit/lotOccupancyEditFees.js index 282658ff..24d15403 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEditFees.js +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEditFees.js @@ -514,7 +514,7 @@ function renderLotOccupancyTransactions() { .querySelector('tbody')) === null || _g === void 0 ? void 0 : _g.append(tableRowElement); } ; - lotOccupancyTransactionsContainerElement.querySelector('#lotOccupancyTransactions--grandTotal').textContent = `\$${transactionGrandTotal.toFixed(2)}`; + lotOccupancyTransactionsContainerElement.querySelector('#lotOccupancyTransactions--grandTotal').textContent = `$${transactionGrandTotal.toFixed(2)}`; const feeGrandTotal = getFeeGrandTotal(); if (feeGrandTotal.toFixed(2) !== transactionGrandTotal.toFixed(2)) { lotOccupancyTransactionsContainerElement.insertAdjacentHTML('afterbegin', `
diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEditFees.ts b/public-typescript/lotOccupancyEdit/lotOccupancyEditFees.ts index 4c9ed4e5..79c5d490 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEditFees.ts +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEditFees.ts @@ -784,7 +784,7 @@ function renderLotOccupancyTransactions(): void { lotOccupancyTransactionsContainerElement.querySelector( '#lotOccupancyTransactions--grandTotal' ) as HTMLElement - ).textContent = `\$${transactionGrandTotal.toFixed(2)}` + ).textContent = `$${transactionGrandTotal.toFixed(2)}` const feeGrandTotal = getFeeGrandTotal() diff --git a/public-typescript/workOrderEdit.js b/public-typescript/workOrderEdit.js index ee5bc96f..281d55a4 100644 --- a/public-typescript/workOrderEdit.js +++ b/public-typescript/workOrderEdit.js @@ -245,7 +245,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); addLot(lotId); } function renderRelatedOccupancies() { - var _a, _b, _c, _d, _e, _f; + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k; const occupanciesContainerElement = document.querySelector('#container--lotOccupancies'); document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent = workOrderLotOccupancies.length.toString(); if (workOrderLotOccupancies.length === 0) { @@ -311,14 +311,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); let occupantsHTML = ''; for (const occupant of lotOccupancy.lotOccupancyOccupants) { occupantsHTML += `
  • + data-tooltip="${cityssm.escapeHTML((_c = occupant.lotOccupantType) !== null && _c !== void 0 ? _c : '')}"> - + : (_e = occupant.fontAwesomeIconClass) !== null && _e !== void 0 ? _e : '')}" aria-label="${los.escapedAliases.Occupant}"> - ${cityssm.escapeHTML(occupant.occupantName)} - ${cityssm.escapeHTML(occupant.occupantFamilyName)} + ${cityssm.escapeHTML((_f = occupant.occupantName) !== null && _f !== void 0 ? _f : '')} + ${cityssm.escapeHTML((_g = occupant.occupantFamilyName) !== null && _g !== void 0 ? _g : '')}
  • `; } // eslint-disable-next-line no-unsanitized/method @@ -337,11 +337,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); `); - (_d = rowElement - .querySelector('.button--addLot')) === null || _d === void 0 ? void 0 : _d.addEventListener('click', addLotFromLotOccupancy); - (_e = rowElement - .querySelector('.button--deleteLotOccupancy')) === null || _e === void 0 ? void 0 : _e.addEventListener('click', deleteLotOccupancy); - (_f = occupanciesContainerElement.querySelector('tbody')) === null || _f === void 0 ? void 0 : _f.append(rowElement); + (_h = rowElement + .querySelector('.button--addLot')) === null || _h === void 0 ? void 0 : _h.addEventListener('click', addLotFromLotOccupancy); + (_j = rowElement + .querySelector('.button--deleteLotOccupancy')) === null || _j === void 0 ? void 0 : _j.addEventListener('click', deleteLotOccupancy); + (_k = occupanciesContainerElement.querySelector('tbody')) === null || _k === void 0 ? void 0 : _k.append(rowElement); } } function openEditLotStatus(clickEvent) { diff --git a/public-typescript/workOrderEdit/workOrderEdit.ts b/public-typescript/workOrderEdit/workOrderEdit.ts index aabbc7cd..de6f0db2 100644 --- a/public-typescript/workOrderEdit/workOrderEdit.ts +++ b/public-typescript/workOrderEdit/workOrderEdit.ts @@ -4,15 +4,15 @@ import type { BulmaJS } from '@cityssm/bulma-js/types.js' import type { cityssmGlobal } from '@cityssm/bulma-webapp-js/src/types.js' -import type * as globalTypes from '../../types/globalTypes.js' -import type * as recordTypes from '../../types/recordTypes.js' +import type { LOS } from '../../types/globalTypes.js' +import type { WorkOrderMilestone, WorkOrderMilestoneType } from '../../types/recordTypes.js' declare const cityssm: cityssmGlobal declare const bulmaJS: BulmaJS declare const exports: Record ;(() => { - const los = exports.los as globalTypes.LOS + const los = exports.los as LOS const workOrderId = ( document.querySelector('#workOrderEdit--workOrderId') as HTMLInputElement @@ -147,7 +147,7 @@ declare const exports: Record ) } - let workOrderMilestones: recordTypes.WorkOrderMilestone[] + let workOrderMilestones: WorkOrderMilestone[] document .querySelector('#button--closeWorkOrder') @@ -257,7 +257,7 @@ declare const exports: Record }, (rawResponseJSON) => { const responseJSON = rawResponseJSON as { - workOrderMilestones: recordTypes.WorkOrderMilestone[] + workOrderMilestones: WorkOrderMilestone[] } const workOrderMilestones = responseJSON.workOrderMilestones.filter( @@ -309,7 +309,7 @@ declare const exports: Record const responseJSON = rawResponseJSON as { success: boolean errorMessage?: string - workOrderMilestones: recordTypes.WorkOrderMilestone[] + workOrderMilestones: WorkOrderMilestone[] } if (responseJSON.success) { @@ -340,7 +340,7 @@ declare const exports: Record const workOrderMilestone = workOrderMilestones.find((currentMilestone) => { return currentMilestone.workOrderMilestoneId === workOrderMilestoneId - }) as recordTypes.WorkOrderMilestone + }) as WorkOrderMilestone function doComplete(): void { cityssm.postJSON( @@ -449,7 +449,7 @@ declare const exports: Record const workOrderMilestone = workOrderMilestones.find((currentMilestone) => { return currentMilestone.workOrderMilestoneId === workOrderMilestoneId - }) as recordTypes.WorkOrderMilestone + }) as WorkOrderMilestone let editCloseModalFunction: () => void let workOrderMilestoneDateStringElement: HTMLInputElement @@ -464,7 +464,7 @@ declare const exports: Record const responseJSON = rawResponseJSON as { success: boolean errorMessage?: string - workOrderMilestones?: recordTypes.WorkOrderMilestone[] + workOrderMilestones?: WorkOrderMilestone[] } processMilestoneResponse(responseJSON) @@ -494,7 +494,7 @@ declare const exports: Record let milestoneTypeFound = false - for (const milestoneType of exports.workOrderMilestoneTypes as recordTypes.WorkOrderMilestoneType[]) { + for (const milestoneType of exports.workOrderMilestoneTypes as WorkOrderMilestoneType[]) { const optionElement = document.createElement('option') optionElement.value = @@ -517,11 +517,15 @@ declare const exports: Record workOrderMilestone.workOrderMilestoneTypeId ) { const optionElement = document.createElement('option') + optionElement.value = workOrderMilestone.workOrderMilestoneTypeId.toString() + optionElement.textContent = workOrderMilestone.workOrderMilestoneType ?? '' + optionElement.selected = true + milestoneTypeElement.append(optionElement) } @@ -683,7 +687,7 @@ declare const exports: Record if (!isCreate) { workOrderMilestones = - exports.workOrderMilestones as recordTypes.WorkOrderMilestone[] + exports.workOrderMilestones as WorkOrderMilestone[] delete exports.workOrderMilestones renderMilestones() @@ -710,7 +714,7 @@ declare const exports: Record const responseJSON = rawResponseJSON as { success: boolean errorMessage?: string - workOrderMilestones?: recordTypes.WorkOrderMilestone[] + workOrderMilestones?: WorkOrderMilestone[] } processMilestoneResponse(responseJSON) @@ -755,7 +759,7 @@ declare const exports: Record '#milestoneAdd--workOrderMilestoneTypeId' ) as HTMLSelectElement - for (const milestoneType of exports.workOrderMilestoneTypes as recordTypes.WorkOrderMilestoneType[]) { + for (const milestoneType of exports.workOrderMilestoneTypes as WorkOrderMilestoneType[]) { const optionElement = document.createElement('option') optionElement.value = diff --git a/public-typescript/workOrderEdit/workOrderEditLots.js b/public-typescript/workOrderEdit/workOrderEditLots.js index 25f21057..b4eceec5 100644 --- a/public-typescript/workOrderEdit/workOrderEditLots.js +++ b/public-typescript/workOrderEdit/workOrderEditLots.js @@ -91,7 +91,7 @@ function addLotFromLotOccupancy(clickEvent) { addLot(lotId); } function renderRelatedOccupancies() { - var _a, _b, _c, _d, _e, _f; + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k; const occupanciesContainerElement = document.querySelector('#container--lotOccupancies'); document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent = workOrderLotOccupancies.length.toString(); if (workOrderLotOccupancies.length === 0) { @@ -157,14 +157,14 @@ function renderRelatedOccupancies() { let occupantsHTML = ''; for (const occupant of lotOccupancy.lotOccupancyOccupants) { occupantsHTML += `
  • + data-tooltip="${cityssm.escapeHTML((_c = occupant.lotOccupantType) !== null && _c !== void 0 ? _c : '')}"> - + : (_e = occupant.fontAwesomeIconClass) !== null && _e !== void 0 ? _e : '')}" aria-label="${los.escapedAliases.Occupant}"> - ${cityssm.escapeHTML(occupant.occupantName)} - ${cityssm.escapeHTML(occupant.occupantFamilyName)} + ${cityssm.escapeHTML((_f = occupant.occupantName) !== null && _f !== void 0 ? _f : '')} + ${cityssm.escapeHTML((_g = occupant.occupantFamilyName) !== null && _g !== void 0 ? _g : '')}
  • `; } // eslint-disable-next-line no-unsanitized/method @@ -183,11 +183,11 @@ function renderRelatedOccupancies() { `); - (_d = rowElement - .querySelector('.button--addLot')) === null || _d === void 0 ? void 0 : _d.addEventListener('click', addLotFromLotOccupancy); - (_e = rowElement - .querySelector('.button--deleteLotOccupancy')) === null || _e === void 0 ? void 0 : _e.addEventListener('click', deleteLotOccupancy); - (_f = occupanciesContainerElement.querySelector('tbody')) === null || _f === void 0 ? void 0 : _f.append(rowElement); + (_h = rowElement + .querySelector('.button--addLot')) === null || _h === void 0 ? void 0 : _h.addEventListener('click', addLotFromLotOccupancy); + (_j = rowElement + .querySelector('.button--deleteLotOccupancy')) === null || _j === void 0 ? void 0 : _j.addEventListener('click', deleteLotOccupancy); + (_k = occupanciesContainerElement.querySelector('tbody')) === null || _k === void 0 ? void 0 : _k.append(rowElement); } } function openEditLotStatus(clickEvent) { diff --git a/public-typescript/workOrderEdit/workOrderEditLots.ts b/public-typescript/workOrderEdit/workOrderEditLots.ts index 817884d9..82dae5bb 100644 --- a/public-typescript/workOrderEdit/workOrderEditLots.ts +++ b/public-typescript/workOrderEdit/workOrderEditLots.ts @@ -5,7 +5,7 @@ import type { BulmaJS } from '@cityssm/bulma-js/types.js' import type { cityssmGlobal } from '@cityssm/bulma-webapp-js/src/types.js' import type { LOS } from '../../types/globalTypes.js' -import type * as recordTypes from '../../types/recordTypes.js' +import type { Lot, LotOccupancy, LotStatus } from '../../types/recordTypes.js' declare const cityssm: cityssmGlobal declare const bulmaJS: BulmaJS @@ -15,11 +15,10 @@ declare const los: LOS declare const workOrderId: string -let workOrderLots = exports.workOrderLots as recordTypes.Lot[] +let workOrderLots = exports.workOrderLots as Lot[] delete exports.workOrderLots -let workOrderLotOccupancies = - exports.workOrderLotOccupancies as recordTypes.LotOccupancy[] +let workOrderLotOccupancies = exports.workOrderLotOccupancies as LotOccupancy[] delete exports.workOrderLotOccupancies function deleteLotOccupancy(clickEvent: Event): void { @@ -40,7 +39,7 @@ function deleteLotOccupancy(clickEvent: Event): void { const responseJSON = rawResponseJSON as { success: boolean errorMessage?: string - workOrderLotOccupancies: recordTypes.LotOccupancy[] + workOrderLotOccupancies: LotOccupancy[] } if (responseJSON.success) { @@ -82,7 +81,7 @@ function addLot( const responseJSON = rawResponseJSON as { success: boolean errorMessage?: string - workOrderLots: recordTypes.Lot[] + workOrderLots: Lot[] } if (responseJSON.success) { @@ -117,7 +116,7 @@ function addLotOccupancy( const responseJSON = rawResponseJSON as { success: boolean errorMessage?: string - workOrderLotOccupancies: recordTypes.LotOccupancy[] + workOrderLotOccupancies: LotOccupancy[] } if (responseJSON.success) { @@ -239,16 +238,16 @@ function renderRelatedOccupancies(): void { for (const occupant of lotOccupancy.lotOccupancyOccupants!) { occupantsHTML += `
  • + data-tooltip="${cityssm.escapeHTML(occupant.lotOccupantType ?? '')}"> - ${cityssm.escapeHTML(occupant.occupantName!)} - ${cityssm.escapeHTML(occupant.occupantFamilyName!)} + ${cityssm.escapeHTML(occupant.occupantName ?? '')} + ${cityssm.escapeHTML(occupant.occupantFamilyName ?? '')}
  • ` } @@ -300,7 +299,7 @@ function openEditLotStatus(clickEvent: Event): void { const lot = workOrderLots.find((possibleLot) => { return possibleLot.lotId === lotId - }) as recordTypes.Lot + }) as Lot let editCloseModalFunction: () => void @@ -314,7 +313,7 @@ function openEditLotStatus(clickEvent: Event): void { const responseJSON = rawResponseJSON as { success: boolean errorMessage?: string - workOrderLots: recordTypes.Lot[] + workOrderLots: Lot[] } if (responseJSON.success) { @@ -350,7 +349,7 @@ function openEditLotStatus(clickEvent: Event): void { let lotStatusFound = false - for (const lotStatus of exports.lotStatuses as recordTypes.LotStatus[]) { + for (const lotStatus of exports.lotStatuses as LotStatus[]) { const optionElement = document.createElement('option') optionElement.value = lotStatus.lotStatusId.toString() optionElement.textContent = lotStatus.lotStatus @@ -414,7 +413,7 @@ function deleteLot(clickEvent: Event): void { const responseJSON = rawResponseJSON as { success: boolean errorMessage?: string - workOrderLots: recordTypes.Lot[] + workOrderLots: Lot[] } if (responseJSON.success) { @@ -557,7 +556,7 @@ document searchFormElement, (rawResponseJSON) => { const responseJSON = rawResponseJSON as { - lotOccupancies: recordTypes.LotOccupancy[] + lotOccupancies: LotOccupancy[] } if (responseJSON.lotOccupancies.length === 0) { @@ -745,7 +744,7 @@ document.querySelector('#button--addLot')?.addEventListener('click', () => { `${los.urlPrefix}/lots/doSearchLots`, searchFormElement, (rawResponseJSON) => { - const responseJSON = rawResponseJSON as { lots: recordTypes.Lot[] } + const responseJSON = rawResponseJSON as { lots: Lot[] } if (responseJSON.lots.length === 0) { searchResultsContainerElement.innerHTML = `
    @@ -817,7 +816,7 @@ document.querySelector('#button--addLot')?.addEventListener('click', () => { '#lotSearch--lotStatusId' ) as HTMLSelectElement - for (const lotStatus of exports.lotStatuses as recordTypes.LotStatus[]) { + for (const lotStatus of exports.lotStatuses as LotStatus[]) { const optionElement = document.createElement('option') optionElement.value = lotStatus.lotStatusId.toString() optionElement.textContent = lotStatus.lotStatus diff --git a/public/javascripts/adminTables.min.js b/public/javascripts/adminTables.min.js index d69a1d3b..86562322 100644 --- a/public/javascripts/adminTables.min.js +++ b/public/javascripts/adminTables.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los;function t(e){var t;const s=e.currentTarget,o=s.value;(null===(t=s.closest(".field"))||void 0===t?void 0:t.querySelectorAll(".button.is-static"))[1].innerHTML=``}Object.defineProperty(exports,"__esModule",{value:!0});let s=exports.workOrderTypes;function o(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateWorkOrderType",t.currentTarget,e=>{var t;const o=e;o.success?(s=o.workOrderTypes,bulmaJS.alert({message:"Work Order Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Type",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}delete exports.workOrderTypes;const r=t=>{const o=t.currentTarget.closest("tr"),r=o.dataset.workOrderTypeId;bulmaJS.confirm({title:"Delete Work Order Type",message:"Are you sure you want to delete this work order type?
    \n Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Type",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteWorkOrderType",{workOrderTypeId:r},e=>{var t;const r=e;r.success?(0===(s=r.workOrderTypes).length?n():o.remove(),bulmaJS.alert({message:"Work Order Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Type",message:null!==(t=r.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})};function a(t){const o=t.currentTarget,r=o.closest("tr").dataset.workOrderTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===o.dataset.direction?"doMoveWorkOrderTypeUp":"doMoveWorkOrderTypeDown"),{workOrderTypeId:r,moveToEnd:t.shiftKey?"1":"0"},e=>{var t;const o=e;o.success?(s=o.workOrderTypes,n()):bulmaJS.alert({title:"Error Moving Work Order Type",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function n(){var t;const n=document.querySelector("#container--workOrderTypes");if(0!==s.length){n.innerHTML="";for(const l of s){const s=document.createElement("tr");s.dataset.workOrderTypeId=l.workOrderTypeId.toString(),s.innerHTML='
    '+e.getMoveUpDownButtonFieldHTML("button--moveWorkOrderTypeUp","button--moveWorkOrderTypeDown",!1)+'
    ',s.querySelector("form").addEventListener("submit",o),s.querySelector(".button--moveWorkOrderTypeUp").addEventListener("click",a),s.querySelector(".button--moveWorkOrderTypeDown").addEventListener("click",a),s.querySelector(".button--deleteWorkOrderType").addEventListener("click",r),n.append(s)}}else n.innerHTML='\n

    There are no active work order types.

    \n '}document.querySelector("#form--addWorkOrderType").addEventListener("submit",t=>{t.preventDefault();const o=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddWorkOrderType",o,e=>{var t;const r=e;r.success?(s=r.workOrderTypes,n(),o.reset(),o.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding Work Order Type",message:null!==(t=r.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}),n(),Object.defineProperty(exports,"__esModule",{value:!0});let l=exports.workOrderMilestoneTypes;function c(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateWorkOrderMilestoneType",t.currentTarget,e=>{var t;const s=e;s.success?(l=s.workOrderMilestoneTypes,bulmaJS.alert({message:"Work Order Milestone Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Milestone Type",message:null!==(t=s.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function d(t){const s=t.currentTarget.closest("tr"),o=s.dataset.workOrderMilestoneTypeId;bulmaJS.confirm({title:"Delete Work Order Milestone Type",message:"Are you sure you want to delete this work order milestone type?
    \n Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Milestone Type",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteWorkOrderMilestoneType",{workOrderMilestoneTypeId:o},e=>{var t;const o=e;o.success?(0===(l=o.workOrderMilestoneTypes).length?u():s.remove(),bulmaJS.alert({message:"Work Order Milestone Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Milestone Type",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function i(t){const s=t.currentTarget,o=s.closest("tr").dataset.workOrderMilestoneTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveWorkOrderMilestoneTypeUp":"doMoveWorkOrderMilestoneTypeDown"),{workOrderMilestoneTypeId:o,moveToEnd:t.shiftKey?"1":"0"},e=>{var t;const s=e;s.success?(l=s.workOrderMilestoneTypes,u()):bulmaJS.alert({title:"Error Moving Work Order Milestone Type",message:null!==(t=s.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function u(){const t=document.querySelector("#container--workOrderMilestoneTypes");if(0!==l.length){t.innerHTML="";for(const s of l){const o=document.createElement("tr");o.dataset.workOrderMilestoneTypeId=s.workOrderMilestoneTypeId.toString(),o.innerHTML='
    '+e.getMoveUpDownButtonFieldHTML("button--moveWorkOrderMilestoneTypeUp","button--moveWorkOrderMilestoneTypeDown",!1)+'
    ',o.querySelector("form").addEventListener("submit",c),o.querySelector(".button--moveWorkOrderMilestoneTypeUp").addEventListener("click",i),o.querySelector(".button--moveWorkOrderMilestoneTypeDown").addEventListener("click",i),o.querySelector(".button--deleteWorkOrderMilestoneType").addEventListener("click",d),t.append(o)}}else t.innerHTML='\n

    There are no active work order milestone types.

    \n '}delete exports.workOrderMilestoneTypes,document.querySelector("#form--addWorkOrderMilestoneType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddWorkOrderMilestoneType",s,e=>{var t;const o=e;o.success?(l=o.workOrderMilestoneTypes,u(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding Work Order Milestone Type",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}),u(),Object.defineProperty(exports,"__esModule",{value:!0});let p=exports.lotStatuses;function m(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateLotStatus",t.currentTarget,t=>{var s;const o=t;o.success?(p=o.lotStatuses,bulmaJS.alert({message:e.escapedAliases.Lot+" Status Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+e.escapedAliases.Lot+" Status",message:null!==(s=o.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function y(t){const s=t.currentTarget.closest("tr"),o=s.dataset.lotStatusId;bulmaJS.confirm({title:`Delete ${e.escapedAliases.Lot} Status`,message:`Are you sure you want to delete this status?
    \n Note that no ${e.escapedAliases.lot} will be removed.`,messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Status",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteLotStatus",{lotStatusId:o},t=>{var o;const r=t;r.success?(0===(p=r.lotStatuses).length?T():s.remove(),bulmaJS.alert({message:e.escapedAliases.Lot+" Status Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:`Error Deleting ${e.escapedAliases.Lot} Status`,message:null!==(o=r.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}}})}function v(t){const s=t.currentTarget,o=s.closest("tr").dataset.lotStatusId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveLotStatusUp":"doMoveLotStatusDown"),{lotStatusId:o,moveToEnd:t.shiftKey?"1":"0"},t=>{var s;const o=t;o.success?(p=o.lotStatuses,T()):bulmaJS.alert({title:"Error Moving "+e.escapedAliases.Lot+" Status",message:null!==(s=o.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function T(){const t=document.querySelector("#container--lotStatuses");if(0!==p.length){t.innerHTML="";for(const s of p){const o=document.createElement("tr");o.dataset.lotStatusId=s.lotStatusId.toString(),o.innerHTML='
    '+e.getMoveUpDownButtonFieldHTML("button--moveLotStatusUp","button--moveLotStatusDown",!1)+'
    ',o.querySelector("form").addEventListener("submit",m),o.querySelector(".button--moveLotStatusUp").addEventListener("click",v),o.querySelector(".button--moveLotStatusDown").addEventListener("click",v),o.querySelector(".button--deleteLotStatus").addEventListener("click",y),t.append(o)}}else t.innerHTML=`\n

    There are no active ${e.escapedAliases.lot} statuses.

    \n `}delete exports.lotStatuses,document.querySelector("#form--addLotStatus").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddLotStatus",s,t=>{var o;const r=t;r.success?(p=r.lotStatuses,T(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:`Error Adding ${e.escapedAliases.Lot} Status`,message:null!==(o=r.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}),T(),Object.defineProperty(exports,"__esModule",{value:!0});let g=exports.lotOccupantTypes;function f(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateLotOccupantType",t.currentTarget,t=>{var s;const o=t;o.success?(g=o.lotOccupantTypes,bulmaJS.alert({message:`${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type Updated Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:`Error Updating ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(s=o.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function O(t){const s=t.currentTarget.closest("tr"),o=s.dataset.lotOccupantTypeId;bulmaJS.confirm({title:`Delete ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:`Are you sure you want to delete this ${e.escapedAliases.lot} ${e.escapedAliases.occupant} type?
    \n Note that no ${e.escapedAliases.lot} ${e.escapedAliases.occupants} will be removed.`,messageIsHtml:!0,contextualColorName:"warning",okButton:{text:`Yes, Delete ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteLotOccupantType",{lotOccupantTypeId:o},t=>{var o;const r=t;r.success?(0===(g=r.lotOccupantTypes).length?b():s.remove(),bulmaJS.alert({message:`${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type Deleted Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:`Error Deleting ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(o=r.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}}})}function S(t){const s=t.currentTarget,o=s.closest("tr").dataset.lotOccupantTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveLotOccupantTypeUp":"doMoveLotOccupantTypeDown"),{lotOccupantTypeId:o,moveToEnd:t.shiftKey?"1":"0"},t=>{var s;const o=t;o.success?(g=o.lotOccupantTypes,b()):bulmaJS.alert({title:`Error Moving ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(s=o.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function b(){const s=document.querySelector("#container--lotOccupantTypes");if(0!==g.length){s.innerHTML="";for(const o of g){const r=document.createElement("tr");r.dataset.lotOccupantTypeId=o.lotOccupantTypeId.toString();const a="form--lotOccupantType-"+o.lotOccupantTypeId.toString();r.innerHTML='
    fa-
    '+e.getMoveUpDownButtonFieldHTML("button--moveLotOccupantTypeUp","button--moveLotOccupantTypeDown",!1)+'
    ';const n=r.querySelector("input[name='fontAwesomeIconClass']");n.addEventListener("keyup",t),n.addEventListener("change",t),r.querySelector("form").addEventListener("submit",f),r.querySelector(".button--moveLotOccupantTypeUp").addEventListener("click",S),r.querySelector(".button--moveLotOccupantTypeDown").addEventListener("click",S),r.querySelector(".button--deleteLotOccupantType").addEventListener("click",O),s.append(r)}}else s.innerHTML=`\n
    \n

    There are no active ${e.escapedAliases.lot} ${e.escapedAliases.occupant} types.

    \n
    \n `}delete exports.lotOccupantTypes,document.querySelector("#form--addLotOccupantType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddLotOccupantType",s,t=>{var o;const r=t;r.success?(g=r.lotOccupantTypes,b(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:`Error Adding ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(o=r.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}),b()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los;function t(e){var t;const s=e.currentTarget,o=s.value;(null===(t=s.closest(".field"))||void 0===t?void 0:t.querySelectorAll(".button.is-static"))[1].innerHTML=``}Object.defineProperty(exports,"__esModule",{value:!0});let s=exports.workOrderTypes;function o(t){t.preventDefault(),cityssm.postJSON(`${e.urlPrefix}/admin/doUpdateWorkOrderType`,t.currentTarget,e=>{var t;const o=e;o.success?(s=o.workOrderTypes,bulmaJS.alert({message:"Work Order Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Type",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function r(t){const o=t.currentTarget.closest("tr"),r=o.dataset.workOrderTypeId;bulmaJS.confirm({title:"Delete Work Order Type",message:"Are you sure you want to delete this work order type?
    \n Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Type",callbackFunction:function(){cityssm.postJSON(`${e.urlPrefix}/admin/doDeleteWorkOrderType`,{workOrderTypeId:r},e=>{var t;const r=e;r.success?(0===(s=r.workOrderTypes).length?a():o.remove(),bulmaJS.alert({message:"Work Order Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Type",message:null!==(t=r.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function n(t){const o=t.currentTarget,r=o.closest("tr").dataset.workOrderTypeId;cityssm.postJSON(`${e.urlPrefix}/admin/${"up"===o.dataset.direction?"doMoveWorkOrderTypeUp":"doMoveWorkOrderTypeDown"}`,{workOrderTypeId:r,moveToEnd:t.shiftKey?"1":"0"},e=>{var t;const o=e;o.success?(s=o.workOrderTypes,a()):bulmaJS.alert({title:"Error Moving Work Order Type",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function a(){var t,a,l;const c=document.querySelector("#container--workOrderTypes");if(0!==s.length){c.innerHTML="";for(const d of s){const s=document.createElement("tr");s.dataset.workOrderTypeId=d.workOrderTypeId.toString(),s.innerHTML=`\n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n ${e.getMoveUpDownButtonFieldHTML("button--moveWorkOrderTypeUp","button--moveWorkOrderTypeDown",!1)}\n
    \n
    \n \n
    \n
    \n `,null===(a=s.querySelector("form"))||void 0===a||a.addEventListener("submit",o),s.querySelector(".button--moveWorkOrderTypeUp").addEventListener("click",n),s.querySelector(".button--moveWorkOrderTypeDown").addEventListener("click",n),null===(l=s.querySelector(".button--deleteWorkOrderType"))||void 0===l||l.addEventListener("click",r),c.append(s)}}else c.innerHTML='\n

    There are no active work order types.

    \n '}delete exports.workOrderTypes,document.querySelector("#form--addWorkOrderType").addEventListener("submit",t=>{t.preventDefault();const o=t.currentTarget;cityssm.postJSON(`${e.urlPrefix}/admin/doAddWorkOrderType`,o,e=>{var t,r;const n=e;n.success?(s=n.workOrderTypes,a(),o.reset(),null===(t=o.querySelector("input"))||void 0===t||t.focus()):bulmaJS.alert({title:"Error Adding Work Order Type",message:null!==(r=n.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}),a(),Object.defineProperty(exports,"__esModule",{value:!0});let l=exports.workOrderMilestoneTypes;function c(t){t.preventDefault(),cityssm.postJSON(`${e.urlPrefix}/admin/doUpdateWorkOrderMilestoneType`,t.currentTarget,e=>{var t;const s=e;s.success?(l=s.workOrderMilestoneTypes,bulmaJS.alert({message:"Work Order Milestone Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Milestone Type",message:null!==(t=s.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function d(t){const s=t.currentTarget.closest("tr"),o=s.dataset.workOrderMilestoneTypeId;bulmaJS.confirm({title:"Delete Work Order Milestone Type",message:"Are you sure you want to delete this work order milestone type?
    \n Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Milestone Type",callbackFunction:function(){cityssm.postJSON(`${e.urlPrefix}/admin/doDeleteWorkOrderMilestoneType`,{workOrderMilestoneTypeId:o},e=>{var t;const o=e;o.success?(0===(l=o.workOrderMilestoneTypes).length?u():s.remove(),bulmaJS.alert({message:"Work Order Milestone Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Milestone Type",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function i(t){const s=t.currentTarget,o=s.closest("tr").dataset.workOrderMilestoneTypeId;cityssm.postJSON(`${e.urlPrefix}/admin/${"up"===s.dataset.direction?"doMoveWorkOrderMilestoneTypeUp":"doMoveWorkOrderMilestoneTypeDown"}`,{workOrderMilestoneTypeId:o,moveToEnd:t.shiftKey?"1":"0"},e=>{var t;const s=e;s.success?(l=s.workOrderMilestoneTypes,u()):bulmaJS.alert({title:"Error Moving Work Order Milestone Type",message:null!==(t=s.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function u(){var t,s;const o=document.querySelector("#container--workOrderMilestoneTypes");if(0!==l.length){o.innerHTML="";for(const r of l){const n=document.createElement("tr");n.dataset.workOrderMilestoneTypeId=r.workOrderMilestoneTypeId.toString(),n.innerHTML=`\n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n ${e.getMoveUpDownButtonFieldHTML("button--moveWorkOrderMilestoneTypeUp","button--moveWorkOrderMilestoneTypeDown",!1)}\n
    \n
    \n \n
    \n
    \n `,null===(t=n.querySelector("form"))||void 0===t||t.addEventListener("submit",c),n.querySelector(".button--moveWorkOrderMilestoneTypeUp").addEventListener("click",i),n.querySelector(".button--moveWorkOrderMilestoneTypeDown").addEventListener("click",i),null===(s=n.querySelector(".button--deleteWorkOrderMilestoneType"))||void 0===s||s.addEventListener("click",d),o.append(n)}}else o.innerHTML='\n

    There are no active work order milestone types.

    \n '}delete exports.workOrderMilestoneTypes,document.querySelector("#form--addWorkOrderMilestoneType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(`${e.urlPrefix}/admin/doAddWorkOrderMilestoneType`,s,e=>{var t,o;const r=e;r.success?(l=r.workOrderMilestoneTypes,u(),s.reset(),null===(t=s.querySelector("input"))||void 0===t||t.focus()):bulmaJS.alert({title:"Error Adding Work Order Milestone Type",message:null!==(o=r.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}),u(),Object.defineProperty(exports,"__esModule",{value:!0});let p=exports.lotStatuses;function m(t){t.preventDefault(),cityssm.postJSON(`${e.urlPrefix}/admin/doUpdateLotStatus`,t.currentTarget,t=>{var s;const o=t;o.success?(p=o.lotStatuses,bulmaJS.alert({message:`${e.escapedAliases.Lot} Status Updated Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:`Error Updating ${e.escapedAliases.Lot} Status`,message:null!==(s=o.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function y(t){const s=t.currentTarget.closest("tr"),o=s.dataset.lotStatusId;bulmaJS.confirm({title:`Delete ${e.escapedAliases.Lot} Status`,message:`Are you sure you want to delete this status?
    \n Note that no ${e.escapedAliases.lot} will be removed.`,messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Status",callbackFunction:function(){cityssm.postJSON(`${e.urlPrefix}/admin/doDeleteLotStatus`,{lotStatusId:o},t=>{var o;const r=t;r.success?(0===(p=r.lotStatuses).length?T():s.remove(),bulmaJS.alert({message:`${e.escapedAliases.Lot} Status Deleted Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:`Error Deleting ${e.escapedAliases.Lot} Status`,message:null!==(o=r.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}}})}function v(t){const s=t.currentTarget,o=s.closest("tr").dataset.lotStatusId;cityssm.postJSON(`${e.urlPrefix}/admin/${"up"===s.dataset.direction?"doMoveLotStatusUp":"doMoveLotStatusDown"}`,{lotStatusId:o,moveToEnd:t.shiftKey?"1":"0"},t=>{var s;const o=t;o.success?(p=o.lotStatuses,T()):bulmaJS.alert({title:`Error Moving ${e.escapedAliases.Lot} Status`,message:null!==(s=o.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function T(){var t,s;const o=document.querySelector("#container--lotStatuses");if(0!==p.length){o.innerHTML="";for(const r of p){const n=document.createElement("tr");n.dataset.lotStatusId=r.lotStatusId.toString(),n.innerHTML=`\n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n ${e.getMoveUpDownButtonFieldHTML("button--moveLotStatusUp","button--moveLotStatusDown",!1)}\n
    \n
    \n \n
    \n
    \n `,null===(t=n.querySelector("form"))||void 0===t||t.addEventListener("submit",m),n.querySelector(".button--moveLotStatusUp").addEventListener("click",v),n.querySelector(".button--moveLotStatusDown").addEventListener("click",v),null===(s=n.querySelector(".button--deleteLotStatus"))||void 0===s||s.addEventListener("click",y),o.append(n)}}else o.innerHTML=`\n

    There are no active ${e.escapedAliases.lot} statuses.

    \n `}delete exports.lotStatuses,document.querySelector("#form--addLotStatus").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(`${e.urlPrefix}/admin/doAddLotStatus`,s,t=>{var o,r;const n=t;n.success?(p=n.lotStatuses,T(),s.reset(),null===(o=s.querySelector("input"))||void 0===o||o.focus()):bulmaJS.alert({title:`Error Adding ${e.escapedAliases.Lot} Status`,message:null!==(r=n.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}),T(),Object.defineProperty(exports,"__esModule",{value:!0});let g=exports.lotOccupantTypes;function f(t){t.preventDefault(),cityssm.postJSON(`${e.urlPrefix}/admin/doUpdateLotOccupantType`,t.currentTarget,t=>{var s;const o=t;o.success?(g=o.lotOccupantTypes,bulmaJS.alert({message:`${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type Updated Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:`Error Updating ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(s=o.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function O(t){const s=t.currentTarget.closest("tr"),o=s.dataset.lotOccupantTypeId;bulmaJS.confirm({title:`Delete ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:`Are you sure you want to delete this ${e.escapedAliases.lot} ${e.escapedAliases.occupant} type?
    \n Note that no ${e.escapedAliases.lot} ${e.escapedAliases.occupants} will be removed.`,messageIsHtml:!0,contextualColorName:"warning",okButton:{text:`Yes, Delete ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,callbackFunction:function(){cityssm.postJSON(`${e.urlPrefix}/admin/doDeleteLotOccupantType`,{lotOccupantTypeId:o},t=>{var o;const r=t;r.success?(0===(g=r.lotOccupantTypes).length?b():s.remove(),bulmaJS.alert({message:`${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type Deleted Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:`Error Deleting ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(o=r.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}}})}function S(t){const s=t.currentTarget,o=s.closest("tr").dataset.lotOccupantTypeId;cityssm.postJSON(`${e.urlPrefix}/admin/${"up"===s.dataset.direction?"doMoveLotOccupantTypeUp":"doMoveLotOccupantTypeDown"}`,{lotOccupantTypeId:o,moveToEnd:t.shiftKey?"1":"0"},t=>{var s;const o=t;o.success?(g=o.lotOccupantTypes,b()):bulmaJS.alert({title:`Error Moving ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(s=o.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function b(){var s,o;const r=document.querySelector("#container--lotOccupantTypes");if(0!==g.length){r.innerHTML="";for(const n of g){const a=document.createElement("tr");a.dataset.lotOccupantTypeId=n.lotOccupantTypeId.toString();const l=`form--lotOccupantType-${n.lotOccupantTypeId.toString()}`;a.innerHTML=`\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n fa-\n
    \n
    \n \n
    \n
    \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n \n \n
    \n \n
    \n
    \n ${e.getMoveUpDownButtonFieldHTML("button--moveLotOccupantTypeUp","button--moveLotOccupantTypeDown",!1)}\n
    \n
    \n \n
    \n
    \n `;const c=a.querySelector("input[name='fontAwesomeIconClass']");c.addEventListener("keyup",t),c.addEventListener("change",t),null===(s=a.querySelector("form"))||void 0===s||s.addEventListener("submit",f),a.querySelector(".button--moveLotOccupantTypeUp").addEventListener("click",S),a.querySelector(".button--moveLotOccupantTypeDown").addEventListener("click",S),null===(o=a.querySelector(".button--deleteLotOccupantType"))||void 0===o||o.addEventListener("click",O),r.append(a)}}else r.innerHTML=`\n
    \n

    There are no active ${e.escapedAliases.lot} ${e.escapedAliases.occupant} types.

    \n
    \n `}delete exports.lotOccupantTypes,document.querySelector("#form--addLotOccupantType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(`${e.urlPrefix}/admin/doAddLotOccupantType`,s,t=>{var o,r;const n=t;n.success?(g=n.lotOccupantTypes,b(),s.reset(),null===(o=s.querySelector("input"))||void 0===o||o.focus()):bulmaJS.alert({title:`Error Adding ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(r=n.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}),b()})(); \ No newline at end of file diff --git a/public/javascripts/workOrderEdit.min.js b/public/javascripts/workOrderEdit.min.js index 096d66fe..aa142dce 100644 --- a/public/javascripts/workOrderEdit.min.js +++ b/public/javascripts/workOrderEdit.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e,t;const o=exports.los,n=document.querySelector("#workOrderEdit--workOrderId").value,r=""===n,s=document.querySelector("#form--workOrderEdit");function a(){var e;o.setUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--workOrderEdit']"))||void 0===e||e.classList.remove("is-light")}function l(){var e;o.clearUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--workOrderEdit']"))||void 0===e||e.classList.add("is-light")}o.initializeDatePickers(null===(S=s.querySelector("#workOrderEdit--workOrderOpenDateString"))||void 0===S?void 0:S.closest(".field")),o.initializeUnlockFieldButtons(s),s.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(`${o.urlPrefix}/workOrders/${r?"doCreateWorkOrder":"doUpdateWorkOrder"}`,e.currentTarget,e=>{var t;const n=e;n.success?(l(),r?window.location.href=o.getWorkOrderURL(n.workOrderId,!0):bulmaJS.alert({message:"Work Order Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order",message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})});const i=s.querySelectorAll("input, select, textarea");for(const e of i)e.addEventListener("change",a);function d(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doCloseWorkOrder`,{workOrderId:n},e=>{var t;const r=e;r.success?(l(),window.location.href=o.getWorkOrderURL(n)):bulmaJS.alert({title:"Error Closing Work Order",message:null!==(t=r.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function c(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doDeleteWorkOrder`,{workOrderId:n},e=>{var t;const n=e;n.success?(l(),window.location.href=`${o.urlPrefix}/workOrders`):bulmaJS.alert({title:"Error Deleting Work Order",message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}let u;if(null===(m=document.querySelector("#button--closeWorkOrder"))||void 0===m||m.addEventListener("click",()=>{u.some(e=>!e.workOrderMilestoneCompletionDate)?bulmaJS.alert({title:"Outstanding Milestones",message:"You cannot close a work order with outstanding milestones.\n Either complete the outstanding milestones, or remove them from the work order.",contextualColorName:"warning"}):bulmaJS.confirm({title:"Close Work Order",message:o.hasUnsavedChanges()?"Are you sure you want to close this work order with unsaved changes?":"Are you sure you want to close this work order?",contextualColorName:o.hasUnsavedChanges()?"warning":"info",okButton:{text:"Yes, Close Work Order",callbackFunction:d}})}),null===(e=document.querySelector("#button--deleteWorkOrder"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:"Delete Work Order",message:"Are you sure you want to delete this work order?",contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order",callbackFunction:c}})}),!r){var m;Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.workOrderLots;delete exports.workOrderLots;let t=exports.workOrderLotOccupancies;function p(e){const r=e.currentTarget.closest(".container--lotOccupancy").dataset.lotOccupancyId;bulmaJS.confirm({title:`Delete ${o.escapedAliases.Occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${o.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:function(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doDeleteWorkOrderLotOccupancy`,{workOrderId:n,lotOccupancyId:r},e=>{var o;const n=e;n.success?(t=n.workOrderLotOccupancies,g()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(o=n.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}}})}function y(t,r){cityssm.postJSON(`${o.urlPrefix}/workOrders/doAddWorkOrderLot`,{workOrderId:n,lotId:t},t=>{var n;const s=t;s.success?(e=s.workOrderLots,g()):bulmaJS.alert({title:`Error Adding ${o.escapedAliases.Lot}`,message:null!==(n=s.errorMessage)&&void 0!==n?n:"",contextualColorName:"danger"}),void 0!==r&&r(s.success)})}function v(e){var t;y(null!==(t=e.currentTarget.dataset.lotId)&&void 0!==t?t:"")}function O(t){var r;const s=Number.parseInt(null!==(r=t.currentTarget.closest(".container--lot").dataset.lotId)&&void 0!==r?r:"",10),a=e.find(e=>e.lotId===s);let l;function i(t){t.preventDefault(),cityssm.postJSON(`${o.urlPrefix}/workOrders/doUpdateLotStatus`,t.currentTarget,t=>{var o;const n=t;n.success?(e=n.workOrderLots,g(),l()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(o=n.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lot-editLotStatus",{onshow(e){var t,r,l;o.populateAliases(e),e.querySelector("#lotStatusEdit--lotId").value=s.toString(),e.querySelector("#lotStatusEdit--lotName").value=null!==(t=a.lotName)&&void 0!==t?t:"";const i=e.querySelector("#lotStatusEdit--lotStatusId");let d=!1;for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,e.lotStatusId===a.lotStatusId&&(d=!0),i.append(t)}if(!d&&a.lotStatusId){const e=document.createElement("option");e.value=a.lotStatusId.toString(),e.textContent=null!==(r=a.lotStatus)&&void 0!==r?r:"",i.append(e)}a.lotStatusId&&(i.value=a.lotStatusId.toString()),null===(l=e.querySelector("form"))||void 0===l||l.insertAdjacentHTML("beforeend",``)},onshown(e,t){var o;l=t,bulmaJS.toggleHtmlClipped(),null===(o=e.querySelector("form"))||void 0===o||o.addEventListener("submit",i)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function h(t){const r=t.currentTarget.closest(".container--lot").dataset.lotId;bulmaJS.confirm({title:`Delete ${o.escapedAliases.Occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${o.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:function(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doDeleteWorkOrderLot`,{workOrderId:n,lotId:r},t=>{var o;const n=t;n.success?(e=n.workOrderLots,g()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(o=n.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}}})}function g(){!function(){var n,r,s,a,l,i;const d=document.querySelector("#container--lotOccupancies");if(document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent=t.length.toString(),0===t.length)return void(d.innerHTML=`
    \n

    There are no ${o.escapedAliases.occupancies} associated with this work order.

    \n
    `);d.innerHTML=`\n \n \n \n \n \n \n \n \n \n \n
    ${o.escapedAliases.Occupancy} Type${o.escapedAliases.Lot}${o.escapedAliases.OccupancyStartDate}End Date${o.escapedAliases.Occupants}
    `;const c=cityssm.dateToString(new Date);for(const u of t){const t=document.createElement("tr");t.className="container--lotOccupancy",t.dataset.lotOccupancyId=u.lotOccupancyId.toString();const m=!(u.occupancyEndDate&&u.occupancyEndDateStringu.lotId===e.lotId);t.innerHTML=`\n ${m?``:``}\n \n \n ${cityssm.escapeHTML(null!==(n=u.occupancyType)&&void 0!==n?n:"")}\n
    \n #${u.lotOccupancyId}\n `,u.lotId?t.insertAdjacentHTML("beforeend",`\n ${cityssm.escapeHTML(null!==(r=u.lotName)&&void 0!==r?r:"")}\n ${y?"":` `}\n `):t.insertAdjacentHTML("beforeend",`(No ${o.escapedAliases.Lot})`);let O="";for(const e of u.lotOccupancyOccupants)O+=`
  • \n \n \n \n ${cityssm.escapeHTML(e.occupantName)}\n ${cityssm.escapeHTML(e.occupantFamilyName)}\n
  • `;t.insertAdjacentHTML("beforeend",`\n ${u.occupancyStartDateString}\n \n ${u.occupancyEndDate?u.occupancyEndDateString:'(No End Date)'}\n \n ${0===u.lotOccupancyOccupants.length?`(No ${o.escapedAliases.Occupants})`:`
      ${O}
    `}\n \n \n `),null===(a=t.querySelector(".button--addLot"))||void 0===a||a.addEventListener("click",v),null===(l=t.querySelector(".button--deleteLotOccupancy"))||void 0===l||l.addEventListener("click",p),null===(i=d.querySelector("tbody"))||void 0===i||i.append(t)}}(),function(){var t,n,r,s,a,l,i;const d=document.querySelector("#container--lots");if(document.querySelector(".tabs a[href='#relatedTab--lots'] .tag").textContent=e.length.toString(),0!==e.length){d.innerHTML=`\n \n \n \n \n \n \n \n \n
    ${o.escapedAliases.Lot}${o.escapedAliases.Map}${o.escapedAliases.Lot} TypeStatus
    `;for(const c of e){const e=document.createElement("tr");e.className="container--lot",e.dataset.lotId=c.lotId.toString(),e.innerHTML=`\n \n ${cityssm.escapeHTML(null!==(t=c.lotName)&&void 0!==t?t:"")}\n \n \n ${cityssm.escapeHTML(null!==(n=c.mapName)&&void 0!==n?n:"")}\n \n ${cityssm.escapeHTML(null!==(r=c.lotType)&&void 0!==r?r:"")}\n \n ${c.lotStatusId?cityssm.escapeHTML(null!==(s=c.lotStatus)&&void 0!==s?s:""):'(No Status)'}\n \n \n \n `,null===(a=e.querySelector(".button--editLotStatus"))||void 0===a||a.addEventListener("click",O),null===(l=e.querySelector(".button--deleteLot"))||void 0===l||l.addEventListener("click",h),null===(i=d.querySelector("tbody"))||void 0===i||i.append(e)}}else d.innerHTML=`
    \n

    There are no ${o.escapedAliases.lots} associated with this work order.

    \n
    `}()}function k(e){var r;const s=e.currentTarget.closest("tr");!function(e,r){cityssm.postJSON(`${o.urlPrefix}/workOrders/doAddWorkOrderLotOccupancy`,{workOrderId:n,lotOccupancyId:e},e=>{var n;const s=e;s.success?(t=s.workOrderLotOccupancies,g()):bulmaJS.alert({title:`Error Adding ${o.escapedAliases.Occupancy}`,message:null!==(n=s.errorMessage)&&void 0!==n?n:"",contextualColorName:"danger"}),void 0!==r&&r(s.success)})}(null!==(r=s.dataset.lotOccupancyId)&&void 0!==r?r:"",e=>{e&&s.remove()})}function w(e){var t;const o=e.currentTarget.closest("tr");y(null!==(t=o.dataset.lotId)&&void 0!==t?t:"",e=>{e&&o.remove()})}delete exports.workOrderLotOccupancies,g(),null===(S=document.querySelector("#button--addLotOccupancy"))||void 0===S||S.addEventListener("click",()=>{let e,t;function r(n){n&&n.preventDefault(),t.innerHTML=o.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(`${o.urlPrefix}/lotOccupancies/doSearchLotOccupancies`,e,e=>{var n,r,s,a;const l=e;if(0!==l.lotOccupancies.length){t.innerHTML=`\n \n \n \n \n \n \n \n \n \n
    ${o.escapedAliases.Occupancy} Type${o.escapedAliases.Lot}${o.escapedAliases.OccupancyStartDate}End Date${o.escapedAliases.Occupants}
    `;for(const e of l.lotOccupancies){const l=document.createElement("tr");l.className="container--lotOccupancy",l.dataset.lotOccupancyId=e.lotOccupancyId.toString(),l.innerHTML=`\n \n \n \n ${cityssm.escapeHTML(null!==(n=e.occupancyType)&&void 0!==n?n:"")}\n `,e.lotId?l.insertAdjacentHTML("beforeend",""+cityssm.escapeHTML(null!==(r=e.lotName)&&void 0!==r?r:"")+""):l.insertAdjacentHTML("beforeend",`(No ${o.escapedAliases.Lot})`),l.insertAdjacentHTML("beforeend",`\n ${e.occupancyStartDateString}\n \n ${e.occupancyEndDate?e.occupancyEndDateString:'(No End Date)'}\n \n ${0===e.lotOccupancyOccupants.length?`\n (No ${cityssm.escapeHTML(o.escapedAliases.Occupants)})\n `:cityssm.escapeHTML(`${e.lotOccupancyOccupants[0].occupantName}\n ${e.lotOccupancyOccupants[0].occupantFamilyName}`)+(e.lotOccupancyOccupants.length>1?` plus\n ${(e.lotOccupancyOccupants.length-1).toString()}`:"")}`),null===(s=l.querySelector(".button--addLotOccupancy"))||void 0===s||s.addEventListener("click",k),null===(a=t.querySelector("tbody"))||void 0===a||a.append(l)}}else t.innerHTML='
    \n

    There are no records that meet the search criteria.

    \n
    '})}cityssm.openHtmlModal("workOrder-addLotOccupancy",{onshow(s){o.populateAliases(s),e=s.querySelector("form"),t=s.querySelector("#resultsContainer--lotOccupancyAdd"),s.querySelector("#lotOccupancySearch--notWorkOrderId").value=n,s.querySelector("#lotOccupancySearch--occupancyEffectiveDateString").value=document.querySelector("#workOrderEdit--workOrderOpenDateString").value,r()},onshown(t){bulmaJS.toggleHtmlClipped();const o=t.querySelector("#lotOccupancySearch--occupantName");o.addEventListener("change",r),o.focus(),t.querySelector("#lotOccupancySearch--lotName").addEventListener("change",r),e.addEventListener("submit",r)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addLotOccupancy").focus()}})}),null===(m=document.querySelector("#button--addLot"))||void 0===m||m.addEventListener("click",()=>{let e,t;function r(n){n&&n.preventDefault(),t.innerHTML=o.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(`${o.urlPrefix}/lots/doSearchLots`,e,e=>{var n,r,s,a,l,i;const d=e;if(0!==d.lots.length){t.innerHTML=`\n \n \n \n \n \n \n \n \n
    ${o.escapedAliases.Lot}${o.escapedAliases.Map}${o.escapedAliases.Lot} TypeStatus
    `;for(const e of d.lots){const o=document.createElement("tr");o.className="container--lot",o.dataset.lotId=e.lotId.toString(),o.innerHTML=`\n \n \n ${cityssm.escapeHTML(null!==(n=e.lotName)&&void 0!==n?n:"")}\n \n ${cityssm.escapeHTML(null!==(r=e.mapName)&&void 0!==r?r:"")}\n \n ${cityssm.escapeHTML(null!==(s=e.lotType)&&void 0!==s?s:"")}\n \n ${cityssm.escapeHTML(null!==(a=e.lotStatus)&&void 0!==a?a:"")}\n `,null===(l=o.querySelector(".button--addLot"))||void 0===l||l.addEventListener("click",w),null===(i=t.querySelector("tbody"))||void 0===i||i.append(o)}}else t.innerHTML='
    \n

    There are no records that meet the search criteria.

    \n
    '})}cityssm.openHtmlModal("workOrder-addLot",{onshow(s){o.populateAliases(s),e=s.querySelector("form"),t=s.querySelector("#resultsContainer--lotAdd"),s.querySelector("#lotSearch--notWorkOrderId").value=n;const a=s.querySelector("#lotSearch--lotStatusId");for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,a.append(t)}r()},onshown(t){var o;bulmaJS.toggleHtmlClipped();const n=t.querySelector("#lotSearch--lotName");n.addEventListener("change",r),n.focus(),null===(o=t.querySelector("#lotSearch--lotStatusId"))||void 0===o||o.addEventListener("change",r),e.addEventListener("submit",r)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addLot").focus()}})})}var S;Object.defineProperty(exports,"__esModule",{value:!0});let f=exports.workOrderComments;function b(e){var t,r;const s=Number.parseInt(null!==(r=null===(t=e.currentTarget.closest("tr"))||void 0===t?void 0:t.dataset.workOrderCommentId)&&void 0!==r?r:"",10),a=f.find(e=>e.workOrderCommentId===s);let l,i;function d(e){e.preventDefault(),cityssm.postJSON(`${o.urlPrefix}/workOrders/doUpdateWorkOrderComment`,l,e=>{var t;const o=e;o.success?(f=o.workOrderComments,i(),L()):bulmaJS.alert({title:"Error Updating Comment",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("workOrder-editComment",{onshow(e){var t,o,r,l;e.querySelector("#workOrderCommentEdit--workOrderId").value=n,e.querySelector("#workOrderCommentEdit--workOrderCommentId").value=s.toString(),e.querySelector("#workOrderCommentEdit--workOrderComment").value=null!==(t=a.workOrderComment)&&void 0!==t?t:"";const i=e.querySelector("#workOrderCommentEdit--workOrderCommentDateString");i.value=null!==(o=a.workOrderCommentDateString)&&void 0!==o?o:"";const d=cityssm.dateToString(new Date);i.max=a.workOrderCommentDateString<=d?d:null!==(r=a.workOrderCommentDateString)&&void 0!==r?r:"",e.querySelector("#workOrderCommentEdit--workOrderCommentTimeString").value=null!==(l=a.workOrderCommentTimeString)&&void 0!==l?l:""},onshown(e,t){bulmaJS.toggleHtmlClipped(),o.initializeDatePickers(e),e.querySelector("#workOrderCommentEdit--workOrderComment").focus(),(l=e.querySelector("form")).addEventListener("submit",d),i=t},onremoved(){bulmaJS.toggleHtmlClipped()}})}function M(e){var t,r;const s=Number.parseInt(null!==(r=null===(t=e.currentTarget.closest("tr"))||void 0===t?void 0:t.dataset.workOrderCommentId)&&void 0!==r?r:"",10);bulmaJS.confirm({title:"Remove Comment?",message:"Are you sure you want to remove this comment?",okButton:{text:"Yes, Remove Comment",callbackFunction:function(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doDeleteWorkOrderComment`,{workOrderId:n,workOrderCommentId:s},e=>{var t;const o=e;o.success?(f=o.workOrderComments,L()):bulmaJS.alert({title:"Error Removing Comment",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function L(){var e,t,o,n,r,s;const a=document.querySelector("#container--workOrderComments");if(0===f.length)return void(a.innerHTML='
    \n

    There are no comments to display.

    \n
    ');const l=document.createElement("table");l.className="table is-fullwidth is-striped is-hoverable",l.innerHTML='\n Commentor\n Comment Date\n Comment\n Options';for(const a of f){const i=document.createElement("tr");i.dataset.workOrderCommentId=null===(e=a.workOrderCommentId)||void 0===e?void 0:e.toString(),i.innerHTML=`\n ${cityssm.escapeHTML(null!==(t=a.recordCreate_userName)&&void 0!==t?t:"")}\n \n ${a.workOrderCommentDateString}\n ${0===a.workOrderCommentTime?"":a.workOrderCommentTimePeriodString}\n \n ${cityssm.escapeHTML(null!==(o=a.workOrderComment)&&void 0!==o?o:"")}\n \n
    \n \n \n
    \n `,null===(n=i.querySelector(".button--edit"))||void 0===n||n.addEventListener("click",b),null===(r=i.querySelector(".button--delete"))||void 0===r||r.addEventListener("click",M),null===(s=l.querySelector("tbody"))||void 0===s||s.append(i)}a.innerHTML="",a.append(l)}function T(e){for(const t of e.querySelectorAll(".panel-block"))t.remove()}function C(e,t){T(t),t.insertAdjacentHTML("beforeend",`
    \n ${o.getLoadingParagraphHTML("Loading conflicting milestones...")}\n
    `),cityssm.postJSON(`${o.urlPrefix}/workOrders/doGetWorkOrderMilestones`,{workOrderMilestoneDateFilter:"date",workOrderMilestoneDateString:e},o=>{var r,s,a,l;const i=o.workOrderMilestones.filter(e=>e.workOrderId.toString()!==n);T(t);for(const e of i)t.insertAdjacentHTML("beforeend",`
    \n
    \n
    \n ${cityssm.escapeHTML(0===e.workOrderMilestoneTime?"No Time":null!==(r=e.workOrderMilestoneTimePeriodString)&&void 0!==r?r:"")}
    \n ${cityssm.escapeHTML(null!==(s=e.workOrderMilestoneType)&&void 0!==s?s:"")}\n
    \n
    \n ${cityssm.escapeHTML(null!==(a=e.workOrderNumber)&&void 0!==a?a:"")}
    \n \n ${cityssm.escapeHTML(null!==(l=e.workOrderDescription)&&void 0!==l?l:"")}\n \n
    \n
    \n
    `);0===i.length&&t.insertAdjacentHTML("beforeend",`
    \n
    \n

    \n There are no milestones on other work orders scheduled for\n ${cityssm.escapeHTML(e)}.\n

    \n
    \n
    `)})}function $(e){var t;const o=e;o.success?(u=o.workOrderMilestones,q()):bulmaJS.alert({title:"Error Reopening Milestone",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})}function I(e){var t;e.preventDefault();const r=cityssm.dateToString(new Date),s=Number.parseInt(null!==(t=e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId)&&void 0!==t?t:"",10),a=u.find(e=>e.workOrderMilestoneId===s);bulmaJS.confirm({title:"Complete Milestone",message:`Are you sure you want to complete this milestone?\n ${void 0!==a.workOrderMilestoneDateString&&""!==a.workOrderMilestoneDateString&&a.workOrderMilestoneDateString>r?"
    Note that this milestone is expected to be completed in the future.":""}`,messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Complete Milestone",callbackFunction:function(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doCompleteWorkOrderMilestone`,{workOrderId:n,workOrderMilestoneId:s},$)}}})}function x(e){e.preventDefault();const t=e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;bulmaJS.confirm({title:"Reopen Milestone",message:"Are you sure you want to remove the completion status from this milestone, and reopen it?",contextualColorName:"warning",okButton:{text:"Yes, Reopen Milestone",callbackFunction:function(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doReopenWorkOrderMilestone`,{workOrderId:n,workOrderMilestoneId:t},$)}}})}function E(e){e.preventDefault();const t=e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;bulmaJS.confirm({title:"Delete Milestone",message:"Are you sure you want to delete this milestone?",contextualColorName:"warning",okButton:{text:"Yes, Delete Milestone",callbackFunction:function(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doDeleteWorkOrderMilestone`,{workOrderMilestoneId:t,workOrderId:n},$)}}})}function D(e){var t;e.preventDefault();const r=Number.parseInt(null!==(t=e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId)&&void 0!==t?t:"",10),s=u.find(e=>e.workOrderMilestoneId===r);let a,l;function i(e){e.preventDefault(),cityssm.postJSON(`${o.urlPrefix}/workOrders/doUpdateWorkOrderMilestone`,e.currentTarget,e=>{const t=e;$(t),t.success&&a()})}cityssm.openHtmlModal("workOrder-editMilestone",{onshow(e){var t,o,r,a,i,d;e.querySelector("#milestoneEdit--workOrderId").value=n,e.querySelector("#milestoneEdit--workOrderMilestoneId").value=null!==(o=null===(t=s.workOrderMilestoneId)||void 0===t?void 0:t.toString())&&void 0!==o?o:"";const c=e.querySelector("#milestoneEdit--workOrderMilestoneTypeId");let u=!1;for(const e of exports.workOrderMilestoneTypes){const t=document.createElement("option");t.value=e.workOrderMilestoneTypeId.toString(),t.textContent=e.workOrderMilestoneType,e.workOrderMilestoneTypeId===s.workOrderMilestoneTypeId&&(t.selected=!0,u=!0),c.append(t)}if(!u&&s.workOrderMilestoneTypeId){const e=document.createElement("option");e.value=s.workOrderMilestoneTypeId.toString(),e.textContent=null!==(r=s.workOrderMilestoneType)&&void 0!==r?r:"",e.selected=!0,c.append(e)}(l=e.querySelector("#milestoneEdit--workOrderMilestoneDateString")).value=null!==(a=s.workOrderMilestoneDateString)&&void 0!==a?a:"",s.workOrderMilestoneTime&&(e.querySelector("#milestoneEdit--workOrderMilestoneTimeString").value=null!==(i=s.workOrderMilestoneTimeString)&&void 0!==i?i:""),e.querySelector("#milestoneEdit--workOrderMilestoneDescription").value=null!==(d=s.workOrderMilestoneDescription)&&void 0!==d?d:""},onshown(e,t){var n;a=t,bulmaJS.toggleHtmlClipped(),o.initializeDatePickers(e),null===(n=e.querySelector("form"))||void 0===n||n.addEventListener("submit",i);const r=document.querySelector("#milestoneEdit--conflictingMilestonesPanel");l.addEventListener("change",()=>{C(l.value,r)}),C(l.value,r)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function q(){var e,t,o,n,r,s,a;const l=document.querySelector("#panel--milestones"),i=l.querySelectorAll(".panel-block");for(const e of i)e.remove();for(const i of u){const d=document.createElement("div");d.className="panel-block is-block container--milestone",d.dataset.workOrderMilestoneId=null===(e=i.workOrderMilestoneId)||void 0===e?void 0:e.toString(),d.innerHTML=`
    \n
    \n ${i.workOrderMilestoneCompletionDate?`\n \n `:''}\n
    \n ${i.workOrderMilestoneTypeId?`${cityssm.escapeHTML(null!==(t=i.workOrderMilestoneType)&&void 0!==t?t:"")}
    `:""}\n ${0===i.workOrderMilestoneDate?'(No Set Date)':i.workOrderMilestoneDateString}\n ${i.workOrderMilestoneTime?` ${i.workOrderMilestoneTimePeriodString}`:""}
    \n \n ${cityssm.escapeHTML(null!==(o=i.workOrderMilestoneDescription)&&void 0!==o?o:"")}\n \n
    \n \n
    `,null===(n=d.querySelector(".button--reopenMilestone"))||void 0===n||n.addEventListener("click",x),null===(r=d.querySelector(".button--editMilestone"))||void 0===r||r.addEventListener("click",D),null===(s=d.querySelector(".button--completeMilestone"))||void 0===s||s.addEventListener("click",I),null===(a=d.querySelector(".button--deleteMilestone"))||void 0===a||a.addEventListener("click",E),l.append(d)}bulmaJS.init(l)}delete exports.workOrderComments,null===(S=document.querySelector("#workOrderComments--add"))||void 0===S||S.addEventListener("click",function(){let e;function t(t){t.preventDefault(),cityssm.postJSON(`${o.urlPrefix}/workOrders/doAddWorkOrderComment`,t.currentTarget,t=>{const o=t;o.success&&(f=o.workOrderComments,L(),e())})}cityssm.openHtmlModal("workOrder-addComment",{onshow(e){var r;o.populateAliases(e),e.querySelector("#workOrderCommentAdd--workOrderId").value=n,null===(r=e.querySelector("form"))||void 0===r||r.addEventListener("submit",t)},onshown(t,o){bulmaJS.toggleHtmlClipped(),e=o,t.querySelector("#workOrderCommentAdd--workOrderComment").focus()},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#workOrderComments--add").focus()}})}),r||L(),r||(u=exports.workOrderMilestones,delete exports.workOrderMilestones,q(),null===(t=document.querySelector("#button--addMilestone"))||void 0===t||t.addEventListener("click",()=>{let e,t,r;function s(n){n&&n.preventDefault();const s=cityssm.dateToString(new Date);function a(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doAddWorkOrderMilestone`,e,e=>{const t=e;$(t),t.success&&r()})}const l=t.value;""!==l&&l{C(t.value,l)}),C(t.value,l)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addMilestone").focus()}})}))})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e,t;const o=exports.los,n=document.querySelector("#workOrderEdit--workOrderId").value,r=""===n,s=document.querySelector("#form--workOrderEdit");function a(){var e;o.setUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--workOrderEdit']"))||void 0===e||e.classList.remove("is-light")}function l(){var e;o.clearUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--workOrderEdit']"))||void 0===e||e.classList.add("is-light")}o.initializeDatePickers(null===(S=s.querySelector("#workOrderEdit--workOrderOpenDateString"))||void 0===S?void 0:S.closest(".field")),o.initializeUnlockFieldButtons(s),s.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(`${o.urlPrefix}/workOrders/${r?"doCreateWorkOrder":"doUpdateWorkOrder"}`,e.currentTarget,e=>{var t;const n=e;n.success?(l(),r?window.location.href=o.getWorkOrderURL(n.workOrderId,!0):bulmaJS.alert({message:"Work Order Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order",message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})});const i=s.querySelectorAll("input, select, textarea");for(const e of i)e.addEventListener("change",a);function d(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doCloseWorkOrder`,{workOrderId:n},e=>{var t;const r=e;r.success?(l(),window.location.href=o.getWorkOrderURL(n)):bulmaJS.alert({title:"Error Closing Work Order",message:null!==(t=r.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function c(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doDeleteWorkOrder`,{workOrderId:n},e=>{var t;const n=e;n.success?(l(),window.location.href=`${o.urlPrefix}/workOrders`):bulmaJS.alert({title:"Error Deleting Work Order",message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}let u;if(null===(m=document.querySelector("#button--closeWorkOrder"))||void 0===m||m.addEventListener("click",()=>{u.some(e=>!e.workOrderMilestoneCompletionDate)?bulmaJS.alert({title:"Outstanding Milestones",message:"You cannot close a work order with outstanding milestones.\n Either complete the outstanding milestones, or remove them from the work order.",contextualColorName:"warning"}):bulmaJS.confirm({title:"Close Work Order",message:o.hasUnsavedChanges()?"Are you sure you want to close this work order with unsaved changes?":"Are you sure you want to close this work order?",contextualColorName:o.hasUnsavedChanges()?"warning":"info",okButton:{text:"Yes, Close Work Order",callbackFunction:d}})}),null===(e=document.querySelector("#button--deleteWorkOrder"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:"Delete Work Order",message:"Are you sure you want to delete this work order?",contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order",callbackFunction:c}})}),!r){var m;Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.workOrderLots;delete exports.workOrderLots;let t=exports.workOrderLotOccupancies;function p(e){const r=e.currentTarget.closest(".container--lotOccupancy").dataset.lotOccupancyId;bulmaJS.confirm({title:`Delete ${o.escapedAliases.Occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${o.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:function(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doDeleteWorkOrderLotOccupancy`,{workOrderId:n,lotOccupancyId:r},e=>{var o;const n=e;n.success?(t=n.workOrderLotOccupancies,g()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(o=n.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}}})}function v(t,r){cityssm.postJSON(`${o.urlPrefix}/workOrders/doAddWorkOrderLot`,{workOrderId:n,lotId:t},t=>{var n;const s=t;s.success?(e=s.workOrderLots,g()):bulmaJS.alert({title:`Error Adding ${o.escapedAliases.Lot}`,message:null!==(n=s.errorMessage)&&void 0!==n?n:"",contextualColorName:"danger"}),void 0!==r&&r(s.success)})}function y(e){var t;v(null!==(t=e.currentTarget.dataset.lotId)&&void 0!==t?t:"")}function O(t){var r;const s=Number.parseInt(null!==(r=t.currentTarget.closest(".container--lot").dataset.lotId)&&void 0!==r?r:"",10),a=e.find(e=>e.lotId===s);let l;function i(t){t.preventDefault(),cityssm.postJSON(`${o.urlPrefix}/workOrders/doUpdateLotStatus`,t.currentTarget,t=>{var o;const n=t;n.success?(e=n.workOrderLots,g(),l()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(o=n.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lot-editLotStatus",{onshow(e){var t,r,l;o.populateAliases(e),e.querySelector("#lotStatusEdit--lotId").value=s.toString(),e.querySelector("#lotStatusEdit--lotName").value=null!==(t=a.lotName)&&void 0!==t?t:"";const i=e.querySelector("#lotStatusEdit--lotStatusId");let d=!1;for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,e.lotStatusId===a.lotStatusId&&(d=!0),i.append(t)}if(!d&&a.lotStatusId){const e=document.createElement("option");e.value=a.lotStatusId.toString(),e.textContent=null!==(r=a.lotStatus)&&void 0!==r?r:"",i.append(e)}a.lotStatusId&&(i.value=a.lotStatusId.toString()),null===(l=e.querySelector("form"))||void 0===l||l.insertAdjacentHTML("beforeend",``)},onshown(e,t){var o;l=t,bulmaJS.toggleHtmlClipped(),null===(o=e.querySelector("form"))||void 0===o||o.addEventListener("submit",i)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function h(t){const r=t.currentTarget.closest(".container--lot").dataset.lotId;bulmaJS.confirm({title:`Delete ${o.escapedAliases.Occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${o.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:function(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doDeleteWorkOrderLot`,{workOrderId:n,lotId:r},t=>{var o;const n=t;n.success?(e=n.workOrderLots,g()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(o=n.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}}})}function g(){!function(){var n,r,s,a,l,i,d,c,u,m;const v=document.querySelector("#container--lotOccupancies");if(document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent=t.length.toString(),0===t.length)return void(v.innerHTML=`
    \n

    There are no ${o.escapedAliases.occupancies} associated with this work order.

    \n
    `);v.innerHTML=`\n \n \n \n \n \n \n \n \n \n \n
    ${o.escapedAliases.Occupancy} Type${o.escapedAliases.Lot}${o.escapedAliases.OccupancyStartDate}End Date${o.escapedAliases.Occupants}
    `;const O=cityssm.dateToString(new Date);for(const h of t){const t=document.createElement("tr");t.className="container--lotOccupancy",t.dataset.lotOccupancyId=h.lotOccupancyId.toString();const g=!(h.occupancyEndDate&&h.occupancyEndDateStringh.lotId===e.lotId);t.innerHTML=`\n ${g?``:``}\n \n \n ${cityssm.escapeHTML(null!==(n=h.occupancyType)&&void 0!==n?n:"")}\n
    \n #${h.lotOccupancyId}\n `,h.lotId?t.insertAdjacentHTML("beforeend",`\n ${cityssm.escapeHTML(null!==(r=h.lotName)&&void 0!==r?r:"")}\n ${k?"":` `}\n `):t.insertAdjacentHTML("beforeend",`(No ${o.escapedAliases.Lot})`);let w="";for(const e of h.lotOccupancyOccupants)w+=`
  • \n \n \n \n ${cityssm.escapeHTML(null!==(i=e.occupantName)&&void 0!==i?i:"")}\n ${cityssm.escapeHTML(null!==(d=e.occupantFamilyName)&&void 0!==d?d:"")}\n
  • `;t.insertAdjacentHTML("beforeend",`\n ${h.occupancyStartDateString}\n \n ${h.occupancyEndDate?h.occupancyEndDateString:'(No End Date)'}\n \n ${0===h.lotOccupancyOccupants.length?`(No ${o.escapedAliases.Occupants})`:`
      ${w}
    `}\n \n \n `),null===(c=t.querySelector(".button--addLot"))||void 0===c||c.addEventListener("click",y),null===(u=t.querySelector(".button--deleteLotOccupancy"))||void 0===u||u.addEventListener("click",p),null===(m=v.querySelector("tbody"))||void 0===m||m.append(t)}}(),function(){var t,n,r,s,a,l,i;const d=document.querySelector("#container--lots");if(document.querySelector(".tabs a[href='#relatedTab--lots'] .tag").textContent=e.length.toString(),0!==e.length){d.innerHTML=`\n \n \n \n \n \n \n \n \n
    ${o.escapedAliases.Lot}${o.escapedAliases.Map}${o.escapedAliases.Lot} TypeStatus
    `;for(const c of e){const e=document.createElement("tr");e.className="container--lot",e.dataset.lotId=c.lotId.toString(),e.innerHTML=`\n \n ${cityssm.escapeHTML(null!==(t=c.lotName)&&void 0!==t?t:"")}\n \n \n ${cityssm.escapeHTML(null!==(n=c.mapName)&&void 0!==n?n:"")}\n \n ${cityssm.escapeHTML(null!==(r=c.lotType)&&void 0!==r?r:"")}\n \n ${c.lotStatusId?cityssm.escapeHTML(null!==(s=c.lotStatus)&&void 0!==s?s:""):'(No Status)'}\n \n \n \n `,null===(a=e.querySelector(".button--editLotStatus"))||void 0===a||a.addEventListener("click",O),null===(l=e.querySelector(".button--deleteLot"))||void 0===l||l.addEventListener("click",h),null===(i=d.querySelector("tbody"))||void 0===i||i.append(e)}}else d.innerHTML=`
    \n

    There are no ${o.escapedAliases.lots} associated with this work order.

    \n
    `}()}function k(e){var r;const s=e.currentTarget.closest("tr");!function(e,r){cityssm.postJSON(`${o.urlPrefix}/workOrders/doAddWorkOrderLotOccupancy`,{workOrderId:n,lotOccupancyId:e},e=>{var n;const s=e;s.success?(t=s.workOrderLotOccupancies,g()):bulmaJS.alert({title:`Error Adding ${o.escapedAliases.Occupancy}`,message:null!==(n=s.errorMessage)&&void 0!==n?n:"",contextualColorName:"danger"}),void 0!==r&&r(s.success)})}(null!==(r=s.dataset.lotOccupancyId)&&void 0!==r?r:"",e=>{e&&s.remove()})}function w(e){var t;const o=e.currentTarget.closest("tr");v(null!==(t=o.dataset.lotId)&&void 0!==t?t:"",e=>{e&&o.remove()})}delete exports.workOrderLotOccupancies,g(),null===(S=document.querySelector("#button--addLotOccupancy"))||void 0===S||S.addEventListener("click",()=>{let e,t;function r(n){n&&n.preventDefault(),t.innerHTML=o.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(`${o.urlPrefix}/lotOccupancies/doSearchLotOccupancies`,e,e=>{var n,r,s,a;const l=e;if(0!==l.lotOccupancies.length){t.innerHTML=`\n \n \n \n \n \n \n \n \n \n
    ${o.escapedAliases.Occupancy} Type${o.escapedAliases.Lot}${o.escapedAliases.OccupancyStartDate}End Date${o.escapedAliases.Occupants}
    `;for(const e of l.lotOccupancies){const l=document.createElement("tr");l.className="container--lotOccupancy",l.dataset.lotOccupancyId=e.lotOccupancyId.toString(),l.innerHTML=`\n \n \n \n ${cityssm.escapeHTML(null!==(n=e.occupancyType)&&void 0!==n?n:"")}\n `,e.lotId?l.insertAdjacentHTML("beforeend",""+cityssm.escapeHTML(null!==(r=e.lotName)&&void 0!==r?r:"")+""):l.insertAdjacentHTML("beforeend",`(No ${o.escapedAliases.Lot})`),l.insertAdjacentHTML("beforeend",`\n ${e.occupancyStartDateString}\n \n ${e.occupancyEndDate?e.occupancyEndDateString:'(No End Date)'}\n \n ${0===e.lotOccupancyOccupants.length?`\n (No ${cityssm.escapeHTML(o.escapedAliases.Occupants)})\n `:cityssm.escapeHTML(`${e.lotOccupancyOccupants[0].occupantName}\n ${e.lotOccupancyOccupants[0].occupantFamilyName}`)+(e.lotOccupancyOccupants.length>1?` plus\n ${(e.lotOccupancyOccupants.length-1).toString()}`:"")}`),null===(s=l.querySelector(".button--addLotOccupancy"))||void 0===s||s.addEventListener("click",k),null===(a=t.querySelector("tbody"))||void 0===a||a.append(l)}}else t.innerHTML='
    \n

    There are no records that meet the search criteria.

    \n
    '})}cityssm.openHtmlModal("workOrder-addLotOccupancy",{onshow(s){o.populateAliases(s),e=s.querySelector("form"),t=s.querySelector("#resultsContainer--lotOccupancyAdd"),s.querySelector("#lotOccupancySearch--notWorkOrderId").value=n,s.querySelector("#lotOccupancySearch--occupancyEffectiveDateString").value=document.querySelector("#workOrderEdit--workOrderOpenDateString").value,r()},onshown(t){bulmaJS.toggleHtmlClipped();const o=t.querySelector("#lotOccupancySearch--occupantName");o.addEventListener("change",r),o.focus(),t.querySelector("#lotOccupancySearch--lotName").addEventListener("change",r),e.addEventListener("submit",r)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addLotOccupancy").focus()}})}),null===(m=document.querySelector("#button--addLot"))||void 0===m||m.addEventListener("click",()=>{let e,t;function r(n){n&&n.preventDefault(),t.innerHTML=o.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(`${o.urlPrefix}/lots/doSearchLots`,e,e=>{var n,r,s,a,l,i;const d=e;if(0!==d.lots.length){t.innerHTML=`\n \n \n \n \n \n \n \n \n
    ${o.escapedAliases.Lot}${o.escapedAliases.Map}${o.escapedAliases.Lot} TypeStatus
    `;for(const e of d.lots){const o=document.createElement("tr");o.className="container--lot",o.dataset.lotId=e.lotId.toString(),o.innerHTML=`\n \n \n ${cityssm.escapeHTML(null!==(n=e.lotName)&&void 0!==n?n:"")}\n \n ${cityssm.escapeHTML(null!==(r=e.mapName)&&void 0!==r?r:"")}\n \n ${cityssm.escapeHTML(null!==(s=e.lotType)&&void 0!==s?s:"")}\n \n ${cityssm.escapeHTML(null!==(a=e.lotStatus)&&void 0!==a?a:"")}\n `,null===(l=o.querySelector(".button--addLot"))||void 0===l||l.addEventListener("click",w),null===(i=t.querySelector("tbody"))||void 0===i||i.append(o)}}else t.innerHTML='
    \n

    There are no records that meet the search criteria.

    \n
    '})}cityssm.openHtmlModal("workOrder-addLot",{onshow(s){o.populateAliases(s),e=s.querySelector("form"),t=s.querySelector("#resultsContainer--lotAdd"),s.querySelector("#lotSearch--notWorkOrderId").value=n;const a=s.querySelector("#lotSearch--lotStatusId");for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,a.append(t)}r()},onshown(t){var o;bulmaJS.toggleHtmlClipped();const n=t.querySelector("#lotSearch--lotName");n.addEventListener("change",r),n.focus(),null===(o=t.querySelector("#lotSearch--lotStatusId"))||void 0===o||o.addEventListener("change",r),e.addEventListener("submit",r)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addLot").focus()}})})}var S;Object.defineProperty(exports,"__esModule",{value:!0});let f=exports.workOrderComments;function b(e){var t,r;const s=Number.parseInt(null!==(r=null===(t=e.currentTarget.closest("tr"))||void 0===t?void 0:t.dataset.workOrderCommentId)&&void 0!==r?r:"",10),a=f.find(e=>e.workOrderCommentId===s);let l,i;function d(e){e.preventDefault(),cityssm.postJSON(`${o.urlPrefix}/workOrders/doUpdateWorkOrderComment`,l,e=>{var t;const o=e;o.success?(f=o.workOrderComments,i(),L()):bulmaJS.alert({title:"Error Updating Comment",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("workOrder-editComment",{onshow(e){var t,o,r,l;e.querySelector("#workOrderCommentEdit--workOrderId").value=n,e.querySelector("#workOrderCommentEdit--workOrderCommentId").value=s.toString(),e.querySelector("#workOrderCommentEdit--workOrderComment").value=null!==(t=a.workOrderComment)&&void 0!==t?t:"";const i=e.querySelector("#workOrderCommentEdit--workOrderCommentDateString");i.value=null!==(o=a.workOrderCommentDateString)&&void 0!==o?o:"";const d=cityssm.dateToString(new Date);i.max=a.workOrderCommentDateString<=d?d:null!==(r=a.workOrderCommentDateString)&&void 0!==r?r:"",e.querySelector("#workOrderCommentEdit--workOrderCommentTimeString").value=null!==(l=a.workOrderCommentTimeString)&&void 0!==l?l:""},onshown(e,t){bulmaJS.toggleHtmlClipped(),o.initializeDatePickers(e),e.querySelector("#workOrderCommentEdit--workOrderComment").focus(),(l=e.querySelector("form")).addEventListener("submit",d),i=t},onremoved(){bulmaJS.toggleHtmlClipped()}})}function M(e){var t,r;const s=Number.parseInt(null!==(r=null===(t=e.currentTarget.closest("tr"))||void 0===t?void 0:t.dataset.workOrderCommentId)&&void 0!==r?r:"",10);bulmaJS.confirm({title:"Remove Comment?",message:"Are you sure you want to remove this comment?",okButton:{text:"Yes, Remove Comment",callbackFunction:function(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doDeleteWorkOrderComment`,{workOrderId:n,workOrderCommentId:s},e=>{var t;const o=e;o.success?(f=o.workOrderComments,L()):bulmaJS.alert({title:"Error Removing Comment",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function L(){var e,t,o,n,r,s;const a=document.querySelector("#container--workOrderComments");if(0===f.length)return void(a.innerHTML='
    \n

    There are no comments to display.

    \n
    ');const l=document.createElement("table");l.className="table is-fullwidth is-striped is-hoverable",l.innerHTML='\n Commentor\n Comment Date\n Comment\n Options';for(const a of f){const i=document.createElement("tr");i.dataset.workOrderCommentId=null===(e=a.workOrderCommentId)||void 0===e?void 0:e.toString(),i.innerHTML=`\n ${cityssm.escapeHTML(null!==(t=a.recordCreate_userName)&&void 0!==t?t:"")}\n \n ${a.workOrderCommentDateString}\n ${0===a.workOrderCommentTime?"":a.workOrderCommentTimePeriodString}\n \n ${cityssm.escapeHTML(null!==(o=a.workOrderComment)&&void 0!==o?o:"")}\n \n
    \n \n \n
    \n `,null===(n=i.querySelector(".button--edit"))||void 0===n||n.addEventListener("click",b),null===(r=i.querySelector(".button--delete"))||void 0===r||r.addEventListener("click",M),null===(s=l.querySelector("tbody"))||void 0===s||s.append(i)}a.innerHTML="",a.append(l)}function T(e){for(const t of e.querySelectorAll(".panel-block"))t.remove()}function C(e,t){T(t),t.insertAdjacentHTML("beforeend",`
    \n ${o.getLoadingParagraphHTML("Loading conflicting milestones...")}\n
    `),cityssm.postJSON(`${o.urlPrefix}/workOrders/doGetWorkOrderMilestones`,{workOrderMilestoneDateFilter:"date",workOrderMilestoneDateString:e},o=>{var r,s,a,l;const i=o.workOrderMilestones.filter(e=>e.workOrderId.toString()!==n);T(t);for(const e of i)t.insertAdjacentHTML("beforeend",`
    \n
    \n
    \n ${cityssm.escapeHTML(0===e.workOrderMilestoneTime?"No Time":null!==(r=e.workOrderMilestoneTimePeriodString)&&void 0!==r?r:"")}
    \n ${cityssm.escapeHTML(null!==(s=e.workOrderMilestoneType)&&void 0!==s?s:"")}\n
    \n
    \n ${cityssm.escapeHTML(null!==(a=e.workOrderNumber)&&void 0!==a?a:"")}
    \n \n ${cityssm.escapeHTML(null!==(l=e.workOrderDescription)&&void 0!==l?l:"")}\n \n
    \n
    \n
    `);0===i.length&&t.insertAdjacentHTML("beforeend",`
    \n
    \n

    \n There are no milestones on other work orders scheduled for\n ${cityssm.escapeHTML(e)}.\n

    \n
    \n
    `)})}function $(e){var t;const o=e;o.success?(u=o.workOrderMilestones,q()):bulmaJS.alert({title:"Error Reopening Milestone",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})}function I(e){var t;e.preventDefault();const r=cityssm.dateToString(new Date),s=Number.parseInt(null!==(t=e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId)&&void 0!==t?t:"",10),a=u.find(e=>e.workOrderMilestoneId===s);bulmaJS.confirm({title:"Complete Milestone",message:`Are you sure you want to complete this milestone?\n ${void 0!==a.workOrderMilestoneDateString&&""!==a.workOrderMilestoneDateString&&a.workOrderMilestoneDateString>r?"
    Note that this milestone is expected to be completed in the future.":""}`,messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Complete Milestone",callbackFunction:function(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doCompleteWorkOrderMilestone`,{workOrderId:n,workOrderMilestoneId:s},$)}}})}function x(e){e.preventDefault();const t=e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;bulmaJS.confirm({title:"Reopen Milestone",message:"Are you sure you want to remove the completion status from this milestone, and reopen it?",contextualColorName:"warning",okButton:{text:"Yes, Reopen Milestone",callbackFunction:function(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doReopenWorkOrderMilestone`,{workOrderId:n,workOrderMilestoneId:t},$)}}})}function E(e){e.preventDefault();const t=e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;bulmaJS.confirm({title:"Delete Milestone",message:"Are you sure you want to delete this milestone?",contextualColorName:"warning",okButton:{text:"Yes, Delete Milestone",callbackFunction:function(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doDeleteWorkOrderMilestone`,{workOrderMilestoneId:t,workOrderId:n},$)}}})}function D(e){var t;e.preventDefault();const r=Number.parseInt(null!==(t=e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId)&&void 0!==t?t:"",10),s=u.find(e=>e.workOrderMilestoneId===r);let a,l;function i(e){e.preventDefault(),cityssm.postJSON(`${o.urlPrefix}/workOrders/doUpdateWorkOrderMilestone`,e.currentTarget,e=>{const t=e;$(t),t.success&&a()})}cityssm.openHtmlModal("workOrder-editMilestone",{onshow(e){var t,o,r,a,i,d;e.querySelector("#milestoneEdit--workOrderId").value=n,e.querySelector("#milestoneEdit--workOrderMilestoneId").value=null!==(o=null===(t=s.workOrderMilestoneId)||void 0===t?void 0:t.toString())&&void 0!==o?o:"";const c=e.querySelector("#milestoneEdit--workOrderMilestoneTypeId");let u=!1;for(const e of exports.workOrderMilestoneTypes){const t=document.createElement("option");t.value=e.workOrderMilestoneTypeId.toString(),t.textContent=e.workOrderMilestoneType,e.workOrderMilestoneTypeId===s.workOrderMilestoneTypeId&&(t.selected=!0,u=!0),c.append(t)}if(!u&&s.workOrderMilestoneTypeId){const e=document.createElement("option");e.value=s.workOrderMilestoneTypeId.toString(),e.textContent=null!==(r=s.workOrderMilestoneType)&&void 0!==r?r:"",e.selected=!0,c.append(e)}(l=e.querySelector("#milestoneEdit--workOrderMilestoneDateString")).value=null!==(a=s.workOrderMilestoneDateString)&&void 0!==a?a:"",s.workOrderMilestoneTime&&(e.querySelector("#milestoneEdit--workOrderMilestoneTimeString").value=null!==(i=s.workOrderMilestoneTimeString)&&void 0!==i?i:""),e.querySelector("#milestoneEdit--workOrderMilestoneDescription").value=null!==(d=s.workOrderMilestoneDescription)&&void 0!==d?d:""},onshown(e,t){var n;a=t,bulmaJS.toggleHtmlClipped(),o.initializeDatePickers(e),null===(n=e.querySelector("form"))||void 0===n||n.addEventListener("submit",i);const r=document.querySelector("#milestoneEdit--conflictingMilestonesPanel");l.addEventListener("change",()=>{C(l.value,r)}),C(l.value,r)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function q(){var e,t,o,n,r,s,a;const l=document.querySelector("#panel--milestones"),i=l.querySelectorAll(".panel-block");for(const e of i)e.remove();for(const i of u){const d=document.createElement("div");d.className="panel-block is-block container--milestone",d.dataset.workOrderMilestoneId=null===(e=i.workOrderMilestoneId)||void 0===e?void 0:e.toString(),d.innerHTML=`
    \n
    \n ${i.workOrderMilestoneCompletionDate?`\n \n `:''}\n
    \n ${i.workOrderMilestoneTypeId?`${cityssm.escapeHTML(null!==(t=i.workOrderMilestoneType)&&void 0!==t?t:"")}
    `:""}\n ${0===i.workOrderMilestoneDate?'(No Set Date)':i.workOrderMilestoneDateString}\n ${i.workOrderMilestoneTime?` ${i.workOrderMilestoneTimePeriodString}`:""}
    \n \n ${cityssm.escapeHTML(null!==(o=i.workOrderMilestoneDescription)&&void 0!==o?o:"")}\n \n
    \n \n
    `,null===(n=d.querySelector(".button--reopenMilestone"))||void 0===n||n.addEventListener("click",x),null===(r=d.querySelector(".button--editMilestone"))||void 0===r||r.addEventListener("click",D),null===(s=d.querySelector(".button--completeMilestone"))||void 0===s||s.addEventListener("click",I),null===(a=d.querySelector(".button--deleteMilestone"))||void 0===a||a.addEventListener("click",E),l.append(d)}bulmaJS.init(l)}delete exports.workOrderComments,null===(S=document.querySelector("#workOrderComments--add"))||void 0===S||S.addEventListener("click",function(){let e;function t(t){t.preventDefault(),cityssm.postJSON(`${o.urlPrefix}/workOrders/doAddWorkOrderComment`,t.currentTarget,t=>{const o=t;o.success&&(f=o.workOrderComments,L(),e())})}cityssm.openHtmlModal("workOrder-addComment",{onshow(e){var r;o.populateAliases(e),e.querySelector("#workOrderCommentAdd--workOrderId").value=n,null===(r=e.querySelector("form"))||void 0===r||r.addEventListener("submit",t)},onshown(t,o){bulmaJS.toggleHtmlClipped(),e=o,t.querySelector("#workOrderCommentAdd--workOrderComment").focus()},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#workOrderComments--add").focus()}})}),r||L(),r||(u=exports.workOrderMilestones,delete exports.workOrderMilestones,q(),null===(t=document.querySelector("#button--addMilestone"))||void 0===t||t.addEventListener("click",()=>{let e,t,r;function s(n){n&&n.preventDefault();const s=cityssm.dateToString(new Date);function a(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doAddWorkOrderMilestone`,e,e=>{const t=e;$(t),t.success&&r()})}const l=t.value;""!==l&&l{C(t.value,l)}),C(t.value,l)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addMilestone").focus()}})}))})(); \ No newline at end of file