"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
(() => {
const los = exports.los;
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
const containerElement = document.querySelector("#container--occupancyTypes");
let occupancyTypes = exports.occupancyTypes;
delete exports.occupancyTypes;
const expandedOccupancyTypes = new Set();
const toggleOccupancyTypeFields = (clickEvent) => {
const toggleButtonElement = clickEvent.currentTarget;
const occupancyTypeElement = toggleButtonElement.closest(".container--occupancyType");
const occupancyTypeId = Number.parseInt(occupancyTypeElement.dataset.occupancyTypeId, 10);
if (expandedOccupancyTypes.has(occupancyTypeId)) {
expandedOccupancyTypes.delete(occupancyTypeId);
}
else {
expandedOccupancyTypes.add(occupancyTypeId);
}
toggleButtonElement.innerHTML = expandedOccupancyTypes.has(occupancyTypeId)
? ''
: '';
const panelBlockElements = occupancyTypeElement.querySelectorAll(".panel-block");
for (const panelBlockElement of panelBlockElements) {
panelBlockElement.classList.toggle("is-hidden");
}
};
const moveOccupancyTypeUp = (clickEvent) => {
clickEvent.preventDefault();
const occupancyTypeId = clickEvent.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;
cityssm.postJSON(urlPrefix + "/admin/doMoveOccupancyTypeUp", {
occupancyTypeId
}, (responseJSON) => {
if (responseJSON.success) {
occupancyTypes = responseJSON.occupancyTypes;
renderOccupancyTypes();
}
else {
bulmaJS.alert({
title: "Error Moving " +
exports.aliases.occupancy +
" Type",
message: responseJSON.errorMessage,
contextualColorName: "danger"
});
}
});
};
const moveOccupancyTypeDown = (clickEvent) => {
clickEvent.preventDefault();
const occupancyTypeId = clickEvent.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;
cityssm.postJSON(urlPrefix + "/admin/doMoveOccupancyTypeDown", {
occupancyTypeId
}, (responseJSON) => {
if (responseJSON.success) {
occupancyTypes = responseJSON.occupancyTypes;
renderOccupancyTypes();
}
else {
bulmaJS.alert({
title: "Error Moving " +
exports.aliases.occupancy +
" Type",
message: responseJSON.errorMessage,
contextualColorName: "danger"
});
}
});
};
const renderOccupancyTypes = () => {
if (occupancyTypes.length === 0) {
containerElement.innerHTML =
'
There are no active ' +
exports.aliases.occupancy.toLowerCase() +
" types." +
"
";
return;
}
containerElement.innerHTML = "";
for (const occupancyType of occupancyTypes) {
const occupancyTypeContainer = document.createElement("div");
occupancyTypeContainer.className = "panel container--occupancyType";
occupancyTypeContainer.dataset.occupancyTypeId =
occupancyType.occupancyTypeId.toString();
occupancyTypeContainer.innerHTML =
'' +
'
' +
('
' +
'
' +
'" +
"
" +
'
' +
'
' +
cityssm.escapeHTML(occupancyType.occupancyType) +
"
" +
"" +
"
") +
('
' +
'
' +
'" +
"
" +
'
' +
'" +
"
" +
('
' +
'
' +
'
' +
'" +
"
" +
'
' +
'" +
"
" +
"
" +
"
") +
"
") +
"
" +
"
";
if (occupancyType.occupancyTypeFields.length === 0) {
occupancyTypeContainer.insertAdjacentHTML("beforeend", '' +
'
' +
'
There are no additional fields.
' +
"
" +
"
");
}
else {
for (const occupancyTypeField of occupancyType.occupancyTypeFields) {
const panelBlockElement = document.createElement("div");
panelBlockElement.className =
"panel-block is-block container--occupancyTypeField";
if (!expandedOccupancyTypes.has(occupancyType.occupancyTypeId)) {
panelBlockElement.classList.add("is-hidden");
}
panelBlockElement.dataset.occupancyTypeFieldId =
occupancyTypeField.occupancyTypeFieldId.toString();
panelBlockElement.innerHTML =
'' +
'
" +
'
' +
('
' +
'
' +
'
' +
'" +
"
" +
'
' +
'" +
"
" +
"
" +
"
") +
"
" +
"
";
occupancyTypeContainer.append(panelBlockElement);
}
}
occupancyTypeContainer
.querySelector(".button--toggleOccupancyTypeFields")
.addEventListener("click", toggleOccupancyTypeFields);
occupancyTypeContainer
.querySelector(".button--moveOccupancyTypeUp")
.addEventListener("click", moveOccupancyTypeUp);
occupancyTypeContainer
.querySelector(".button--moveOccupancyTypeDown")
.addEventListener("click", moveOccupancyTypeDown);
containerElement.append(occupancyTypeContainer);
}
};
document
.querySelector("#button--addOccupancyType")
.addEventListener("click", () => {
let addCloseModalFunction;
const doAdd = (submitEvent) => {
submitEvent.preventDefault();
cityssm.postJSON(urlPrefix + "/admin/doAddOccupancyType", submitEvent.currentTarget, (responseJSON) => {
if (responseJSON.success) {
addCloseModalFunction();
occupancyTypes = responseJSON.occupancyTypes;
renderOccupancyTypes();
}
else {
bulmaJS.alert({
title: "Error Adding " +
exports.aliases.occupancy +
" Type",
message: responseJSON.errorMessage,
contextualColorName: "danger"
});
}
});
};
cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyType", {
onshow: (modalElement) => {
los.populateAliases(modalElement);
},
onshown: (modalElement, closeModalFunction) => {
addCloseModalFunction = closeModalFunction;
modalElement.querySelector("#occupancyTypeAdd--occupancyType").focus();
modalElement
.querySelector("form")
.addEventListener("submit", doAdd);
bulmaJS.toggleHtmlClipped();
},
onremoved: () => {
bulmaJS.toggleHtmlClipped();
}
});
});
renderOccupancyTypes();
})();