diff --git a/public-typescript/lotOccupancySearch.js b/public-typescript/lotOccupancySearch.js index 39bbb835..bc216b59 100644 --- a/public-typescript/lotOccupancySearch.js +++ b/public-typescript/lotOccupancySearch.js @@ -7,8 +7,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); const searchResultsContainerElement = document.querySelector('#container--searchResults'); const limit = Number.parseInt(document.querySelector('#searchFilter--limit').value, 10); const offsetElement = document.querySelector('#searchFilter--offset'); - function renderLotOccupancies(responseJSON) { + function renderLotOccupancies(rawResponseJSON) { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o; + const responseJSON = rawResponseJSON; if (responseJSON.lotOccupancies.length === 0) { searchResultsContainerElement.innerHTML = `

@@ -80,7 +81,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); los.getLotOccupancyURL(lotOccupancy.lotOccupancyId) + '">' + cityssm.escapeHTML(lotOccupancy.occupancyType) + - '' + + '
' + + `#${lotOccupancy.lotOccupancyId}` + '') + ('' + (((_j = lotOccupancy.lotId) !== null && _j !== void 0 ? _j : -1) === -1 @@ -114,7 +116,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); '/print/' + lotOccupancy.printEJS + '/?lotOccupancyId=' + - lotOccupancy.lotOccupancyId + + lotOccupancy.lotOccupancyId.toString() + '" target="_blank">' + '' + '' diff --git a/public-typescript/lotOccupancySearch.ts b/public-typescript/lotOccupancySearch.ts index 477a4790..ef5860c6 100644 --- a/public-typescript/lotOccupancySearch.ts +++ b/public-typescript/lotOccupancySearch.ts @@ -26,11 +26,13 @@ declare const cityssm: cityssmGlobal '#searchFilter--offset' ) as HTMLInputElement - function renderLotOccupancies(responseJSON: { - count: number - offset: number - lotOccupancies: recordTypes.LotOccupancy[] - }): void { + function renderLotOccupancies(rawResponseJSON: unknown): void { + const responseJSON = rawResponseJSON as { + count: number + offset: number + lotOccupancies: recordTypes.LotOccupancy[] + } + if (responseJSON.lotOccupancies.length === 0) { searchResultsContainerElement.innerHTML = `

@@ -128,7 +130,8 @@ declare const cityssm: cityssmGlobal los.getLotOccupancyURL(lotOccupancy.lotOccupancyId) + '">' + cityssm.escapeHTML(lotOccupancy.occupancyType as string) + - '' + + '
' + + `#${lotOccupancy.lotOccupancyId!}` + '') + ('' + ((lotOccupancy.lotId ?? -1) === -1 @@ -162,7 +165,7 @@ declare const cityssm: cityssmGlobal '/print/' + lotOccupancy.printEJS + '/?lotOccupancyId=' + - lotOccupancy.lotOccupancyId + + lotOccupancy.lotOccupancyId!.toString() + '" target="_blank">' + '' + '' diff --git a/public-typescript/workOrderEdit.js b/public-typescript/workOrderEdit.js index 3cb45f33..feae4b55 100644 --- a/public-typescript/workOrderEdit.js +++ b/public-typescript/workOrderEdit.js @@ -150,8 +150,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.postJSON(los.urlPrefix + '/workOrders/doDeleteWorkOrderLotOccupancy', { workOrderId, lotOccupancyId - }, (responseJSON) => { + }, (rawResponseJSON) => { var _a; + const responseJSON = rawResponseJSON; if (responseJSON.success) { workOrderLotOccupancies = responseJSON.workOrderLotOccupancies; renderRelatedLotsAndOccupancies(); @@ -179,8 +180,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.postJSON(los.urlPrefix + '/workOrders/doAddWorkOrderLot', { workOrderId, lotId - }, (responseJSON) => { + }, (rawResponseJSON) => { var _a; + const responseJSON = rawResponseJSON; if (responseJSON.success) { workOrderLots = responseJSON.workOrderLots; renderRelatedLotsAndOccupancies(); @@ -192,7 +194,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); contextualColorName: 'danger' }); } - if (callbackFunction) { + if (callbackFunction !== undefined) { callbackFunction(responseJSON.success); } }); @@ -201,8 +203,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.postJSON(los.urlPrefix + '/workOrders/doAddWorkOrderLotOccupancy', { workOrderId, lotOccupancyId - }, (responseJSON) => { + }, (rawResponseJSON) => { var _a; + const responseJSON = rawResponseJSON; if (responseJSON.success) { workOrderLotOccupancies = responseJSON.workOrderLotOccupancies; renderRelatedLotsAndOccupancies(); @@ -214,7 +217,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); contextualColorName: 'danger' }); } - if (callbackFunction) { + if (callbackFunction !== undefined) { callbackFunction(responseJSON.success); } }); @@ -271,7 +274,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); los.getLotOccupancyURL(lotOccupancy.lotOccupancyId) + '">' + cityssm.escapeHTML((_a = lotOccupancy.occupancyType) !== null && _a !== void 0 ? _a : '') + - '' + + '
' + + `#${lotOccupancy.lotOccupancyId}` + ''); if (lotOccupancy.lotId) { rowElement.insertAdjacentHTML('beforeend', '' + @@ -280,7 +284,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); ? '' : ' ' + - ' ' + - ''); + ` + + + `; rowElement .querySelector('.button--editLotStatus') .addEventListener('click', openEditLotStatus); @@ -516,8 +522,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); } searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML('Searching...'); - cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doSearchLotOccupancies', searchFormElement, (responseJSON) => { + cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doSearchLotOccupancies', searchFormElement, (rawResponseJSON) => { var _a, _b; + const responseJSON = rawResponseJSON; if (responseJSON.lotOccupancies.length === 0) { searchResultsContainerElement.innerHTML = `

There are no records that meet the search criteria.

@@ -540,15 +547,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); rowElement.className = 'container--lotOccupancy'; rowElement.dataset.lotOccupancyId = lotOccupancy.lotOccupancyId.toString(); - rowElement.innerHTML = - '' + - '' + - '' + - ('' + - cityssm.escapeHTML((_a = lotOccupancy.occupancyType) !== null && _a !== void 0 ? _a : '') + - ''); + rowElement.innerHTML = ` + + + + ${cityssm.escapeHTML((_a = lotOccupancy.occupancyType) !== null && _a !== void 0 ? _a : '')} + `; if (lotOccupancy.lotId) { rowElement.insertAdjacentHTML('beforeend', '' + cityssm.escapeHTML((_b = lotOccupancy.lotName) !== null && _b !== void 0 ? _b : '') + @@ -625,8 +631,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); } searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML('Searching...'); - cityssm.postJSON(los.urlPrefix + '/lots/doSearchLots', searchFormElement, (responseJSON) => { + cityssm.postJSON(los.urlPrefix + '/lots/doSearchLots', searchFormElement, (rawResponseJSON) => { var _a, _b, _c, _d; + const responseJSON = rawResponseJSON; if (responseJSON.lots.length === 0) { searchResultsContainerElement.innerHTML = '
' + diff --git a/public-typescript/workOrderEdit/workOrderEditLots.js b/public-typescript/workOrderEdit/workOrderEditLots.js index 78fb6fd2..f3f39a38 100644 --- a/public-typescript/workOrderEdit/workOrderEditLots.js +++ b/public-typescript/workOrderEdit/workOrderEditLots.js @@ -13,8 +13,9 @@ function deleteLotOccupancy(clickEvent) { cityssm.postJSON(los.urlPrefix + '/workOrders/doDeleteWorkOrderLotOccupancy', { workOrderId, lotOccupancyId - }, (responseJSON) => { + }, (rawResponseJSON) => { var _a; + const responseJSON = rawResponseJSON; if (responseJSON.success) { workOrderLotOccupancies = responseJSON.workOrderLotOccupancies; renderRelatedLotsAndOccupancies(); @@ -42,8 +43,9 @@ function addLot(lotId, callbackFunction) { cityssm.postJSON(los.urlPrefix + '/workOrders/doAddWorkOrderLot', { workOrderId, lotId - }, (responseJSON) => { + }, (rawResponseJSON) => { var _a; + const responseJSON = rawResponseJSON; if (responseJSON.success) { workOrderLots = responseJSON.workOrderLots; renderRelatedLotsAndOccupancies(); @@ -55,7 +57,7 @@ function addLot(lotId, callbackFunction) { contextualColorName: 'danger' }); } - if (callbackFunction) { + if (callbackFunction !== undefined) { callbackFunction(responseJSON.success); } }); @@ -64,8 +66,9 @@ function addLotOccupancy(lotOccupancyId, callbackFunction) { cityssm.postJSON(los.urlPrefix + '/workOrders/doAddWorkOrderLotOccupancy', { workOrderId, lotOccupancyId - }, (responseJSON) => { + }, (rawResponseJSON) => { var _a; + const responseJSON = rawResponseJSON; if (responseJSON.success) { workOrderLotOccupancies = responseJSON.workOrderLotOccupancies; renderRelatedLotsAndOccupancies(); @@ -77,7 +80,7 @@ function addLotOccupancy(lotOccupancyId, callbackFunction) { contextualColorName: 'danger' }); } - if (callbackFunction) { + if (callbackFunction !== undefined) { callbackFunction(responseJSON.success); } }); @@ -134,7 +137,8 @@ function renderRelatedOccupancies() { los.getLotOccupancyURL(lotOccupancy.lotOccupancyId) + '">' + cityssm.escapeHTML((_a = lotOccupancy.occupancyType) !== null && _a !== void 0 ? _a : '') + - '' + + '
' + + `#${lotOccupancy.lotOccupancyId}` + ''); if (lotOccupancy.lotId) { rowElement.insertAdjacentHTML('beforeend', '' + @@ -143,7 +147,7 @@ function renderRelatedOccupancies() { ? '' : ' ' + - ' ' + - ''); + ` + + + `; rowElement .querySelector('.button--editLotStatus') .addEventListener('click', openEditLotStatus); @@ -379,8 +385,9 @@ function doAddLotOccupancy(clickEvent) { } searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML('Searching...'); - cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doSearchLotOccupancies', searchFormElement, (responseJSON) => { + cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doSearchLotOccupancies', searchFormElement, (rawResponseJSON) => { var _a, _b; + const responseJSON = rawResponseJSON; if (responseJSON.lotOccupancies.length === 0) { searchResultsContainerElement.innerHTML = `

There are no records that meet the search criteria.

@@ -403,15 +410,14 @@ function doAddLotOccupancy(clickEvent) { rowElement.className = 'container--lotOccupancy'; rowElement.dataset.lotOccupancyId = lotOccupancy.lotOccupancyId.toString(); - rowElement.innerHTML = - '' + - '' + - '' + - ('' + - cityssm.escapeHTML((_a = lotOccupancy.occupancyType) !== null && _a !== void 0 ? _a : '') + - ''); + rowElement.innerHTML = ` + + + + ${cityssm.escapeHTML((_a = lotOccupancy.occupancyType) !== null && _a !== void 0 ? _a : '')} + `; if (lotOccupancy.lotId) { rowElement.insertAdjacentHTML('beforeend', '' + cityssm.escapeHTML((_b = lotOccupancy.lotName) !== null && _b !== void 0 ? _b : '') + @@ -488,8 +494,9 @@ function doAddLot(clickEvent) { } searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML('Searching...'); - cityssm.postJSON(los.urlPrefix + '/lots/doSearchLots', searchFormElement, (responseJSON) => { + cityssm.postJSON(los.urlPrefix + '/lots/doSearchLots', searchFormElement, (rawResponseJSON) => { var _a, _b, _c, _d; + const responseJSON = rawResponseJSON; if (responseJSON.lots.length === 0) { searchResultsContainerElement.innerHTML = '
' + diff --git a/public-typescript/workOrderEdit/workOrderEditLots.ts b/public-typescript/workOrderEdit/workOrderEditLots.ts index a1fd468a..2fee1b7b 100644 --- a/public-typescript/workOrderEdit/workOrderEditLots.ts +++ b/public-typescript/workOrderEdit/workOrderEditLots.ts @@ -35,11 +35,13 @@ function deleteLotOccupancy(clickEvent: Event): void { workOrderId, lotOccupancyId }, - (responseJSON: { - success: boolean - errorMessage?: string - workOrderLotOccupancies?: recordTypes.LotOccupancy[] - }) => { + (rawResponseJSON) => { + const responseJSON = rawResponseJSON as { + success: boolean + errorMessage?: string + workOrderLotOccupancies?: recordTypes.LotOccupancy[] + } + if (responseJSON.success) { workOrderLotOccupancies = responseJSON.workOrderLotOccupancies! renderRelatedLotsAndOccupancies() @@ -67,7 +69,7 @@ function deleteLotOccupancy(clickEvent: Event): void { function addLot( lotId: number | string, - callbackFunction?: (success?: boolean) => void + callbackFunction?: (success: boolean) => void ): void { cityssm.postJSON( los.urlPrefix + '/workOrders/doAddWorkOrderLot', @@ -75,11 +77,13 @@ function addLot( workOrderId, lotId }, - (responseJSON: { - success: boolean - errorMessage?: string - workOrderLots?: recordTypes.Lot[] - }) => { + (rawResponseJSON) => { + const responseJSON = rawResponseJSON as { + success: boolean + errorMessage?: string + workOrderLots?: recordTypes.Lot[] + } + if (responseJSON.success) { workOrderLots = responseJSON.workOrderLots! renderRelatedLotsAndOccupancies() @@ -91,7 +95,7 @@ function addLot( }) } - if (callbackFunction) { + if (callbackFunction !== undefined) { callbackFunction(responseJSON.success) } } @@ -108,11 +112,13 @@ function addLotOccupancy( workOrderId, lotOccupancyId }, - (responseJSON: { - success: boolean - errorMessage?: string - workOrderLotOccupancies?: recordTypes.LotOccupancy[] - }) => { + (rawResponseJSON) => { + const responseJSON = rawResponseJSON as { + success: boolean + errorMessage?: string + workOrderLotOccupancies?: recordTypes.LotOccupancy[] + } + if (responseJSON.success) { workOrderLotOccupancies = responseJSON.workOrderLotOccupancies! renderRelatedLotsAndOccupancies() @@ -124,7 +130,7 @@ function addLotOccupancy( }) } - if (callbackFunction) { + if (callbackFunction !== undefined) { callbackFunction(responseJSON.success) } } @@ -201,7 +207,8 @@ function renderRelatedOccupancies(): void { los.getLotOccupancyURL(lotOccupancy.lotOccupancyId) + '">' + cityssm.escapeHTML(lotOccupancy.occupancyType ?? '') + - '' + + '
' + + `#${lotOccupancy.lotOccupancyId!}` + '') if (lotOccupancy.lotId) { @@ -213,7 +220,7 @@ function renderRelatedOccupancies(): void { ? '' : ' ' + - ' ' + - '') + ` + + + ` rowElement .querySelector('.button--editLotStatus')! @@ -545,7 +556,11 @@ document cityssm.postJSON( los.urlPrefix + '/lotOccupancies/doSearchLotOccupancies', searchFormElement, - (responseJSON: { lotOccupancies: recordTypes.LotOccupancy[] }) => { + (rawResponseJSON) => { + const responseJSON = rawResponseJSON as { + lotOccupancies: recordTypes.LotOccupancy[] + } + if (responseJSON.lotOccupancies.length === 0) { searchResultsContainerElement.innerHTML = `

There are no records that meet the search criteria.

@@ -572,15 +587,14 @@ document rowElement.dataset.lotOccupancyId = lotOccupancy.lotOccupancyId!.toString() - rowElement.innerHTML = - '' + - '' + - '' + - ('' + - cityssm.escapeHTML(lotOccupancy.occupancyType ?? '') + - '') + rowElement.innerHTML = ` + + + + ${cityssm.escapeHTML(lotOccupancy.occupancyType ?? '')} + ` if (lotOccupancy.lotId) { rowElement.insertAdjacentHTML( @@ -715,7 +729,9 @@ document.querySelector('#button--addLot')?.addEventListener('click', () => { cityssm.postJSON( los.urlPrefix + '/lots/doSearchLots', searchFormElement, - (responseJSON: { lots: recordTypes.Lot[] }) => { + (rawResponseJSON) => { + const responseJSON = rawResponseJSON as { lots: recordTypes.Lot[] } + if (responseJSON.lots.length === 0) { searchResultsContainerElement.innerHTML = '
' + diff --git a/public/javascripts/lotOccupancySearch.min.js b/public/javascripts/lotOccupancySearch.min.js index e73f9a97..779efa14 100644 --- a/public/javascripts/lotOccupancySearch.min.js +++ b/public/javascripts/lotOccupancySearch.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const t=exports.los,a=document.querySelector("#form--searchFilters"),e=document.querySelector("#container--searchResults"),s=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),c=document.querySelector("#searchFilter--offset");function n(a){var c,n,l,i,d,p,u,h,y,f,m,v,g;if(0===a.lotOccupancies.length)return void(e.innerHTML=`
\n

\n There are no ${t.escapedAliases.occupancy} records that meet the search criteria.\n

\n
`);const L=document.createElement("tbody"),b=cityssm.dateToString(new Date);for(const e of a.lotOccupancies){let a="";a=e.occupancyStartDateString<=b&&(""===e.occupancyEndDateString||e.occupancyEndDateString>=b)?`\n \n `:e.occupancyStartDateString>b?`\n \n `:`\n \n `;let s="";for(const t of e.lotOccupancyOccupants)s+=' '+cityssm.escapeHTML(null!==(l=t.occupantName)&&void 0!==l?l:"")+" "+cityssm.escapeHTML(null!==(i=t.occupantFamilyName)&&void 0!==i?i:"")+"
";const o=(null!==(p=null===(d=e.lotOccupancyFees)||void 0===d?void 0:d.reduce((t,a)=>{var e,s,c;return t+((null!==(e=a.feeAmount)&&void 0!==e?e:0)+(null!==(s=a.taxAmount)&&void 0!==s?s:0))*(null!==(c=a.quantity)&&void 0!==c?c:0)},0))&&void 0!==p?p:0).toFixed(2),r=(null!==(h=null===(u=e.lotOccupancyTransactions)||void 0===u?void 0:u.reduce((t,a)=>t+a.transactionAmount,0))&&void 0!==h?h:0).toFixed(2);let v="";"0.00"===o&&"0.00"===r||(v=`\n \n `),L.insertAdjacentHTML("beforeend",''+a+''+cityssm.escapeHTML(e.occupancyType)+""+(-1===(null!==(y=e.lotId)&&void 0!==y?y:-1)?'(No '+t.escapedAliases.Lot+")":''+cityssm.escapeHTML(e.lotName)+"")+'
'+cityssm.escapeHTML(null!==(m=e.mapName)&&void 0!==m?m:"")+""+e.occupancyStartDateString+""+(e.occupancyEndDate?e.occupancyEndDateString:'(No End Date)')+""+s+""+v+""+(e.printEJS?'':"")+"")}e.innerHTML=`\n \n \n \n \n \n \n \n \n \n \n
${t.escapedAliases.Occupancy} Type${t.escapedAliases.Lot}${t.escapedAliases.OccupancyStartDate}End Date${t.escapedAliases.Occupants}Fees and TransactionsPrint
`,e.querySelector("table").append(L),e.insertAdjacentHTML("beforeend",t.getSearchResultsPagerHTML(s,a.offset,a.count)),null===(v=e.querySelector("button[data-page='previous']"))||void 0===v||v.addEventListener("click",o),null===(g=e.querySelector("button[data-page='next']"))||void 0===g||g.addEventListener("click",r)}function l(){e.innerHTML=t.getLoadingParagraphHTML(`Loading ${t.escapedAliases.Occupancies}...`),cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doSearchLotOccupancies",a,n)}function i(){c.value="0",l()}function o(){c.value=Math.max(Number.parseInt(c.value,10)-s,0).toString(),l()}function r(){c.value=(Number.parseInt(c.value,10)+s).toString(),l()}const d=a.querySelectorAll("input, select");for(const t of d)t.addEventListener("change",i);a.addEventListener("submit",t=>{t.preventDefault()}),l()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const t=exports.los,a=document.querySelector("#form--searchFilters"),e=document.querySelector("#container--searchResults"),s=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),c=document.querySelector("#searchFilter--offset");function n(a){var c,n,l,i,d,p,u,h,y,f,m,v,g;const L=a;if(0===L.lotOccupancies.length)return void(e.innerHTML=`
\n

\n There are no ${t.escapedAliases.occupancy} records that meet the search criteria.\n

\n
`);const b=document.createElement("tbody"),S=cityssm.dateToString(new Date);for(const a of L.lotOccupancies){let e="";e=a.occupancyStartDateString<=S&&(""===a.occupancyEndDateString||a.occupancyEndDateString>=S)?`\n \n `:a.occupancyStartDateString>S?`\n \n `:`\n \n `;let s="";for(const t of a.lotOccupancyOccupants)s+=' '+cityssm.escapeHTML(null!==(l=t.occupantName)&&void 0!==l?l:"")+" "+cityssm.escapeHTML(null!==(i=t.occupantFamilyName)&&void 0!==i?i:"")+"
";const o=(null!==(p=null===(d=a.lotOccupancyFees)||void 0===d?void 0:d.reduce((t,a)=>{var e,s,c;return t+((null!==(e=a.feeAmount)&&void 0!==e?e:0)+(null!==(s=a.taxAmount)&&void 0!==s?s:0))*(null!==(c=a.quantity)&&void 0!==c?c:0)},0))&&void 0!==p?p:0).toFixed(2),r=(null!==(h=null===(u=a.lotOccupancyTransactions)||void 0===u?void 0:u.reduce((t,a)=>t+a.transactionAmount,0))&&void 0!==h?h:0).toFixed(2);let v="";"0.00"===o&&"0.00"===r||(v=`\n \n `),b.insertAdjacentHTML("beforeend",'")}e.innerHTML=`
'+e+''+cityssm.escapeHTML(a.occupancyType)+"
"+`#${a.lotOccupancyId}`+"
"+(-1===(null!==(y=a.lotId)&&void 0!==y?y:-1)?'(No '+t.escapedAliases.Lot+")":''+cityssm.escapeHTML(a.lotName)+"")+'
'+cityssm.escapeHTML(null!==(m=a.mapName)&&void 0!==m?m:"")+"
"+a.occupancyStartDateString+""+(a.occupancyEndDate?a.occupancyEndDateString:'(No End Date)')+""+s+""+v+""+(a.printEJS?'':"")+"
\n \n \n \n \n \n \n \n \n \n \n
${t.escapedAliases.Occupancy} Type${t.escapedAliases.Lot}${t.escapedAliases.OccupancyStartDate}End Date${t.escapedAliases.Occupants}Fees and TransactionsPrint
`,e.querySelector("table").append(b),e.insertAdjacentHTML("beforeend",t.getSearchResultsPagerHTML(s,L.offset,L.count)),null===(v=e.querySelector("button[data-page='previous']"))||void 0===v||v.addEventListener("click",o),null===(g=e.querySelector("button[data-page='next']"))||void 0===g||g.addEventListener("click",r)}function l(){e.innerHTML=t.getLoadingParagraphHTML(`Loading ${t.escapedAliases.Occupancies}...`),cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doSearchLotOccupancies",a,n)}function i(){c.value="0",l()}function o(){c.value=Math.max(Number.parseInt(c.value,10)-s,0).toString(),l()}function r(){c.value=(Number.parseInt(c.value,10)+s).toString(),l()}const d=a.querySelectorAll("input, select");for(const t of d)t.addEventListener("change",i);a.addEventListener("submit",t=>{t.preventDefault()}),l()})(); \ No newline at end of file diff --git a/public/javascripts/workOrderEdit.min.js b/public/javascripts/workOrderEdit.min.js index 7d18da01..fbf32bb2 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;const t=exports.los,o=document.querySelector("#workOrderEdit--workOrderId").value,r=""===o,s=document.querySelector("#form--workOrderEdit");t.initializeDatePickers(s.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field")),t.initializeUnlockFieldButtons(s),s.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/"+(r?"doCreateWorkOrder":"doUpdateWorkOrder"),e.currentTarget,e=>{var o;e.success?(cityssm.disableNavBlocker(),r?window.location.href=t.getWorkOrderURL(e.workOrderId,!0):bulmaJS.alert({message:"Work Order Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order",message:null!==(o=e.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})});const n=s.querySelectorAll("input, select");for(const e of n)e.addEventListener("change",cityssm.enableNavBlocker);function a(){cityssm.postJSON(t.urlPrefix+"/workOrders/doCloseWorkOrder",{workOrderId:o},e=>{var r;e.success?window.location.href=t.getWorkOrderURL(o):bulmaJS.alert({title:"Error Closing Work Order",message:null!==(r=e.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}function l(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrder",{workOrderId:o},e=>{var o;e.success?window.location.href=t.urlPrefix+"/workOrders":bulmaJS.alert({title:"Error Deleting Work Order",message:null!==(o=e.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}let i;if(null===(w=document.querySelector("#button--closeWorkOrder"))||void 0===w||w.addEventListener("click",()=>{i.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:"Are you sure you want to close this work order?",contextualColorName:"info",okButton:{text:"Yes, Close Work Order",callbackFunction:a}})}),null===(c=document.querySelector("#button--deleteWorkOrder"))||void 0===c||c.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:l}})}),!r){var c;Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.workOrderLots;delete exports.workOrderLots;let r=exports.workOrderLotOccupancies;function d(e){const s=e.currentTarget.closest(".container--lotOccupancy").dataset.lotOccupancyId;bulmaJS.confirm({title:`Delete ${t.escapedAliases.Occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${t.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrderLotOccupancy",{workOrderId:o,lotOccupancyId:s},e=>{var t;e.success?(r=e.workOrderLotOccupancies,O()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function u(r,s){cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderLot",{workOrderId:o,lotId:r},o=>{var r;o.success?(e=o.workOrderLots,O()):bulmaJS.alert({title:`Error Adding ${t.escapedAliases.Lot}`,message:null!==(r=o.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"}),s&&s(o.success)})}function m(e){u(e.currentTarget.dataset.lotId)}function p(r){const s=Number.parseInt(r.currentTarget.closest(".container--lot").dataset.lotId,10),n=e.find(e=>e.lotId===s);let a;function l(o){o.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateLotStatus",o.currentTarget,t=>{var o;t.success?(e=t.workOrderLots,O(),a()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(o=t.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lot-editLotStatus",{onshow(e){t.populateAliases(e),e.querySelector("#lotStatusEdit--lotId").value=s.toString(),e.querySelector("#lotStatusEdit--lotName").value=n.lotName;const r=e.querySelector("#lotStatusEdit--lotStatusId");let a=!1;for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,e.lotStatusId===n.lotStatusId&&(a=!0),r.append(t)}if(!a&&n.lotStatusId){const e=document.createElement("option");e.value=n.lotStatusId.toString(),e.textContent=n.lotStatus,r.append(e)}n.lotStatusId&&(r.value=n.lotStatusId.toString()),e.querySelector("form").insertAdjacentHTML("beforeend",``)},onshown(e,t){a=t,bulmaJS.toggleHtmlClipped(),e.querySelector("form").addEventListener("submit",l)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function y(r){const s=r.currentTarget.closest(".container--lot").dataset.lotId;bulmaJS.confirm({title:`Delete ${t.escapedAliases.Occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${t.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrderLot",{workOrderId:o,lotId:s},t=>{var o;t.success?(e=t.workOrderLots,O()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(o=t.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}}})}function O(){!function(){var o,s,n,a;const l=document.querySelector("#container--lotOccupancies");if(document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent=r.length.toString(),0===r.length)return void(l.innerHTML=`
\n

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

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

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

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

There are no records that meet the search criteria.

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

There are no records that meet the search criteria.

'})}cityssm.openHtmlModal("workOrder-addLot",{onshow(n){t.populateAliases(n),e=n.querySelector("form"),r=n.querySelector("#resultsContainer--lotAdd"),n.querySelector("#lotSearch--notWorkOrderId").value=o;const a=n.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)}s()},onshown(t){bulmaJS.toggleHtmlClipped();const o=t.querySelector("#lotSearch--lotName");o.addEventListener("change",s),o.focus(),t.querySelector("#lotSearch--lotStatusId").addEventListener("change",s),e.addEventListener("submit",s)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addLot").focus()}})})}var w;Object.defineProperty(exports,"__esModule",{value:!0});let g=exports.workOrderComments;function k(e){const r=Number.parseInt(e.currentTarget.closest("tr").dataset.workOrderCommentId,10),s=g.find(e=>e.workOrderCommentId===r);let n,a;function l(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateWorkOrderComment",n,e=>{var t;e.success?(g=e.workOrderComments,a(),b()):bulmaJS.alert({title:"Error Updating Comment",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("workOrder-editComment",{onshow(e){e.querySelector("#workOrderCommentEdit--workOrderId").value=o,e.querySelector("#workOrderCommentEdit--workOrderCommentId").value=r.toString(),e.querySelector("#workOrderCommentEdit--workOrderComment").value=s.workOrderComment;const t=e.querySelector("#workOrderCommentEdit--workOrderCommentDateString");t.value=s.workOrderCommentDateString;const n=cityssm.dateToString(new Date);t.max=s.workOrderCommentDateString<=n?n:s.workOrderCommentDateString,e.querySelector("#workOrderCommentEdit--workOrderCommentTimeString").value=s.workOrderCommentTimeString},onshown(e,o){bulmaJS.toggleHtmlClipped(),t.initializeDatePickers(e),e.querySelector("#workOrderCommentEdit--workOrderComment").focus(),(n=e.querySelector("form")).addEventListener("submit",l),a=o},onremoved(){bulmaJS.toggleHtmlClipped()}})}function f(e){const r=Number.parseInt(e.currentTarget.closest("tr").dataset.workOrderCommentId,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(t.urlPrefix+"/workOrders/doDeleteWorkOrderComment",{workOrderId:o,workOrderCommentId:r},e=>{var t;e.success?(g=e.workOrderComments,b()):bulmaJS.alert({title:"Error Removing Comment",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function b(){var e,t;const o=document.querySelector("#container--workOrderComments");if(0===g.length)return void(o.innerHTML='
\n

There are no comments to display.

\n
');const r=document.createElement("table");r.className="table is-fullwidth is-striped is-hoverable",r.innerHTML='\n Commentor\n Comment Date\n Comment\n Options';for(const o of g){const s=document.createElement("tr");s.dataset.workOrderCommentId=o.workOrderCommentId.toString(),s.innerHTML=""+cityssm.escapeHTML(null!==(e=o.recordCreate_userName)&&void 0!==e?e:"")+""+o.workOrderCommentDateString+(0===o.workOrderCommentTime?"":" "+o.workOrderCommentTimeString)+""+cityssm.escapeHTML(null!==(t=o.workOrderComment)&&void 0!==t?t:"")+'
',s.querySelector(".button--edit").addEventListener("click",k),s.querySelector(".button--delete").addEventListener("click",f),r.querySelector("tbody").append(s)}o.innerHTML="",o.append(r)}function v(e){var t;e.success?(i=e.workOrderMilestones,I()):bulmaJS.alert({title:"Error Reopening Milestone",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})}function M(e){e.preventDefault();const r=cityssm.dateToString(new Date),s=Number.parseInt(e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),n=i.find(e=>e.workOrderMilestoneId===s);bulmaJS.confirm({title:"Complete Milestone",message:"Are you sure you want to complete this milestone?"+(""!==n.workOrderMilestoneDateString&&n.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(t.urlPrefix+"/workOrders/doCompleteWorkOrderMilestone",{workOrderId:o,workOrderMilestoneId:s},v)}}})}function L(e){e.preventDefault();const r=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(t.urlPrefix+"/workOrders/doReopenWorkOrderMilestone",{workOrderId:o,workOrderMilestoneId:r},v)}}})}function C(e){e.preventDefault();const r=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(t.urlPrefix+"/workOrders/doDeleteWorkOrderMilestone",{workOrderMilestoneId:r,workOrderId:o},v)}}})}function T(e){e.preventDefault();const r=Number.parseInt(e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),s=i.find(e=>e.workOrderMilestoneId===r);let n;function a(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateWorkOrderMilestone",e.currentTarget,e=>{v(e),e.success&&n()})}cityssm.openHtmlModal("workOrder-editMilestone",{onshow(e){e.querySelector("#milestoneEdit--workOrderId").value=o,e.querySelector("#milestoneEdit--workOrderMilestoneId").value=s.workOrderMilestoneId.toString();const t=e.querySelector("#milestoneEdit--workOrderMilestoneTypeId");let r=!1;for(const e of exports.workOrderMilestoneTypes){const o=document.createElement("option");o.value=e.workOrderMilestoneTypeId.toString(),o.textContent=e.workOrderMilestoneType,e.workOrderMilestoneTypeId===s.workOrderMilestoneTypeId&&(o.selected=!0,r=!0),t.append(o)}if(!r&&s.workOrderMilestoneTypeId){const e=document.createElement("option");e.value=s.workOrderMilestoneTypeId.toString(),e.textContent=s.workOrderMilestoneType,e.selected=!0,t.append(e)}e.querySelector("#milestoneEdit--workOrderMilestoneDateString").value=s.workOrderMilestoneDateString,s.workOrderMilestoneTime&&(e.querySelector("#milestoneEdit--workOrderMilestoneTimeString").value=s.workOrderMilestoneTimeString),e.querySelector("#milestoneEdit--workOrderMilestoneDescription").value=s.workOrderMilestoneDescription},onshown(e,o){n=o,bulmaJS.toggleHtmlClipped(),t.initializeDatePickers(e),e.querySelector("form").addEventListener("submit",a)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function I(){var e,t,o,r,s;const n=document.querySelector("#panel--milestones"),a=n.querySelectorAll(".panel-block");for(const e of a)e.remove();for(const a of i){const l=document.createElement("div");l.className="panel-block is-block container--milestone",l.dataset.workOrderMilestoneId=a.workOrderMilestoneId.toString(),l.innerHTML='
'+(a.workOrderMilestoneCompletionDate?'':'')+'
'+(a.workOrderMilestoneTypeId?""+cityssm.escapeHTML(null!==(e=a.workOrderMilestoneType)&&void 0!==e?e:"")+"
":"")+(0===a.workOrderMilestoneDate?'(No Set Date)':a.workOrderMilestoneDateString)+(a.workOrderMilestoneTime?" "+a.workOrderMilestoneTimeString:"")+'
'+cityssm.escapeHTML(null!==(t=a.workOrderMilestoneDescription)&&void 0!==t?t:"")+'
',null===(o=l.querySelector(".button--reopenMilestone"))||void 0===o||o.addEventListener("click",L),null===(r=l.querySelector(".button--editMilestone"))||void 0===r||r.addEventListener("click",T),null===(s=l.querySelector(".button--completeMilestone"))||void 0===s||s.addEventListener("click",M),l.querySelector(".button--deleteMilestone").addEventListener("click",C),n.append(l)}bulmaJS.init(n)}delete exports.workOrderComments,null===(w=document.querySelector("#workOrderComments--add"))||void 0===w||w.addEventListener("click",function(){let e;function r(o){o.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderComment",o.currentTarget,t=>{t.success&&(g=t.workOrderComments,b(),e())})}cityssm.openHtmlModal("workOrder-addComment",{onshow(e){t.populateAliases(e),e.querySelector("#workOrderCommentAdd--workOrderId").value=o,e.querySelector("form").addEventListener("submit",r)},onshown(t,o){bulmaJS.toggleHtmlClipped(),e=o,t.querySelector("#workOrderCommentAdd--workOrderComment").focus()},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#workOrderComments--add").focus()}})}),r||b(),r||(i=exports.workOrderMilestones,delete exports.workOrderMilestones,I(),null===(e=document.querySelector("#button--addMilestone"))||void 0===e||e.addEventListener("click",()=>{let e,r,s;function n(o){o&&o.preventDefault();const n=cityssm.dateToString(new Date);function a(){cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderMilestone",r,e=>{v(e),e.success&&s()})}const l=e.querySelector("#milestoneAdd--workOrderMilestoneDateString").value;""!==l&&l{var e;const t=exports.los,o=document.querySelector("#workOrderEdit--workOrderId").value,r=""===o,s=document.querySelector("#form--workOrderEdit");t.initializeDatePickers(s.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field")),t.initializeUnlockFieldButtons(s),s.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/"+(r?"doCreateWorkOrder":"doUpdateWorkOrder"),e.currentTarget,e=>{var o;e.success?(cityssm.disableNavBlocker(),r?window.location.href=t.getWorkOrderURL(e.workOrderId,!0):bulmaJS.alert({message:"Work Order Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order",message:null!==(o=e.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})});const n=s.querySelectorAll("input, select");for(const e of n)e.addEventListener("change",cityssm.enableNavBlocker);function a(){cityssm.postJSON(t.urlPrefix+"/workOrders/doCloseWorkOrder",{workOrderId:o},e=>{var r;e.success?window.location.href=t.getWorkOrderURL(o):bulmaJS.alert({title:"Error Closing Work Order",message:null!==(r=e.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}function l(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrder",{workOrderId:o},e=>{var o;e.success?window.location.href=t.urlPrefix+"/workOrders":bulmaJS.alert({title:"Error Deleting Work Order",message:null!==(o=e.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}let c;if(null===(g=document.querySelector("#button--closeWorkOrder"))||void 0===g||g.addEventListener("click",()=>{c.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:"Are you sure you want to close this work order?",contextualColorName:"info",okButton:{text:"Yes, Close Work Order",callbackFunction:a}})}),null===(i=document.querySelector("#button--deleteWorkOrder"))||void 0===i||i.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:l}})}),!r){var i;Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.workOrderLots;delete exports.workOrderLots;let r=exports.workOrderLotOccupancies;function d(e){const s=e.currentTarget.closest(".container--lotOccupancy").dataset.lotOccupancyId;bulmaJS.confirm({title:`Delete ${t.escapedAliases.Occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${t.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrderLotOccupancy",{workOrderId:o,lotOccupancyId:s},e=>{var t;const o=e;o.success?(r=o.workOrderLotOccupancies,O()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function u(r,s){cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderLot",{workOrderId:o,lotId:r},o=>{var r;const n=o;n.success?(e=n.workOrderLots,O()):bulmaJS.alert({title:`Error Adding ${t.escapedAliases.Lot}`,message:null!==(r=n.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"}),void 0!==s&&s(n.success)})}function m(e){u(e.currentTarget.dataset.lotId)}function p(r){const s=Number.parseInt(r.currentTarget.closest(".container--lot").dataset.lotId,10),n=e.find(e=>e.lotId===s);let a;function l(o){o.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateLotStatus",o.currentTarget,t=>{var o;const r=t;r.success?(e=r.workOrderLots,O(),a()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(o=r.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lot-editLotStatus",{onshow(e){t.populateAliases(e),e.querySelector("#lotStatusEdit--lotId").value=s.toString(),e.querySelector("#lotStatusEdit--lotName").value=n.lotName;const r=e.querySelector("#lotStatusEdit--lotStatusId");let a=!1;for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,e.lotStatusId===n.lotStatusId&&(a=!0),r.append(t)}if(!a&&n.lotStatusId){const e=document.createElement("option");e.value=n.lotStatusId.toString(),e.textContent=n.lotStatus,r.append(e)}n.lotStatusId&&(r.value=n.lotStatusId.toString()),e.querySelector("form").insertAdjacentHTML("beforeend",``)},onshown(e,t){a=t,bulmaJS.toggleHtmlClipped(),e.querySelector("form").addEventListener("submit",l)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function y(r){const s=r.currentTarget.closest(".container--lot").dataset.lotId;bulmaJS.confirm({title:`Delete ${t.escapedAliases.Occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${t.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrderLot",{workOrderId:o,lotId:s},t=>{var o;const r=t;r.success?(e=r.workOrderLots,O()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(o=r.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}}})}function O(){!function(){var o,s,n,a;const l=document.querySelector("#container--lotOccupancies");if(document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent=r.length.toString(),0===r.length)return void(l.innerHTML=`
\n

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

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

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

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

There are no records that meet the search criteria.

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

There are no records that meet the search criteria.

'})}cityssm.openHtmlModal("workOrder-addLot",{onshow(n){t.populateAliases(n),e=n.querySelector("form"),r=n.querySelector("#resultsContainer--lotAdd"),n.querySelector("#lotSearch--notWorkOrderId").value=o;const a=n.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)}s()},onshown(t){bulmaJS.toggleHtmlClipped();const o=t.querySelector("#lotSearch--lotName");o.addEventListener("change",s),o.focus(),t.querySelector("#lotSearch--lotStatusId").addEventListener("change",s),e.addEventListener("submit",s)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addLot").focus()}})})}var g;Object.defineProperty(exports,"__esModule",{value:!0});let w=exports.workOrderComments;function k(e){const r=Number.parseInt(e.currentTarget.closest("tr").dataset.workOrderCommentId,10),s=w.find(e=>e.workOrderCommentId===r);let n,a;function l(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateWorkOrderComment",n,e=>{var t;e.success?(w=e.workOrderComments,a(),b()):bulmaJS.alert({title:"Error Updating Comment",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("workOrder-editComment",{onshow(e){e.querySelector("#workOrderCommentEdit--workOrderId").value=o,e.querySelector("#workOrderCommentEdit--workOrderCommentId").value=r.toString(),e.querySelector("#workOrderCommentEdit--workOrderComment").value=s.workOrderComment;const t=e.querySelector("#workOrderCommentEdit--workOrderCommentDateString");t.value=s.workOrderCommentDateString;const n=cityssm.dateToString(new Date);t.max=s.workOrderCommentDateString<=n?n:s.workOrderCommentDateString,e.querySelector("#workOrderCommentEdit--workOrderCommentTimeString").value=s.workOrderCommentTimeString},onshown(e,o){bulmaJS.toggleHtmlClipped(),t.initializeDatePickers(e),e.querySelector("#workOrderCommentEdit--workOrderComment").focus(),(n=e.querySelector("form")).addEventListener("submit",l),a=o},onremoved(){bulmaJS.toggleHtmlClipped()}})}function f(e){const r=Number.parseInt(e.currentTarget.closest("tr").dataset.workOrderCommentId,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(t.urlPrefix+"/workOrders/doDeleteWorkOrderComment",{workOrderId:o,workOrderCommentId:r},e=>{var t;e.success?(w=e.workOrderComments,b()):bulmaJS.alert({title:"Error Removing Comment",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function b(){var e,t;const o=document.querySelector("#container--workOrderComments");if(0===w.length)return void(o.innerHTML='
\n

There are no comments to display.

\n
');const r=document.createElement("table");r.className="table is-fullwidth is-striped is-hoverable",r.innerHTML='\n Commentor\n Comment Date\n Comment\n Options';for(const o of w){const s=document.createElement("tr");s.dataset.workOrderCommentId=o.workOrderCommentId.toString(),s.innerHTML=""+cityssm.escapeHTML(null!==(e=o.recordCreate_userName)&&void 0!==e?e:"")+""+o.workOrderCommentDateString+(0===o.workOrderCommentTime?"":" "+o.workOrderCommentTimeString)+""+cityssm.escapeHTML(null!==(t=o.workOrderComment)&&void 0!==t?t:"")+'
',s.querySelector(".button--edit").addEventListener("click",k),s.querySelector(".button--delete").addEventListener("click",f),r.querySelector("tbody").append(s)}o.innerHTML="",o.append(r)}function v(e){var t;e.success?(c=e.workOrderMilestones,I()):bulmaJS.alert({title:"Error Reopening Milestone",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})}function M(e){e.preventDefault();const r=cityssm.dateToString(new Date),s=Number.parseInt(e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),n=c.find(e=>e.workOrderMilestoneId===s);bulmaJS.confirm({title:"Complete Milestone",message:"Are you sure you want to complete this milestone?"+(""!==n.workOrderMilestoneDateString&&n.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(t.urlPrefix+"/workOrders/doCompleteWorkOrderMilestone",{workOrderId:o,workOrderMilestoneId:s},v)}}})}function L(e){e.preventDefault();const r=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(t.urlPrefix+"/workOrders/doReopenWorkOrderMilestone",{workOrderId:o,workOrderMilestoneId:r},v)}}})}function C(e){e.preventDefault();const r=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(t.urlPrefix+"/workOrders/doDeleteWorkOrderMilestone",{workOrderMilestoneId:r,workOrderId:o},v)}}})}function T(e){e.preventDefault();const r=Number.parseInt(e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),s=c.find(e=>e.workOrderMilestoneId===r);let n;function a(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateWorkOrderMilestone",e.currentTarget,e=>{v(e),e.success&&n()})}cityssm.openHtmlModal("workOrder-editMilestone",{onshow(e){e.querySelector("#milestoneEdit--workOrderId").value=o,e.querySelector("#milestoneEdit--workOrderMilestoneId").value=s.workOrderMilestoneId.toString();const t=e.querySelector("#milestoneEdit--workOrderMilestoneTypeId");let r=!1;for(const e of exports.workOrderMilestoneTypes){const o=document.createElement("option");o.value=e.workOrderMilestoneTypeId.toString(),o.textContent=e.workOrderMilestoneType,e.workOrderMilestoneTypeId===s.workOrderMilestoneTypeId&&(o.selected=!0,r=!0),t.append(o)}if(!r&&s.workOrderMilestoneTypeId){const e=document.createElement("option");e.value=s.workOrderMilestoneTypeId.toString(),e.textContent=s.workOrderMilestoneType,e.selected=!0,t.append(e)}e.querySelector("#milestoneEdit--workOrderMilestoneDateString").value=s.workOrderMilestoneDateString,s.workOrderMilestoneTime&&(e.querySelector("#milestoneEdit--workOrderMilestoneTimeString").value=s.workOrderMilestoneTimeString),e.querySelector("#milestoneEdit--workOrderMilestoneDescription").value=s.workOrderMilestoneDescription},onshown(e,o){n=o,bulmaJS.toggleHtmlClipped(),t.initializeDatePickers(e),e.querySelector("form").addEventListener("submit",a)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function I(){var e,t,o,r,s;const n=document.querySelector("#panel--milestones"),a=n.querySelectorAll(".panel-block");for(const e of a)e.remove();for(const a of c){const l=document.createElement("div");l.className="panel-block is-block container--milestone",l.dataset.workOrderMilestoneId=a.workOrderMilestoneId.toString(),l.innerHTML='
'+(a.workOrderMilestoneCompletionDate?'':'')+'
'+(a.workOrderMilestoneTypeId?""+cityssm.escapeHTML(null!==(e=a.workOrderMilestoneType)&&void 0!==e?e:"")+"
":"")+(0===a.workOrderMilestoneDate?'(No Set Date)':a.workOrderMilestoneDateString)+(a.workOrderMilestoneTime?" "+a.workOrderMilestoneTimeString:"")+'
'+cityssm.escapeHTML(null!==(t=a.workOrderMilestoneDescription)&&void 0!==t?t:"")+'
',null===(o=l.querySelector(".button--reopenMilestone"))||void 0===o||o.addEventListener("click",L),null===(r=l.querySelector(".button--editMilestone"))||void 0===r||r.addEventListener("click",T),null===(s=l.querySelector(".button--completeMilestone"))||void 0===s||s.addEventListener("click",M),l.querySelector(".button--deleteMilestone").addEventListener("click",C),n.append(l)}bulmaJS.init(n)}delete exports.workOrderComments,null===(g=document.querySelector("#workOrderComments--add"))||void 0===g||g.addEventListener("click",function(){let e;function r(o){o.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderComment",o.currentTarget,t=>{t.success&&(w=t.workOrderComments,b(),e())})}cityssm.openHtmlModal("workOrder-addComment",{onshow(e){t.populateAliases(e),e.querySelector("#workOrderCommentAdd--workOrderId").value=o,e.querySelector("form").addEventListener("submit",r)},onshown(t,o){bulmaJS.toggleHtmlClipped(),e=o,t.querySelector("#workOrderCommentAdd--workOrderComment").focus()},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#workOrderComments--add").focus()}})}),r||b(),r||(c=exports.workOrderMilestones,delete exports.workOrderMilestones,I(),null===(e=document.querySelector("#button--addMilestone"))||void 0===e||e.addEventListener("click",()=>{let e,r,s;function n(o){o&&o.preventDefault();const n=cityssm.dateToString(new Date);function a(){cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderMilestone",r,e=>{v(e),e.success&&s()})}const l=e.querySelector("#milestoneAdd--workOrderMilestoneDateString").value;""!==l&&l
  • Home
  • - - - <%= configFunctions.getProperty("aliases.lots") %> - + + + <%= configFunctions.getProperty("aliases.lots") %> +
  • <% if (!isCreate) { %> -
  • - - <%= lot.lotName %> - -
  • +
  • + + <%= lot.lotName %> + +
  • <% } %>
  • - - <% if (isCreate) { %> - Create a New <%= configFunctions.getProperty("aliases.lot") %> - <% } else { %> - Update <%= configFunctions.getProperty("aliases.lot") %> - <% } %> - + + <% if (isCreate) { %> + Create a New <%= configFunctions.getProperty("aliases.lot") %> + <% } else { %> + Update <%= configFunctions.getProperty("aliases.lot") %> + <% } %> +
  • @@ -49,20 +49,20 @@ @@ -71,8 +71,8 @@
    @@ -81,265 +81,263 @@
    - " /> + " /> -
    -
    -
    -
    -
    - -
    - - pattern="<%= configFunctions.getProperty("settings.lot.lotNamePattern").source %>" - <% } %> - maxlength="100" - required - accesskey="f" - <%= (isCreate ? " autofocus" : "") %> /> -
    - <% if (configFunctions.getProperty("settings.lot.lotNameHelpText")) { %> -

    - <%- configFunctions.getProperty("settings.lot.lotNameHelpText").replace(/\n/g, "
    ") %> -

    - <% } %> +
    +
    +
    +
    +
    + +
    + + pattern="<%= configFunctions.getProperty("settings.lot.lotNamePattern").source %>" + <% } %> + maxlength="100" + required + accesskey="f" + <%= (isCreate ? " autofocus" : "") %> /> +
    + <% if (configFunctions.getProperty("settings.lot.lotNameHelpText")) { %> +

    + <%- configFunctions.getProperty("settings.lot.lotNameHelpText").replace(/\n/g, "
    ") %> +

    + <% } %> +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + <% if (isCreate) { %> +
    +

    + Select the <%= configFunctions.getProperty("aliases.lot").toLowerCase() %> type to load the available fields. +

    +
    + <% } else if (lot.lotFields.length === 0) { %> +
    +

    + The current <%= configFunctions.getProperty("aliases.lot").toLowerCase() %> type has no additional fields. +

    +
    + <% } else { %> + <% let lotTypeFieldIds = ""; %> + <% for (const lotField of lot.lotFields) { %> + <% lotTypeFieldIds += "," + lotField.lotTypeFieldId; %> +
    + +
    + <% if (!lotField.lotTypeFieldValues || lotField.lotTypeFieldValues === "") { %> + + pattern="<%= lotField.pattern %>" + <% } %> + minlength="<%= lotField.minimumLength %>" + maxlength="<%= lotField.maximumLength %>" + <%= lotField.isRequired ? " required" : "" %> /> + <% } else { %> + <% + const fieldValues = lotField.lotTypeFieldValues.split("\n"); + let valueFound = false; + %> +
    + +
    + <% } %> +
    +
    + <% } %> + + <% } %> +
    +
    +
    +
    +
    + +
    +
    +
    +

    Geographic Location

    +
    +
    + +
    +
    -
    - -
    -
    -
    - -
    -
    -
    - -
    -
    - -
    -
    -
    - -
    -
    -
    -
    -
    -
    - <% if (isCreate) { %> -
    -

    - Select the <%= configFunctions.getProperty("aliases.lot").toLowerCase() %> type to load the available fields. -

    -
    - <% } else if (lot.lotFields.length === 0) { %> -
    -

    - The current <%= configFunctions.getProperty("aliases.lot").toLowerCase() %> type has no additional fields. -

    -
    - <% } else { %> - <% let lotTypeFieldIds = ""; %> - <% for (const lotField of lot.lotFields) { %> - <% lotTypeFieldIds += "," + lotField.lotTypeFieldId; %> -
    - -
    - <% if (!lotField.lotTypeFieldValues || lotField.lotTypeFieldValues === "") { %> - - pattern="<%= lotField.pattern %>" - <% } %> - minlength="<%= lotField.minimumLength %>" - maxlength="<%= lotField.maximumLength %>" - <%= lotField.isRequired ? " required" : "" %> /> - <% } else { %> - <% - const fieldValues = lotField.lotTypeFieldValues.split("\n"); - let valueFound = false; - %> -
    - -
    - <% } %> -
    -
    - <% } %> - - <% } %> +
    + +
    +
    - -
    -
    -
    -

    Geographic Location

    -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    -
    -
    -
    -
    -
    -

    Image

    -
    - -
    -
    -
    - -
    -
    -
    - -
    -
    - -
    - -
    - -
    -

    - - - What is the SVG ID? - -

    -
    -
    -
    -
    +
    +
    +

    Image

    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    + +
    + +
    + +
    +

    + + + What is the SVG ID? + +

    +
    +
    +
    - - +
    <% if (isCreate) { %> @@ -350,26 +348,26 @@
    <% } else { %>
    -
    -
    -
    -
    -

    - Comments -

    -
    -
    -
    -
    - -
    -
    -
    -
    -
    +
    +
    +
    +
    +

    + Comments +

    +
    +
    +
    +
    + +
    +
    +
    +
    +
    @@ -395,44 +393,50 @@
    <% if (lot.lotOccupancies.length === 0) { %> -
    -

    There are no <%= configFunctions.getProperty("aliases.occupancy").toLowerCase() %> records asscociated with this <%= configFunctions.getProperty("aliases.lot") %>.

    -
    +
    +

    + There are no <%= configFunctions.getProperty("aliases.occupancy").toLowerCase() %> records + asscociated with this <%= configFunctions.getProperty("aliases.lot") %>. +

    +
    <% } else { %> - +
    - + - + - <% const currentDate = dateTimeFunctions.dateToInteger(new Date()); %> - <% for (const lotOccupancy of lot.lotOccupancies) { %> + <% const currentDate = dateTimeFunctions.dateToInteger(new Date()); %> + <% for (const lotOccupancy of lot.lotOccupancies) { %> <% const isActive = !(lotOccupancy.occupancyEndDate && lotOccupancy.occupancyEndDate < currentDate); %> - <% } %> + <% } %> -
      <%= configFunctions.getProperty("aliases.occupancy") %> Type <%= configFunctions.getProperty("aliases.occupancyStartDate") %> End Date <%= configFunctions.getProperty("aliases.occupants") %>
    - <% if (isActive) { %> - "> - <% } else { %> - "> - <% } %> + <% if (isActive) { %> + "> + <% } else { %> + "> + <% } %> - - <%= lotOccupancy.occupancyType %> - + + <%= lotOccupancy.occupancyType %> +
    + + #<%= lotOccupancy.lotOccupancyId %> +
    <%= lotOccupancy.occupancyStartDateString %> - <% if (lotOccupancy.occupancyEndDate) { %> + <% if (lotOccupancy.occupancyEndDate) { %> <%= lotOccupancy.occupancyEndDateString %> - <% } else { %> - (No End Date) - <% } %> + <% } else { %> + (No End Date) + <% } %> <% if (lotOccupancy.lotOccupancyOccupants.length === 0) { %> @@ -447,9 +451,9 @@ <% } %>
    + <% } %>
    diff --git a/views/lot-view.ejs b/views/lot-view.ejs index b5955d90..49a3f761 100644 --- a/views/lot-view.ejs +++ b/views/lot-view.ejs @@ -30,29 +30,29 @@
    +
    +
    +
    +
    +
    +

    + <%= configFunctions.getProperty("aliases.map") %>
    + + <%= lot.mapName || "(No Name)" %> + +

    +

    + <%= configFunctions.getProperty("aliases.lot") %> Type
    + <%= lot.lotType %> +

    +

    + Status
    + <%= lot.lotStatus %> +

    +
    + <% if (lot.lotFields.length > 0) { %> +
    + <% for (const lotField of lot.lotFields) { %> +

    + <%= lotField.lotTypeField %>
    + <% if (lotField.lotFieldValue) { %> + <%= lotField.lotFieldValue %> + <% } else { %> + (No Value) + <% } %> +

    + <% } %> +
    + <% } %> +
    +
    +
    +
    + <% if (lot.mapSVG) { %>
    -
    -
    -
    -
    -

    - <%= configFunctions.getProperty("aliases.map") %>
    - - <%= lot.mapName || "(No Name)" %> - -

    -

    - <%= configFunctions.getProperty("aliases.lot") %> Type
    - <%= lot.lotType %> -

    -

    - Status
    - <%= lot.lotStatus %> -

    -
    - <% if (lot.lotFields.length > 0) { %> -
    - <% for (const lotField of lot.lotFields) { %> -

    - <%= lotField.lotTypeField %>
    - <% if (lotField.lotFieldValue) { %> - <%= lotField.lotFieldValue %> - <% } else { %> - (No Value) - <% } %> -

    - <% } %> -
    - <% } %> -
    -
    -
    +
    +

    Image

    +
    + <% const imageURL = urlPrefix + "/images/maps/" + lot.mapSVG %> +
    + <%- include('../public/images/maps/' + lot.mapSVG); -%> +
    +
    +
    - <% if (lot.mapSVG) { %> -
    -
    -

    Image

    -
    - <% const imageURL = urlPrefix + "/images/maps/" + lot.mapSVG %> -
    - <%- include('../public/images/maps/' + lot.mapSVG); -%> -
    -
    -
    -
    - <% } %> + <% } %>
    <% if (lot.lotComments.length > 0) { %> -
    -

    Comments

    -
    - - - - - - - - - - <% for (const lotComment of lot.lotComments) { %> - - - - - - <% } %> - -
    CommentorComment DateComment
    <%= lotComment.recordCreate_userName %> - <%= lotComment.lotCommentDateString %> - <%= (lotComment.lotCommentTime === 0 ? "" : lotComment.lotCommentTimeString) %> - <%= lotComment.lotComment %>
    -
    -
    +
    +

    Comments

    +
    + + + + + + + + + + <% for (const lotComment of lot.lotComments) { %> + + + + + + <% } %> + +
    CommentorComment DateComment
    <%= lotComment.recordCreate_userName %> + <%= lotComment.lotCommentDateString %> + <%= (lotComment.lotCommentTime === 0 ? "" : lotComment.lotCommentTimeString) %> + <%= lotComment.lotComment %>
    +
    +
    <% } %>
    -

    - <%= configFunctions.getProperty("aliases.occupancies") %> - <%= lot.lotOccupancies.length %> -

    -
    - <% if (lot.lotOccupancies.length === 0) { %> -
    -

    There are no occupancy records asscociated with this - <%= configFunctions.getProperty("aliases.lot") %>.

    -
    - <% } else { %> - - - - - - - - - - - - <% const currentDate = dateTimeFunctions.dateToInteger(new Date()); %> - <% for (const lotOccupancy of lot.lotOccupancies) { %> - <% const isActive = !(lotOccupancy.occupancyEndDate && lotOccupancy.occupancyEndDate < currentDate); %> - - - - - - - - <% } %> - -
     <%= configFunctions.getProperty("aliases.occupancy") %> Type<%= configFunctions.getProperty("aliases.occupancyStartDate") %>End Date<%= configFunctions.getProperty("aliases.occupants") %>
    - <% if (isActive) { %> - "> - <% } else { %> - "> - <% } %> - - - <%= lotOccupancy.occupancyType %> - - <%= lotOccupancy.occupancyStartDateString %> - <% if (lotOccupancy.occupancyEndDate) { %> - <%= lotOccupancy.occupancyEndDateString %> - <% } else { %> - (No End Date) - <% } %> - - <% if (lotOccupancy.lotOccupancyOccupants.length === 0) { %> - (No <%= configFunctions.getProperty("aliases.occupants") %>) - <% } else { %> - <% for (const occupant of lotOccupancy.lotOccupancyOccupants) { %> - - - <%= occupant.occupantName + ' ' + occupant.occupantFamilyName %> -
    - <% } %> - <% } %> -
    - <% } %> -
    +

    + <%= configFunctions.getProperty("aliases.occupancies") %> + <%= lot.lotOccupancies.length %> +

    +
    + <% if (lot.lotOccupancies.length === 0) { %> +
    +

    + There are no occupancy records asscociated with this + <%= configFunctions.getProperty("aliases.lot") %>. +

    +
    + <% } else { %> + + + + + + + + + + + + <% const currentDate = dateTimeFunctions.dateToInteger(new Date()); %> + <% for (const lotOccupancy of lot.lotOccupancies) { %> + <% const isActive = !(lotOccupancy.occupancyEndDate && lotOccupancy.occupancyEndDate < currentDate); %> + + + + + + + + <% } %> + +
     <%= configFunctions.getProperty("aliases.occupancy") %> Type<%= configFunctions.getProperty("aliases.occupancyStartDate") %>End Date<%= configFunctions.getProperty("aliases.occupants") %>
    + <% if (isActive) { %> + "> + <% } else { %> + "> + <% } %> + + + <%= lotOccupancy.occupancyType %> +
    + #<%= lotOccupancy.lotOccupancyId %> +
    <%= lotOccupancy.occupancyStartDateString %> + <% if (lotOccupancy.occupancyEndDate) { %> + <%= lotOccupancy.occupancyEndDateString %> + <% } else { %> + (No End Date) + <% } %> + + <% if (lotOccupancy.lotOccupancyOccupants.length === 0) { %> + (No <%= configFunctions.getProperty("aliases.occupants") %>) + <% } else { %> + <% for (const occupant of lotOccupancy.lotOccupancyOccupants) { %> + + + <%= occupant.occupantName + ' ' + occupant.occupantFamilyName %> +
    + <% } %> + <% } %> +
    + <% } %> +
    <%- include('_footerA'); -%> diff --git a/views/workOrder-view.ejs b/views/workOrder-view.ejs index aabfc8b5..dcd8a244 100644 --- a/views/workOrder-view.ejs +++ b/views/workOrder-view.ejs @@ -89,34 +89,36 @@
    -
    -

    - Work Order Type
    - <%= workOrder.workOrderType %> -

    -

    - Description
    - <% if (workOrder.workOrderDescription) { %> - <%= workOrder.workOrderDescription %> - <% } else { %> - (No Description) - <% } %> -

    -
    -
    -

    - <%= configFunctions.getProperty("aliases.workOrderOpenDate") %>
    - <%= workOrder.workOrderOpenDateString %> -

    -

    - <%= configFunctions.getProperty("aliases.workOrderCloseDate") %>
    - <% if (workOrder.workOrderCloseDate) { %> - <%= workOrder.workOrderCloseDateString %> - <% } else { %> - (No <%= configFunctions.getProperty("aliases.workOrderCloseDate") %>) - <% } %> -

    -
    +
    +

    + Work Order Type
    + <%= workOrder.workOrderType %> +

    +

    + Description
    + <% if (workOrder.workOrderDescription) { %> + <%= workOrder.workOrderDescription %> + <% } else { %> + (No Description) + <% } %> +

    +
    +
    +

    + <%= configFunctions.getProperty("aliases.workOrderOpenDate") %>
    + <%= workOrder.workOrderOpenDateString %> +

    +

    + <%= configFunctions.getProperty("aliases.workOrderCloseDate") %>
    + <% if (workOrder.workOrderCloseDate) { %> + <%= workOrder.workOrderCloseDateString %> + <% } else { %> + + (No <%= configFunctions.getProperty("aliases.workOrderCloseDate") %>) + + <% } %> +

    +
    @@ -129,18 +131,18 @@ %>
    @@ -179,10 +181,13 @@ <% } %> - - <%= lotOccupancy.occupancyType %> - + + <%= lotOccupancy.occupancyType %> +
    + + #<%= lotOccupancy.lotOccupancyId %> + <% if (lotOccupancy.lotId) { %>