development and polish
- include lot occupant type with occupants - update @cityssm/expressjs-server-js to fix date issue - reduce node restarts during developmentdeepsource-autofix-76c6eb20
parent
6637929eab
commit
ca028fbacf
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"mapName": "Holy Sepulchre",
|
||||
"mapName": "Holy Sepulchre (Test)",
|
||||
"mapDescription": "Operated by the City of Sault Ste. Marie" ,
|
||||
"mapAddress1": "Fourth Line and Peoples Road",
|
||||
"mapAddress2": "27 Fourth Line East",
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ export const handler = (request, response) => {
|
|||
"</td>" +
|
||||
"<td>";
|
||||
for (const occupant of occupancy.lotOccupancyOccupants) {
|
||||
descriptionHTML += escapeHTML(occupant.occupantName) + "<br />";
|
||||
descriptionHTML += escapeHTML(occupant.lotOccupantType) + ": " + escapeHTML(occupant.occupantName) + "<br />";
|
||||
}
|
||||
descriptionHTML += "</td>" + "</tr>";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ export const handler: RequestHandler = (request, response) => {
|
|||
"<td>";
|
||||
|
||||
for (const occupant of occupancy.lotOccupancyOccupants) {
|
||||
descriptionHTML += escapeHTML(occupant.occupantName) + "<br />";
|
||||
descriptionHTML += escapeHTML(occupant.lotOccupantType) + ": " + escapeHTML(occupant.occupantName) + "<br />";
|
||||
}
|
||||
|
||||
descriptionHTML += "</td>" + "</tr>";
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
{
|
||||
"ignore": ["data/sessions/*"]
|
||||
"ignore": ["data/sessions/*", "public/javascripts/*", "public-typescript/*"]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
"@cityssm/bulma-js": "^0.3.3",
|
||||
"@cityssm/bulma-webapp-js": "^1.5.0",
|
||||
"@cityssm/date-diff": "^2.2.3",
|
||||
"@cityssm/expressjs-server-js": "^2.3.2",
|
||||
"@cityssm/expressjs-server-js": "^2.3.3",
|
||||
"@fortawesome/fontawesome-free": "^5.15.4",
|
||||
"@types/randomcolor": "^0.5.6",
|
||||
"activedirectory2": "^2.1.0",
|
||||
|
|
@ -577,14 +577,14 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@cityssm/expressjs-server-js": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/@cityssm/expressjs-server-js/-/expressjs-server-js-2.3.2.tgz",
|
||||
"integrity": "sha512-kUE7wZtLPmG4ht0byWME96J5uCzyfx7J8s4uWf2BIyv6Cic+rzGv+UGZhPEHJ9w0M0XgpXrw1kU1MICk8412Pg==",
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/@cityssm/expressjs-server-js/-/expressjs-server-js-2.3.3.tgz",
|
||||
"integrity": "sha512-ZkWaVkeZ/w27JxIj0GaWJ+iOgyHhX7gULO6pk+aCZuDBHcv0jaoloP+y6YD3HrYtGQH/cLasPks9jyKuQPD0/g==",
|
||||
"dependencies": {
|
||||
"@cityssm/date-diff": "^2.2.3",
|
||||
"@cityssm/simple-password-generator": "^2.1.1",
|
||||
"@cityssm/simple-password-generator": "^2.1.2",
|
||||
"convert-array-to-csv": "^2.0.0",
|
||||
"libphonenumber-js": "^1.9.52"
|
||||
"libphonenumber-js": "^1.10.13"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
|
||||
|
|
@ -7485,9 +7485,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/libphonenumber-js": {
|
||||
"version": "1.10.7",
|
||||
"resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.7.tgz",
|
||||
"integrity": "sha512-jZXLCCWMe1b/HXkjiLeYt2JsytZMcqH26jLFIdzFDFF0xvSUWrYKyvPlyPG+XJzEyKUFbcZxLdWGMwQsWaHDxQ=="
|
||||
"version": "1.10.13",
|
||||
"resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.13.tgz",
|
||||
"integrity": "sha512-b74iyWmwb4GprAUPjPkJ11GTC7KX4Pd3onpJfKxYyY8y9Rbb4ERY47LvCMEDM09WD3thiLDMXtkfDK/AX+zT7Q=="
|
||||
},
|
||||
"node_modules/liftoff": {
|
||||
"version": "3.1.0",
|
||||
|
|
@ -12599,14 +12599,14 @@
|
|||
"integrity": "sha512-GmRXmBQxBPnt/oJ4V7iM1UszRzv/NjvfZDqVB0NdVZ8Mw+udT7G8+VZuo8pLBmiSMcijNYvJ/hV0AW2Vi5nDJA=="
|
||||
},
|
||||
"@cityssm/expressjs-server-js": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/@cityssm/expressjs-server-js/-/expressjs-server-js-2.3.2.tgz",
|
||||
"integrity": "sha512-kUE7wZtLPmG4ht0byWME96J5uCzyfx7J8s4uWf2BIyv6Cic+rzGv+UGZhPEHJ9w0M0XgpXrw1kU1MICk8412Pg==",
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/@cityssm/expressjs-server-js/-/expressjs-server-js-2.3.3.tgz",
|
||||
"integrity": "sha512-ZkWaVkeZ/w27JxIj0GaWJ+iOgyHhX7gULO6pk+aCZuDBHcv0jaoloP+y6YD3HrYtGQH/cLasPks9jyKuQPD0/g==",
|
||||
"requires": {
|
||||
"@cityssm/date-diff": "^2.2.3",
|
||||
"@cityssm/simple-password-generator": "^2.1.1",
|
||||
"@cityssm/simple-password-generator": "^2.1.2",
|
||||
"convert-array-to-csv": "^2.0.0",
|
||||
"libphonenumber-js": "^1.9.52"
|
||||
"libphonenumber-js": "^1.10.13"
|
||||
}
|
||||
},
|
||||
"@cityssm/mssql-multi-pool": {
|
||||
|
|
@ -17954,9 +17954,9 @@
|
|||
}
|
||||
},
|
||||
"libphonenumber-js": {
|
||||
"version": "1.10.7",
|
||||
"resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.7.tgz",
|
||||
"integrity": "sha512-jZXLCCWMe1b/HXkjiLeYt2JsytZMcqH26jLFIdzFDFF0xvSUWrYKyvPlyPG+XJzEyKUFbcZxLdWGMwQsWaHDxQ=="
|
||||
"version": "1.10.13",
|
||||
"resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.13.tgz",
|
||||
"integrity": "sha512-b74iyWmwb4GprAUPjPkJ11GTC7KX4Pd3onpJfKxYyY8y9Rbb4ERY47LvCMEDM09WD3thiLDMXtkfDK/AX+zT7Q=="
|
||||
},
|
||||
"liftoff": {
|
||||
"version": "3.1.0",
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
"@cityssm/bulma-js": "^0.3.3",
|
||||
"@cityssm/bulma-webapp-js": "^1.5.0",
|
||||
"@cityssm/date-diff": "^2.2.3",
|
||||
"@cityssm/expressjs-server-js": "^2.3.2",
|
||||
"@cityssm/expressjs-server-js": "^2.3.3",
|
||||
"@fortawesome/fontawesome-free": "^5.15.4",
|
||||
"@types/randomcolor": "^0.5.6",
|
||||
"activedirectory2": "^2.1.0",
|
||||
|
|
|
|||
|
|
@ -465,7 +465,6 @@ declare const bulmaJS: BulmaJS;
|
|||
openEditOccupancyTypeField(occupancyTypeId, occupancyTypeFieldId);
|
||||
};
|
||||
|
||||
|
||||
const moveOccupancyTypeFieldUp = (clickEvent: Event) => {
|
||||
clickEvent.preventDefault();
|
||||
|
||||
|
|
@ -502,7 +501,6 @@ declare const bulmaJS: BulmaJS;
|
|||
);
|
||||
};
|
||||
|
||||
|
||||
const renderOccupancyTypeFields = (
|
||||
panelElement: HTMLElement,
|
||||
occupancyTypeId: number | undefined,
|
||||
|
|
|
|||
|
|
@ -240,7 +240,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
return lotOccupancy.lotId === lot.lotId;
|
||||
});
|
||||
rowElement.innerHTML =
|
||||
'<td class="has-text-centered">' +
|
||||
'<td class="is-width-1 has-text-centered">' +
|
||||
(isActive
|
||||
? '<i class="fas fa-play" title="Current ' +
|
||||
cityssm.escapeHTML(exports.aliases.occupancy) +
|
||||
|
|
@ -297,10 +297,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
? '<span class="has-text-grey">(No ' +
|
||||
cityssm.escapeHTML(exports.aliases.occupants) +
|
||||
")</span>"
|
||||
: cityssm.escapeHTML(lotOccupancy.lotOccupancyOccupants[0].occupantName) +
|
||||
: '<span class="has-tooltip-left" data-tooltip="' +
|
||||
cityssm.escapeHTML(lotOccupancy.lotOccupancyOccupants[0].lotOccupantType) +
|
||||
'">' +
|
||||
cityssm.escapeHTML(lotOccupancy.lotOccupancyOccupants[0].occupantName) +
|
||||
"</span>") +
|
||||
(lotOccupancy.lotOccupancyOccupants.length > 1
|
||||
? " plus " + (lotOccupancy.lotOccupancyOccupants.length - 1)
|
||||
: "")) +
|
||||
: "") +
|
||||
"</td>") +
|
||||
("<td>" +
|
||||
'<button class="button is-small is-light is-danger button--deleteLotOccupancy" data-tooltip="Delete Relationship" type="button">' +
|
||||
|
|
@ -462,7 +466,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</td>" +
|
||||
("<td>" + cityssm.escapeHTML(lot.mapName) + "</td>") +
|
||||
("<td>" + cityssm.escapeHTML(lot.lotType) + "</td>") +
|
||||
("<td>" + (lot.lotStatusId ? cityssm.escapeHTML(lot.lotStatus) : "<span class=\"has-text-grey\">(No Status)</span>") + "</td>") +
|
||||
("<td>" +
|
||||
(lot.lotStatusId
|
||||
? cityssm.escapeHTML(lot.lotStatus)
|
||||
: '<span class="has-text-grey">(No Status)</span>') +
|
||||
"</td>") +
|
||||
('<td class="is-nowrap">' +
|
||||
'<button class="button is-small is-light is-info button--editLotStatus" data-tooltip="Update Status" type="button">' +
|
||||
'<i class="fas fa-pencil-alt" aria-hidden="true"></i>' +
|
||||
|
|
|
|||
|
|
@ -336,7 +336,7 @@ declare const bulmaJS: BulmaJS;
|
|||
});
|
||||
|
||||
rowElement.innerHTML =
|
||||
'<td class="has-text-centered">' +
|
||||
'<td class="is-width-1 has-text-centered">' +
|
||||
(isActive
|
||||
? '<i class="fas fa-play" title="Current ' +
|
||||
cityssm.escapeHTML(exports.aliases.occupancy) +
|
||||
|
|
@ -402,12 +402,18 @@ declare const bulmaJS: BulmaJS;
|
|||
? '<span class="has-text-grey">(No ' +
|
||||
cityssm.escapeHTML(exports.aliases.occupants) +
|
||||
")</span>"
|
||||
: cityssm.escapeHTML(
|
||||
: '<span class="has-tooltip-left" data-tooltip="' +
|
||||
cityssm.escapeHTML(
|
||||
lotOccupancy.lotOccupancyOccupants[0].lotOccupantType
|
||||
) +
|
||||
'">' +
|
||||
cityssm.escapeHTML(
|
||||
lotOccupancy.lotOccupancyOccupants[0].occupantName
|
||||
) +
|
||||
"</span>") +
|
||||
(lotOccupancy.lotOccupancyOccupants.length > 1
|
||||
? " plus " + (lotOccupancy.lotOccupancyOccupants.length - 1)
|
||||
: "")) +
|
||||
: "") +
|
||||
"</td>") +
|
||||
("<td>" +
|
||||
'<button class="button is-small is-light is-danger button--deleteLotOccupancy" data-tooltip="Delete Relationship" type="button">' +
|
||||
|
|
@ -635,7 +641,11 @@ declare const bulmaJS: BulmaJS;
|
|||
"</td>" +
|
||||
("<td>" + cityssm.escapeHTML(lot.mapName) + "</td>") +
|
||||
("<td>" + cityssm.escapeHTML(lot.lotType) + "</td>") +
|
||||
("<td>" + (lot.lotStatusId ? cityssm.escapeHTML(lot.lotStatus) : "<span class=\"has-text-grey\">(No Status)</span>") + "</td>") +
|
||||
("<td>" +
|
||||
(lot.lotStatusId
|
||||
? cityssm.escapeHTML(lot.lotStatus)
|
||||
: '<span class="has-text-grey">(No Status)</span>') +
|
||||
"</td>") +
|
||||
('<td class="is-nowrap">' +
|
||||
'<button class="button is-small is-light is-info button--editLotStatus" data-tooltip="Update Status" type="button">' +
|
||||
'<i class="fas fa-pencil-alt" aria-hidden="true"></i>' +
|
||||
|
|
|
|||
|
|
@ -46,12 +46,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"<br />";
|
||||
}
|
||||
for (const lotOccupancy of milestone.workOrderLotOccupancies) {
|
||||
if (lotOccupancy.lotOccupancyOccupants.length > 0) {
|
||||
for (const occupant of lotOccupancy.lotOccupancyOccupants) {
|
||||
lotOccupancyHTML +=
|
||||
'<span class="has-tooltip-left" data-tooltip="' +
|
||||
cityssm.escapeHTML(occupant.lotOccupantType) +
|
||||
'">' +
|
||||
'<i class="fas fa-user" aria-label="' +
|
||||
cityssm.escapeHTML(exports.aliases.lotOccupancy) +
|
||||
'"></i> ' +
|
||||
cityssm.escapeHTML(lotOccupancy.lotOccupancyOccupants[0].occupantName) +
|
||||
cityssm.escapeHTML(occupant.occupantName) +
|
||||
"</span>" +
|
||||
"<br />";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,12 +81,16 @@ declare const cityssm: cityssmGlobal;
|
|||
}
|
||||
|
||||
for (const lotOccupancy of milestone.workOrderLotOccupancies) {
|
||||
if (lotOccupancy.lotOccupancyOccupants.length > 0) {
|
||||
for (const occupant of lotOccupancy.lotOccupancyOccupants) {
|
||||
lotOccupancyHTML +=
|
||||
'<span class="has-tooltip-left" data-tooltip="' +
|
||||
cityssm.escapeHTML(occupant.lotOccupantType) +
|
||||
'">' +
|
||||
'<i class="fas fa-user" aria-label="' +
|
||||
cityssm.escapeHTML(exports.aliases.lotOccupancy) +
|
||||
'"></i> ' +
|
||||
cityssm.escapeHTML(lotOccupancy.lotOccupancyOccupants[0].occupantName) +
|
||||
cityssm.escapeHTML(occupant.occupantName) +
|
||||
"</span>" +
|
||||
"<br />";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,7 +33,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"/workOrders/" +
|
||||
workOrder.workOrderId +
|
||||
'">' +
|
||||
cityssm.escapeHTML(workOrder.workOrderNumber) +
|
||||
(workOrder.workOrderNumber.trim()
|
||||
? cityssm.escapeHTML(workOrder.workOrderNumber)
|
||||
: "(No Number)") +
|
||||
"</a>" +
|
||||
"</td>") +
|
||||
("<td>" +
|
||||
|
|
@ -83,7 +85,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"<th>Work Order Number</th>" +
|
||||
"<th>Work Order Description</th>" +
|
||||
"<th>Date</th>" +
|
||||
"<th>Progress</th>" +
|
||||
'<th class="has-tooltip-bottom" data-tooltip="Completed / Total Milestones">Progress</th>' +
|
||||
(workOrderPrints.length > 0 ? '<th class="has-width-1"></th>' : "") +
|
||||
"</tr></thead>" +
|
||||
"<table>" +
|
||||
|
|
|
|||
|
|
@ -64,7 +64,9 @@ declare const cityssm: cityssmGlobal;
|
|||
"/workOrders/" +
|
||||
workOrder.workOrderId +
|
||||
'">' +
|
||||
cityssm.escapeHTML(workOrder.workOrderNumber) +
|
||||
(workOrder.workOrderNumber.trim()
|
||||
? cityssm.escapeHTML(workOrder.workOrderNumber)
|
||||
: "(No Number)") +
|
||||
"</a>" +
|
||||
"</td>") +
|
||||
("<td>" +
|
||||
|
|
@ -116,7 +118,7 @@ declare const cityssm: cityssmGlobal;
|
|||
"<th>Work Order Number</th>" +
|
||||
"<th>Work Order Description</th>" +
|
||||
"<th>Date</th>" +
|
||||
"<th>Progress</th>" +
|
||||
'<th class="has-tooltip-bottom" data-tooltip="Completed / Total Milestones">Progress</th>' +
|
||||
(workOrderPrints.length > 0 ? '<th class="has-width-1"></th>' : "") +
|
||||
"</tr></thead>" +
|
||||
"<table>" +
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,s=document.querySelector("main").dataset.urlPrefix,r=document.querySelector("#form--searchFilters"),a=r.querySelector("#searchFilter--workOrderMilestoneDateFilter"),t=r.querySelector("#searchFilter--workOrderMilestoneDateString"),i=document.querySelector("#container--milestoneCalendar"),o=a=>{a&&a.preventDefault(),i.innerHTML='<div class="has-text-grey has-text-centered"><i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />Loading Milestones...</div>',cityssm.postJSON(s+"/workOrders/doGetWorkOrderMilestones",r,r=>{(r=>{if(0===r.length)return void(i.innerHTML='<div class="message is-info"><p class="message-body">There are no milestones that meet the search criteria.</p></div>');i.innerHTML="";const a=cityssm.dateToString(new Date);let t,o="";for(const n of r){o!==n.workOrderMilestoneDateString&&(t&&i.append(t),(t=document.createElement("div")).className="panel",t.innerHTML='<h2 class="panel-heading">'+n.workOrderMilestoneDateString+"</h2>",o=n.workOrderMilestoneDateString);const r=document.createElement("div");r.className="panel-block is-block",!n.workOrderMilestoneCompletionDate&&n.workOrderMilestoneDateString<a&&r.classList.add("has-background-warning-light");let c="";for(const e of n.workOrderLots)c+='<i class="fas fa-vector-square" aria-label="'+cityssm.escapeHTML(exports.aliases.lot)+'"></i> '+cityssm.escapeHTML(e.lotName)+"<br />";for(const e of n.workOrderLotOccupancies)e.lotOccupancyOccupants.length>0&&(c+='<i class="fas fa-user" aria-label="'+cityssm.escapeHTML(exports.aliases.lotOccupancy)+'"></i> '+cityssm.escapeHTML(e.lotOccupancyOccupants[0].occupantName)+"<br />");r.innerHTML='<div class="columns"><div class="column is-narrow"><span class="icon is-small">'+(n.workOrderMilestoneCompletionDate?'<i class="fas fa-check" aria-label="Completed"></i>':'<i class="far fa-square has-text-grey" aria-label="Incomplete"></i>')+'</span></div><div class="column">'+(0===n.workOrderMilestoneTime?"":n.workOrderMilestoneTimeString+"<br />")+(n.workOrderMilestoneTypeId?"<strong>"+cityssm.escapeHTML(n.workOrderMilestoneType)+"</strong><br />":"")+'<span class="is-size-7">'+cityssm.escapeHTML(n.workOrderMilestoneDescription)+'</span></div><div class="column"><i class="fas fa-circle" style="color:'+e.getRandomColor(n.workOrderNumber)+'" aria-hidden="true"></i> <a class="has-text-weight-bold" href="'+s+"/workOrders/"+n.workOrderId+'">'+cityssm.escapeHTML(n.workOrderNumber)+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(n.workOrderDescription)+'</span></div><div class="column is-size-7">'+c+"</div></div>",t.append(r)}i.append(t)})(r.workOrderMilestones)})};a.addEventListener("change",()=>{t.disabled="date"!==a.value,o()}),t.addEventListener("change",o),r.addEventListener("submit",o),o()})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,s=document.querySelector("main").dataset.urlPrefix,r=document.querySelector("#form--searchFilters"),a=r.querySelector("#searchFilter--workOrderMilestoneDateFilter"),t=r.querySelector("#searchFilter--workOrderMilestoneDateString"),i=document.querySelector("#container--milestoneCalendar"),o=a=>{a&&a.preventDefault(),i.innerHTML='<div class="has-text-grey has-text-centered"><i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />Loading Milestones...</div>',cityssm.postJSON(s+"/workOrders/doGetWorkOrderMilestones",r,r=>{(r=>{if(0===r.length)return void(i.innerHTML='<div class="message is-info"><p class="message-body">There are no milestones that meet the search criteria.</p></div>');i.innerHTML="";const a=cityssm.dateToString(new Date);let t,o="";for(const n of r){o!==n.workOrderMilestoneDateString&&(t&&i.append(t),(t=document.createElement("div")).className="panel",t.innerHTML='<h2 class="panel-heading">'+n.workOrderMilestoneDateString+"</h2>",o=n.workOrderMilestoneDateString);const r=document.createElement("div");r.className="panel-block is-block",!n.workOrderMilestoneCompletionDate&&n.workOrderMilestoneDateString<a&&r.classList.add("has-background-warning-light");let c="";for(const e of n.workOrderLots)c+='<i class="fas fa-vector-square" aria-label="'+cityssm.escapeHTML(exports.aliases.lot)+'"></i> '+cityssm.escapeHTML(e.lotName)+"<br />";for(const e of n.workOrderLotOccupancies)for(const s of e.lotOccupancyOccupants)c+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(s.lotOccupantType)+'"><i class="fas fa-user" aria-label="'+cityssm.escapeHTML(exports.aliases.lotOccupancy)+'"></i> '+cityssm.escapeHTML(s.occupantName)+"</span><br />";r.innerHTML='<div class="columns"><div class="column is-narrow"><span class="icon is-small">'+(n.workOrderMilestoneCompletionDate?'<i class="fas fa-check" aria-label="Completed"></i>':'<i class="far fa-square has-text-grey" aria-label="Incomplete"></i>')+'</span></div><div class="column">'+(0===n.workOrderMilestoneTime?"":n.workOrderMilestoneTimeString+"<br />")+(n.workOrderMilestoneTypeId?"<strong>"+cityssm.escapeHTML(n.workOrderMilestoneType)+"</strong><br />":"")+'<span class="is-size-7">'+cityssm.escapeHTML(n.workOrderMilestoneDescription)+'</span></div><div class="column"><i class="fas fa-circle" style="color:'+e.getRandomColor(n.workOrderNumber)+'" aria-hidden="true"></i> <a class="has-text-weight-bold" href="'+s+"/workOrders/"+n.workOrderId+'">'+cityssm.escapeHTML(n.workOrderNumber)+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(n.workOrderDescription)+'</span></div><div class="column is-size-7">'+c+"</div></div>",t.append(r)}i.append(t)})(r.workOrderMilestones)})};a.addEventListener("change",()=>{t.disabled="date"!==a.value,o()}),t.addEventListener("change",o),r.addEventListener("submit",o),o()})();
|
||||
|
|
@ -1 +1 @@
|
|||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("main").dataset.urlPrefix,r=exports.workOrderPrints,s=document.querySelector("#form--searchFilters");e.initializeDatePickers(s);const a=document.querySelector("#container--searchResults"),i=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),o=document.querySelector("#searchFilter--offset"),n=()=>{const e=Number.parseInt(o.value,10);a.innerHTML='<div class="has-text-grey has-text-centered"><i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />Loading Work Orders...</div>',cityssm.postJSON(t+"/workOrders/doSearchWorkOrders",s,s=>{if(0===s.workOrders.length)return void(a.innerHTML='<div class="message is-info"><p class="message-body">There are no work orders that meet the search criteria.</p></div>');const o=document.createElement("tbody");for(const e of s.workOrders)o.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+t+"/workOrders/"+e.workOrderId+'">'+cityssm.escapeHTML(e.workOrderNumber)+"</a></td><td>"+cityssm.escapeHTML(e.workOrderType)+'<br /><span class="is-size-7">'+cityssm.escapeHTML(e.workOrderDescription)+'</span></td><td class="is-nowrap"><span data-tooltip="Open Date"><i class="fas fa-fw fa-play" aria-label="Open Date"></i> '+e.workOrderOpenDateString+'</span><br /><span data-tooltip="Close Date"><i class="fas fa-fw fa-stop" aria-label="Close Date"></i> '+(e.workOrderCloseDate?e.workOrderCloseDateString:'<span class="has-text-grey">(No Close Date)</span>')+"</span></td><td>"+(0===e.workOrderMilestoneCount?"-":e.workOrderMilestoneCompletionCount+" / "+e.workOrderMilestoneCount)+"</td>"+(r.length>0?'<td><a class="button is-small" data-tooltip="Print" href="'+t+"/print/"+r[0]+"/?workOrderId="+e.workOrderId+'" target="_blank"><i class="fas fa-print" aria-label="Print"></i></a></td>':"")+"</tr>");a.innerHTML='<table class="table is-fullwidth is-striped is-hoverable has-sticky-header"><thead><tr><th>Work Order Number</th><th>Work Order Description</th><th>Date</th><th>Progress</th>'+(r.length>0?'<th class="has-width-1"></th>':"")+'</tr></thead><table><div class="level"><div class="level-left"><div class="level-item has-text-weight-bold">Displaying '+(e+1).toString()+" to "+Math.min(s.count,i+e)+" of "+s.count+'</div></div><div class="level-right">'+(e>0?'<div class="level-item"><button class="button is-rounded is-link is-outlined" data-page="previous" type="button" title="Previous"><i class="fas fa-arrow-left" aria-hidden="true"></i></button></div>':"")+(i+e<s.count?'<div class="level-item"><button class="button is-rounded is-link" data-page="next" type="button" title="Next"><span>Next</span><span class="icon"><i class="fas fa-arrow-right" aria-hidden="true"></i></span></button></div>':"")+"</div></div>",a.querySelector("table").append(o),e>0&&a.querySelector("button[data-page='previous']").addEventListener("click",d),i+e<s.count&&a.querySelector("button[data-page='next']").addEventListener("click",c)})},l=()=>{o.value="0",n()},d=()=>{o.value=Math.max(Number.parseInt(o.value,10)-i,0).toString(),n()},c=()=>{o.value=(Number.parseInt(o.value,10)+i).toString(),n()},u=s.querySelectorAll("input, select");for(const e of u)e.addEventListener("change",l);s.addEventListener("submit",e=>{e.preventDefault(),l()}),n()})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("main").dataset.urlPrefix,r=exports.workOrderPrints,s=document.querySelector("#form--searchFilters");e.initializeDatePickers(s);const a=document.querySelector("#container--searchResults"),i=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),o=document.querySelector("#searchFilter--offset"),l=()=>{const e=Number.parseInt(o.value,10);a.innerHTML='<div class="has-text-grey has-text-centered"><i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />Loading Work Orders...</div>',cityssm.postJSON(t+"/workOrders/doSearchWorkOrders",s,s=>{if(0===s.workOrders.length)return void(a.innerHTML='<div class="message is-info"><p class="message-body">There are no work orders that meet the search criteria.</p></div>');const o=document.createElement("tbody");for(const e of s.workOrders)o.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+t+"/workOrders/"+e.workOrderId+'">'+(e.workOrderNumber.trim()?cityssm.escapeHTML(e.workOrderNumber):"(No Number)")+"</a></td><td>"+cityssm.escapeHTML(e.workOrderType)+'<br /><span class="is-size-7">'+cityssm.escapeHTML(e.workOrderDescription)+'</span></td><td class="is-nowrap"><span data-tooltip="Open Date"><i class="fas fa-fw fa-play" aria-label="Open Date"></i> '+e.workOrderOpenDateString+'</span><br /><span data-tooltip="Close Date"><i class="fas fa-fw fa-stop" aria-label="Close Date"></i> '+(e.workOrderCloseDate?e.workOrderCloseDateString:'<span class="has-text-grey">(No Close Date)</span>')+"</span></td><td>"+(0===e.workOrderMilestoneCount?"-":e.workOrderMilestoneCompletionCount+" / "+e.workOrderMilestoneCount)+"</td>"+(r.length>0?'<td><a class="button is-small" data-tooltip="Print" href="'+t+"/print/"+r[0]+"/?workOrderId="+e.workOrderId+'" target="_blank"><i class="fas fa-print" aria-label="Print"></i></a></td>':"")+"</tr>");a.innerHTML='<table class="table is-fullwidth is-striped is-hoverable has-sticky-header"><thead><tr><th>Work Order Number</th><th>Work Order Description</th><th>Date</th><th class="has-tooltip-bottom" data-tooltip="Completed / Total Milestones">Progress</th>'+(r.length>0?'<th class="has-width-1"></th>':"")+'</tr></thead><table><div class="level"><div class="level-left"><div class="level-item has-text-weight-bold">Displaying '+(e+1).toString()+" to "+Math.min(s.count,i+e)+" of "+s.count+'</div></div><div class="level-right">'+(e>0?'<div class="level-item"><button class="button is-rounded is-link is-outlined" data-page="previous" type="button" title="Previous"><i class="fas fa-arrow-left" aria-hidden="true"></i></button></div>':"")+(i+e<s.count?'<div class="level-item"><button class="button is-rounded is-link" data-page="next" type="button" title="Next"><span>Next</span><span class="icon"><i class="fas fa-arrow-right" aria-hidden="true"></i></span></button></div>':"")+"</div></div>",a.querySelector("table").append(o),e>0&&a.querySelector("button[data-page='previous']").addEventListener("click",d),i+e<s.count&&a.querySelector("button[data-page='next']").addEventListener("click",c)})},n=()=>{o.value="0",l()},d=()=>{o.value=Math.max(Number.parseInt(o.value,10)-i,0).toString(),l()},c=()=>{o.value=(Number.parseInt(o.value,10)+i).toString(),l()},u=s.querySelectorAll("input, select");for(const e of u)e.addEventListener("change",n);s.addEventListener("submit",e=>{e.preventDefault(),n()}),l()})();
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
<div class="column">
|
||||
<% if (workOrderPrints.length > 0) { %>
|
||||
<span class="is-pulled-right">
|
||||
<a class="button is-small" href="<%=urlPrefix %>/print/<%= workOrderPrints[0] %>/?workOrderId=<%= milestone.workOrderId %>" target="_blank">
|
||||
<a class="button is-small" data-tooltip="Print Work Order" href="<%=urlPrefix %>/print/<%= workOrderPrints[0] %>/?workOrderId=<%= milestone.workOrderId %>" target="_blank">
|
||||
<i class="fas fa-print" aria-label="Print"></i>
|
||||
</a>
|
||||
</span>
|
||||
|
|
@ -53,7 +53,8 @@
|
|||
for (const occupancy of milestone.workOrderLotOccupancies) {
|
||||
for (const occupant of occupancy.lotOccupancyOccupants) {
|
||||
%>
|
||||
<i class="fas fa-user" aria-label="<%= configFunctions.getProperty("aliases.occupancy") %>"></i> <%= occupant.occupantName %><br />
|
||||
<i class="fas fa-user" aria-label="<%= configFunctions.getProperty("aliases.occupancy") %>"></i>
|
||||
<span class="has-tooltip-right" data-tooltip="<%= occupant.lotOccupantType %>"><%= occupant.occupantName %></span><br />
|
||||
<%
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -348,7 +348,7 @@
|
|||
<span class="has-text-grey">(No <%= configFunctions.getProperty("aliases.occupants") %>)</span>
|
||||
<% } else { %>
|
||||
<% const occupant = lotOccupancy.lotOccupancyOccupants[0]; %>
|
||||
<%= occupant.occupantName %>
|
||||
<span class="has-tooltip-left" data-tooltip="<%= occupant.lotOccupantType %>"><%= occupant.occupantName %></span>
|
||||
<%= (lotOccupancy.lotOccupancyOccupants.length > 1 ? " plus " + (lotOccupancy.lotOccupancyOccupants.length - 1) : "") %>
|
||||
<% } %>
|
||||
</td>
|
||||
|
|
|
|||
|
|
@ -175,7 +175,7 @@
|
|||
<span class="has-text-grey">(No <%= configFunctions.getProperty("aliases.occupants") %>)</span>
|
||||
<% } else { %>
|
||||
<% const occupant = lotOccupancy.lotOccupancyOccupants[0]; %>
|
||||
<%= occupant.occupantName %>
|
||||
<span class="has-tooltip-left" data-tooltip="<%= occupant.lotOccupantType %>"><%= occupant.occupantName %></span>
|
||||
<%= (lotOccupancy.lotOccupancyOccupants.length > 1 ? " plus " + (lotOccupancy.lotOccupancyOccupants.length - 1) : "") %>
|
||||
<% } %>
|
||||
</td>
|
||||
|
|
|
|||
|
|
@ -165,7 +165,9 @@
|
|||
<td><%= lotOccupancyOccupant.lotOccupantType %></td>
|
||||
<td><%= lotOccupancyOccupant.occupantName %></td>
|
||||
<td>
|
||||
<% if (lotOccupancyOccupant.occupantAddress1) { %>
|
||||
<%= lotOccupancyOccupant.occupantAddress1 %><br />
|
||||
<% } %>
|
||||
<% if (lotOccupancyOccupant.occupantAddress2) { %>
|
||||
<%= lotOccupancyOccupant.occupantAddress2 %><br />
|
||||
<% } %>
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@
|
|||
<td><%= occupancy.occupancyStartEndString %></td>
|
||||
<td>
|
||||
<% for (const occupant of occupancy.lotOccupancyOccupants) { %>
|
||||
<%= occupant.occupantName %><br />
|
||||
<%= occupant.lotOccupantType %>: <%= occupant.occupantName %><br />
|
||||
<% } %>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
|||
Loading…
Reference in New Issue