cityssm/corporate-records-manager

View on GitHub
public/javascripts/edit.min.js

Summary

Maintainability
A
0 mins
Test Coverage
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.urlPrefix,t=document.querySelector("#record--recordID").value;document.querySelector("#is-remove-record-button").addEventListener("click",s=>{s.preventDefault();cityssm.confirmModal("Remove Record?","Are you sure you want to remove this record?","Yes, Remove the Record","warning",()=>{cityssm.postJSON(e+"/edit/doRemove",{recordID:t},t=>{t.success?window.location.href=e+"/dashboard":cityssm.alertModal("Record Remove Error",cityssm.escapeHTML(t.message),"OK","danger")})})});const s={recordID:t,getLoadingPanelBlockHTML:e=>'<div class="panel-block is-block has-text-centered has-text-grey"><i class="fas fa-4x fa-spinner fa-pulse" aria-hidden="true"></i><br />Loading '+e+"...</div>",clearPanelBlocksFunction:e=>{const t=e.querySelectorAll(".panel-block");for(const e of t)e.remove()}};exports.crmEdit=s})(),Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.urlPrefix,t=exports.crmEdit,s=document.querySelector("#panel--statuses");if(!s)return;let o=exports.recordStatuses;delete exports.recordStatuses;const r=t=>{t.preventDefault();const s=t.currentTarget.closest(".panel-block"),r=Number.parseInt(s.dataset.index,10),a=o[r];let c;const n=t=>{t.preventDefault(),cityssm.postJSON(e+"/edit/doUpdateStatus",t.currentTarget,e=>{e.success?(d(),c()):cityssm.alertModal("Update Status Error",cityssm.escapeHTML(e.message),"OK","danger")})};cityssm.openHtmlModal("status-edit",{onshow:()=>{document.querySelector("#editStatus--statusLogID").value=a.statusLogID.toString();const e=document.querySelector("#editStatus--statusTypeKey"),t=exports.statusTypes;let s=!1;for(const o of t)(o.isActive||o.statusTypeKey===a.statusTypeKey)&&(e.insertAdjacentHTML("beforeend",'<option value="'+cityssm.escapeHTML(o.statusTypeKey)+'">'+cityssm.escapeHTML(o.statusType)+"</option>"),o.statusTypeKey===a.statusTypeKey&&(s=!0));s||e.insertAdjacentHTML("beforeend",'<option value="'+cityssm.escapeHTML(a.statusTypeKey)+'">'+cityssm.escapeHTML(a.statusTypeKey)+"</option>"),e.value=a.statusTypeKey;const o=new Date(a.statusTime);document.querySelector("#editStatus--statusDateString").value=cityssm.dateToString(o),document.querySelector("#editStatus--statusTimeString").value=cityssm.dateToTimeString(o),document.querySelector("#editStatus--statusLog").value=a.statusLog,document.querySelector("#form--editStatus").addEventListener("submit",n)},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),c=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},a=r=>{r.preventDefault();const a=r.currentTarget.closest(".panel-block"),c=Number.parseInt(a.dataset.index,10),d=o[c];cityssm.confirmModal("Remove Status","Are you sure you want to remove this status?<br />If the status of this record has changed, it would be better to add a new status.","Yes, Remove the Status","warning",()=>{cityssm.postJSON(e+"/edit/doRemoveStatus",{statusLogID:d.statusLogID},e=>{e.success?(o.splice(c,1),t.clearPanelBlocksFunction(s),n()):cityssm.alertModal("Remove Status Error",cityssm.escapeHTML(e.message),"OK","danger")})})},c=(e,t)=>{const o=document.createElement("div");o.className="panel-block is-block",o.dataset.statusLogId=e.statusLogID.toString(),o.dataset.index=t.toString();const c=exports.statusTypes.find(t=>t.statusTypeKey===e.statusTypeKey),n=new Date(e.statusTime);o.innerHTML='<div class="columns"><div class="column"><strong>'+cityssm.escapeHTML(c?c.statusType:e.statusTypeKey)+'</strong><br /><span class="has-tooltip-arrow has-tooltip-right" data-tooltip="'+cityssm.dateToTimeString(n)+'">'+cityssm.dateToString(n)+'</span><br /><span class="is-size-7">'+cityssm.escapeHTML(e.statusLog)+'</span></div><div class="column is-narrow"><button class="button is-info is-light is-small" type="button"><span class="icon"><i class="fas fa-pencil-alt" aria-hidden="true"></i></span><span>Edit</span></button> <button class="button is-danger is-light is-small has-tooltip-arrow has-tooltip-left" data-tooltip="Remove Status" aria-label="Remove Status" type="button"><span class="icon"><i class="fas fa-trash-alt" aria-hidden="true"></i></span></button></div></div>';const d=o.querySelectorAll("button");d[0].addEventListener("click",r),d[1].addEventListener("click",a),s.append(o)},n=()=>{if(t.clearPanelBlocksFunction(s),0!==o.length)for(const[e,t]of o.entries())c(t,e);else s.insertAdjacentHTML("beforeend",'<div class="panel-block is-block"><div class="message is-warning"><div class="message-body">There are no statuses associated with this record.</div></div></div>')},d=()=>{t.clearPanelBlocksFunction(s),o=[],s.insertAdjacentHTML("beforeend",t.getLoadingPanelBlockHTML("Statuses")),cityssm.postJSON(e+"/view/doGetStatuses",{recordID:t.recordID},e=>{e.success?(o=e.statuses,n()):s.insertAdjacentHTML("beforeend",'<div class="panel-block is-block"><div class="message is-danger"><div class="message-body">'+e.message+"</div></div></div>")})};n();const i=document.querySelector("#is-add-status-button");i&&i.addEventListener("click",()=>{let s;const o=t=>{t.preventDefault(),cityssm.postJSON(e+"/edit/doAddStatus",t.currentTarget,e=>{e.success?(d(),s()):cityssm.alertModal("Add Status Error",cityssm.escapeHTML(e.message),"OK","danger")})};cityssm.openHtmlModal("status-add",{onshow:()=>{document.querySelector("#addStatus--recordID").value=t.recordID;const e=document.querySelector("#addStatus--statusTypeKey"),s=exports.statusTypes;for(const t of s)t.isActive&&e.insertAdjacentHTML("beforeend",'<option value="'+cityssm.escapeHTML(t.statusTypeKey)+'">'+cityssm.escapeHTML(t.statusType)+"</option>");const o=new Date;document.querySelector("#addStatus--statusDateString").value=cityssm.dateToString(o),document.querySelector("#addStatus--statusTimeString").value=cityssm.dateToTimeString(o)},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),s=t,document.querySelector("#form--addStatus").addEventListener("submit",o)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})})})(),Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.user,t=exports.urlPrefix,s=exports.crmEdit,o=document.querySelector("#panel--users");let r=exports.recordUsers;delete exports.recordUsers;const a=e=>{e.preventDefault();const a=e.currentTarget.closest(".panel-block"),c=Number.parseInt(a.dataset.index,10),d=r[c];cityssm.confirmModal("Remove User","Are you sure you want to remove this user?","Yes, Remove the User","warning",()=>{cityssm.postJSON(t+"/edit/doRemoveRecordUser",{recordUserID:d.recordUserID},e=>{e.success?(r.splice(c,1),s.clearPanelBlocksFunction(o),n()):cityssm.alertModal("Remove User Error",cityssm.escapeHTML(e.message),"OK","danger")})})},c=(t,s)=>{const r=document.createElement("div");r.className="panel-block is-block",r.dataset.recordUserId=t.recordUserID.toString(),r.dataset.index=s.toString();const c=exports.recordUserTypes.find(e=>e.recordUserTypeKey===t.recordUserTypeKey);r.innerHTML='<div class="columns"><div class="column"><strong>'+cityssm.escapeHTML(c?c.recordUserType:t.recordUserTypeKey)+"</strong><br /><span>"+cityssm.escapeHTML(t.userName)+"</span></div>"+(e.canViewAll?'<div class="column is-narrow"> <button class="button is-danger is-light is-small has-tooltip-arrow has-tooltip-left" data-tooltip="Remove User" type="button"><span class="icon"><i class="fas fa-trash-alt" aria-hidden="true"></i></span></button></div>':"")+"</div>",e.canViewAll&&r.querySelector("button").addEventListener("click",a),o.append(r)},n=()=>{if(s.clearPanelBlocksFunction(o),0!==r.length)for(const[e,t]of r.entries())c(t,e);else o.insertAdjacentHTML("beforeend",'<div class="panel-block is-block"><div class="message is-info"><div class="message-body">There are no users associated with this record.</div></div></div>')};n();const d=document.querySelector("#is-add-user-button");d&&d.addEventListener("click",()=>{let e;const a=a=>{a.preventDefault(),cityssm.postJSON(t+"/edit/doAddRecordUser",a.currentTarget,a=>{a.success?(s.clearPanelBlocksFunction(o),r=[],o.insertAdjacentHTML("beforeend",s.getLoadingPanelBlockHTML("Users")),cityssm.postJSON(t+"/view/doGetRecordUsers",{recordID:s.recordID},e=>{e.success?(r=e.recordUsers,n()):o.insertAdjacentHTML("beforeend",'<div class="panel-block is-block"><div class="message is-danger"><div class="message-body">'+e.message+"</div></div></div>")}),e()):cityssm.alertModal("Add User Error",cityssm.escapeHTML(a.message),"OK","danger")})};cityssm.openHtmlModal("user-add",{onshow:e=>{document.querySelector("#addRecordUser--recordID").value=s.recordID;const o=document.querySelector("#addRecordUser--recordUserTypeKey"),r=exports.recordUserTypes;for(const e of r)e.isActive&&o.insertAdjacentHTML("beforeend",'<option value="'+cityssm.escapeHTML(e.recordUserTypeKey)+'">'+cityssm.escapeHTML(e.recordUserType)+"</option>");cityssm.postJSON(t+"/edit/doGetSuggestedRecordUsers",{},t=>{if(t.success){const s=e.querySelector("#addRecordUser--userName-list");for(const e of t.recordUsers){const t=document.createElement("option");t.value=e.userName,t.textContent=e.fullName+(e.fullName!==e.userName?" ("+e.userName+")":""),s.append(t)}}})},onshown:(t,s)=>{bulmaJS.toggleHtmlClipped(),e=s,document.querySelector("#form--addRecordUser").addEventListener("submit",a)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})})})(),Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.urlPrefix,t=exports.crmEdit;let s=exports.recordURLs;delete exports.recordURLs;const o=document.querySelector("#panel--urls"),r=t=>{t.preventDefault();const o=t.currentTarget.closest(".panel-block"),r=Number.parseInt(o.dataset.index,10),a=s[r];let c;const n=t=>{t.preventDefault(),cityssm.postJSON(e+"/edit/doUpdateURL",t.currentTarget,e=>{e.success?(d(),c()):cityssm.alertModal("Update Link Error",cityssm.escapeHTML(e.message),"OK","danger")})};cityssm.openHtmlModal("url-edit",{onshow:()=>{document.querySelector("#editURL--urlID").value=a.urlID.toString(),document.querySelector("#editURL--url").value=a.url,document.querySelector("#editURL--urlTitle").value=a.urlTitle,document.querySelector("#editURL--urlDescription").value=a.urlDescription,document.querySelector("#form--editURL").addEventListener("submit",n)},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),c=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},a=r=>{r.preventDefault();const a=r.currentTarget.closest(".panel-block"),c=Number.parseInt(a.dataset.index,10),d=s[c];cityssm.confirmModal("Remove Link",'Are you sure you want to remove the link to "'+cityssm.escapeHTML(d.urlTitle)+'"?',"Yes, Remove the Link","warning",()=>{cityssm.postJSON(e+"/edit/doRemoveURL",{urlID:d.urlID},e=>{e.success?(s.splice(c,1),t.clearPanelBlocksFunction(o),n()):cityssm.alertModal("Remove Link Error",cityssm.escapeHTML(e.message),"OK","danger")})})},c=(e,t)=>{const s=document.createElement("div");s.className="panel-block is-block",s.dataset.urlId=e.urlID.toString(),s.dataset.index=t.toString(),s.innerHTML='<div class="columns"><div class="column"><a class="has-text-weight-bold" href="'+cityssm.escapeHTML(e.url)+'" target="_blank">'+cityssm.escapeHTML(e.urlTitle)+'</a><br /><span class="tag has-tooltip-arrow has-tooltip-right" data-tooltip="Link Domain">'+e.url.split("/")[2]+'</span><br /><span class="is-size-7">'+cityssm.escapeHTML(e.urlDescription)+'</span></div><div class="column is-narrow"><button class="button is-info is-light is-small" type="button"><span class="icon"><i class="fas fa-pencil-alt" aria-hidden="true"></i></span><span>Edit</span></button> <button class="button is-danger is-light is-small has-tooltip-arrow has-tooltip-left" data-tooltip="Remove Link" type="button"><span class="icon"><i class="fas fa-trash-alt" aria-hidden="true"></i></span></button></div></div>';const c=s.querySelectorAll("button");c[0].addEventListener("click",r),c[1].addEventListener("click",a),o.append(s)},n=()=>{if(t.clearPanelBlocksFunction(o),0!==s.length)for(const[e,t]of s.entries())c(t,e);else o.insertAdjacentHTML("beforeend",'<div class="panel-block is-block"><div class="message is-info"><div class="message-body">There are no links associated with this record.</div></div></div>')},d=()=>{t.clearPanelBlocksFunction(o),s=[],o.insertAdjacentHTML("beforeend",t.getLoadingPanelBlockHTML("Links")),cityssm.postJSON(e+"/view/doGetURLs",{recordID:t.recordID},e=>{e.success?(s=e.urls,n()):o.insertAdjacentHTML("beforeend",'<div class="panel-block is-block"><div class="message is-danger"><div class="message-body">'+e.message+"</div></div></div>")})};n(),document.querySelector("#is-add-url-button").addEventListener("click",()=>{let s;const o=t=>{t.preventDefault(),cityssm.postJSON(e+"/edit/doAddURL",t.currentTarget,e=>{e.success?(d(),s()):cityssm.alertModal("Add Link Error",cityssm.escapeHTML(e.message),"OK","danger")})};cityssm.openHtmlModal("url-add",{onshow:()=>{document.querySelector("#addURL--recordID").value=t.recordID,document.querySelector("#form--addURL").addEventListener("submit",o)},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),s=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})});const i=document.querySelector("#is-add-docushare-url-button");i&&i.addEventListener("click",()=>{let s,r,a=!1;const c=s=>{s.preventDefault();const o=s.currentTarget;o.disabled=!0;const r=o.closest(".panel-block"),c=r.dataset.handle;cityssm.postJSON(e+"/edit/doAddDocuShareURL",{recordID:t.recordID,handle:c},e=>{e.success?(a=!0,r.remove()):(cityssm.alertModal("Error Adding Link",cityssm.escapeHTML(e.message),"OK","danger"),o.disabled=!1)})},n=t=>{t&&t.preventDefault(),r.innerHTML='<div class="has-text-centered has-text-grey"><i class="fas fa-4x fa-spinner fa-pulse" aria-hidden="true"></i><br />Searching DocuShare...</div>',cityssm.postJSON(e+"/edit/doSearchDocuShare",s,e=>{if(!e.success)return void(r.innerHTML='<div class="message is-danger"><div class="message-body"><p>An error occurred retrieving documents from DocuShare.</p><p>'+cityssm.escapeHTML(e.message)+"</p></div></div>");const t=document.createElement("div");t.className="panel";for(const s of e.dsObjects){if(o.querySelector("a[href='"+s.url+"']"))continue;const e=document.createElement("div");e.className="panel-block is-block",e.dataset.handle=s.handle,e.innerHTML='<div class="level"><div class="level-left"><strong>'+cityssm.escapeHTML(s.title)+'</strong></div><div class="level-right"><a class="button is-info mr-1" href="'+s.url+'" target="_blank"><span class="icon"><i class="fas fa-eye" aria-hidden="true"></i></span><span>View</span></a><button class="button is-success" type="button"><span class="icon"><i class="fas fa-plus" aria-hidden="true"></i></span><span>Add Link</span></button></div></div>',e.querySelectorAll("button")[0].addEventListener("click",c),t.append(e)}r.innerHTML="",0===t.children.length?r.innerHTML='<div class="message is-info"><div class="message-body"><p>There are no new files in DocuShare that meet your search criteria.</p></div></div>':r.append(t)})};cityssm.openHtmlModal("docushare-url-add",{onshow:()=>{r=document.querySelector("#container--addDocuShareURL"),(s=document.querySelector("#form--addDocuShareURL-search")).addEventListener("submit",n);const e=document.querySelector("#addDocuShareURL--collectionHandleIndex");for(let t=0;t<exports.docuShareCollectionHandles.length;t+=1){const s=document.createElement("option");s.value=t.toString(),s.textContent=exports.docuShareCollectionHandles[t].title,e.append(s),0===t&&(e.value=t.toString())}e.addEventListener("change",n),document.querySelector("#addDocuShareURL--searchString").value=document.querySelector("#record--recordNumber").value,n()},onshown:()=>{bulmaJS.toggleHtmlClipped()},onhidden:()=>{a&&d()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})})})(),Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.crm,t=exports.urlPrefix,s=exports.crmEdit;let o=exports.relatedRecords;delete exports.relatedRecords;const r=document.querySelector("#panel--relatedRecords"),a=e=>{e.preventDefault();const a=e.currentTarget.closest(".panel-block"),c=Number.parseInt(a.dataset.index,10),d=Number.parseInt(a.dataset.recordId,10);cityssm.confirmModal("Remove Comment","Are you sure you want to remove this related record?","Yes, Remove the Related Record","warning",()=>{cityssm.postJSON(t+"/edit/doRemoveRelatedRecord",{recordID:s.recordID,relatedRecordID:d},e=>{e.success?(o.splice(c,1),s.clearPanelBlocksFunction(r),n()):cityssm.alertModal("Remove Related Record Error",cityssm.escapeHTML(e.message),"OK","danger")})})},c=(t,s)=>{const o=e.renderRecordPanelLinkEle(t,{panelTag:"div",includeRemoveButton:!0});o.dataset.index=s.toString(),o.dataset.recordId=t.recordID.toString(),o.querySelectorAll("button")[0].addEventListener("click",a),r.append(o)},n=()=>{if(s.clearPanelBlocksFunction(r),0!==o.length)for(const[e,t]of o.entries())c(t,e);else r.insertAdjacentHTML("beforeend",'<div class="panel-block is-block"><div class="message is-info"><div class="message-body">This record has no related records.</div></div></div>')};n(),document.querySelector("#is-add-related-button").addEventListener("click",()=>{let a,c,d=!1;const i=e=>{e.preventDefault();const o=e.currentTarget;o.disabled=!0;const r=o.closest(".panel-block"),a=r.dataset.recordId;cityssm.postJSON(t+"/edit/doAddRelatedRecord",{recordID:s.recordID,relatedRecordID:a},e=>{e.success?(d=!0,r.remove()):(cityssm.alertModal("Error Adding Related Record",cityssm.escapeHTML(e.message),"OK","danger"),o.disabled=!1)})},l=s=>{s&&s.preventDefault(),c.innerHTML='<div class="has-text-centered has-text-grey"><i class="fas fa-4x fa-spinner fa-pulse" aria-hidden="true"></i><br />Searching Records...</div>',cityssm.postJSON(t+"/edit/doSearchRelatedRecords",a,t=>{if(!t.success)return void(c.innerHTML='<div class="message is-danger"><div class="message-body"><p>'+cityssm.escapeHTML(t.message)+"</p></div></div>");const s=document.createElement("div");s.className="panel";for(const o of t.records){const t=e.renderRecordPanelLinkEle(o,{panelTag:"div",includeAddButton:!0});t.dataset.recordId=o.recordID.toString(),t.querySelector("button").addEventListener("click",i),s.append(t)}c.innerHTML="",0===s.children.length?c.innerHTML='<div class="message is-info"><div class="message-body"><p>There are no new records that meet your search criteria.</p></div></div>':c.append(s)})};cityssm.openHtmlModal("relatedRecord-add",{onshow:()=>{c=document.querySelector("#container--addRelatedRecord"),(a=document.querySelector("#form--addRelatedRecord-search")).addEventListener("submit",l),document.querySelector("#addRelatedRecord--recordID").value=s.recordID;const e=document.querySelector("#addRelatedRecord--recordTypeKey");for(let t=0;t<exports.recordTypes.length;t+=1){const s=document.createElement("option");s.value=exports.recordTypes[t].recordTypeKey,s.textContent=exports.recordTypes[t].recordType,e.append(s),0===t&&(e.value=t.toString())}e.addEventListener("change",l),document.querySelector("#addRelatedRecord--searchString").value=document.querySelector("#record--recordNumber").value,l()},onshown:()=>{bulmaJS.toggleHtmlClipped()},onhidden:()=>{d&&(s.clearPanelBlocksFunction(r),o=[],r.insertAdjacentHTML("beforeend",s.getLoadingPanelBlockHTML("Related Records")),cityssm.postJSON(t+"/view/doGetRelatedRecords",{recordID:s.recordID},e=>{e.success?(o=e.relatedRecords,n()):r.insertAdjacentHTML("beforeend",'<div class="panel-block is-block"><div class="message is-danger"><div class="message-body">'+e.message+"</div></div></div>")}))},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})})})(),Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.urlPrefix,t=exports.crmEdit;let s=exports.recordComments;delete exports.recordComments;const o=document.querySelector("#panel--comments"),r=t=>{t.preventDefault();const o=t.currentTarget.closest(".panel-block"),r=Number.parseInt(o.dataset.index,10),a=s[r];let c;const n=t=>{t.preventDefault(),cityssm.postJSON(e+"/edit/doUpdateComment",t.currentTarget,e=>{e.success?(d(),c()):cityssm.alertModal("Update Comment Error",cityssm.escapeHTML(e.message),"OK","danger")})};cityssm.openHtmlModal("comment-edit",{onshow:()=>{document.querySelector("#editComment--commentLogID").value=a.commentLogID.toString();const e=new Date(a.commentTime);document.querySelector("#editComment--commentDateString").value=cityssm.dateToString(e),document.querySelector("#editComment--commentTimeString").value=cityssm.dateToTimeString(e),document.querySelector("#editComment--comment").value=a.comment,document.querySelector("#form--editComment").addEventListener("submit",n)},onshown:(e,t)=>{c=t,bulmaJS.toggleHtmlClipped()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},a=r=>{r.preventDefault();const a=r.currentTarget.closest(".panel-block"),c=Number.parseInt(a.dataset.index,10),d=s[c];cityssm.confirmModal("Remove Comment","Are you sure you want to remove this comment?","Yes, Remove the Comment","warning",()=>{cityssm.postJSON(e+"/edit/doRemoveComment",{commentLogID:d.commentLogID},e=>{e.success?(s.splice(c,1),t.clearPanelBlocksFunction(o),n()):cityssm.alertModal("Remove Comment Error",cityssm.escapeHTML(e.message),"OK","danger")})})},c=(e,t)=>{const s=document.createElement("div");s.className="panel-block is-block",s.dataset.commentLogId=e.commentLogID.toString(),s.dataset.index=t.toString();const c=new Date(e.commentTime);s.innerHTML='<div class="columns"><div class="column"><span class="has-tooltip-arrow has-tooltip-right" data-tooltip="'+cityssm.dateToTimeString(c)+'">'+cityssm.dateToString(c)+'</span><br /><span class="is-size-7">'+cityssm.escapeHTML(e.comment)+'</span></div><div class="column is-narrow"><button class="button is-info is-light is-small" type="button"><span class="icon"><i class="fas fa-pencil-alt" aria-hidden="true"></i></span><span>Edit</span></button> <button class="button is-danger is-light is-small has-tooltip-arrow has-tooltip-left" data-tooltip="Remove Comment" type="button"><span class="icon"><i class="fas fa-trash-alt" aria-hidden="true"></i></span></button></div></div>';const n=s.querySelectorAll("button");n[0].addEventListener("click",r),n[1].addEventListener("click",a),o.append(s)},n=()=>{if(t.clearPanelBlocksFunction(o),0!==s.length)for(const[e,t]of s.entries())c(t,e);else o.insertAdjacentHTML("beforeend",'<div class="panel-block is-block"><div class="message is-info"><div class="message-body">This record has no comments.</div></div></div>')},d=()=>{t.clearPanelBlocksFunction(o),s=[],o.insertAdjacentHTML("beforeend",t.getLoadingPanelBlockHTML("Comments")),cityssm.postJSON(e+"/view/doGetComments",{recordID:t.recordID},e=>{e.success?(s=e.comments,n()):o.insertAdjacentHTML("beforeend",'<div class="panel-block is-block"><div class="message is-danger"><div class="message-body">'+e.message+"</div></div></div>")})};n(),document.querySelector("#is-add-comment-button").addEventListener("click",()=>{let s;const o=t=>{t.preventDefault(),cityssm.postJSON(e+"/edit/doAddComment",t.currentTarget,e=>{e.success?(d(),s()):cityssm.alertModal("Add Comment Error",cityssm.escapeHTML(e.message),"OK","danger")})};cityssm.openHtmlModal("comment-add",{onshow:()=>{document.querySelector("#addComment--recordID").value=t.recordID;const e=new Date;document.querySelector("#addComment--commentDateString").value=cityssm.dateToString(e),document.querySelector("#addComment--commentTimeString").value=cityssm.dateToTimeString(e)},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),s=t,document.querySelector("#form--addComment").addEventListener("submit",o)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})})})();