sunrise-cms/public/javascripts/workOrderEdit.min.js

1 line
31 KiB
JavaScript

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e,t;const o=exports.los,r=document.querySelector("#workOrderEdit--workOrderId").value,n=""===r,s=document.querySelector("#form--workOrderEdit");function a(){var e;o.setUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--workOrderEdit']"))||void 0===e||e.classList.remove("is-light")}function l(){var e;o.clearUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--workOrderEdit']"))||void 0===e||e.classList.add("is-light")}o.initializeDatePickers(null===(S=s.querySelector("#workOrderEdit--workOrderOpenDateString"))||void 0===S?void 0:S.closest(".field")),o.initializeUnlockFieldButtons(s),s.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(`${o.urlPrefix}/workOrders/${n?"doCreateWorkOrder":"doUpdateWorkOrder"}`,e.currentTarget,e=>{var t;const r=e;r.success?(l(),n?window.location.href=o.getWorkOrderURL(r.workOrderId,!0):bulmaJS.alert({message:"Work Order Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order",message:null!==(t=r.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})});const i=s.querySelectorAll("input, select, textarea");for(const e of i)e.addEventListener("change",a);function d(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doCloseWorkOrder`,{workOrderId:r},e=>{var t;const n=e;n.success?(l(),window.location.href=o.getWorkOrderURL(r)):bulmaJS.alert({title:"Error Closing Work Order",message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function c(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doDeleteWorkOrder`,{workOrderId:r},e=>{var t;const r=e;r.success?(l(),window.location.href=`${o.urlPrefix}/workOrders`):bulmaJS.alert({title:"Error Deleting Work Order",message:null!==(t=r.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}let u;if(null===(m=document.querySelector("#button--closeWorkOrder"))||void 0===m||m.addEventListener("click",()=>{u.some(e=>!e.workOrderMilestoneCompletionDate)?bulmaJS.alert({title:"Outstanding Milestones",message:"You cannot close a work order with outstanding milestones.\n Either complete the outstanding milestones, or remove them from the work order.",contextualColorName:"warning"}):bulmaJS.confirm({title:"Close Work Order",message:o.hasUnsavedChanges()?"Are you sure you want to close this work order with unsaved changes?":"Are you sure you want to close this work order?",contextualColorName:o.hasUnsavedChanges()?"warning":"info",okButton:{text:"Yes, Close Work Order",callbackFunction:d}})}),null===(e=document.querySelector("#button--deleteWorkOrder"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:"Delete Work Order",message:"Are you sure you want to delete this work order?",contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order",callbackFunction:c}})}),!n){var m;Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.workOrderLots;delete exports.workOrderLots;let t=exports.workOrderLotOccupancies;function p(e){const n=e.currentTarget.closest(".container--lotOccupancy").dataset.lotOccupancyId;bulmaJS.confirm({title:`Delete ${o.escapedAliases.Occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${o.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:function(){cityssm.postJSON(o.urlPrefix+"/workOrders/doDeleteWorkOrderLotOccupancy",{workOrderId:r,lotOccupancyId:n},e=>{var o;const r=e;r.success?(t=r.workOrderLotOccupancies,k()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(o=r.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}}})}function y(t,n){cityssm.postJSON(o.urlPrefix+"/workOrders/doAddWorkOrderLot",{workOrderId:r,lotId:t},t=>{var r;const s=t;s.success?(e=s.workOrderLots,k()):bulmaJS.alert({title:`Error Adding ${o.escapedAliases.Lot}`,message:null!==(r=s.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"}),void 0!==n&&n(s.success)})}function O(e){y(e.currentTarget.dataset.lotId)}function h(t){const n=Number.parseInt(t.currentTarget.closest(".container--lot").dataset.lotId,10),s=e.find(e=>e.lotId===n);let a;function l(t){t.preventDefault(),cityssm.postJSON(o.urlPrefix+"/workOrders/doUpdateLotStatus",t.currentTarget,t=>{var o;const r=t;r.success?(e=r.workOrderLots,k(),a()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(o=r.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lot-editLotStatus",{onshow(e){o.populateAliases(e),e.querySelector("#lotStatusEdit--lotId").value=n.toString(),e.querySelector("#lotStatusEdit--lotName").value=s.lotName;const t=e.querySelector("#lotStatusEdit--lotStatusId");let a=!1;for(const e of exports.lotStatuses){const o=document.createElement("option");o.value=e.lotStatusId.toString(),o.textContent=e.lotStatus,e.lotStatusId===s.lotStatusId&&(a=!0),t.append(o)}if(!a&&s.lotStatusId){const e=document.createElement("option");e.value=s.lotStatusId.toString(),e.textContent=s.lotStatus,t.append(e)}s.lotStatusId&&(t.value=s.lotStatusId.toString()),e.querySelector("form").insertAdjacentHTML("beforeend",`<input name="workOrderId" type="hidden" value="${r}" />`)},onshown(e,t){a=t,bulmaJS.toggleHtmlClipped(),e.querySelector("form").addEventListener("submit",l)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function g(t){const n=t.currentTarget.closest(".container--lot").dataset.lotId;bulmaJS.confirm({title:`Delete ${o.escapedAliases.Occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${o.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:function(){cityssm.postJSON(o.urlPrefix+"/workOrders/doDeleteWorkOrderLot",{workOrderId:r,lotId:n},t=>{var o;const r=t;r.success?(e=r.workOrderLots,k()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(o=r.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}}})}function k(){!function(){var r,n,s,a;const l=document.querySelector("#container--lotOccupancies");if(document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent=t.length.toString(),0===t.length)return void(l.innerHTML=`<div class="message is-info">\n <p class="message-body">There are no ${o.escapedAliases.occupancies} associated with this work order.</p>\n </div>`);l.innerHTML=`<table class="table is-fullwidth is-striped is-hoverable">\n <thead><tr>\n <th class="has-width-1"></th>\n <th>${o.escapedAliases.Occupancy} Type</th>\n <th>${o.escapedAliases.Lot}</th>\n <th>${o.escapedAliases.OccupancyStartDate}</th>\n <th>End Date</th>\n <th>${o.escapedAliases.Occupants}</th>\n <th class="has-width-1"></th>\n </tr></thead>\n <tbody></tbody>\n </table>`;const i=cityssm.dateToString(new Date);for(const d of t){const t=document.createElement("tr");t.className="container--lotOccupancy",t.dataset.lotOccupancyId=d.lotOccupancyId.toString();const c=!(d.occupancyEndDate&&d.occupancyEndDateString<i),u=d.lotId&&e.some(e=>d.lotId===e.lotId);t.innerHTML='<td class="is-width-1 has-text-centered">'+(c?'<i class="fas fa-play" title="Current '+o.escapedAliases.Occupancy+'"></i>':'<i class="fas fa-stop" title="Previous '+o.escapedAliases.Occupancy+'"></i>')+'</td><td><a class="has-text-weight-bold" href="'+o.getLotOccupancyURL(d.lotOccupancyId)+'">'+cityssm.escapeHTML(null!==(r=d.occupancyType)&&void 0!==r?r:"")+"</a><br />"+`<span class="is-size-7">#${d.lotOccupancyId}</span>`+"</td>",d.lotId?t.insertAdjacentHTML("beforeend","<td>"+cityssm.escapeHTML(null!==(n=d.lotName)&&void 0!==n?n:"")+(u?"":' <button class="button is-small is-light is-success button--addLot" data-lot-id="'+d.lotId.toString()+'" data-tooltip="Add '+o.escapedAliases.Lot+'" aria-label="Add '+o.escapedAliases.Lot+'" type="button"><i class="fas fa-plus" aria-hidden="true"></i></button>')+"</td>"):t.insertAdjacentHTML("beforeend",`<td><span class="has-text-grey">(No ${o.escapedAliases.Lot})</span></td>`);let m="";for(const e of d.lotOccupancyOccupants)m+=`<li class="has-tooltip-left"\n data-tooltip="${cityssm.escapeHTML(e.lotOccupantType)}">\n <span class="fa-li">\n <i class="fas fa-fw fa-${cityssm.escapeHTML(""===(null!==(s=e.fontAwesomeIconClass)&&void 0!==s?s:"")?"user":e.fontAwesomeIconClass)}" aria-label="${o.escapedAliases.Occupant}"></i>\n </span>\n ${cityssm.escapeHTML(e.occupantName)}\n ${cityssm.escapeHTML(e.occupantFamilyName)}\n </li>`;t.insertAdjacentHTML("beforeend","<td>"+d.occupancyStartDateString+"</td><td>"+(d.occupancyEndDate?d.occupancyEndDateString:'<span class="has-text-grey">(No End Date)</span>')+"</td><td>"+(0===d.lotOccupancyOccupants.length?`<span class="has-text-grey">(No ${o.escapedAliases.Occupants})</span>`:`<ul class="fa-ul ml-5">${m}</ul>`)+'</td><td><button class="button is-small is-light is-danger button--deleteLotOccupancy" data-tooltip="Delete Relationship" type="button"><i class="fas fa-trash" aria-hidden="true"></i></button></td>'),null===(a=t.querySelector(".button--addLot"))||void 0===a||a.addEventListener("click",O),t.querySelector(".button--deleteLotOccupancy").addEventListener("click",p),l.querySelector("tbody").append(t)}}(),function(){var t,r,n,s;const a=document.querySelector("#container--lots");if(document.querySelector(".tabs a[href='#relatedTab--lots'] .tag").textContent=e.length.toString(),0!==e.length){a.innerHTML=`<table class="table is-fullwidth is-striped is-hoverable">\n <thead><tr>\n <th>${o.escapedAliases.Lot}</th>\n <th>${o.escapedAliases.Map}</th>\n <th>${o.escapedAliases.Lot} Type</th>\n <th>Status</th>\n <th class="has-width-1"></th>\n </tr></thead>\n <tbody></tbody>\n </table>`;for(const l of e){const e=document.createElement("tr");e.className="container--lot",e.dataset.lotId=l.lotId.toString(),e.innerHTML='<td><a class="has-text-weight-bold" href="'+o.getLotURL(l.lotId)+'">'+cityssm.escapeHTML(null!==(t=l.lotName)&&void 0!==t?t:"")+"</a></td>"+`<td>${cityssm.escapeHTML(null!==(r=l.mapName)&&void 0!==r?r:"")}</td>`+`<td>${cityssm.escapeHTML(null!==(n=l.lotType)&&void 0!==n?n:"")}</td>`+"<td>"+(l.lotStatusId?cityssm.escapeHTML(null!==(s=l.lotStatus)&&void 0!==s?s:""):'<span class="has-text-grey">(No Status)</span>')+'</td><td class="is-nowrap">\n <button class="button is-small is-light is-info button--editLotStatus" data-tooltip="Update Status" type="button">\n <i class="fas fa-pencil-alt" aria-hidden="true"></i>\n </button>\n <button class="button is-small is-light is-danger button--deleteLot" data-tooltip="Delete Relationship" type="button">\n <i class="fas fa-trash" aria-hidden="true"></i>\n </button>\n </td>',e.querySelector(".button--editLotStatus").addEventListener("click",h),e.querySelector(".button--deleteLot").addEventListener("click",g),a.querySelector("tbody").append(e)}}else a.innerHTML=`<div class="message is-info">\n <p class="message-body">There are no ${o.escapedAliases.lots} associated with this work order.</p>\n </div>`}()}function v(e){const n=e.currentTarget.closest("tr");!function(e,n){cityssm.postJSON(o.urlPrefix+"/workOrders/doAddWorkOrderLotOccupancy",{workOrderId:r,lotOccupancyId:e},e=>{var r;const s=e;s.success?(t=s.workOrderLotOccupancies,k()):bulmaJS.alert({title:"Error Adding "+o.escapedAliases.Occupancy,message:null!==(r=s.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"}),void 0!==n&&n(s.success)})}(n.dataset.lotOccupancyId,e=>{e&&n.remove()})}function w(e){const t=e.currentTarget.closest("tr");y(t.dataset.lotId,e=>{e&&t.remove()})}delete exports.workOrderLotOccupancies,k(),null===(S=document.querySelector("#button--addLotOccupancy"))||void 0===S||S.addEventListener("click",()=>{let e,t;function n(r){r&&r.preventDefault(),t.innerHTML=o.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doSearchLotOccupancies",e,e=>{var r,n;const s=e;if(0!==s.lotOccupancies.length){t.innerHTML=`<table class="table is-fullwidth is-striped is-hoverable">\n <thead><tr>\n <th class="has-width-1"></th>\n <th>${o.escapedAliases.Occupancy} Type</th>\n <th>${o.escapedAliases.Lot}</th>\n <th>${o.escapedAliases.OccupancyStartDate}</th>\n <th>End Date</th>\n <th>${o.escapedAliases.Occupants}</th>\n </tr></thead>\n <tbody></tbody>\n </table>`;for(const e of s.lotOccupancies){const s=document.createElement("tr");s.className="container--lotOccupancy",s.dataset.lotOccupancyId=e.lotOccupancyId.toString(),s.innerHTML=`<td class="has-text-centered">\n <button class="button is-small is-success button--addLotOccupancy" data-tooltip="Add" type="button" aria-label="Add">\n <i class="fas fa-plus" aria-hidden="true"></i>\n </button>\n </td>\n <td class="has-text-weight-bold">\n ${cityssm.escapeHTML(null!==(r=e.occupancyType)&&void 0!==r?r:"")}\n </td>`,e.lotId?s.insertAdjacentHTML("beforeend","<td>"+cityssm.escapeHTML(null!==(n=e.lotName)&&void 0!==n?n:"")+"</td>"):s.insertAdjacentHTML("beforeend",`<td><span class="has-text-grey">(No ${o.escapedAliases.Lot})</span></td>`),s.insertAdjacentHTML("beforeend",`<td>${e.occupancyStartDateString}</td>`+"<td>"+(e.occupancyEndDate?e.occupancyEndDateString:'<span class="has-text-grey">(No End Date)</span>')+"</td><td>"+(0===e.lotOccupancyOccupants.length?`<span class="has-text-grey">(No ${cityssm.escapeHTML(o.escapedAliases.Occupants)})</span>`:cityssm.escapeHTML(e.lotOccupancyOccupants[0].occupantName+" "+e.lotOccupancyOccupants[0].occupantFamilyName)+(e.lotOccupancyOccupants.length>1?" plus "+(e.lotOccupancyOccupants.length-1).toString():""))+"</td>"),s.querySelector(".button--addLotOccupancy").addEventListener("click",v),t.querySelector("tbody").append(s)}}else t.innerHTML='<div class="message is-info">\n <p class="message-body">There are no records that meet the search criteria.</p>\n </div>'})}cityssm.openHtmlModal("workOrder-addLotOccupancy",{onshow(s){o.populateAliases(s),e=s.querySelector("form"),t=s.querySelector("#resultsContainer--lotOccupancyAdd"),s.querySelector("#lotOccupancySearch--notWorkOrderId").value=r,s.querySelector("#lotOccupancySearch--occupancyEffectiveDateString").value=document.querySelector("#workOrderEdit--workOrderOpenDateString").value,n()},onshown(t){bulmaJS.toggleHtmlClipped();const o=t.querySelector("#lotOccupancySearch--occupantName");o.addEventListener("change",n),o.focus(),t.querySelector("#lotOccupancySearch--lotName").addEventListener("change",n),e.addEventListener("submit",n)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addLotOccupancy").focus()}})}),null===(m=document.querySelector("#button--addLot"))||void 0===m||m.addEventListener("click",()=>{let e,t;function n(r){r&&r.preventDefault(),t.innerHTML=o.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(o.urlPrefix+"/lots/doSearchLots",e,e=>{var r,n,s,a;const l=e;if(0!==l.lots.length){t.innerHTML=`<table class="table is-fullwidth is-striped is-hoverable">\n <thead><tr>\n <th class="has-width-1"></th>\n <th>${o.escapedAliases.Lot}</th>\n <th>${o.escapedAliases.Map}</th>\n <th>${o.escapedAliases.Lot} Type</th>\n <th>Status</th>\n </tr></thead>\n <tbody></tbody>\n </table>`;for(const e of l.lots){const o=document.createElement("tr");o.className="container--lot",o.dataset.lotId=e.lotId.toString(),o.innerHTML='<td class="has-text-centered"><button class="button is-small is-success button--addLot" data-tooltip="Add" type="button" aria-label="Add"><i class="fas fa-plus" aria-hidden="true"></i></button></td><td class="has-text-weight-bold">'+cityssm.escapeHTML(null!==(r=e.lotName)&&void 0!==r?r:"")+"</td><td>"+cityssm.escapeHTML(null!==(n=e.mapName)&&void 0!==n?n:"")+"</td><td>"+cityssm.escapeHTML(null!==(s=e.lotType)&&void 0!==s?s:"")+"</td><td>"+cityssm.escapeHTML(null!==(a=e.lotStatus)&&void 0!==a?a:"")+"</td>",o.querySelector(".button--addLot").addEventListener("click",w),t.querySelector("tbody").append(o)}}else t.innerHTML='<div class="message is-info"><p class="message-body">There are no records that meet the search criteria.</p></div>'})}cityssm.openHtmlModal("workOrder-addLot",{onshow(s){o.populateAliases(s),e=s.querySelector("form"),t=s.querySelector("#resultsContainer--lotAdd"),s.querySelector("#lotSearch--notWorkOrderId").value=r;const a=s.querySelector("#lotSearch--lotStatusId");for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,a.append(t)}n()},onshown(t){bulmaJS.toggleHtmlClipped();const o=t.querySelector("#lotSearch--lotName");o.addEventListener("change",n),o.focus(),t.querySelector("#lotSearch--lotStatusId").addEventListener("change",n),e.addEventListener("submit",n)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addLot").focus()}})})}var S;Object.defineProperty(exports,"__esModule",{value:!0});let f=exports.workOrderComments;function b(e){const t=Number.parseInt(e.currentTarget.closest("tr").dataset.workOrderCommentId,10),n=f.find(e=>e.workOrderCommentId===t);let s,a;function l(e){e.preventDefault(),cityssm.postJSON(o.urlPrefix+"/workOrders/doUpdateWorkOrderComment",s,e=>{var t;e.success?(f=e.workOrderComments,a(),L()):bulmaJS.alert({title:"Error Updating Comment",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("workOrder-editComment",{onshow(e){e.querySelector("#workOrderCommentEdit--workOrderId").value=r,e.querySelector("#workOrderCommentEdit--workOrderCommentId").value=t.toString(),e.querySelector("#workOrderCommentEdit--workOrderComment").value=n.workOrderComment;const o=e.querySelector("#workOrderCommentEdit--workOrderCommentDateString");o.value=n.workOrderCommentDateString;const s=cityssm.dateToString(new Date);o.max=n.workOrderCommentDateString<=s?s:n.workOrderCommentDateString,e.querySelector("#workOrderCommentEdit--workOrderCommentTimeString").value=n.workOrderCommentTimeString},onshown(e,t){bulmaJS.toggleHtmlClipped(),o.initializeDatePickers(e),e.querySelector("#workOrderCommentEdit--workOrderComment").focus(),(s=e.querySelector("form")).addEventListener("submit",l),a=t},onremoved(){bulmaJS.toggleHtmlClipped()}})}function M(e){const t=Number.parseInt(e.currentTarget.closest("tr").dataset.workOrderCommentId,10);bulmaJS.confirm({title:"Remove Comment?",message:"Are you sure you want to remove this comment?",okButton:{text:"Yes, Remove Comment",callbackFunction:function(){cityssm.postJSON(o.urlPrefix+"/workOrders/doDeleteWorkOrderComment",{workOrderId:r,workOrderCommentId:t},e=>{var t;e.success?(f=e.workOrderComments,L()):bulmaJS.alert({title:"Error Removing Comment",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function L(){var e,t;const o=document.querySelector("#container--workOrderComments");if(0===f.length)return void(o.innerHTML='<div class="message is-info">\n <p class="message-body">There are no comments to display.</p>\n </div>');const r=document.createElement("table");r.className="table is-fullwidth is-striped is-hoverable",r.innerHTML='<thead><tr>\n <th>Commentor</th>\n <th>Comment Date</th>\n <th>Comment</th>\n <th class="is-hidden-print"><span class="is-sr-only">Options</span></th></tr></thead><tbody></tbody>';for(const o of f){const n=document.createElement("tr");n.dataset.workOrderCommentId=o.workOrderCommentId.toString(),n.innerHTML="<td>"+cityssm.escapeHTML(null!==(e=o.recordCreate_userName)&&void 0!==e?e:"")+"</td><td>"+o.workOrderCommentDateString+(0===o.workOrderCommentTime?"":" "+o.workOrderCommentTimePeriodString)+"</td><td>"+cityssm.escapeHTML(null!==(t=o.workOrderComment)&&void 0!==t?t:"")+'</td><td class="is-hidden-print"><div class="buttons are-small is-justify-content-end"><button class="button is-primary button--edit" type="button"><span class="icon is-small"><i class="fas fa-pencil-alt" aria-hidden="true"></i></span> <span>Edit</span></button><button class="button is-light is-danger button--delete" data-tooltip="Delete Comment" type="button" aria-label="Delete"><i class="fas fa-trash" aria-hidden="true"></i></button></div></td>',n.querySelector(".button--edit").addEventListener("click",b),n.querySelector(".button--delete").addEventListener("click",M),r.querySelector("tbody").append(n)}o.innerHTML="",o.append(r)}function T(e){for(const t of e.querySelectorAll(".panel-block"))t.remove()}function C(e,t){T(t),t.insertAdjacentHTML("beforeend",`<div class="panel-block is-block">\n ${o.getLoadingParagraphHTML("Loading conflicting milestones...")}\n </div>`),cityssm.postJSON(`${o.urlPrefix}/workOrders/doGetWorkOrderMilestones`,{workOrderMilestoneDateFilter:"date",workOrderMilestoneDateString:e},o=>{var n,s,a,l;const i=o.workOrderMilestones.filter(e=>e.workOrderId.toString()!==r);T(t);for(const e of i)t.insertAdjacentHTML("beforeend",`<div class="panel-block is-block">\n <div class="columns">\n <div class="column is-5">\n ${cityssm.escapeHTML(0===e.workOrderMilestoneTime?"No Time":null!==(n=e.workOrderMilestoneTimePeriodString)&&void 0!==n?n:"")}<br />\n <strong>${cityssm.escapeHTML(null!==(s=e.workOrderMilestoneType)&&void 0!==s?s:"")}</strong>\n </div>\n <div class="column">\n ${cityssm.escapeHTML(null!==(a=e.workOrderNumber)&&void 0!==a?a:"")}<br />\n <span class="is-size-7">\n ${cityssm.escapeHTML(null!==(l=e.workOrderDescription)&&void 0!==l?l:"")}\n </span>\n </div>\n </div>\n </div>`);0===i.length&&t.insertAdjacentHTML("beforeend",`<div class="panel-block is-block">\n <div class="message is-info">\n <p class="message-body">\n There are no milestones on other work orders scheduled for\n ${cityssm.escapeHTML(e)}.\n </p>\n </div>\n </div>`)})}function I(e){var t;const o=e;o.success?(u=o.workOrderMilestones,A()):bulmaJS.alert({title:"Error Reopening Milestone",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})}function x(e){var t;e.preventDefault();const n=cityssm.dateToString(new Date),s=Number.parseInt(null!==(t=e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId)&&void 0!==t?t:"",10),a=u.find(e=>e.workOrderMilestoneId===s);bulmaJS.confirm({title:"Complete Milestone",message:"Are you sure you want to complete this milestone?"+(void 0!==a.workOrderMilestoneDateString&&""!==a.workOrderMilestoneDateString&&a.workOrderMilestoneDateString>n?"<br /><strong>Note that this milestone is expected to be completed in the future.</strong>":""),messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Complete Milestone",callbackFunction:function(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doCompleteWorkOrderMilestone`,{workOrderId:r,workOrderMilestoneId:s},I)}}})}function E(e){e.preventDefault();const t=e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;bulmaJS.confirm({title:"Reopen Milestone",message:"Are you sure you want to remove the completion status from this milestone, and reopen it?",contextualColorName:"warning",okButton:{text:"Yes, Reopen Milestone",callbackFunction:function(){cityssm.postJSON(o.urlPrefix+"/workOrders/doReopenWorkOrderMilestone",{workOrderId:r,workOrderMilestoneId:t},I)}}})}function D(e){e.preventDefault();const t=e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;bulmaJS.confirm({title:"Delete Milestone",message:"Are you sure you want to delete this milestone?",contextualColorName:"warning",okButton:{text:"Yes, Delete Milestone",callbackFunction:function(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doDeleteWorkOrderMilestone`,{workOrderMilestoneId:t,workOrderId:r},I)}}})}function q(e){var t;e.preventDefault();const n=Number.parseInt(null!==(t=e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId)&&void 0!==t?t:"",10),s=u.find(e=>e.workOrderMilestoneId===n);let a,l;function i(e){e.preventDefault(),cityssm.postJSON(`${o.urlPrefix}/workOrders/doUpdateWorkOrderMilestone`,e.currentTarget,e=>{const t=e;I(t),t.success&&a()})}cityssm.openHtmlModal("workOrder-editMilestone",{onshow(e){var t,o,n,a,i,d;e.querySelector("#milestoneEdit--workOrderId").value=r,e.querySelector("#milestoneEdit--workOrderMilestoneId").value=null!==(o=null===(t=s.workOrderMilestoneId)||void 0===t?void 0:t.toString())&&void 0!==o?o:"";const c=e.querySelector("#milestoneEdit--workOrderMilestoneTypeId");let u=!1;for(const e of exports.workOrderMilestoneTypes){const t=document.createElement("option");t.value=e.workOrderMilestoneTypeId.toString(),t.textContent=e.workOrderMilestoneType,e.workOrderMilestoneTypeId===s.workOrderMilestoneTypeId&&(t.selected=!0,u=!0),c.append(t)}if(!u&&s.workOrderMilestoneTypeId){const e=document.createElement("option");e.value=s.workOrderMilestoneTypeId.toString(),e.textContent=null!==(n=s.workOrderMilestoneType)&&void 0!==n?n:"",e.selected=!0,c.append(e)}(l=e.querySelector("#milestoneEdit--workOrderMilestoneDateString")).value=null!==(a=s.workOrderMilestoneDateString)&&void 0!==a?a:"",s.workOrderMilestoneTime&&(e.querySelector("#milestoneEdit--workOrderMilestoneTimeString").value=null!==(i=s.workOrderMilestoneTimeString)&&void 0!==i?i:""),e.querySelector("#milestoneEdit--workOrderMilestoneDescription").value=null!==(d=s.workOrderMilestoneDescription)&&void 0!==d?d:""},onshown(e,t){var r;a=t,bulmaJS.toggleHtmlClipped(),o.initializeDatePickers(e),null===(r=e.querySelector("form"))||void 0===r||r.addEventListener("submit",i);const n=document.querySelector("#milestoneEdit--conflictingMilestonesPanel");l.addEventListener("change",()=>{C(l.value,n)}),C(l.value,n)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function A(){var e,t,o,r,n,s,a;const l=document.querySelector("#panel--milestones"),i=l.querySelectorAll(".panel-block");for(const e of i)e.remove();for(const i of u){const d=document.createElement("div");d.className="panel-block is-block container--milestone",d.dataset.workOrderMilestoneId=null===(e=i.workOrderMilestoneId)||void 0===e?void 0:e.toString(),d.innerHTML='<div class="columns is-mobile"><div class="column is-narrow">'+(i.workOrderMilestoneCompletionDate?'<span class="button is-static" data-tooltip="Completed '+i.workOrderMilestoneCompletionDateString+'" aria-label="Completed '+i.workOrderMilestoneCompletionDateString+'"><span class="icon is-small"><i class="fas fa-check" aria-hidden="true"></i></span></span>':'<button class="button button--completeMilestone" data-tooltip="Incomplete" type="button" aria-label="Incomplete"><span class="icon is-small"><i class="far fa-square" aria-hidden="true"></i></span></button>')+'</div><div class="column">'+(i.workOrderMilestoneTypeId?"<strong>"+cityssm.escapeHTML(null!==(t=i.workOrderMilestoneType)&&void 0!==t?t:"")+"</strong><br />":"")+(0===i.workOrderMilestoneDate?'<span class="has-text-grey">(No Set Date)</span>':i.workOrderMilestoneDateString)+(i.workOrderMilestoneTime?" "+i.workOrderMilestoneTimePeriodString:"")+'<br /><span class="is-size-7">'+cityssm.escapeHTML(null!==(o=i.workOrderMilestoneDescription)&&void 0!==o?o:"")+'</span></div><div class="column is-narrow"><div class="dropdown is-right"><div class="dropdown-trigger"><button class="button is-small" data-tooltip="Options" type="button" aria-label="Options"><i class="fas fa-ellipsis-v" aria-hidden="true"></i></button></div><div class="dropdown-menu"><div class="dropdown-content">'+(i.workOrderMilestoneCompletionDate?'<a class="dropdown-item button--reopenMilestone" href="#"><span class="icon is-small"><i class="fas fa-times" aria-hidden="true"></i></span> <span>Reopen Milestone</span></a>':'<a class="dropdown-item button--editMilestone" href="#"><span class="icon is-small"><i class="fas fa-pencil-alt" aria-hidden="true"></i></span> <span>Edit Milestone</span></a>')+'<hr class="dropdown-divider" /><a class="dropdown-item button--deleteMilestone" href="#"><span class="icon is-small"><i class="fas fa-trash has-text-danger" aria-hidden="true"></i></span> <span>Delete Milestone</span></a></div></div></div></div></div>',null===(r=d.querySelector(".button--reopenMilestone"))||void 0===r||r.addEventListener("click",E),null===(n=d.querySelector(".button--editMilestone"))||void 0===n||n.addEventListener("click",q),null===(s=d.querySelector(".button--completeMilestone"))||void 0===s||s.addEventListener("click",x),null===(a=d.querySelector(".button--deleteMilestone"))||void 0===a||a.addEventListener("click",D),l.append(d)}bulmaJS.init(l)}delete exports.workOrderComments,null===(S=document.querySelector("#workOrderComments--add"))||void 0===S||S.addEventListener("click",function(){let e;function t(t){t.preventDefault(),cityssm.postJSON(o.urlPrefix+"/workOrders/doAddWorkOrderComment",t.currentTarget,t=>{t.success&&(f=t.workOrderComments,L(),e())})}cityssm.openHtmlModal("workOrder-addComment",{onshow(e){o.populateAliases(e),e.querySelector("#workOrderCommentAdd--workOrderId").value=r,e.querySelector("form").addEventListener("submit",t)},onshown(t,o){bulmaJS.toggleHtmlClipped(),e=o,t.querySelector("#workOrderCommentAdd--workOrderComment").focus()},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#workOrderComments--add").focus()}})}),n||L(),n||(u=exports.workOrderMilestones,delete exports.workOrderMilestones,A(),null===(t=document.querySelector("#button--addMilestone"))||void 0===t||t.addEventListener("click",()=>{let e,t,n;function s(r){r&&r.preventDefault();const s=cityssm.dateToString(new Date);function a(){cityssm.postJSON(`${o.urlPrefix}/workOrders/doAddWorkOrderMilestone`,e,e=>{const t=e;I(t),t.success&&n()})}const l=t.value;""!==l&&l<s?bulmaJS.confirm({title:"Milestone Date in the Past",message:"Are you sure you want to create a milestone with a date in the past?",contextualColorName:"warning",okButton:{text:"Yes, Create a Past Milestone",callbackFunction:a}}):a()}cityssm.openHtmlModal("workOrder-addMilestone",{onshow(e){e.querySelector("#milestoneAdd--workOrderId").value=r;const o=e.querySelector("#milestoneAdd--workOrderMilestoneTypeId");for(const e of exports.workOrderMilestoneTypes){const t=document.createElement("option");t.value=e.workOrderMilestoneTypeId.toString(),t.textContent=e.workOrderMilestoneType,o.append(t)}(t=e.querySelector("#milestoneAdd--workOrderMilestoneDateString")).valueAsDate=new Date},onshown(r,a){n=a,o.initializeDatePickers(r),bulmaJS.toggleHtmlClipped(),r.querySelector("#milestoneAdd--workOrderMilestoneTypeId").focus(),(e=r.querySelector("form")).addEventListener("submit",s);const l=document.querySelector("#milestoneAdd--conflictingMilestonesPanel");t.addEventListener("change",()=>{C(t.value,l)}),C(t.value,l)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addMilestone").focus()}})}))})();