add print to work order and occupancy search
parent
82b0ae1aa2
commit
a9c32c2d0b
|
|
@ -15,7 +15,7 @@ export const handler = async (request, response, next) => {
|
||||||
const reportData = getReportData(printConfig, request.query);
|
const reportData = getReportData(printConfig, request.query);
|
||||||
const reportPath = path.join("views", "print", "pdf", printName + ".ejs");
|
const reportPath = path.join("views", "print", "pdf", printName + ".ejs");
|
||||||
const pdfCallbackFunction = (pdf) => {
|
const pdfCallbackFunction = (pdf) => {
|
||||||
response.setHeader("Content-Disposition", "inline;" + " filename=" + camelcase(printConfig.title) + ".pdf");
|
response.setHeader("Content-Disposition", "attachment;" + " filename=" + camelcase(printConfig.title) + ".pdf");
|
||||||
response.setHeader("Content-Type", "application/pdf");
|
response.setHeader("Content-Type", "application/pdf");
|
||||||
response.send(pdf);
|
response.send(pdf);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ export const handler: RequestHandler = async (request, response, next) => {
|
||||||
const pdfCallbackFunction = (pdf: Buffer) => {
|
const pdfCallbackFunction = (pdf: Buffer) => {
|
||||||
response.setHeader(
|
response.setHeader(
|
||||||
"Content-Disposition",
|
"Content-Disposition",
|
||||||
"inline;" + " filename=" + camelcase(printConfig.title) + ".pdf"
|
"attachment;" + " filename=" + camelcase(printConfig.title) + ".pdf"
|
||||||
);
|
);
|
||||||
|
|
||||||
response.setHeader("Content-Type", "application/pdf");
|
response.setHeader("Content-Type", "application/pdf");
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(() => {
|
(() => {
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||||
|
const lotOccupancyPrints = exports.lotOccupancyPrints;
|
||||||
const searchFilterFormElement = document.querySelector("#form--searchFilters");
|
const searchFilterFormElement = document.querySelector("#form--searchFilters");
|
||||||
const searchResultsContainerElement = document.querySelector("#container--searchResults");
|
const searchResultsContainerElement = document.querySelector("#container--searchResults");
|
||||||
const limit = Number.parseInt(document.querySelector("#searchFilter--limit").value, 10);
|
const limit = Number.parseInt(document.querySelector("#searchFilter--limit").value, 10);
|
||||||
|
|
@ -51,10 +52,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
}
|
}
|
||||||
let occupantsHTML = "";
|
let occupantsHTML = "";
|
||||||
for (const occupant of lotOccupancy.lotOccupancyOccupants) {
|
for (const occupant of lotOccupancy.lotOccupancyOccupants) {
|
||||||
occupantsHTML += cityssm.escapeHTML(occupant.occupantName) + "<br />";
|
occupantsHTML +=
|
||||||
|
'<span class="has-tooltip-left" data-tooltip="' +
|
||||||
|
cityssm.escapeHTML(occupant.lotOccupantType) +
|
||||||
|
'">' +
|
||||||
|
cityssm.escapeHTML(occupant.occupantName) +
|
||||||
|
"</span><br />";
|
||||||
}
|
}
|
||||||
resultsTbodyElement.insertAdjacentHTML("beforeend", "<tr>" +
|
resultsTbodyElement.insertAdjacentHTML("beforeend", "<tr>" +
|
||||||
("<td>" + occupancyTimeHTML + "</td>") +
|
('<td class="has-width-1">' + occupancyTimeHTML + "</td>") +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
'<a class="has-text-weight-bold" href="' +
|
'<a class="has-text-weight-bold" href="' +
|
||||||
urlPrefix +
|
urlPrefix +
|
||||||
|
|
@ -84,17 +90,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"<td>" +
|
"<td>" +
|
||||||
occupantsHTML +
|
occupantsHTML +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
|
(lotOccupancyPrints.length > 0
|
||||||
|
? "<td>" +
|
||||||
|
'<a class="button is-small" data-tooltip="Print" href="' +
|
||||||
|
urlPrefix +
|
||||||
|
"/print/" +
|
||||||
|
lotOccupancyPrints[0] +
|
||||||
|
"/?lotOccupancyId=" +
|
||||||
|
lotOccupancy.lotOccupancyId +
|
||||||
|
'" target="_blank">' +
|
||||||
|
'<i class="fas fa-print" aria-label="Print"></i>' +
|
||||||
|
"</a>" +
|
||||||
|
"</td>"
|
||||||
|
: "") +
|
||||||
"</tr>");
|
"</tr>");
|
||||||
}
|
}
|
||||||
searchResultsContainerElement.innerHTML =
|
searchResultsContainerElement.innerHTML =
|
||||||
'<table class="table is-fullwidth is-striped is-hoverable">' +
|
'<table class="table is-fullwidth is-striped is-hoverable">' +
|
||||||
"<thead><tr>" +
|
"<thead><tr>" +
|
||||||
"<th></th>" +
|
'<th class="has-width-1"></th>' +
|
||||||
("<th>" + cityssm.escapeHTML(exports.aliases.occupancy) + " Type</th>") +
|
("<th>" + cityssm.escapeHTML(exports.aliases.occupancy) + " Type</th>") +
|
||||||
("<th>" + cityssm.escapeHTML(exports.aliases.lot) + "</th>") +
|
("<th>" + cityssm.escapeHTML(exports.aliases.lot) + "</th>") +
|
||||||
"<th>Start Date</th>" +
|
"<th>Start Date</th>" +
|
||||||
"<th>End Date</th>" +
|
"<th>End Date</th>" +
|
||||||
("<th>" + cityssm.escapeHTML(exports.aliases.occupants) + "</th>") +
|
("<th>" + cityssm.escapeHTML(exports.aliases.occupants) + "</th>") +
|
||||||
|
(lotOccupancyPrints.length > 0 ? '<th class="has-width-1"></th>' : "") +
|
||||||
"</tr></thead>" +
|
"</tr></thead>" +
|
||||||
"<table>" +
|
"<table>" +
|
||||||
'<div class="level">' +
|
'<div class="level">' +
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,12 @@ declare const cityssm: cityssmGlobal;
|
||||||
(() => {
|
(() => {
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||||
|
|
||||||
|
const lotOccupancyPrints: string[] = exports.lotOccupancyPrints;
|
||||||
|
|
||||||
const searchFilterFormElement = document.querySelector(
|
const searchFilterFormElement = document.querySelector(
|
||||||
"#form--searchFilters"
|
"#form--searchFilters"
|
||||||
) as HTMLFormElement;
|
) as HTMLFormElement;
|
||||||
|
|
||||||
const searchResultsContainerElement = document.querySelector(
|
const searchResultsContainerElement = document.querySelector(
|
||||||
"#container--searchResults"
|
"#container--searchResults"
|
||||||
) as HTMLElement;
|
) as HTMLElement;
|
||||||
|
|
@ -79,13 +82,18 @@ declare const cityssm: cityssmGlobal;
|
||||||
let occupantsHTML = "";
|
let occupantsHTML = "";
|
||||||
|
|
||||||
for (const occupant of lotOccupancy.lotOccupancyOccupants) {
|
for (const occupant of lotOccupancy.lotOccupancyOccupants) {
|
||||||
occupantsHTML += cityssm.escapeHTML(occupant.occupantName) + "<br />";
|
occupantsHTML +=
|
||||||
|
'<span class="has-tooltip-left" data-tooltip="' +
|
||||||
|
cityssm.escapeHTML(occupant.lotOccupantType) +
|
||||||
|
'">' +
|
||||||
|
cityssm.escapeHTML(occupant.occupantName) +
|
||||||
|
"</span><br />";
|
||||||
}
|
}
|
||||||
|
|
||||||
resultsTbodyElement.insertAdjacentHTML(
|
resultsTbodyElement.insertAdjacentHTML(
|
||||||
"beforeend",
|
"beforeend",
|
||||||
"<tr>" +
|
"<tr>" +
|
||||||
("<td>" + occupancyTimeHTML + "</td>") +
|
('<td class="has-width-1">' + occupancyTimeHTML + "</td>") +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
'<a class="has-text-weight-bold" href="' +
|
'<a class="has-text-weight-bold" href="' +
|
||||||
urlPrefix +
|
urlPrefix +
|
||||||
|
|
@ -115,6 +123,19 @@ declare const cityssm: cityssmGlobal;
|
||||||
"<td>" +
|
"<td>" +
|
||||||
occupantsHTML +
|
occupantsHTML +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
|
(lotOccupancyPrints.length > 0
|
||||||
|
? "<td>" +
|
||||||
|
'<a class="button is-small" data-tooltip="Print" href="' +
|
||||||
|
urlPrefix +
|
||||||
|
"/print/" +
|
||||||
|
lotOccupancyPrints[0] +
|
||||||
|
"/?lotOccupancyId=" +
|
||||||
|
lotOccupancy.lotOccupancyId +
|
||||||
|
'" target="_blank">' +
|
||||||
|
'<i class="fas fa-print" aria-label="Print"></i>' +
|
||||||
|
"</a>" +
|
||||||
|
"</td>"
|
||||||
|
: "") +
|
||||||
"</tr>"
|
"</tr>"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -122,12 +143,13 @@ declare const cityssm: cityssmGlobal;
|
||||||
searchResultsContainerElement.innerHTML =
|
searchResultsContainerElement.innerHTML =
|
||||||
'<table class="table is-fullwidth is-striped is-hoverable">' +
|
'<table class="table is-fullwidth is-striped is-hoverable">' +
|
||||||
"<thead><tr>" +
|
"<thead><tr>" +
|
||||||
"<th></th>" +
|
'<th class="has-width-1"></th>' +
|
||||||
("<th>" + cityssm.escapeHTML(exports.aliases.occupancy) + " Type</th>") +
|
("<th>" + cityssm.escapeHTML(exports.aliases.occupancy) + " Type</th>") +
|
||||||
("<th>" + cityssm.escapeHTML(exports.aliases.lot) + "</th>") +
|
("<th>" + cityssm.escapeHTML(exports.aliases.lot) + "</th>") +
|
||||||
"<th>Start Date</th>" +
|
"<th>Start Date</th>" +
|
||||||
"<th>End Date</th>" +
|
"<th>End Date</th>" +
|
||||||
("<th>" + cityssm.escapeHTML(exports.aliases.occupants) + "</th>") +
|
("<th>" + cityssm.escapeHTML(exports.aliases.occupants) + "</th>") +
|
||||||
|
(lotOccupancyPrints.length > 0 ? '<th class="has-width-1"></th>' : "") +
|
||||||
"</tr></thead>" +
|
"</tr></thead>" +
|
||||||
"<table>" +
|
"<table>" +
|
||||||
'<div class="level">' +
|
'<div class="level">' +
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(() => {
|
(() => {
|
||||||
const los = exports.los;
|
const los = exports.los;
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||||
|
const workOrderPrints = exports.workOrderPrints;
|
||||||
const searchFilterFormElement = document.querySelector("#form--searchFilters");
|
const searchFilterFormElement = document.querySelector("#form--searchFilters");
|
||||||
los.initializeDatePickers(searchFilterFormElement);
|
los.initializeDatePickers(searchFilterFormElement);
|
||||||
const searchResultsContainerElement = document.querySelector("#container--searchResults");
|
const searchResultsContainerElement = document.querySelector("#container--searchResults");
|
||||||
|
|
@ -61,6 +62,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
" / " +
|
" / " +
|
||||||
workOrder.workOrderMilestoneCount) +
|
workOrder.workOrderMilestoneCount) +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
|
(workOrderPrints.length > 0
|
||||||
|
? "<td>" +
|
||||||
|
'<a class="button is-small" data-tooltip="Print" href="' +
|
||||||
|
urlPrefix +
|
||||||
|
"/print/" +
|
||||||
|
workOrderPrints[0] +
|
||||||
|
"/?workOrderId=" +
|
||||||
|
workOrder.workOrderId +
|
||||||
|
'" target="_blank">' +
|
||||||
|
'<i class="fas fa-print" aria-label="Print"></i>' +
|
||||||
|
"</a>" +
|
||||||
|
"</td>"
|
||||||
|
: "") +
|
||||||
"</tr>");
|
"</tr>");
|
||||||
}
|
}
|
||||||
searchResultsContainerElement.innerHTML =
|
searchResultsContainerElement.innerHTML =
|
||||||
|
|
@ -70,6 +84,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"<th>Work Order Description</th>" +
|
"<th>Work Order Description</th>" +
|
||||||
"<th>Date</th>" +
|
"<th>Date</th>" +
|
||||||
"<th>Progress</th>" +
|
"<th>Progress</th>" +
|
||||||
|
(workOrderPrints.length > 0 ? '<th class="has-width-1"></th>' : "") +
|
||||||
"</tr></thead>" +
|
"</tr></thead>" +
|
||||||
"<table>" +
|
"<table>" +
|
||||||
'<div class="level">' +
|
'<div class="level">' +
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@ declare const cityssm: cityssmGlobal;
|
||||||
|
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||||
|
|
||||||
|
const workOrderPrints: string[] = exports.workOrderPrints;
|
||||||
|
|
||||||
const searchFilterFormElement = document.querySelector(
|
const searchFilterFormElement = document.querySelector(
|
||||||
"#form--searchFilters"
|
"#form--searchFilters"
|
||||||
) as HTMLFormElement;
|
) as HTMLFormElement;
|
||||||
|
|
@ -91,6 +93,19 @@ declare const cityssm: cityssmGlobal;
|
||||||
" / " +
|
" / " +
|
||||||
workOrder.workOrderMilestoneCount) +
|
workOrder.workOrderMilestoneCount) +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
|
(workOrderPrints.length > 0
|
||||||
|
? "<td>" +
|
||||||
|
'<a class="button is-small" data-tooltip="Print" href="' +
|
||||||
|
urlPrefix +
|
||||||
|
"/print/" +
|
||||||
|
workOrderPrints[0] +
|
||||||
|
"/?workOrderId=" +
|
||||||
|
workOrder.workOrderId +
|
||||||
|
'" target="_blank">' +
|
||||||
|
'<i class="fas fa-print" aria-label="Print"></i>' +
|
||||||
|
"</a>" +
|
||||||
|
"</td>"
|
||||||
|
: "") +
|
||||||
"</tr>"
|
"</tr>"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -102,6 +117,7 @@ declare const cityssm: cityssmGlobal;
|
||||||
"<th>Work Order Description</th>" +
|
"<th>Work Order Description</th>" +
|
||||||
"<th>Date</th>" +
|
"<th>Date</th>" +
|
||||||
"<th>Progress</th>" +
|
"<th>Progress</th>" +
|
||||||
|
(workOrderPrints.length > 0 ? '<th class="has-width-1"></th>' : "") +
|
||||||
"</tr></thead>" +
|
"</tr></thead>" +
|
||||||
"<table>" +
|
"<table>" +
|
||||||
'<div class="level">' +
|
'<div class="level">' +
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("main").dataset.urlPrefix,t=document.querySelector("#form--searchFilters"),a=document.querySelector("#container--searchResults"),s=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),c=document.querySelector("#searchFilter--offset"),i=()=>{const i=Number.parseInt(c.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 '+exports.aliases.occupancies+"...</div>",cityssm.postJSON(e+"/lotOccupancies/doSearchLotOccupancies",t,t=>{if(0===t.lotOccupancies.length)return void(a.innerHTML='<div class="message is-info"><p class="message-body">There are no '+cityssm.escapeHTML(exports.aliases.occupancy.toLowerCase())+" records that meet the search criteria.</p></div>");const c=document.createElement("tbody"),n=cityssm.dateToString(new Date);for(const a of t.lotOccupancies){let t="";t=a.occupancyStartDateString<=n&&(""===a.occupancyEndDateString||a.occupancyEndDateString>=n)?'<i class="fas fa-play" title="Current '+exports.aliases.occupancy+'"></i>':a.occupancyStartDateString>n?'<i class="fas fa-fast-forward" title="Future '+exports.aliases.occupancy+'"></i>':'<i class="fas fa-stop" title="Previous '+exports.aliases.occupancy+'"></i>';let s="";for(const e of a.lotOccupancyOccupants)s+=cityssm.escapeHTML(e.occupantName)+"<br />";c.insertAdjacentHTML("beforeend","<tr><td>"+t+'</td><td><a class="has-text-weight-bold" href="'+e+"/lotOccupancies/"+a.lotOccupancyId+'">'+cityssm.escapeHTML(a.occupancyType)+"</a></td><td>"+(a.lotName?cityssm.escapeHTML(a.lotName):'<span class="has-text-grey">(No '+cityssm.escapeHTML(exports.aliases.lot)+")</span>")+'<br /><span class="is-size-7">'+cityssm.escapeHTML(a.mapName||"")+"</span></td><td>"+a.occupancyStartDateString+"</td><td>"+(a.occupancyEndDate?a.occupancyEndDateString:'<span class="has-text-grey">(No End Date)</span>')+"</td><td>"+s+"</td></tr>")}a.innerHTML='<table class="table is-fullwidth is-striped is-hoverable"><thead><tr><th></th><th>'+cityssm.escapeHTML(exports.aliases.occupancy)+" Type</th><th>"+cityssm.escapeHTML(exports.aliases.lot)+"</th><th>Start Date</th><th>End Date</th><th>"+cityssm.escapeHTML(exports.aliases.occupants)+'</th></tr></thead><table><div class="level"><div class="level-left"><div class="level-item has-text-weight-bold">Displaying '+(i+1).toString()+" to "+Math.min(t.count,s+i)+" of "+t.count+'</div></div><div class="level-right">'+(i>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>':"")+(s+i<t.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(c),i>0&&a.querySelector("button[data-page='previous']").addEventListener("click",r),s+i<t.count&&a.querySelector("button[data-page='next']").addEventListener("click",o)})},n=()=>{c.value="0",i()},r=()=>{c.value=Math.max(Number.parseInt(c.value,10)-s,0).toString(),i()},o=()=>{c.value=(Number.parseInt(c.value,10)+s).toString(),i()},l=t.querySelectorAll("input, select");for(const e of l)e.addEventListener("change",n);t.addEventListener("submit",e=>{e.preventDefault(),n()}),i()})();
|
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const t=document.querySelector("main").dataset.urlPrefix,e=exports.lotOccupancyPrints,a=document.querySelector("#form--searchFilters"),s=document.querySelector("#container--searchResults"),c=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),i=document.querySelector("#searchFilter--offset"),n=()=>{const n=Number.parseInt(i.value,10);s.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 '+exports.aliases.occupancies+"...</div>",cityssm.postJSON(t+"/lotOccupancies/doSearchLotOccupancies",a,a=>{if(0===a.lotOccupancies.length)return void(s.innerHTML='<div class="message is-info"><p class="message-body">There are no '+cityssm.escapeHTML(exports.aliases.occupancy.toLowerCase())+" records that meet the search criteria.</p></div>");const i=document.createElement("tbody"),r=cityssm.dateToString(new Date);for(const s of a.lotOccupancies){let a="";a=s.occupancyStartDateString<=r&&(""===s.occupancyEndDateString||s.occupancyEndDateString>=r)?'<i class="fas fa-play" title="Current '+exports.aliases.occupancy+'"></i>':s.occupancyStartDateString>r?'<i class="fas fa-fast-forward" title="Future '+exports.aliases.occupancy+'"></i>':'<i class="fas fa-stop" title="Previous '+exports.aliases.occupancy+'"></i>';let c="";for(const t of s.lotOccupancyOccupants)c+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(t.lotOccupantType)+'">'+cityssm.escapeHTML(t.occupantName)+"</span><br />";i.insertAdjacentHTML("beforeend",'<tr><td class="has-width-1">'+a+'</td><td><a class="has-text-weight-bold" href="'+t+"/lotOccupancies/"+s.lotOccupancyId+'">'+cityssm.escapeHTML(s.occupancyType)+"</a></td><td>"+(s.lotName?cityssm.escapeHTML(s.lotName):'<span class="has-text-grey">(No '+cityssm.escapeHTML(exports.aliases.lot)+")</span>")+'<br /><span class="is-size-7">'+cityssm.escapeHTML(s.mapName||"")+"</span></td><td>"+s.occupancyStartDateString+"</td><td>"+(s.occupancyEndDate?s.occupancyEndDateString:'<span class="has-text-grey">(No End Date)</span>')+"</td><td>"+c+"</td>"+(e.length>0?'<td><a class="button is-small" data-tooltip="Print" href="'+t+"/print/"+e[0]+"/?lotOccupancyId="+s.lotOccupancyId+'" target="_blank"><i class="fas fa-print" aria-label="Print"></i></a></td>':"")+"</tr>")}s.innerHTML='<table class="table is-fullwidth is-striped is-hoverable"><thead><tr><th class="has-width-1"></th><th>'+cityssm.escapeHTML(exports.aliases.occupancy)+" Type</th><th>"+cityssm.escapeHTML(exports.aliases.lot)+"</th><th>Start Date</th><th>End Date</th><th>"+cityssm.escapeHTML(exports.aliases.occupants)+"</th>"+(e.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 '+(n+1).toString()+" to "+Math.min(a.count,c+n)+" of "+a.count+'</div></div><div class="level-right">'+(n>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>':"")+(c+n<a.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>",s.querySelector("table").append(i),n>0&&s.querySelector("button[data-page='previous']").addEventListener("click",l),c+n<a.count&&s.querySelector("button[data-page='next']").addEventListener("click",o)})},r=()=>{i.value="0",n()},l=()=>{i.value=Math.max(Number.parseInt(i.value,10)-c,0).toString(),n()},o=()=>{i.value=(Number.parseInt(i.value,10)+c).toString(),n()},p=a.querySelectorAll("input, select");for(const t of p)t.addEventListener("change",r);a.addEventListener("submit",t=>{t.preventDefault(),r()}),n()})();
|
||||||
|
|
@ -1 +1 @@
|
||||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("main").dataset.urlPrefix,r=document.querySelector("#form--searchFilters");e.initializeDatePickers(r);const s=document.querySelector("#container--searchResults"),a=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),i=document.querySelector("#searchFilter--offset"),o=()=>{const e=Number.parseInt(i.value,10);s.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",r,r=>{if(0===r.workOrders.length)return void(s.innerHTML='<div class="message is-info"><p class="message-body">There are no work orders that meet the search criteria.</p></div>');const i=document.createElement("tbody");for(const e of r.workOrders)i.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></tr>");s.innerHTML='<table class="table is-fullwidth is-striped is-hoverable"><thead><tr><th>Work Order Number</th><th>Work Order Description</th><th>Date</th><th>Progress</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(r.count,a+e)+" of "+r.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>':"")+(a+e<r.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>",s.querySelector("table").append(i),e>0&&s.querySelector("button[data-page='previous']").addEventListener("click",l),a+e<r.count&&s.querySelector("button[data-page='next']").addEventListener("click",d)})},n=()=>{i.value="0",o()},l=()=>{i.value=Math.max(Number.parseInt(i.value,10)-a,0).toString(),o()},d=()=>{i.value=(Number.parseInt(i.value,10)+a).toString(),o()},c=r.querySelectorAll("input, select");for(const e of c)e.addEventListener("change",n);r.addEventListener("submit",e=>{e.preventDefault(),n()}),o()})();
|
"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"><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()})();
|
||||||
|
|
@ -144,6 +144,9 @@
|
||||||
|
|
||||||
<%- include('_footerA'); -%>
|
<%- include('_footerA'); -%>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
exports.lotOccupancyPrints = <%- JSON.stringify(configFunctions.getProperty("settings.lotOccupancy.prints")) %>;
|
||||||
|
</script>
|
||||||
<script src="<%= urlPrefix %>/javascripts/lotOccupancySearch.min.js"></script>
|
<script src="<%= urlPrefix %>/javascripts/lotOccupancySearch.min.js"></script>
|
||||||
|
|
||||||
<%- include('_footerB'); -%>
|
<%- include('_footerB'); -%>
|
||||||
|
|
|
||||||
|
|
@ -96,6 +96,9 @@
|
||||||
|
|
||||||
<%- include('_footerA'); -%>
|
<%- include('_footerA'); -%>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
exports.workOrderPrints = <%- JSON.stringify(configFunctions.getProperty("settings.workOrders.prints")) %>;
|
||||||
|
</script>
|
||||||
<script src="<%= urlPrefix %>/javascripts/workOrderSearch.min.js"></script>
|
<script src="<%= urlPrefix %>/javascripts/workOrderSearch.min.js"></script>
|
||||||
|
|
||||||
<%- include('_footerB'); -%>
|
<%- include('_footerB'); -%>
|
||||||
Loading…
Reference in New Issue