cityssm/lottery-licence-manager

View on GitHub
public/javascripts/main-organizationReminders.min.js

Summary

Maintainability
A
0 mins
Test Coverage
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),llm.organizationReminders=(()=>{const e=document.querySelector("main").dataset.urlPrefix;let t;const n=new Map;let i=[];const r=e=>{0===n.size?(llm.getDefaultConfigProperty("dismissingStatuses",e=>{i=e}),llm.getDefaultConfigProperty("reminderCategories",i=>{t=i;for(const e of t)for(const t of e.reminderTypes)t.reminderCategory=e.reminderCategory,n.set(t.reminderTypeKey,t);e&&e()})):e&&e()},o=(t,n)=>{cityssm.postJSON(e+"/organizations/doGetReminders",{organizationID:t},n)},d=(t,n,i)=>{cityssm.postJSON(e+"/organizations/doDismissReminder",{organizationID:t,reminderIndex:n},i)},s=(t,n,i)=>{cityssm.postJSON(e+"/organizations/doDeleteReminder",{organizationID:t,reminderIndex:n},i)};return{loadReminderTypeCache:r,getRemindersByOrganizationID:o,getReminderByID:(t,n,i)=>{cityssm.postJSON(e+"/organizations/doGetReminder",{organizationID:t,reminderIndex:n},i)},openAddReminderModal:(i,d)=>{let s;const m=t=>{t.preventDefault(),cityssm.postJSON(e+"/organizations/doAddReminder",t.currentTarget,e=>{e.success&&(s(),d&&d(e.reminder))})},a=e=>{const t=e.currentTarget.value,i=n.get(t),r=document.querySelector("#addReminder--reminderStatus");r.value="",r.innerHTML='<option value="">(Not Set)</option>';for(const e of i.reminderStatuses){const t=document.createElement("option");t.value=e,t.textContent=e,r.append(t)}};r(()=>{cityssm.openHtmlModal("reminderAdd",{onshow(){document.querySelector("#addReminder--organizationID").value=i.toString(),document.querySelector("#addReminder--dueDateString").setAttribute("min",cityssm.dateToString(new Date)),o(i,e=>{const n=document.querySelector("#addReminder--reminderTypeKey");for(const i of t){if(!i.isActive)continue;const t=document.createElement("optgroup");t.label=i.reminderCategory;for(const n of i.reminderTypes){if(!n.isActive)continue;if(n.hasUndismissedLimit&&e.find(e=>e.reminderTypeKey===n.reminderTypeKey&&""===e.dismissedDateString))continue;const i=document.createElement("option");i.value=n.reminderTypeKey,i.textContent=n.reminderType,t.append(i)}n.append(t)}n.addEventListener("change",a),n.closest(".select").classList.remove("is-loading")}),document.querySelector("#form--addReminder").addEventListener("submit",m)},onshown(e,t){s=t}})})},openEditReminderModal:(d,s,m)=>{let a,c=!1;const u=t=>{t.preventDefault(),cityssm.postJSON(e+"/organizations/doEditReminder",t.currentTarget,e=>{e.success&&(a(),m&&m(e.reminder))})},l=()=>{const e=document.querySelector("#editReminder--reminderTypeKey").value,t=n.get(e),r=document.querySelector("#editReminder--reminderStatus");r.value="",r.innerHTML='<option data-is-dismissing="0" value="">(Not Set)</option>';for(const e of t.reminderStatuses){const t=document.createElement("option");t.value=e,t.textContent=e,t.dataset.isDismissing=i.includes(e)?"1":"0",r.append(t)}},y=e=>{if(c)return;const t="1"===e.currentTarget.selectedOptions[0].dataset.isDismissing;document.querySelector("#editReminder--dismissedDateString").value=t?cityssm.dateToString(new Date):""};r(()=>{cityssm.openHtmlModal("reminderEdit",{onshow(){document.querySelector("#editReminder--organizationID").value=d.toString(),document.querySelector("#editReminder--reminderIndex").value=s.toString(),document.querySelector("#form--editReminder").addEventListener("submit",u)},onshown(e,n){a=n,o(d,e=>{const n=e.find(e=>e.reminderIndex===s);if(!n)return a(),void cityssm.alertModal("Reminder Not Found","","OK","danger");const i=document.querySelector("#editReminder--reminderTypeKey");for(const r of t){const t=document.createElement("optgroup");t.label=r.reminderCategory;for(const i of r.reminderTypes){if(i.reminderTypeKey!==n.reminderTypeKey){if(!i.isActive||!r.isActive)continue;if(i.hasUndismissedLimit&&e.find(e=>e.reminderTypeKey===i.reminderTypeKey&&""===e.dismissedDateString))continue}const o=document.createElement("option");o.value=i.reminderTypeKey,o.textContent=i.reminderType,t.append(o)}t.children.length>0&&i.append(t)}i.value=n.reminderTypeKey,i.addEventListener("change",l),i.closest(".select").classList.remove("is-loading"),document.querySelector("#editReminder--dueDateString").value=n.dueDateString,l();const r=document.querySelector("#editReminder--reminderStatus");if(n.reminderStatus&&""!==n.reminderStatus){let e=!1;for(const t of r.options)if(t.value===n.reminderStatus){e=!0;break}if(!e){const e=document.createElement("option");e.textContent=n.reminderStatus,e.value=n.reminderStatus,r.append(e)}r.value=n.reminderStatus}r.addEventListener("change",y),document.querySelector("#editReminder--reminderNote").value=n.reminderNote;const o=document.querySelector("#editReminder--dismissedDateString");o.value=n.dismissedDateString,o.setAttribute("max",cityssm.dateToString(new Date)),""!==n.dismissedDateString&&(c=!0),o.addEventListener("change",()=>{c=!0})})}})})},dismissReminder:(e,t,n,i)=>{n?cityssm.confirmModal("Dismiss Reminder?","Are you sure you want to dismiss this reminder?","Yes, Dismiss","warning",()=>{d(e,t,i)}):d(e,t,i)},deleteReminder:(e,t,n,i)=>{n?cityssm.confirmModal("Delete Reminder?","Are you sure you want to delete this reminder?","Yes, Delete","danger",()=>{s(e,t,i)}):s(e,t,i)},getReminderType:e=>n.get(e)}})();