diff --git a/handlers/workOrders-get/search.js b/handlers/workOrders-get/search.js index 54d0524b..4601bda3 100644 --- a/handlers/workOrders-get/search.js +++ b/handlers/workOrders-get/search.js @@ -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; diff --git a/handlers/workOrders-get/search.ts b/handlers/workOrders-get/search.ts index 30f620d7..d833cad0 100644 --- a/handlers/workOrders-get/search.ts +++ b/handlers/workOrders-get/search.ts @@ -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 }); }; diff --git a/public-typescript/workOrderSearch.js b/public-typescript/workOrderSearch.js index bec19493..12f53053 100644 --- a/public-typescript/workOrderSearch.js +++ b/public-typescript/workOrderSearch.js @@ -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(); })(); diff --git a/public-typescript/workOrderSearch.ts b/public-typescript/workOrderSearch.ts index 8d9612aa..105b65cb 100644 --- a/public-typescript/workOrderSearch.ts +++ b/public-typescript/workOrderSearch.ts @@ -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(); })(); diff --git a/public/javascripts/workOrderSearch.min.js b/public/javascripts/workOrderSearch.min.js index c32dfd74..60d87993 100644 --- a/public/javascripts/workOrderSearch.min.js +++ b/public/javascripts/workOrderSearch.min.js @@ -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='

Loading Work Orders...
',cityssm.postJSON(e+"/workOrders/doSearchWorkOrders",t,t=>{if(0===t.workOrders.length)return void(r.innerHTML='

There are no work orders that meet the search criteria.

');const a=document.createElement("tbody");for(const r of t.workOrders)a.insertAdjacentHTML("beforeend",''+cityssm.escapeHTML(r.workOrderNumber)+""+cityssm.escapeHTML(r.workOrderType)+'
'+cityssm.escapeHTML(r.workOrderDescription)+' '+r.workOrderOpenDateString+'
'+(r.workOrderCloseDate?r.workOrderCloseDateString:'(No Close Date)')+""+(0===r.workOrderMilestoneCount?"-":r.workOrderMilestoneCompletionCount+" / "+r.workOrderMilestoneCount)+"");r.innerHTML='
Work Order NumberWork Order DescriptionDateProgress
Displaying '+(i+1).toString()+" to "+Math.min(t.count,s+i)+" of "+t.count+'
'+(i>0?'
':"")+(s+i
':"")+"
",r.querySelector("table").append(a),i>0&&r.querySelector("button[data-page='previous']").addEventListener("click",n),s+i{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()})(); \ No newline at end of file +"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='

Loading Work Orders...
',cityssm.postJSON(e+"/workOrders/doSearchWorkOrders",t,t=>{if(0===t.workOrders.length)return void(r.innerHTML='

There are no work orders that meet the search criteria.

');const s=document.createElement("tbody");for(const r of t.workOrders)s.insertAdjacentHTML("beforeend",'
");r.innerHTML='
'+cityssm.escapeHTML(r.workOrderNumber)+""+cityssm.escapeHTML(r.workOrderType)+'
'+cityssm.escapeHTML(r.workOrderDescription)+'
'+r.workOrderOpenDateString+'
'+(r.workOrderCloseDate?r.workOrderCloseDateString:'(No Close Date)')+"
"+(0===r.workOrderMilestoneCount?"-":r.workOrderMilestoneCompletionCount+" / "+r.workOrderMilestoneCount)+"
Work Order NumberWork Order DescriptionDateProgress
Displaying '+(o+1).toString()+" to "+Math.min(t.count,a+o)+" of "+t.count+'
'+(o>0?'
':"")+(a+o
':"")+"
",r.querySelector("table").append(s),o>0&&r.querySelector("button[data-page='previous']").addEventListener("click",n),a+o{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()})(); \ No newline at end of file diff --git a/views/dashboard.ejs b/views/dashboard.ejs index d4d0996d..46bcbd98 100644 --- a/views/dashboard.ejs +++ b/views/dashboard.ejs @@ -111,7 +111,7 @@ <% if (workOrderCount > 0) { %>
- <%= workOrderCount %> Open Today + <%= workOrderCount %> Open Today
<% } %> diff --git a/views/workOrder-search.ejs b/views/workOrder-search.ejs index f7f8a0dd..5ff9e139 100644 --- a/views/workOrder-search.ejs +++ b/views/workOrder-search.ejs @@ -43,12 +43,12 @@
- +
@@ -59,19 +59,42 @@
-
+
+ + +
+ + +
+
+ +
+
+ + + + +
+
+ +
+