work order open date filter
parent
8e64a11371
commit
59d28bc21d
|
|
@ -1,9 +1,11 @@
|
|||
import { getWorkOrderTypes } from "../../helpers/functions.cache.js";
|
||||
export const handler = (request, response) => {
|
||||
const workOrderOpenDateString = request.query.workOrderOpenDateString;
|
||||
const workOrderTypes = getWorkOrderTypes();
|
||||
response.render("workOrder-search", {
|
||||
headTitle: "Work Order Search",
|
||||
workOrderTypes
|
||||
workOrderTypes,
|
||||
workOrderOpenDateString
|
||||
});
|
||||
};
|
||||
export default handler;
|
||||
|
|
|
|||
|
|
@ -3,11 +3,15 @@ import type { RequestHandler } from "express";
|
|||
import { getWorkOrderTypes } from "../../helpers/functions.cache.js";
|
||||
|
||||
export const handler: RequestHandler = (request, response) => {
|
||||
|
||||
const workOrderOpenDateString = request.query.workOrderOpenDateString;
|
||||
|
||||
const workOrderTypes = getWorkOrderTypes();
|
||||
|
||||
response.render("workOrder-search", {
|
||||
headTitle: "Work Order Search",
|
||||
workOrderTypes
|
||||
workOrderTypes,
|
||||
workOrderOpenDateString
|
||||
});
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -132,5 +132,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
formEvent.preventDefault();
|
||||
resetOffsetAndGetWorkOrders();
|
||||
});
|
||||
const workOrderOpenDateStringElement = document.querySelector("#searchFilter--workOrderOpenDateString");
|
||||
document.querySelector("#button--workOrderOpenDateString-previous").addEventListener("click", () => {
|
||||
if (workOrderOpenDateStringElement.value === "") {
|
||||
workOrderOpenDateStringElement.valueAsDate = new Date();
|
||||
}
|
||||
else {
|
||||
const openDate = workOrderOpenDateStringElement.valueAsDate;
|
||||
openDate.setDate(openDate.getDate() - 1);
|
||||
workOrderOpenDateStringElement.valueAsDate = openDate;
|
||||
}
|
||||
resetOffsetAndGetWorkOrders();
|
||||
});
|
||||
document.querySelector("#button--workOrderOpenDateString-next").addEventListener("click", () => {
|
||||
if (workOrderOpenDateStringElement.value === "") {
|
||||
workOrderOpenDateStringElement.valueAsDate = new Date();
|
||||
}
|
||||
else {
|
||||
const openDate = workOrderOpenDateStringElement.valueAsDate;
|
||||
openDate.setDate(openDate.getDate() + 1);
|
||||
workOrderOpenDateStringElement.valueAsDate = openDate;
|
||||
}
|
||||
resetOffsetAndGetWorkOrders();
|
||||
});
|
||||
getWorkOrders();
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -176,5 +176,33 @@ declare const cityssm: cityssmGlobal;
|
|||
resetOffsetAndGetWorkOrders();
|
||||
});
|
||||
|
||||
const workOrderOpenDateStringElement = document.querySelector("#searchFilter--workOrderOpenDateString") as HTMLInputElement;
|
||||
|
||||
document.querySelector("#button--workOrderOpenDateString-previous").addEventListener("click", () => {
|
||||
|
||||
if (workOrderOpenDateStringElement.value === "") {
|
||||
workOrderOpenDateStringElement.valueAsDate = new Date();
|
||||
} else {
|
||||
const openDate = workOrderOpenDateStringElement.valueAsDate;
|
||||
openDate.setDate(openDate.getDate() - 1);
|
||||
workOrderOpenDateStringElement.valueAsDate = openDate;
|
||||
}
|
||||
|
||||
resetOffsetAndGetWorkOrders();
|
||||
});
|
||||
|
||||
document.querySelector("#button--workOrderOpenDateString-next").addEventListener("click", () => {
|
||||
|
||||
if (workOrderOpenDateStringElement.value === "") {
|
||||
workOrderOpenDateStringElement.valueAsDate = new Date();
|
||||
} else {
|
||||
const openDate = workOrderOpenDateStringElement.valueAsDate;
|
||||
openDate.setDate(openDate.getDate() + 1);
|
||||
workOrderOpenDateStringElement.valueAsDate = openDate;
|
||||
}
|
||||
|
||||
resetOffsetAndGetWorkOrders();
|
||||
});
|
||||
|
||||
getWorkOrders();
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("main").dataset.urlPrefix,t=document.querySelector("#form--searchFilters"),r=document.querySelector("#container--searchResults"),s=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),a=document.querySelector("#searchFilter--offset"),i=()=>{const i=Number.parseInt(a.value,10);r.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(e+"/workOrders/doSearchWorkOrders",t,t=>{if(0===t.workOrders.length)return void(r.innerHTML='<div class="message is-info"><p class="message-body">There are no work orders that meet the search criteria.</p></div>');const a=document.createElement("tbody");for(const r of t.workOrders)a.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e+"/workOrders/"+r.workOrderId+'">'+cityssm.escapeHTML(r.workOrderNumber)+"</a></td><td>"+cityssm.escapeHTML(r.workOrderType)+'<br /><span class="is-size-7">'+cityssm.escapeHTML(r.workOrderDescription)+'</span></td><td class="is-nowrap"><span data-tooltip="Open Date"><i class="fas fa-fw fa-play" aria-label="Open Date"></i> '+r.workOrderOpenDateString+'</span><br /><span data-tooltip="Close Date"><i class="fas fa-fw fa-stop" aria-label="Close Date"></i> '+(r.workOrderCloseDate?r.workOrderCloseDateString:'<span class="has-text-grey">(No Close Date)</span>')+"</span></td><td>"+(0===r.workOrderMilestoneCount?"-":r.workOrderMilestoneCompletionCount+" / "+r.workOrderMilestoneCount)+"</td></tr>");r.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 '+(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>",r.querySelector("table").append(a),i>0&&r.querySelector("button[data-page='previous']").addEventListener("click",n),s+i<t.count&&r.querySelector("button[data-page='next']").addEventListener("click",l)})},o=()=>{a.value="0",i()},n=()=>{a.value=Math.max(Number.parseInt(a.value,10)-s,0).toString(),i()},l=()=>{a.value=(Number.parseInt(a.value,10)+s).toString(),i()},d=t.querySelectorAll("input, select");for(const e of d)e.addEventListener("change",o);t.addEventListener("submit",e=>{e.preventDefault(),o()}),i()})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("main").dataset.urlPrefix,t=document.querySelector("#form--searchFilters"),r=document.querySelector("#container--searchResults"),a=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),s=document.querySelector("#searchFilter--offset"),o=()=>{const o=Number.parseInt(s.value,10);r.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(e+"/workOrders/doSearchWorkOrders",t,t=>{if(0===t.workOrders.length)return void(r.innerHTML='<div class="message is-info"><p class="message-body">There are no work orders that meet the search criteria.</p></div>');const s=document.createElement("tbody");for(const r of t.workOrders)s.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e+"/workOrders/"+r.workOrderId+'">'+cityssm.escapeHTML(r.workOrderNumber)+"</a></td><td>"+cityssm.escapeHTML(r.workOrderType)+'<br /><span class="is-size-7">'+cityssm.escapeHTML(r.workOrderDescription)+'</span></td><td class="is-nowrap"><span data-tooltip="Open Date"><i class="fas fa-fw fa-play" aria-label="Open Date"></i> '+r.workOrderOpenDateString+'</span><br /><span data-tooltip="Close Date"><i class="fas fa-fw fa-stop" aria-label="Close Date"></i> '+(r.workOrderCloseDate?r.workOrderCloseDateString:'<span class="has-text-grey">(No Close Date)</span>')+"</span></td><td>"+(0===r.workOrderMilestoneCount?"-":r.workOrderMilestoneCompletionCount+" / "+r.workOrderMilestoneCount)+"</td></tr>");r.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 '+(o+1).toString()+" to "+Math.min(t.count,a+o)+" of "+t.count+'</div></div><div class="level-right">'+(o>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+o<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>",r.querySelector("table").append(s),o>0&&r.querySelector("button[data-page='previous']").addEventListener("click",n),a+o<t.count&&r.querySelector("button[data-page='next']").addEventListener("click",l)})},i=()=>{s.value="0",o()},n=()=>{s.value=Math.max(Number.parseInt(s.value,10)-a,0).toString(),o()},l=()=>{s.value=(Number.parseInt(s.value,10)+a).toString(),o()},d=t.querySelectorAll("input, select");for(const e of d)e.addEventListener("change",i);t.addEventListener("submit",e=>{e.preventDefault(),i()});const c=document.querySelector("#searchFilter--workOrderOpenDateString");document.querySelector("#button--workOrderOpenDateString-previous").addEventListener("click",()=>{if(""===c.value)c.valueAsDate=new Date;else{const e=c.valueAsDate;e.setDate(e.getDate()-1),c.valueAsDate=e}i()}),document.querySelector("#button--workOrderOpenDateString-next").addEventListener("click",()=>{if(""===c.value)c.valueAsDate=new Date;else{const e=c.valueAsDate;e.setDate(e.getDate()+1),c.valueAsDate=e}i()}),o()})();
|
||||
|
|
@ -111,7 +111,7 @@
|
|||
<% if (workOrderCount > 0) { %>
|
||||
<div class="level-right">
|
||||
<div class="level-item">
|
||||
<span class="tag is-info"><%= workOrderCount %> Open Today</span>
|
||||
<a class="tag is-info" href="<%= urlPrefix %>/workOrders/?workOrderOpenDateString=<%= dateTimeFunctions.dateToString(new Date()) %>"><%= workOrderCount %> Open Today</a>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
|
|
|||
|
|
@ -59,19 +59,42 @@
|
|||
<div class="column">
|
||||
<div class="field">
|
||||
<label class="label" for="searchFilter--workOrderOpenStatus">Open Status</label>
|
||||
<div class="control">
|
||||
<div class="control has-icons-left">
|
||||
<div class="select is-fullwidth">
|
||||
<select id="searchFilter--workOrderOpenStatus" name="workOrderOpenStatus">
|
||||
<option value="">(All Statuses)</option>
|
||||
<option value="open" selected>Open</option>
|
||||
<option value="" <%= (workOrderOpenDateString ? " selected" : "") %>>(All Statuses)</option>
|
||||
<option value="open" <%= (workOrderOpenDateString ? "" : " selected") %>>Open</option>
|
||||
<option value="closed">Closed</option>
|
||||
</select>
|
||||
</div>
|
||||
<span class="icon is-small is-left">
|
||||
<i class="fas fa-search" aria-hidden="true"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="label" for="searchFilter--workOrderOpenDateString">Open Date</label>
|
||||
<div class="field has-addons">
|
||||
<div class="control">
|
||||
<button class="button" id="button--workOrderOpenDateString-previous" data-tooltip="Previous Day" type="button" aria-label="Previous Day">
|
||||
<i class="fas fa-arrow-left" aria-hidden="true"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="control is-expanded has-icons-left">
|
||||
<input class="input" id="searchFilter--workOrderOpenDateString" name="workOrderOpenDateString" type="date" value="<%= workOrderOpenDateString %>" />
|
||||
<span class="icon is-small is-left">
|
||||
<i class="fas fa-search" aria-hidden="true"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="control">
|
||||
<button class="button" id="button--workOrderOpenDateString-next" data-tooltip="Next Day" type="button" aria-label="Next Day">
|
||||
<i class="fas fa-arrow-right" aria-hidden="true"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue