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

1 line
15 KiB
JavaScript

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("main").dataset.urlPrefix,s=document.querySelector("#workOrderEdit--workOrderId").value,o=""===s;if(document.querySelector("#form--workOrderEdit").addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(t+"/workOrders/"+(o?"doCreateWorkOrder":"doUpdateWorkOrder"),e.currentTarget,e=>{e.success?o?window.location.href=t+"/workOrders/"+e.workOrderId+"/edit":bulmaJS.alert({message:"Work Order Updated Successfully",contextualColorName:"success"}):bulmaJS.alert({title:"Error Updating Work Order",message:e.errorMessage,contextualColorName:"danger"})})}),!o){let o=exports.workOrderLots;delete exports.workOrderLots;let a=exports.workOrderLotOccupancies;delete exports.workOrderLotOccupancies;const r=e=>{const o=e.currentTarget.closest(".container--lotOccupancy").dataset.lotOccupancyId;bulmaJS.confirm({title:"Delete "+exports.aliases.lot+" "+exports.aliases.occupancy+" Relationship",message:"Are you sure you want to remove the relationship to this "+exports.aliases.lot.toLowerCase()+" "+exports.aliases.occupancy.toLowerCase()+" record from this work order? Note that the record will remain.",contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:()=>{cityssm.postJSON(t+"/workOrders/doDeleteWorkOrderLotOccupancy",{workOrderId:s,lotOccupancyId:o},e=>{e.success?(a=e.workOrderLotOccupancies,u()):bulmaJS.alert({title:"Error Deleting Relationship",message:e.errorMessage,contextualColorName:"danger"})})}}})},c=(e,a)=>{cityssm.postJSON(t+"/workOrders/doAddWorkOrderLot",{workOrderId:s,lotId:e},e=>{e.success?(o=e.workOrderLots,u()):bulmaJS.alert({title:"Error Adding "+exports.aliases.lot,message:e.errorMessage,contextualColorName:"danger"}),a&&a(e.success)})},n=(e,o)=>{cityssm.postJSON(t+"/workOrders/doAddWorkOrderLotOccupancy",{workOrderId:s,lotOccupancyId:e},e=>{e.success?(a=e.workOrderLotOccupancies,u()):bulmaJS.alert({title:"Error Adding "+exports.aliases.occupancy,message:e.errorMessage,contextualColorName:"danger"}),o&&o(e.success)})},l=e=>{const t=e.currentTarget.dataset.lotId;c(t)},i=()=>{const e=document.querySelector("#container--lotOccupancies");if(document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent=a.length.toString(),0===a.length)return void(e.innerHTML='<div class="message is-info"><p class="message-body">There are no '+exports.aliases.occupancies.toLowerCase()+" associated with this work order.</p></div>");e.innerHTML='<table class="table is-fullwidth is-striped is-hoverable"><thead><tr><th class="has-width-1"></th><th>'+exports.aliases.occupancy+" Type</th><th>"+exports.aliases.lot+"</th><th>Start Date</th><th>End Date</th><th>"+exports.aliases.occupants+'</th><th class="has-width-1"></th></tr></thead><tbody></tbody></table>';const s=cityssm.dateToString(new Date);for(const c of a){const a=document.createElement("tr");a.className="container--lotOccupancy",a.dataset.lotOccupancyId=c.lotOccupancyId.toString();const n=!(c.occupancyEndDate&&c.occupancyEndDateString<s),i=c.lotId&&o.some(e=>c.lotId===e.lotId);a.innerHTML='<td class="has-text-centered">'+(n?'<i class="fas fa-play" title="Current '+cityssm.escapeHTML(exports.aliases.occupancy)+'"></i>':'<i class="fas fa-stop" title="Previous '+cityssm.escapeHTML(exports.aliases.occupancy)+'"></i>')+'</td><td><a class="has-text-weight-bold" href="'+cityssm.escapeHTML(t)+"/lotOccupancies/"+c.lotOccupancyId+'">'+cityssm.escapeHTML(c.occupancyType)+"</a></td>",c.lotId?a.insertAdjacentHTML("beforeend","<td>"+cityssm.escapeHTML(c.lotName)+(i?"":' <button class="button is-small is-light is-success button--addLot" data-lot-id="'+c.lotId+'" data-tooltip="Add '+cityssm.escapeHTML(exports.aliases.lot)+'" aria-label="Add '+cityssm.escapeHTML(exports.aliases.lot)+'" type="button"><i class="fas fa-plus" aria-hidden="true"></i></button>')+"</td>"):a.insertAdjacentHTML("beforeend",'<td><span class="has-text-grey">(No '+exports.aliases.lot+")</span></td>"),a.insertAdjacentHTML("beforeend","<td>"+c.occupancyStartDateString+"</td><td>"+(c.occupancyEndDate?c.occupancyEndDateString:'<span class="has-text-grey">(No End Date)</span>')+"</td><td>"+(0===c.lotOccupancyOccupants.length?'<span class="has-text-grey">(No '+cityssm.escapeHTML(exports.aliases.occupants)+")</span>":cityssm.escapeHTML(c.lotOccupancyOccupants[0].occupantName)+(c.lotOccupancyOccupants.length>1?" plus "+(c.lotOccupancyOccupants.length-1):""))+'</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>'),c.lotId&&!i&&a.querySelector(".button--addLot").addEventListener("click",l),a.querySelector(".button--deleteLotOccupancy").addEventListener("click",r),e.querySelector("tbody").append(a)}},d=e=>{const a=e.currentTarget.closest(".container--lot").dataset.lotId;bulmaJS.confirm({title:"Delete "+exports.aliases.lot+" "+exports.aliases.occupancy+" Relationship",message:"Are you sure you want to remove the relationship to this "+exports.aliases.lot.toLowerCase()+" "+exports.aliases.occupancy.toLowerCase()+" record from this work order? Note that the record will remain.",contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:()=>{cityssm.postJSON(t+"/workOrders/doDeleteWorkOrderLot",{workOrderId:s,lotId:a},e=>{e.success?(o=e.workOrderLots,u()):bulmaJS.alert({title:"Error Deleting Relationship",message:e.errorMessage,contextualColorName:"danger"})})}}})},p=()=>{const e=document.querySelector("#container--lots");if(document.querySelector(".tabs a[href='#relatedTab--lots'] .tag").textContent=o.length.toString(),0!==o.length){e.innerHTML='<table class="table is-fullwidth is-striped is-hoverable"><thead><tr><th>'+exports.aliases.lot+"</th><th>"+exports.aliases.map+"</th><th>"+exports.aliases.lot+' Type</th><th>Status</th><th class="has-width-1"></th></tr></thead><tbody></tbody></table>';for(const s of o){const o=document.createElement("tr");o.className="container--lot",o.dataset.lotId=s.lotId.toString(),o.innerHTML='<td><a class="has-text-weight-bold" href="'+cityssm.escapeHTML(t)+"/lots/"+s.lotId+'">'+cityssm.escapeHTML(s.lotName)+"</a></td><td>"+cityssm.escapeHTML(s.mapName)+"</td><td>"+cityssm.escapeHTML(s.lotType)+"</td><td>"+cityssm.escapeHTML(s.lotStatus)+'</td><td><button class="button is-small is-light is-danger button--deleteLot" data-tooltip="Delete Relationship" type="button"><i class="fas fa-trash" aria-hidden="true"></i></button></td>',o.querySelector(".button--deleteLot").addEventListener("click",d),e.querySelector("tbody").append(o)}}else e.innerHTML='<div class="message is-info"><p class="message-body">There are no '+exports.aliases.lots.toLowerCase()+" associated with this work order.</p></div>"},u=()=>{i(),p()};u(),document.querySelector("#button--addLotOccupancy").addEventListener("click",()=>{let o,a;const r=e=>{const t=e.currentTarget.closest("tr"),s=t.dataset.lotOccupancyId;n(s,e=>{e&&t.remove()})},c=e=>{e&&e.preventDefault(),a.innerHTML='<p class="has-text-centered has-text-grey-dark"><i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />Searching...</p>',cityssm.postJSON(t+"/lotOccupancies/doSearchLotOccupancies",o,e=>{if(0!==e.lotOccupancies.length){a.innerHTML='<table class="table is-fullwidth is-striped is-hoverable"><thead><tr><th class="has-width-1"></th><th>'+exports.aliases.occupancy+" Type</th><th>"+exports.aliases.lot+"</th><th>Start Date</th><th>End Date</th><th>"+exports.aliases.occupants+"</th></tr></thead><tbody></tbody></table>";for(const t of e.lotOccupancies){const e=document.createElement("tr");e.className="container--lotOccupancy",e.dataset.lotOccupancyId=t.lotOccupancyId.toString(),e.innerHTML='<td class="has-text-centered"><button class="button is-small is-success button--addLotOccupancy" 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(t.occupancyType)+"</td>",t.lotId?e.insertAdjacentHTML("beforeend","<td>"+cityssm.escapeHTML(t.lotName)+"</td>"):e.insertAdjacentHTML("beforeend",'<td><span class="has-text-grey">(No '+exports.aliases.lot+")</span></td>"),e.insertAdjacentHTML("beforeend","<td>"+t.occupancyStartDateString+"</td><td>"+(t.occupancyEndDate?t.occupancyEndDateString:'<span class="has-text-grey">(No End Date)</span>')+"</td><td>"+(0===t.lotOccupancyOccupants.length?'<span class="has-text-grey">(No '+cityssm.escapeHTML(exports.aliases.occupants)+")</span>":cityssm.escapeHTML(t.lotOccupancyOccupants[0].occupantName)+(t.lotOccupancyOccupants.length>1?" plus "+(t.lotOccupancyOccupants.length-1):""))+"</td>"),e.querySelector(".button--addLotOccupancy").addEventListener("click",r),a.querySelector("tbody").append(e)}}else a.innerHTML='<div class="message is-info"><p class="message-body">There are no records that meet the search criteria.</p></div>'})};cityssm.openHtmlModal("workOrder-addLotOccupancy",{onshow:t=>{e.populateAliases(t),o=t.querySelector("form"),a=t.querySelector("#resultsContainer--lotOccupancyAdd"),t.querySelector("#lotOccupancySearch--notWorkOrderId").value=s,t.querySelector("#lotOccupancySearch--occupancyEffectiveDateString").value=document.querySelector("#workOrderEdit--workOrderOpenDateString").value,c()},onshown:e=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancySearch--occupantName").addEventListener("change",c),e.querySelector("#lotOccupancySearch--lotName").addEventListener("change",c),o.addEventListener("submit",c)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),document.querySelector("#button--addLot").addEventListener("click",()=>{let o,a;const r=e=>{const t=e.currentTarget.closest("tr"),s=t.dataset.lotId;c(s,e=>{e&&t.remove()})},n=e=>{e&&e.preventDefault(),a.innerHTML='<p class="has-text-centered has-text-grey-dark"><i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />Searching...</p>',cityssm.postJSON(t+"/lots/doSearchLots",o,e=>{if(0!==e.lots.length){a.innerHTML='<table class="table is-fullwidth is-striped is-hoverable"><thead><tr><th class="has-width-1"></th><th>'+exports.aliases.lot+"</th><th>"+exports.aliases.map+"</th><th>"+exports.aliases.lot+" Type</th><th>Status</th></tr></thead><tbody></tbody></table>";for(const t of e.lots){const e=document.createElement("tr");e.className="container--lot",e.dataset.lotId=t.lotId.toString(),e.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(t.lotName)+"</td><td>"+cityssm.escapeHTML(t.mapName)+"</td><td>"+cityssm.escapeHTML(t.lotType)+"</td><td>"+cityssm.escapeHTML(t.lotStatus)+"</td>",e.querySelector(".button--addLot").addEventListener("click",r),a.querySelector("tbody").append(e)}}else a.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:t=>{e.populateAliases(t),o=t.querySelector("form"),a=t.querySelector("#resultsContainer--lotAdd"),t.querySelector("#lotSearch--notWorkOrderId").value=s;const r=t.querySelector("#lotSearch--lotStatusId");for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,r.append(t)}n()},onshown:e=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotSearch--lotName").addEventListener("change",n),e.querySelector("#lotSearch--lotStatusId").addEventListener("change",n),o.addEventListener("submit",n)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})})}if(!o){let e=exports.workOrderMilestones;delete exports.workOrderMilestones;const o=o=>{o.preventDefault();const a=o.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;bulmaJS.confirm({title:"Complete Milestone",message:"Are you sure you want to complete this milestone?",contextualColorName:"warning",okButton:{text:"Yes, Complete Milestone",callbackFunction:()=>{cityssm.postJSON(t+"/workOrders/doCompleteWorkOrderMilestone",{workOrderId:s,workOrderMilestoneId:a},t=>{t.success?(e=t.workOrderMilestones,c()):bulmaJS.alert({title:"Error Completing Milestone",message:t.errorMessage,contextualColorName:"danger"})})}}})},a=o=>{o.preventDefault();const a=o.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:()=>{cityssm.postJSON(t+"/workOrders/doReopenWorkOrderMilestone",{workOrderId:s,workOrderMilestoneId:a},t=>{t.success?(e=t.workOrderMilestones,c()):bulmaJS.alert({title:"Error Reopening Milestone",message:t.errorMessage,contextualColorName:"danger"})})}}})},r=e=>{e.preventDefault()},c=()=>{const t=document.querySelector("#panel--milestones"),s=t.querySelectorAll(".panel-block");for(const e of s)e.remove();for(const s of e){const e=document.createElement("div");e.className="panel-block is-block container--milestone",e.dataset.workOrderMilestoneId=s.workOrderMilestoneId.toString(),e.innerHTML='<div class="columns"><div class="column is-narrow">'+(s.workOrderMilestoneCompletionDate?'<span class="button is-static" data-tooltip="Completed '+s.workOrderMilestoneCompletionDateString+'" aria-label="Completed '+s.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">'+(s.workOrderMilestoneTypeId?"<strong>"+cityssm.escapeHTML(s.workOrderMilestoneType)+"</strong><br />":"")+s.workOrderMilestoneDateString+'<br /><span class="is-size-7">'+cityssm.escapeHTML(s.workOrderMilestoneDescription)+'</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">'+(s.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><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>',s.workOrderMilestoneCompletionDate?e.querySelector(".button--reopenMilestone").addEventListener("click",a):e.querySelector(".button--completeMilestone").addEventListener("click",o),e.querySelector(".button--deleteMilestone").addEventListener("click",r),t.append(e)}bulmaJS.init(t)};c()}})();