/* eslint-disable unicorn/prefer-module */
import type * as recordTypes from "../types/recordTypes";
import type * as globalTypes from "../types/globalTypes";
import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
declare const cityssm: cityssmGlobal;
(() => {
const los = exports.los as globalTypes.LOS;
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
const workOrderPrints: string[] = exports.workOrderPrints;
const searchFilterFormElement = document.querySelector(
"#form--searchFilters"
) as HTMLFormElement;
los.initializeDatePickers(searchFilterFormElement);
const searchResultsContainerElement = document.querySelector(
"#container--searchResults"
) as HTMLElement;
const limit = Number.parseInt(
(document.querySelector("#searchFilter--limit") as HTMLInputElement).value,
10
);
const offsetElement = document.querySelector("#searchFilter--offset") as HTMLInputElement;
const getWorkOrders = () => {
const offset = Number.parseInt(offsetElement.value, 10);
searchResultsContainerElement.innerHTML =
'
' +
'
' +
"Loading Work Orders..." +
"
";
cityssm.postJSON(
urlPrefix + "/workOrders/doSearchWorkOrders",
searchFilterFormElement,
(responseJSON: { count: number; workOrders: recordTypes.WorkOrder[] }) => {
if (responseJSON.workOrders.length === 0) {
searchResultsContainerElement.innerHTML =
'' +
'
There are no work orders that meet the search criteria.
' +
"
";
return;
}
const resultsTbodyElement = document.createElement("tbody");
for (const workOrder of responseJSON.workOrders) {
let relatedHTML = "";
for (const lot of workOrder.workOrderLots) {
relatedHTML +=
'' +
' ' +
cityssm.escapeHTML(lot.lotName || "(No Lot Name)") +
"
";
}
for (const occupancy of workOrder.workOrderLotOccupancies) {
for (const occupant of occupancy.lotOccupancyOccupants) {
relatedHTML +=
'' +
' ' +
cityssm.escapeHTML(occupant.occupantName || "(No Name)") +
"
";
}
}
resultsTbodyElement.insertAdjacentHTML(
"beforeend",
"" +
("| " +
'' +
(workOrder.workOrderNumber.trim()
? cityssm.escapeHTML(workOrder.workOrderNumber)
: "(No Number)") +
"" +
" | ") +
("" +
cityssm.escapeHTML(workOrder.workOrderType) +
" " +
'' +
cityssm.escapeHTML(workOrder.workOrderDescription) +
"" +
" | ") +
('' +
relatedHTML +
" | ") +
('' +
('' +
' ' +
workOrder.workOrderOpenDateString +
" ") +
('' +
' ' +
(workOrder.workOrderCloseDate
? workOrder.workOrderCloseDateString
: '(No Close Date)') +
"") +
" | ") +
("" +
(workOrder.workOrderMilestoneCount === 0
? "-"
: workOrder.workOrderMilestoneCompletionCount +
" / " +
workOrder.workOrderMilestoneCount) +
" | ") +
(workOrderPrints.length > 0
? "" +
'' +
'' +
"" +
" | "
: "") +
"
"
);
}
searchResultsContainerElement.innerHTML =
'