time pickers
parent
0c0a565bdb
commit
a594b81dd5
|
|
@ -179,7 +179,8 @@ span.button.is-static {
|
||||||
|
|
||||||
.datetimepicker-clear-button {
|
.datetimepicker-clear-button {
|
||||||
transform: none;
|
transform: none;
|
||||||
margin-right: 0.5rem;
|
margin-right: 0.25rem;
|
||||||
|
margin-top: 0.25rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -102,6 +102,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
},
|
},
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
onshown: (modalElement, closeModalFunction) => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
los.initializeDatePickers(modalElement);
|
||||||
|
los.initializeTimePickers(modalElement);
|
||||||
modalElement.querySelector("#lotCommentEdit--lotComment").focus();
|
modalElement.querySelector("#lotCommentEdit--lotComment").focus();
|
||||||
editFormElement = modalElement.querySelector("form");
|
editFormElement = modalElement.querySelector("form");
|
||||||
editFormElement.addEventListener("submit", editComment);
|
editFormElement.addEventListener("submit", editComment);
|
||||||
|
|
|
||||||
|
|
@ -164,6 +164,9 @@ declare const bulmaJS: BulmaJS;
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
onshown: (modalElement, closeModalFunction) => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
||||||
|
los.initializeDatePickers(modalElement);
|
||||||
|
los.initializeTimePickers(modalElement);
|
||||||
|
|
||||||
(
|
(
|
||||||
modalElement.querySelector("#lotCommentEdit--lotComment") as HTMLTextAreaElement
|
modalElement.querySelector("#lotCommentEdit--lotComment") as HTMLTextAreaElement
|
||||||
).focus();
|
).focus();
|
||||||
|
|
|
||||||
|
|
@ -35,8 +35,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
message: exports.aliases.occupancy +
|
message: exports.aliases.occupancy + " Updated Successfully",
|
||||||
" Updated Successfully",
|
|
||||||
contextualColorName: "success"
|
contextualColorName: "success"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -54,7 +53,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
for (const formInputElement of formInputElements) {
|
for (const formInputElement of formInputElements) {
|
||||||
formInputElement.addEventListener("change", setUnsavedChanges);
|
formInputElement.addEventListener("change", setUnsavedChanges);
|
||||||
}
|
}
|
||||||
los.initializeDatePickers(formElement);
|
|
||||||
if (!isCreate) {
|
if (!isCreate) {
|
||||||
document
|
document
|
||||||
.querySelector("#button--deleteLotOccupancy")
|
.querySelector("#button--deleteLotOccupancy")
|
||||||
|
|
@ -67,9 +65,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
cityssm.disableNavBlocker();
|
cityssm.disableNavBlocker();
|
||||||
window.location.href =
|
window.location.href =
|
||||||
urlPrefix +
|
urlPrefix + "/lotOccupancies?t=" + Date.now();
|
||||||
"/lotOccupancies?t=" +
|
|
||||||
Date.now();
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
|
|
@ -119,10 +115,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
lotOccupancyFieldsContainerElement.innerHTML = "";
|
lotOccupancyFieldsContainerElement.innerHTML = "";
|
||||||
let occupancyTypeFieldIds = "";
|
let occupancyTypeFieldIds = "";
|
||||||
for (const occupancyTypeField of responseJSON.occupancyTypeFields) {
|
for (const occupancyTypeField of responseJSON.occupancyTypeFields) {
|
||||||
occupancyTypeFieldIds +=
|
occupancyTypeFieldIds += "," + occupancyTypeField.occupancyTypeFieldId;
|
||||||
"," + occupancyTypeField.occupancyTypeFieldId;
|
const fieldName = "lotOccupancyFieldValue_" + occupancyTypeField.occupancyTypeFieldId;
|
||||||
const fieldName = "lotOccupancyFieldValue_" +
|
|
||||||
occupancyTypeField.occupancyTypeFieldId;
|
|
||||||
const fieldId = "lotOccupancy--" + fieldName;
|
const fieldId = "lotOccupancy--" + fieldName;
|
||||||
const fieldElement = document.createElement("div");
|
const fieldElement = document.createElement("div");
|
||||||
fieldElement.className = "field";
|
fieldElement.className = "field";
|
||||||
|
|
@ -139,20 +133,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
inputElement.id = fieldId;
|
inputElement.id = fieldId;
|
||||||
inputElement.name = fieldName;
|
inputElement.name = fieldName;
|
||||||
inputElement.type = "text";
|
inputElement.type = "text";
|
||||||
inputElement.required =
|
inputElement.required = occupancyTypeField.isRequired;
|
||||||
occupancyTypeField.isRequired;
|
inputElement.minLength = occupancyTypeField.minimumLength;
|
||||||
inputElement.minLength =
|
inputElement.maxLength = occupancyTypeField.maximumLength;
|
||||||
occupancyTypeField.minimumLength;
|
if (occupancyTypeField.pattern && occupancyTypeField.pattern !== "") {
|
||||||
inputElement.maxLength =
|
inputElement.pattern = occupancyTypeField.pattern;
|
||||||
occupancyTypeField.maximumLength;
|
|
||||||
if (occupancyTypeField.pattern &&
|
|
||||||
occupancyTypeField.pattern !== "") {
|
|
||||||
inputElement.pattern =
|
|
||||||
occupancyTypeField.pattern;
|
|
||||||
}
|
}
|
||||||
fieldElement
|
fieldElement.querySelector(".control").append(inputElement);
|
||||||
.querySelector(".control")
|
|
||||||
.append(inputElement);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
fieldElement.querySelector(".control").innerHTML =
|
fieldElement.querySelector(".control").innerHTML =
|
||||||
|
|
@ -201,8 +188,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
cancelButton: {
|
cancelButton: {
|
||||||
text: "Revert the Change",
|
text: "Revert the Change",
|
||||||
callbackFunction: () => {
|
callbackFunction: () => {
|
||||||
occupancyTypeIdElement.value =
|
occupancyTypeIdElement.value = originalOccupancyTypeId;
|
||||||
originalOccupancyTypeId;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -211,16 +197,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
}
|
}
|
||||||
const lotNameElement = document.querySelector("#lotOccupancy--lotName");
|
const lotNameElement = document.querySelector("#lotOccupancy--lotName");
|
||||||
lotNameElement.addEventListener("click", (clickEvent) => {
|
lotNameElement.addEventListener("click", (clickEvent) => {
|
||||||
const currentLotName = clickEvent.currentTarget
|
const currentLotName = clickEvent.currentTarget.value;
|
||||||
.value;
|
|
||||||
let lotSelectCloseModalFunction;
|
let lotSelectCloseModalFunction;
|
||||||
let lotSelectFormElement;
|
let lotSelectFormElement;
|
||||||
let lotSelectResultsElement;
|
let lotSelectResultsElement;
|
||||||
const selectLot = (clickEvent) => {
|
const selectLot = (clickEvent) => {
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
const selectedLotElement = clickEvent.currentTarget;
|
const selectedLotElement = clickEvent.currentTarget;
|
||||||
document.querySelector("#lotOccupancy--lotId").value = selectedLotElement.dataset.lotId;
|
document.querySelector("#lotOccupancy--lotId").value =
|
||||||
document.querySelector("#lotOccupancy--lotName").value = selectedLotElement.dataset.lotName;
|
selectedLotElement.dataset.lotId;
|
||||||
|
document.querySelector("#lotOccupancy--lotName").value =
|
||||||
|
selectedLotElement.dataset.lotName;
|
||||||
setUnsavedChanges();
|
setUnsavedChanges();
|
||||||
lotSelectCloseModalFunction();
|
lotSelectCloseModalFunction();
|
||||||
};
|
};
|
||||||
|
|
@ -261,9 +248,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
cityssm.escapeHTML(lot.lotStatus) +
|
cityssm.escapeHTML(lot.lotStatus) +
|
||||||
"<br />" +
|
"<br />" +
|
||||||
'<span class="is-size-7">' +
|
'<span class="is-size-7">' +
|
||||||
(lot.lotOccupancyCount > 0
|
(lot.lotOccupancyCount > 0 ? "Currently Occupied" : "") +
|
||||||
? "Currently Occupied"
|
|
||||||
: "") +
|
|
||||||
"</span>" +
|
"</span>" +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
"</div>";
|
"</div>";
|
||||||
|
|
@ -282,7 +267,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
lotSelectCloseModalFunction = closeModalFunction;
|
lotSelectCloseModalFunction = closeModalFunction;
|
||||||
const lotNameFilterElement = modalElement.querySelector("#lotSelect--lotName");
|
const lotNameFilterElement = modalElement.querySelector("#lotSelect--lotName");
|
||||||
if (document.querySelector("#lotOccupancy--lotId").value !== "") {
|
if (document.querySelector("#lotOccupancy--lotId").value !==
|
||||||
|
"") {
|
||||||
lotNameFilterElement.value = currentLotName;
|
lotNameFilterElement.value = currentLotName;
|
||||||
}
|
}
|
||||||
lotNameFilterElement.focus();
|
lotNameFilterElement.focus();
|
||||||
|
|
@ -292,8 +278,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
if (currentLotName !== "") {
|
if (currentLotName !== "") {
|
||||||
occupancyStatusFilterElement.value = "";
|
occupancyStatusFilterElement.value = "";
|
||||||
}
|
}
|
||||||
lotSelectFormElement =
|
lotSelectFormElement = modalElement.querySelector("#form--lotSelect");
|
||||||
modalElement.querySelector("#form--lotSelect");
|
|
||||||
lotSelectResultsElement = modalElement.querySelector("#resultsContainer--lotSelect");
|
lotSelectResultsElement = modalElement.querySelector("#resultsContainer--lotSelect");
|
||||||
lotSelectFormElement.addEventListener("submit", (submitEvent) => {
|
lotSelectFormElement.addEventListener("submit", (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
@ -305,25 +290,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
document
|
document.querySelector(".is-lot-view-button").addEventListener("click", () => {
|
||||||
.querySelector(".is-lot-view-button")
|
|
||||||
.addEventListener("click", () => {
|
|
||||||
const lotId = document.querySelector("#lotOccupancy--lotId").value;
|
const lotId = document.querySelector("#lotOccupancy--lotId").value;
|
||||||
if (lotId) {
|
if (lotId) {
|
||||||
window.open(urlPrefix + "/lots/" + lotId);
|
window.open(urlPrefix + "/lots/" + lotId);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
message: "No " +
|
message: "No " + exports.aliases.lot.toLowerCase() + " selected.",
|
||||||
exports.aliases.lot.toLowerCase() +
|
|
||||||
" selected.",
|
|
||||||
contextualColorName: "info"
|
contextualColorName: "info"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
document
|
document.querySelector(".is-clear-lot-button").addEventListener("click", () => {
|
||||||
.querySelector(".is-clear-lot-button")
|
|
||||||
.addEventListener("click", () => {
|
|
||||||
if (lotNameElement.disabled) {
|
if (lotNameElement.disabled) {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
message: "You need to unlock the field before clearing it.",
|
message: "You need to unlock the field before clearing it.",
|
||||||
|
|
@ -336,21 +315,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
setUnsavedChanges();
|
setUnsavedChanges();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
los.initializeDatePickers(formElement);
|
||||||
document
|
document
|
||||||
.querySelector("#lotOccupancy--occupancyStartDateString")
|
.querySelector("#lotOccupancy--occupancyStartDateString")
|
||||||
.addEventListener("change", () => {
|
.addEventListener("change", () => {
|
||||||
document.querySelector("#lotOccupancy--occupancyEndDateString").min = document.querySelector("#lotOccupancy--occupancyStartDateString").value;
|
const endDatePicker = document.querySelector("#lotOccupancy--occupancyEndDateString")
|
||||||
|
.bulmaCalendar.datePicker;
|
||||||
|
endDatePicker.min = document.querySelector("#lotOccupancy--occupancyStartDateString").value;
|
||||||
|
endDatePicker.refresh();
|
||||||
});
|
});
|
||||||
los.initializeUnlockFieldButtons(formElement);
|
los.initializeUnlockFieldButtons(formElement);
|
||||||
if (!isCreate) {
|
if (!isCreate) {
|
||||||
let lotOccupancyOccupants = exports.lotOccupancyOccupants;
|
let lotOccupancyOccupants = exports.lotOccupancyOccupants;
|
||||||
delete exports.lotOccupancyOccupants;
|
delete exports.lotOccupancyOccupants;
|
||||||
const openEditLotOccupancyOccupant = (clickEvent) => {
|
const openEditLotOccupancyOccupant = (clickEvent) => {
|
||||||
const lotOccupantIndex = Number.parseInt(clickEvent.currentTarget.closest("tr").dataset
|
const lotOccupantIndex = Number.parseInt(clickEvent.currentTarget.closest("tr").dataset.lotOccupantIndex, 10);
|
||||||
.lotOccupantIndex, 10);
|
|
||||||
const lotOccupancyOccupant = lotOccupancyOccupants.find((currentLotOccupancyOccupant) => {
|
const lotOccupancyOccupant = lotOccupancyOccupants.find((currentLotOccupancyOccupant) => {
|
||||||
return (currentLotOccupancyOccupant.lotOccupantIndex ===
|
return currentLotOccupancyOccupant.lotOccupantIndex === lotOccupantIndex;
|
||||||
lotOccupantIndex);
|
|
||||||
});
|
});
|
||||||
let editFormElement;
|
let editFormElement;
|
||||||
let editCloseModalFunction;
|
let editCloseModalFunction;
|
||||||
|
|
@ -358,15 +339,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doUpdateLotOccupancyOccupant", editFormElement, (responseJSON) => {
|
cityssm.postJSON(urlPrefix + "/lotOccupancies/doUpdateLotOccupancyOccupant", editFormElement, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyOccupants =
|
lotOccupancyOccupants = responseJSON.lotOccupancyOccupants;
|
||||||
responseJSON.lotOccupancyOccupants;
|
|
||||||
editCloseModalFunction();
|
editCloseModalFunction();
|
||||||
renderLotOccupancyOccupants();
|
renderLotOccupancyOccupants();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating " +
|
title: "Error Updating " + exports.aliases.occupant,
|
||||||
exports.aliases.occupant,
|
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage,
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
|
|
@ -382,10 +361,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let lotOccupantTypeSelected = false;
|
let lotOccupantTypeSelected = false;
|
||||||
for (const lotOccupantType of exports.lotOccupantTypes) {
|
for (const lotOccupantType of exports.lotOccupantTypes) {
|
||||||
const optionElement = document.createElement("option");
|
const optionElement = document.createElement("option");
|
||||||
optionElement.value =
|
optionElement.value = lotOccupantType.lotOccupantTypeId.toString();
|
||||||
lotOccupantType.lotOccupantTypeId.toString();
|
optionElement.textContent = lotOccupantType.lotOccupantType;
|
||||||
optionElement.textContent =
|
|
||||||
lotOccupantType.lotOccupantType;
|
|
||||||
if (lotOccupantType.lotOccupantTypeId ===
|
if (lotOccupantType.lotOccupantTypeId ===
|
||||||
lotOccupancyOccupant.lotOccupantTypeId) {
|
lotOccupancyOccupant.lotOccupantTypeId) {
|
||||||
optionElement.selected = true;
|
optionElement.selected = true;
|
||||||
|
|
@ -395,10 +372,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
}
|
}
|
||||||
if (!lotOccupantTypeSelected) {
|
if (!lotOccupantTypeSelected) {
|
||||||
const optionElement = document.createElement("option");
|
const optionElement = document.createElement("option");
|
||||||
optionElement.value =
|
optionElement.value = lotOccupancyOccupant.lotOccupantTypeId.toString();
|
||||||
lotOccupancyOccupant.lotOccupantTypeId.toString();
|
optionElement.textContent = lotOccupancyOccupant.lotOccupantType;
|
||||||
optionElement.textContent =
|
|
||||||
lotOccupancyOccupant.lotOccupantType;
|
|
||||||
optionElement.selected = true;
|
optionElement.selected = true;
|
||||||
lotOccupantTypeSelectElement.append(optionElement);
|
lotOccupantTypeSelectElement.append(optionElement);
|
||||||
}
|
}
|
||||||
|
|
@ -423,21 +398,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
const deleteLotOccupancyOccupant = (clickEvent) => {
|
const deleteLotOccupancyOccupant = (clickEvent) => {
|
||||||
const lotOccupantIndex = clickEvent.currentTarget.closest("tr").dataset.lotOccupantIndex;
|
const lotOccupantIndex = clickEvent.currentTarget.closest("tr").dataset
|
||||||
|
.lotOccupantIndex;
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doDeleteLotOccupancyOccupant", {
|
cityssm.postJSON(urlPrefix + "/lotOccupancies/doDeleteLotOccupancyOccupant", {
|
||||||
lotOccupancyId,
|
lotOccupancyId,
|
||||||
lotOccupantIndex
|
lotOccupantIndex
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyOccupants =
|
lotOccupancyOccupants = responseJSON.lotOccupancyOccupants;
|
||||||
responseJSON.lotOccupancyOccupants;
|
|
||||||
renderLotOccupancyOccupants();
|
renderLotOccupancyOccupants();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Removing " +
|
title: "Error Removing " + exports.aliases.occupant,
|
||||||
exports.aliases.occupant,
|
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage,
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
|
|
@ -469,8 +443,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const tableElement = document.createElement("table");
|
const tableElement = document.createElement("table");
|
||||||
tableElement.className =
|
tableElement.className = "table is-fullwidth is-striped is-hoverable";
|
||||||
"table is-fullwidth is-striped is-hoverable";
|
|
||||||
tableElement.innerHTML =
|
tableElement.innerHTML =
|
||||||
"<thead><tr>" +
|
"<thead><tr>" +
|
||||||
"<th>" +
|
"<th>" +
|
||||||
|
|
@ -492,9 +465,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"<td>" +
|
"<td>" +
|
||||||
cityssm.escapeHTML(lotOccupancyOccupant.lotOccupantType) +
|
cityssm.escapeHTML(lotOccupancyOccupant.lotOccupantType) +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
("<td>" +
|
("<td>" + cityssm.escapeHTML(lotOccupancyOccupant.occupantName) + "</td>") +
|
||||||
cityssm.escapeHTML(lotOccupancyOccupant.occupantName) +
|
|
||||||
"</td>") +
|
|
||||||
("<td>" +
|
("<td>" +
|
||||||
cityssm.escapeHTML(lotOccupancyOccupant.occupantAddress1) +
|
cityssm.escapeHTML(lotOccupancyOccupant.occupantAddress1) +
|
||||||
"<br />" +
|
"<br />" +
|
||||||
|
|
@ -534,24 +505,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
}
|
}
|
||||||
occupantsContainer.append(tableElement);
|
occupantsContainer.append(tableElement);
|
||||||
};
|
};
|
||||||
document
|
document.querySelector("#button--addOccupant").addEventListener("click", () => {
|
||||||
.querySelector("#button--addOccupant")
|
|
||||||
.addEventListener("click", () => {
|
|
||||||
let addFormElement;
|
let addFormElement;
|
||||||
let addCloseModalFunction;
|
let addCloseModalFunction;
|
||||||
const addOccupant = (submitEvent) => {
|
const addOccupant = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doAddLotOccupancyOccupant", addFormElement, (responseJSON) => {
|
cityssm.postJSON(urlPrefix + "/lotOccupancies/doAddLotOccupancyOccupant", addFormElement, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyOccupants =
|
lotOccupancyOccupants = responseJSON.lotOccupancyOccupants;
|
||||||
responseJSON.lotOccupancyOccupants;
|
|
||||||
addCloseModalFunction();
|
addCloseModalFunction();
|
||||||
renderLotOccupancyOccupants();
|
renderLotOccupancyOccupants();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Adding " +
|
title: "Error Adding " + exports.aliases.occupant,
|
||||||
exports.aliases.occupant,
|
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage,
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
|
|
@ -565,10 +532,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const lotOccupantTypeSelectElement = modalElement.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId");
|
const lotOccupantTypeSelectElement = modalElement.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId");
|
||||||
for (const lotOccupantType of exports.lotOccupantTypes) {
|
for (const lotOccupantType of exports.lotOccupantTypes) {
|
||||||
const optionElement = document.createElement("option");
|
const optionElement = document.createElement("option");
|
||||||
optionElement.value =
|
optionElement.value = lotOccupantType.lotOccupantTypeId.toString();
|
||||||
lotOccupantType.lotOccupantTypeId.toString();
|
optionElement.textContent = lotOccupantType.lotOccupantType;
|
||||||
optionElement.textContent =
|
|
||||||
lotOccupantType.lotOccupantType;
|
|
||||||
lotOccupantTypeSelectElement.append(optionElement);
|
lotOccupantTypeSelectElement.append(optionElement);
|
||||||
}
|
}
|
||||||
modalElement.querySelector("#lotOccupancyOccupantAdd--occupantCity").value = exports.occupantCityDefault;
|
modalElement.querySelector("#lotOccupancyOccupantAdd--occupantCity").value = exports.occupantCityDefault;
|
||||||
|
|
@ -595,8 +560,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const lotOccupancyCommentId = Number.parseInt(clickEvent.currentTarget.closest("tr").dataset
|
const lotOccupancyCommentId = Number.parseInt(clickEvent.currentTarget.closest("tr").dataset
|
||||||
.lotOccupancyCommentId, 10);
|
.lotOccupancyCommentId, 10);
|
||||||
const lotOccupancyComment = lotOccupancyComments.find((currentLotOccupancyComment) => {
|
const lotOccupancyComment = lotOccupancyComments.find((currentLotOccupancyComment) => {
|
||||||
return (currentLotOccupancyComment.lotOccupancyCommentId ===
|
return currentLotOccupancyComment.lotOccupancyCommentId === lotOccupancyCommentId;
|
||||||
lotOccupancyCommentId);
|
|
||||||
});
|
});
|
||||||
let editFormElement;
|
let editFormElement;
|
||||||
let editCloseModalFunction;
|
let editCloseModalFunction;
|
||||||
|
|
@ -604,8 +568,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doUpdateLotOccupancyComment", editFormElement, (responseJSON) => {
|
cityssm.postJSON(urlPrefix + "/lotOccupancies/doUpdateLotOccupancyComment", editFormElement, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyComments =
|
lotOccupancyComments = responseJSON.lotOccupancyComments;
|
||||||
responseJSON.lotOccupancyComments;
|
|
||||||
editCloseModalFunction();
|
editCloseModalFunction();
|
||||||
renderLotOccupancyComments();
|
renderLotOccupancyComments();
|
||||||
}
|
}
|
||||||
|
|
@ -629,6 +592,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
},
|
},
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
onshown: (modalElement, closeModalFunction) => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
los.initializeDatePickers(modalElement);
|
||||||
|
los.initializeTimePickers(modalElement);
|
||||||
modalElement.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").focus();
|
modalElement.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").focus();
|
||||||
editFormElement = modalElement.querySelector("form");
|
editFormElement = modalElement.querySelector("form");
|
||||||
editFormElement.addEventListener("submit", editComment);
|
editFormElement.addEventListener("submit", editComment);
|
||||||
|
|
@ -648,8 +613,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
lotOccupancyCommentId
|
lotOccupancyCommentId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyComments =
|
lotOccupancyComments = responseJSON.lotOccupancyComments;
|
||||||
responseJSON.lotOccupancyComments;
|
|
||||||
renderLotOccupancyComments();
|
renderLotOccupancyComments();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
@ -681,8 +645,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const tableElement = document.createElement("table");
|
const tableElement = document.createElement("table");
|
||||||
tableElement.className =
|
tableElement.className = "table is-fullwidth is-striped is-hoverable";
|
||||||
"table is-fullwidth is-striped is-hoverable";
|
|
||||||
tableElement.innerHTML =
|
tableElement.innerHTML =
|
||||||
"<thead><tr>" +
|
"<thead><tr>" +
|
||||||
"<th>Commentor</th>" +
|
"<th>Commentor</th>" +
|
||||||
|
|
@ -703,8 +666,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
lotOccupancyComment.lotOccupancyCommentDateString +
|
lotOccupancyComment.lotOccupancyCommentDateString +
|
||||||
(lotOccupancyComment.lotOccupancyCommentTime === 0
|
(lotOccupancyComment.lotOccupancyCommentTime === 0
|
||||||
? ""
|
? ""
|
||||||
: " " +
|
: " " + lotOccupancyComment.lotOccupancyCommentTimeString) +
|
||||||
lotOccupancyComment.lotOccupancyCommentTimeString) +
|
|
||||||
"</td>" +
|
"</td>" +
|
||||||
"<td>" +
|
"<td>" +
|
||||||
cityssm.escapeHTML(lotOccupancyComment.lotOccupancyComment) +
|
cityssm.escapeHTML(lotOccupancyComment.lotOccupancyComment) +
|
||||||
|
|
@ -731,17 +693,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
containerElement.innerHTML = "";
|
containerElement.innerHTML = "";
|
||||||
containerElement.append(tableElement);
|
containerElement.append(tableElement);
|
||||||
};
|
};
|
||||||
document
|
document.querySelector("#button--addComment").addEventListener("click", () => {
|
||||||
.querySelector("#button--addComment")
|
|
||||||
.addEventListener("click", () => {
|
|
||||||
let addFormElement;
|
let addFormElement;
|
||||||
let addCloseModalFunction;
|
let addCloseModalFunction;
|
||||||
const addComment = (submitEvent) => {
|
const addComment = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doAddLotOccupancyComment", addFormElement, (responseJSON) => {
|
cityssm.postJSON(urlPrefix + "/lotOccupancies/doAddLotOccupancyComment", addFormElement, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyComments =
|
lotOccupancyComments = responseJSON.lotOccupancyComments;
|
||||||
responseJSON.lotOccupancyComments;
|
|
||||||
addCloseModalFunction();
|
addCloseModalFunction();
|
||||||
renderLotOccupancyComments();
|
renderLotOccupancyComments();
|
||||||
}
|
}
|
||||||
|
|
@ -848,10 +807,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
for (const lotOccupancyFee of lotOccupancyFees) {
|
for (const lotOccupancyFee of lotOccupancyFees) {
|
||||||
const tableRowElement = document.createElement("tr");
|
const tableRowElement = document.createElement("tr");
|
||||||
tableRowElement.className = "container--lotOccupancyFee";
|
tableRowElement.className = "container--lotOccupancyFee";
|
||||||
tableRowElement.dataset.feeId =
|
tableRowElement.dataset.feeId = lotOccupancyFee.feeId.toString();
|
||||||
lotOccupancyFee.feeId.toString();
|
tableRowElement.dataset.includeQuantity = lotOccupancyFee.includeQuantity
|
||||||
tableRowElement.dataset.includeQuantity =
|
? "1"
|
||||||
lotOccupancyFee.includeQuantity ? "1" : "0";
|
: "0";
|
||||||
tableRowElement.innerHTML =
|
tableRowElement.innerHTML =
|
||||||
'<td colspan="' +
|
'<td colspan="' +
|
||||||
(lotOccupancyFee.quantity === 1 ? "5" : "1") +
|
(lotOccupancyFee.quantity === 1 ? "5" : "1") +
|
||||||
|
|
@ -879,22 +838,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
tableRowElement
|
tableRowElement
|
||||||
.querySelector("button")
|
.querySelector("button")
|
||||||
.addEventListener("click", deleteLotOccupancyFee);
|
.addEventListener("click", deleteLotOccupancyFee);
|
||||||
lotOccupancyFeesContainerElement
|
lotOccupancyFeesContainerElement.querySelector("tbody").append(tableRowElement);
|
||||||
.querySelector("tbody")
|
feeAmountTotal += lotOccupancyFee.feeAmount * lotOccupancyFee.quantity;
|
||||||
.append(tableRowElement);
|
taxAmountTotal += lotOccupancyFee.taxAmount * lotOccupancyFee.quantity;
|
||||||
feeAmountTotal +=
|
|
||||||
lotOccupancyFee.feeAmount * lotOccupancyFee.quantity;
|
|
||||||
taxAmountTotal +=
|
|
||||||
lotOccupancyFee.taxAmount * lotOccupancyFee.quantity;
|
|
||||||
}
|
}
|
||||||
lotOccupancyFeesContainerElement.querySelector("#lotOccupancyFees--feeAmountTotal").textContent = "$" + feeAmountTotal.toFixed(2);
|
lotOccupancyFeesContainerElement.querySelector("#lotOccupancyFees--feeAmountTotal").textContent = "$" + feeAmountTotal.toFixed(2);
|
||||||
lotOccupancyFeesContainerElement.querySelector("#lotOccupancyFees--taxAmountTotal").textContent = "$" + taxAmountTotal.toFixed(2);
|
lotOccupancyFeesContainerElement.querySelector("#lotOccupancyFees--taxAmountTotal").textContent = "$" + taxAmountTotal.toFixed(2);
|
||||||
lotOccupancyFeesContainerElement.querySelector("#lotOccupancyFees--grandTotal").textContent = "$" + (feeAmountTotal + taxAmountTotal).toFixed(2);
|
lotOccupancyFeesContainerElement.querySelector("#lotOccupancyFees--grandTotal").textContent = "$" + (feeAmountTotal + taxAmountTotal).toFixed(2);
|
||||||
renderLotOccupancyTransactions();
|
renderLotOccupancyTransactions();
|
||||||
};
|
};
|
||||||
document
|
document.querySelector("#button--addFee").addEventListener("click", () => {
|
||||||
.querySelector("#button--addFee")
|
|
||||||
.addEventListener("click", () => {
|
|
||||||
if (hasUnsavedChanges) {
|
if (hasUnsavedChanges) {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
message: "Please save all unsaved changes before adding fees.",
|
message: "Please save all unsaved changes before adding fees.",
|
||||||
|
|
@ -912,8 +865,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
quantity
|
quantity
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyFees =
|
lotOccupancyFees = responseJSON.lotOccupancyFees;
|
||||||
responseJSON.lotOccupancyFees;
|
|
||||||
renderLotOccupancyFees();
|
renderLotOccupancyFees();
|
||||||
filterFees();
|
filterFees();
|
||||||
}
|
}
|
||||||
|
|
@ -952,8 +904,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const feeId = Number.parseInt(clickEvent.currentTarget.dataset.feeId, 10);
|
const feeId = Number.parseInt(clickEvent.currentTarget.dataset.feeId, 10);
|
||||||
const feeCategoryId = Number.parseInt(clickEvent.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId, 10);
|
const feeCategoryId = Number.parseInt(clickEvent.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId, 10);
|
||||||
const feeCategory = feeCategories.find((currentFeeCategory) => {
|
const feeCategory = feeCategories.find((currentFeeCategory) => {
|
||||||
return (currentFeeCategory.feeCategoryId ===
|
return currentFeeCategory.feeCategoryId === feeCategoryId;
|
||||||
feeCategoryId);
|
|
||||||
});
|
});
|
||||||
const fee = feeCategory.fees.find((currentFee) => {
|
const fee = feeCategory.fees.find((currentFee) => {
|
||||||
return currentFee.feeId === feeId;
|
return currentFee.feeId === feeId;
|
||||||
|
|
@ -966,15 +917,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const filterFees = () => {
|
const filterFees = () => {
|
||||||
const filterStringPieces = feeFilterElement.value
|
const filterStringPieces = feeFilterElement.value.trim().toLowerCase().split(" ");
|
||||||
.trim()
|
|
||||||
.toLowerCase()
|
|
||||||
.split(" ");
|
|
||||||
feeFilterResultsElement.innerHTML = "";
|
feeFilterResultsElement.innerHTML = "";
|
||||||
for (const feeCategory of feeCategories) {
|
for (const feeCategory of feeCategories) {
|
||||||
const categoryContainerElement = document.createElement("div");
|
const categoryContainerElement = document.createElement("div");
|
||||||
categoryContainerElement.className =
|
categoryContainerElement.className = "container--feeCategory";
|
||||||
"container--feeCategory";
|
|
||||||
categoryContainerElement.dataset.feeCategoryId =
|
categoryContainerElement.dataset.feeCategoryId =
|
||||||
feeCategory.feeCategoryId.toString();
|
feeCategory.feeCategoryId.toString();
|
||||||
categoryContainerElement.innerHTML =
|
categoryContainerElement.innerHTML =
|
||||||
|
|
@ -991,9 +938,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
}
|
}
|
||||||
let includeFee = true;
|
let includeFee = true;
|
||||||
for (const filterStringPiece of filterStringPieces) {
|
for (const filterStringPiece of filterStringPieces) {
|
||||||
if (!fee.feeName
|
if (!fee.feeName.toLowerCase().includes(filterStringPiece)) {
|
||||||
.toLowerCase()
|
|
||||||
.includes(filterStringPiece)) {
|
|
||||||
includeFee = false;
|
includeFee = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -1003,24 +948,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
}
|
}
|
||||||
hasFees = true;
|
hasFees = true;
|
||||||
const panelBlockElement = document.createElement("a");
|
const panelBlockElement = document.createElement("a");
|
||||||
panelBlockElement.className =
|
panelBlockElement.className = "panel-block is-block container--fee";
|
||||||
"panel-block is-block container--fee";
|
panelBlockElement.dataset.feeId = fee.feeId.toString();
|
||||||
panelBlockElement.dataset.feeId =
|
|
||||||
fee.feeId.toString();
|
|
||||||
panelBlockElement.href = "#";
|
panelBlockElement.href = "#";
|
||||||
panelBlockElement.innerHTML =
|
panelBlockElement.innerHTML =
|
||||||
"<strong>" +
|
"<strong>" +
|
||||||
cityssm.escapeHTML(fee.feeName) +
|
cityssm.escapeHTML(fee.feeName) +
|
||||||
"</strong><br />" +
|
"</strong><br />" +
|
||||||
"<small>" +
|
"<small>" +
|
||||||
cityssm
|
cityssm.escapeHTML(fee.feeDescription).replace(/\n/g, "<br />") +
|
||||||
.escapeHTML(fee.feeDescription)
|
|
||||||
.replace(/\n/g, "<br />") +
|
|
||||||
"</small>";
|
"</small>";
|
||||||
panelBlockElement.addEventListener("click", tryAddFee);
|
panelBlockElement.addEventListener("click", tryAddFee);
|
||||||
categoryContainerElement
|
categoryContainerElement.querySelector(".panel").append(panelBlockElement);
|
||||||
.querySelector(".panel")
|
|
||||||
.append(panelBlockElement);
|
|
||||||
}
|
}
|
||||||
if (hasFees) {
|
if (hasFees) {
|
||||||
feeFilterResultsElement.append(categoryContainerElement);
|
feeFilterResultsElement.append(categoryContainerElement);
|
||||||
|
|
@ -1058,22 +997,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const getTransactionGrandTotal = () => {
|
const getTransactionGrandTotal = () => {
|
||||||
let transactionGrandTotal = 0;
|
let transactionGrandTotal = 0;
|
||||||
for (const lotOccupancyTransaction of lotOccupancyTransactions) {
|
for (const lotOccupancyTransaction of lotOccupancyTransactions) {
|
||||||
transactionGrandTotal +=
|
transactionGrandTotal += lotOccupancyTransaction.transactionAmount;
|
||||||
lotOccupancyTransaction.transactionAmount;
|
|
||||||
}
|
}
|
||||||
return transactionGrandTotal;
|
return transactionGrandTotal;
|
||||||
};
|
};
|
||||||
const deleteLotOccupancyTransaction = (clickEvent) => {
|
const deleteLotOccupancyTransaction = (clickEvent) => {
|
||||||
const transactionIndex = clickEvent.currentTarget.closest(".container--lotOccupancyTransaction").dataset.transactionIndex;
|
const transactionIndex = clickEvent.currentTarget.closest(".container--lotOccupancyTransaction").dataset.transactionIndex;
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix +
|
cityssm.postJSON(urlPrefix + "/lotOccupancies/doDeleteLotOccupancyTransaction", {
|
||||||
"/lotOccupancies/doDeleteLotOccupancyTransaction", {
|
|
||||||
lotOccupancyId,
|
lotOccupancyId,
|
||||||
transactionIndex
|
transactionIndex
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyTransactions =
|
lotOccupancyTransactions = responseJSON.lotOccupancyTransactions;
|
||||||
responseJSON.lotOccupancyTransactions;
|
|
||||||
renderLotOccupancyTransactions();
|
renderLotOccupancyTransactions();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
@ -1124,11 +1060,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</table>";
|
"</table>";
|
||||||
let transactionGrandTotal = 0;
|
let transactionGrandTotal = 0;
|
||||||
for (const lotOccupancyTransaction of lotOccupancyTransactions) {
|
for (const lotOccupancyTransaction of lotOccupancyTransactions) {
|
||||||
transactionGrandTotal +=
|
transactionGrandTotal += lotOccupancyTransaction.transactionAmount;
|
||||||
lotOccupancyTransaction.transactionAmount;
|
|
||||||
const tableRowElement = document.createElement("tr");
|
const tableRowElement = document.createElement("tr");
|
||||||
tableRowElement.className =
|
tableRowElement.className = "container--lotOccupancyTransaction";
|
||||||
"container--lotOccupancyTransaction";
|
|
||||||
tableRowElement.dataset.transactionIndex =
|
tableRowElement.dataset.transactionIndex =
|
||||||
lotOccupancyTransaction.transactionIndex.toString();
|
lotOccupancyTransaction.transactionIndex.toString();
|
||||||
tableRowElement.innerHTML =
|
tableRowElement.innerHTML =
|
||||||
|
|
@ -1172,17 +1106,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</div>");
|
"</div>");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
document
|
document.querySelector("#button--addTransaction").addEventListener("click", () => {
|
||||||
.querySelector("#button--addTransaction")
|
|
||||||
.addEventListener("click", () => {
|
|
||||||
let addCloseModalFunction;
|
let addCloseModalFunction;
|
||||||
const doAddTransaction = (submitEvent) => {
|
const doAddTransaction = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix +
|
cityssm.postJSON(urlPrefix + "/lotOccupancies/doAddLotOccupancyTransaction", submitEvent.currentTarget, (responseJSON) => {
|
||||||
"/lotOccupancies/doAddLotOccupancyTransaction", submitEvent.currentTarget, (responseJSON) => {
|
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyTransactions =
|
lotOccupancyTransactions = responseJSON.lotOccupancyTransactions;
|
||||||
responseJSON.lotOccupancyTransactions;
|
|
||||||
addCloseModalFunction();
|
addCloseModalFunction();
|
||||||
renderLotOccupancyTransactions();
|
renderLotOccupancyTransactions();
|
||||||
}
|
}
|
||||||
|
|
@ -1209,9 +1139,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
onshown: (modalElement, closeModalFunction) => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
addCloseModalFunction = closeModalFunction;
|
addCloseModalFunction = closeModalFunction;
|
||||||
modalElement
|
modalElement.querySelector("form").addEventListener("submit", doAddTransaction);
|
||||||
.querySelector("form")
|
|
||||||
.addEventListener("submit", doAddTransaction);
|
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved: () => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
|
||||||
|
|
@ -16,9 +16,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||||
|
|
||||||
const lotOccupancyId = (
|
const lotOccupancyId = (
|
||||||
document.querySelector(
|
document.querySelector("#lotOccupancy--lotOccupancyId") as HTMLInputElement
|
||||||
"#lotOccupancy--lotOccupancyId"
|
|
||||||
) as HTMLInputElement
|
|
||||||
).value;
|
).value;
|
||||||
const isCreate = lotOccupancyId === "";
|
const isCreate = lotOccupancyId === "";
|
||||||
|
|
||||||
|
|
@ -41,9 +39,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
cityssm.disableNavBlocker();
|
cityssm.disableNavBlocker();
|
||||||
};
|
};
|
||||||
|
|
||||||
const formElement = document.querySelector(
|
const formElement = document.querySelector("#form--lotOccupancy") as HTMLFormElement;
|
||||||
"#form--lotOccupancy"
|
|
||||||
) as HTMLFormElement;
|
|
||||||
|
|
||||||
formElement.addEventListener("submit", (formEvent) => {
|
formElement.addEventListener("submit", (formEvent) => {
|
||||||
formEvent.preventDefault();
|
formEvent.preventDefault();
|
||||||
|
|
@ -70,9 +66,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
Date.now();
|
Date.now();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
message:
|
message: exports.aliases.occupancy + " Updated Successfully",
|
||||||
exports.aliases.occupancy +
|
|
||||||
" Updated Successfully",
|
|
||||||
contextualColorName: "success"
|
contextualColorName: "success"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -93,8 +87,6 @@ declare const bulmaJS: BulmaJS;
|
||||||
formInputElement.addEventListener("change", setUnsavedChanges);
|
formInputElement.addEventListener("change", setUnsavedChanges);
|
||||||
}
|
}
|
||||||
|
|
||||||
los.initializeDatePickers(formElement);
|
|
||||||
|
|
||||||
if (!isCreate) {
|
if (!isCreate) {
|
||||||
document
|
document
|
||||||
.querySelector("#button--deleteLotOccupancy")
|
.querySelector("#button--deleteLotOccupancy")
|
||||||
|
|
@ -107,16 +99,11 @@ declare const bulmaJS: BulmaJS;
|
||||||
{
|
{
|
||||||
lotOccupancyId
|
lotOccupancyId
|
||||||
},
|
},
|
||||||
(responseJSON: {
|
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||||
success: boolean;
|
|
||||||
errorMessage?: string;
|
|
||||||
}) => {
|
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
cityssm.disableNavBlocker();
|
cityssm.disableNavBlocker();
|
||||||
window.location.href =
|
window.location.href =
|
||||||
urlPrefix +
|
urlPrefix + "/lotOccupancies?t=" + Date.now();
|
||||||
"/lotOccupancies?t=" +
|
|
||||||
Date.now();
|
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting Record",
|
title: "Error Deleting Record",
|
||||||
|
|
@ -168,9 +155,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
{
|
{
|
||||||
occupancyTypeId: occupancyTypeIdElement.value
|
occupancyTypeId: occupancyTypeIdElement.value
|
||||||
},
|
},
|
||||||
(responseJSON: {
|
(responseJSON: { occupancyTypeFields: recordTypes.OccupancyTypeField[] }) => {
|
||||||
occupancyTypeFields: recordTypes.OccupancyTypeField[];
|
|
||||||
}) => {
|
|
||||||
if (responseJSON.occupancyTypeFields.length === 0) {
|
if (responseJSON.occupancyTypeFields.length === 0) {
|
||||||
lotOccupancyFieldsContainerElement.innerHTML =
|
lotOccupancyFieldsContainerElement.innerHTML =
|
||||||
'<div class="message is-info">' +
|
'<div class="message is-info">' +
|
||||||
|
|
@ -187,12 +172,10 @@ declare const bulmaJS: BulmaJS;
|
||||||
let occupancyTypeFieldIds = "";
|
let occupancyTypeFieldIds = "";
|
||||||
|
|
||||||
for (const occupancyTypeField of responseJSON.occupancyTypeFields) {
|
for (const occupancyTypeField of responseJSON.occupancyTypeFields) {
|
||||||
occupancyTypeFieldIds +=
|
occupancyTypeFieldIds += "," + occupancyTypeField.occupancyTypeFieldId;
|
||||||
"," + occupancyTypeField.occupancyTypeFieldId;
|
|
||||||
|
|
||||||
const fieldName =
|
const fieldName =
|
||||||
"lotOccupancyFieldValue_" +
|
"lotOccupancyFieldValue_" + occupancyTypeField.occupancyTypeFieldId;
|
||||||
occupancyTypeField.occupancyTypeFieldId;
|
|
||||||
|
|
||||||
const fieldId = "lotOccupancy--" + fieldName;
|
const fieldId = "lotOccupancy--" + fieldName;
|
||||||
|
|
||||||
|
|
@ -207,11 +190,8 @@ declare const bulmaJS: BulmaJS;
|
||||||
fieldElement.querySelector("label").textContent =
|
fieldElement.querySelector("label").textContent =
|
||||||
occupancyTypeField.occupancyTypeField;
|
occupancyTypeField.occupancyTypeField;
|
||||||
|
|
||||||
if (
|
if (occupancyTypeField.occupancyTypeFieldValues === "") {
|
||||||
occupancyTypeField.occupancyTypeFieldValues === ""
|
const inputElement = document.createElement("input");
|
||||||
) {
|
|
||||||
const inputElement =
|
|
||||||
document.createElement("input");
|
|
||||||
|
|
||||||
inputElement.className = "input";
|
inputElement.className = "input";
|
||||||
|
|
||||||
|
|
@ -221,24 +201,15 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
inputElement.type = "text";
|
inputElement.type = "text";
|
||||||
|
|
||||||
inputElement.required =
|
inputElement.required = occupancyTypeField.isRequired;
|
||||||
occupancyTypeField.isRequired;
|
inputElement.minLength = occupancyTypeField.minimumLength;
|
||||||
inputElement.minLength =
|
inputElement.maxLength = occupancyTypeField.maximumLength;
|
||||||
occupancyTypeField.minimumLength;
|
|
||||||
inputElement.maxLength =
|
|
||||||
occupancyTypeField.maximumLength;
|
|
||||||
|
|
||||||
if (
|
if (occupancyTypeField.pattern && occupancyTypeField.pattern !== "") {
|
||||||
occupancyTypeField.pattern &&
|
inputElement.pattern = occupancyTypeField.pattern;
|
||||||
occupancyTypeField.pattern !== ""
|
|
||||||
) {
|
|
||||||
inputElement.pattern =
|
|
||||||
occupancyTypeField.pattern;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fieldElement
|
fieldElement.querySelector(".control").append(inputElement);
|
||||||
.querySelector(".control")
|
|
||||||
.append(inputElement);
|
|
||||||
} else {
|
} else {
|
||||||
fieldElement.querySelector(".control").innerHTML =
|
fieldElement.querySelector(".control").innerHTML =
|
||||||
'<div class="select is-fullwidth"><select id="' +
|
'<div class="select is-fullwidth"><select id="' +
|
||||||
|
|
@ -252,7 +223,8 @@ declare const bulmaJS: BulmaJS;
|
||||||
fieldElement.querySelector("select").required =
|
fieldElement.querySelector("select").required =
|
||||||
occupancyTypeField.isRequired;
|
occupancyTypeField.isRequired;
|
||||||
|
|
||||||
const optionValues = occupancyTypeField.occupancyTypeFieldValues.split("\n");
|
const optionValues =
|
||||||
|
occupancyTypeField.occupancyTypeFieldValues.split("\n");
|
||||||
|
|
||||||
for (const optionValue of optionValues) {
|
for (const optionValue of optionValues) {
|
||||||
const optionElement = document.createElement("option");
|
const optionElement = document.createElement("option");
|
||||||
|
|
@ -296,8 +268,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
cancelButton: {
|
cancelButton: {
|
||||||
text: "Revert the Change",
|
text: "Revert the Change",
|
||||||
callbackFunction: () => {
|
callbackFunction: () => {
|
||||||
occupancyTypeIdElement.value =
|
occupancyTypeIdElement.value = originalOccupancyTypeId;
|
||||||
originalOccupancyTypeId;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -307,13 +278,10 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
// Lot Selector
|
// Lot Selector
|
||||||
|
|
||||||
const lotNameElement = document.querySelector(
|
const lotNameElement = document.querySelector("#lotOccupancy--lotName") as HTMLInputElement;
|
||||||
"#lotOccupancy--lotName"
|
|
||||||
) as HTMLInputElement;
|
|
||||||
|
|
||||||
lotNameElement.addEventListener("click", (clickEvent) => {
|
lotNameElement.addEventListener("click", (clickEvent) => {
|
||||||
const currentLotName = (clickEvent.currentTarget as HTMLInputElement)
|
const currentLotName = (clickEvent.currentTarget as HTMLInputElement).value;
|
||||||
.value;
|
|
||||||
|
|
||||||
let lotSelectCloseModalFunction: () => void;
|
let lotSelectCloseModalFunction: () => void;
|
||||||
|
|
||||||
|
|
@ -325,16 +293,10 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
const selectedLotElement = clickEvent.currentTarget as HTMLElement;
|
const selectedLotElement = clickEvent.currentTarget as HTMLElement;
|
||||||
|
|
||||||
(
|
(document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value =
|
||||||
document.querySelector(
|
selectedLotElement.dataset.lotId;
|
||||||
"#lotOccupancy--lotId"
|
(document.querySelector("#lotOccupancy--lotName") as HTMLInputElement).value =
|
||||||
) as HTMLInputElement
|
selectedLotElement.dataset.lotName;
|
||||||
).value = selectedLotElement.dataset.lotId;
|
|
||||||
(
|
|
||||||
document.querySelector(
|
|
||||||
"#lotOccupancy--lotName"
|
|
||||||
) as HTMLInputElement
|
|
||||||
).value = selectedLotElement.dataset.lotName;
|
|
||||||
|
|
||||||
setUnsavedChanges();
|
setUnsavedChanges();
|
||||||
|
|
||||||
|
|
@ -387,9 +349,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
cityssm.escapeHTML(lot.lotStatus as string) +
|
cityssm.escapeHTML(lot.lotStatus as string) +
|
||||||
"<br />" +
|
"<br />" +
|
||||||
'<span class="is-size-7">' +
|
'<span class="is-size-7">' +
|
||||||
(lot.lotOccupancyCount > 0
|
(lot.lotOccupancyCount > 0 ? "Currently Occupied" : "") +
|
||||||
? "Currently Occupied"
|
|
||||||
: "") +
|
|
||||||
"</span>" +
|
"</span>" +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
"</div>";
|
"</div>";
|
||||||
|
|
@ -419,11 +379,8 @@ declare const bulmaJS: BulmaJS;
|
||||||
) as HTMLInputElement;
|
) as HTMLInputElement;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
(
|
(document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value !==
|
||||||
document.querySelector(
|
""
|
||||||
"#lotOccupancy--lotId"
|
|
||||||
) as HTMLInputElement
|
|
||||||
).value !== ""
|
|
||||||
) {
|
) {
|
||||||
lotNameFilterElement.value = currentLotName;
|
lotNameFilterElement.value = currentLotName;
|
||||||
}
|
}
|
||||||
|
|
@ -434,27 +391,20 @@ declare const bulmaJS: BulmaJS;
|
||||||
const occupancyStatusFilterElement = modalElement.querySelector(
|
const occupancyStatusFilterElement = modalElement.querySelector(
|
||||||
"#lotSelect--occupancyStatus"
|
"#lotSelect--occupancyStatus"
|
||||||
) as HTMLSelectElement;
|
) as HTMLSelectElement;
|
||||||
occupancyStatusFilterElement.addEventListener(
|
occupancyStatusFilterElement.addEventListener("change", searchLots);
|
||||||
"change",
|
|
||||||
searchLots
|
|
||||||
);
|
|
||||||
|
|
||||||
if (currentLotName !== "") {
|
if (currentLotName !== "") {
|
||||||
occupancyStatusFilterElement.value = "";
|
occupancyStatusFilterElement.value = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
lotSelectFormElement =
|
lotSelectFormElement = modalElement.querySelector("#form--lotSelect");
|
||||||
modalElement.querySelector("#form--lotSelect");
|
|
||||||
lotSelectResultsElement = modalElement.querySelector(
|
lotSelectResultsElement = modalElement.querySelector(
|
||||||
"#resultsContainer--lotSelect"
|
"#resultsContainer--lotSelect"
|
||||||
);
|
);
|
||||||
|
|
||||||
lotSelectFormElement.addEventListener(
|
lotSelectFormElement.addEventListener("submit", (submitEvent) => {
|
||||||
"submit",
|
|
||||||
(submitEvent) => {
|
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
}
|
});
|
||||||
);
|
|
||||||
|
|
||||||
searchLots();
|
searchLots();
|
||||||
},
|
},
|
||||||
|
|
@ -464,31 +414,20 @@ declare const bulmaJS: BulmaJS;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
document
|
document.querySelector(".is-lot-view-button").addEventListener("click", () => {
|
||||||
.querySelector(".is-lot-view-button")
|
const lotId = (document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value;
|
||||||
.addEventListener("click", () => {
|
|
||||||
const lotId = (
|
|
||||||
document.querySelector(
|
|
||||||
"#lotOccupancy--lotId"
|
|
||||||
) as HTMLInputElement
|
|
||||||
).value;
|
|
||||||
|
|
||||||
if (lotId) {
|
if (lotId) {
|
||||||
window.open(urlPrefix + "/lots/" + lotId);
|
window.open(urlPrefix + "/lots/" + lotId);
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
message:
|
message: "No " + exports.aliases.lot.toLowerCase() + " selected.",
|
||||||
"No " +
|
|
||||||
exports.aliases.lot.toLowerCase() +
|
|
||||||
" selected.",
|
|
||||||
contextualColorName: "info"
|
contextualColorName: "info"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
document
|
document.querySelector(".is-clear-lot-button").addEventListener("click", () => {
|
||||||
.querySelector(".is-clear-lot-button")
|
|
||||||
.addEventListener("click", () => {
|
|
||||||
if (lotNameElement.disabled) {
|
if (lotNameElement.disabled) {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
message: "You need to unlock the field before clearing it.",
|
message: "You need to unlock the field before clearing it.",
|
||||||
|
|
@ -496,29 +435,28 @@ declare const bulmaJS: BulmaJS;
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
lotNameElement.value = "(No " + exports.aliases.lot + ")";
|
lotNameElement.value = "(No " + exports.aliases.lot + ")";
|
||||||
(
|
(document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value = "";
|
||||||
document.querySelector(
|
|
||||||
"#lotOccupancy--lotId"
|
|
||||||
) as HTMLInputElement
|
|
||||||
).value = "";
|
|
||||||
setUnsavedChanges();
|
setUnsavedChanges();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Start Date
|
// Start Date
|
||||||
|
|
||||||
|
los.initializeDatePickers(formElement);
|
||||||
|
|
||||||
document
|
document
|
||||||
.querySelector("#lotOccupancy--occupancyStartDateString")
|
.querySelector("#lotOccupancy--occupancyStartDateString")
|
||||||
.addEventListener("change", () => {
|
.addEventListener("change", () => {
|
||||||
(
|
const endDatePicker = document.querySelector("#lotOccupancy--occupancyEndDateString")
|
||||||
document.querySelector(
|
.bulmaCalendar.datePicker;
|
||||||
"#lotOccupancy--occupancyEndDateString"
|
|
||||||
) as HTMLInputElement
|
endDatePicker.min = (
|
||||||
).min = (
|
|
||||||
document.querySelector(
|
document.querySelector(
|
||||||
"#lotOccupancy--occupancyStartDateString"
|
"#lotOccupancy--occupancyStartDateString"
|
||||||
) as HTMLInputElement
|
) as HTMLInputElement
|
||||||
).value;
|
).value;
|
||||||
|
|
||||||
|
endDatePicker.refresh();
|
||||||
});
|
});
|
||||||
|
|
||||||
los.initializeUnlockFieldButtons(formElement);
|
los.initializeUnlockFieldButtons(formElement);
|
||||||
|
|
@ -534,17 +472,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
const openEditLotOccupancyOccupant = (clickEvent: Event) => {
|
const openEditLotOccupancyOccupant = (clickEvent: Event) => {
|
||||||
const lotOccupantIndex = Number.parseInt(
|
const lotOccupantIndex = Number.parseInt(
|
||||||
(clickEvent.currentTarget as HTMLElement).closest("tr").dataset
|
(clickEvent.currentTarget as HTMLElement).closest("tr").dataset.lotOccupantIndex,
|
||||||
.lotOccupantIndex,
|
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
const lotOccupancyOccupant = lotOccupancyOccupants.find(
|
const lotOccupancyOccupant = lotOccupancyOccupants.find(
|
||||||
(currentLotOccupancyOccupant) => {
|
(currentLotOccupancyOccupant) => {
|
||||||
return (
|
return currentLotOccupancyOccupant.lotOccupantIndex === lotOccupantIndex;
|
||||||
currentLotOccupancyOccupant.lotOccupantIndex ===
|
|
||||||
lotOccupantIndex
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -563,15 +497,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotOccupancyOccupants?: recordTypes.LotOccupancyOccupant[];
|
lotOccupancyOccupants?: recordTypes.LotOccupancyOccupant[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyOccupants =
|
lotOccupancyOccupants = responseJSON.lotOccupancyOccupants;
|
||||||
responseJSON.lotOccupancyOccupants;
|
|
||||||
editCloseModalFunction();
|
editCloseModalFunction();
|
||||||
renderLotOccupancyOccupants();
|
renderLotOccupancyOccupants();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title:
|
title: "Error Updating " + exports.aliases.occupant,
|
||||||
"Error Updating " +
|
|
||||||
exports.aliases.occupant,
|
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage,
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
|
|
@ -595,8 +526,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
) as HTMLInputElement
|
) as HTMLInputElement
|
||||||
).value = lotOccupantIndex.toString();
|
).value = lotOccupantIndex.toString();
|
||||||
|
|
||||||
const lotOccupantTypeSelectElement =
|
const lotOccupantTypeSelectElement = modalElement.querySelector(
|
||||||
modalElement.querySelector(
|
|
||||||
"#lotOccupancyOccupantEdit--lotOccupantTypeId"
|
"#lotOccupancyOccupantEdit--lotOccupantTypeId"
|
||||||
) as HTMLSelectElement;
|
) as HTMLSelectElement;
|
||||||
|
|
||||||
|
|
@ -604,10 +534,8 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
for (const lotOccupantType of exports.lotOccupantTypes as recordTypes.LotOccupantType[]) {
|
for (const lotOccupantType of exports.lotOccupantTypes as recordTypes.LotOccupantType[]) {
|
||||||
const optionElement = document.createElement("option");
|
const optionElement = document.createElement("option");
|
||||||
optionElement.value =
|
optionElement.value = lotOccupantType.lotOccupantTypeId.toString();
|
||||||
lotOccupantType.lotOccupantTypeId.toString();
|
optionElement.textContent = lotOccupantType.lotOccupantType;
|
||||||
optionElement.textContent =
|
|
||||||
lotOccupantType.lotOccupantType;
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
lotOccupantType.lotOccupantTypeId ===
|
lotOccupantType.lotOccupantTypeId ===
|
||||||
|
|
@ -623,10 +551,8 @@ declare const bulmaJS: BulmaJS;
|
||||||
if (!lotOccupantTypeSelected) {
|
if (!lotOccupantTypeSelected) {
|
||||||
const optionElement = document.createElement("option");
|
const optionElement = document.createElement("option");
|
||||||
|
|
||||||
optionElement.value =
|
optionElement.value = lotOccupancyOccupant.lotOccupantTypeId.toString();
|
||||||
lotOccupancyOccupant.lotOccupantTypeId.toString();
|
optionElement.textContent = lotOccupancyOccupant.lotOccupantType as string;
|
||||||
optionElement.textContent =
|
|
||||||
lotOccupancyOccupant.lotOccupantType as string;
|
|
||||||
optionElement.selected = true;
|
optionElement.selected = true;
|
||||||
|
|
||||||
lotOccupantTypeSelectElement.append(optionElement);
|
lotOccupantTypeSelectElement.append(optionElement);
|
||||||
|
|
@ -689,9 +615,8 @@ declare const bulmaJS: BulmaJS;
|
||||||
};
|
};
|
||||||
|
|
||||||
const deleteLotOccupancyOccupant = (clickEvent: Event) => {
|
const deleteLotOccupancyOccupant = (clickEvent: Event) => {
|
||||||
const lotOccupantIndex = (
|
const lotOccupantIndex = (clickEvent.currentTarget as HTMLElement).closest("tr").dataset
|
||||||
clickEvent.currentTarget as HTMLElement
|
.lotOccupantIndex;
|
||||||
).closest("tr").dataset.lotOccupantIndex;
|
|
||||||
|
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
|
|
@ -706,14 +631,11 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotOccupancyOccupants: recordTypes.LotOccupancyOccupant[];
|
lotOccupancyOccupants: recordTypes.LotOccupancyOccupant[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyOccupants =
|
lotOccupancyOccupants = responseJSON.lotOccupancyOccupants;
|
||||||
responseJSON.lotOccupancyOccupants;
|
|
||||||
renderLotOccupancyOccupants();
|
renderLotOccupancyOccupants();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title:
|
title: "Error Removing " + exports.aliases.occupant,
|
||||||
"Error Removing " +
|
|
||||||
exports.aliases.occupant,
|
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage,
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
|
|
@ -755,8 +677,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
}
|
}
|
||||||
|
|
||||||
const tableElement = document.createElement("table");
|
const tableElement = document.createElement("table");
|
||||||
tableElement.className =
|
tableElement.className = "table is-fullwidth is-striped is-hoverable";
|
||||||
"table is-fullwidth is-striped is-hoverable";
|
|
||||||
|
|
||||||
tableElement.innerHTML =
|
tableElement.innerHTML =
|
||||||
"<thead><tr>" +
|
"<thead><tr>" +
|
||||||
|
|
@ -779,40 +700,24 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
tableRowElement.innerHTML =
|
tableRowElement.innerHTML =
|
||||||
"<td>" +
|
"<td>" +
|
||||||
cityssm.escapeHTML(
|
cityssm.escapeHTML(lotOccupancyOccupant.lotOccupantType as string) +
|
||||||
lotOccupancyOccupant.lotOccupantType as string
|
|
||||||
) +
|
|
||||||
"</td>" +
|
"</td>" +
|
||||||
|
("<td>" + cityssm.escapeHTML(lotOccupancyOccupant.occupantName) + "</td>") +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
cityssm.escapeHTML(lotOccupancyOccupant.occupantName) +
|
cityssm.escapeHTML(lotOccupancyOccupant.occupantAddress1) +
|
||||||
"</td>") +
|
|
||||||
("<td>" +
|
|
||||||
cityssm.escapeHTML(
|
|
||||||
lotOccupancyOccupant.occupantAddress1
|
|
||||||
) +
|
|
||||||
"<br />" +
|
"<br />" +
|
||||||
(lotOccupancyOccupant.occupantAddress2
|
(lotOccupancyOccupant.occupantAddress2
|
||||||
? cityssm.escapeHTML(
|
? cityssm.escapeHTML(lotOccupancyOccupant.occupantAddress2) + "<br />"
|
||||||
lotOccupancyOccupant.occupantAddress2
|
|
||||||
) + "<br />"
|
|
||||||
: "") +
|
: "") +
|
||||||
(lotOccupancyOccupant.occupantCity
|
(lotOccupancyOccupant.occupantCity
|
||||||
? cityssm.escapeHTML(
|
? cityssm.escapeHTML(lotOccupancyOccupant.occupantCity) + ", "
|
||||||
lotOccupancyOccupant.occupantCity
|
|
||||||
) + ", "
|
|
||||||
: "") +
|
: "") +
|
||||||
cityssm.escapeHTML(
|
cityssm.escapeHTML(lotOccupancyOccupant.occupantProvince) +
|
||||||
lotOccupancyOccupant.occupantProvince
|
|
||||||
) +
|
|
||||||
"<br />" +
|
"<br />" +
|
||||||
cityssm.escapeHTML(
|
cityssm.escapeHTML(lotOccupancyOccupant.occupantPostalCode) +
|
||||||
lotOccupancyOccupant.occupantPostalCode
|
|
||||||
) +
|
|
||||||
"</td>") +
|
"</td>") +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
cityssm.escapeHTML(
|
cityssm.escapeHTML(lotOccupancyOccupant.occupantPhoneNumber) +
|
||||||
lotOccupancyOccupant.occupantPhoneNumber
|
|
||||||
) +
|
|
||||||
"</td>") +
|
"</td>") +
|
||||||
('<td class="is-hidden-print">' +
|
('<td class="is-hidden-print">' +
|
||||||
'<div class="buttons are-small is-justify-content-end">' +
|
'<div class="buttons are-small is-justify-content-end">' +
|
||||||
|
|
@ -841,9 +746,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
occupantsContainer.append(tableElement);
|
occupantsContainer.append(tableElement);
|
||||||
};
|
};
|
||||||
|
|
||||||
document
|
document.querySelector("#button--addOccupant").addEventListener("click", () => {
|
||||||
.querySelector("#button--addOccupant")
|
|
||||||
.addEventListener("click", () => {
|
|
||||||
let addFormElement: HTMLFormElement;
|
let addFormElement: HTMLFormElement;
|
||||||
let addCloseModalFunction: () => void;
|
let addCloseModalFunction: () => void;
|
||||||
|
|
||||||
|
|
@ -859,15 +762,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotOccupancyOccupants?: recordTypes.LotOccupancyOccupant[];
|
lotOccupancyOccupants?: recordTypes.LotOccupancyOccupant[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyOccupants =
|
lotOccupancyOccupants = responseJSON.lotOccupancyOccupants;
|
||||||
responseJSON.lotOccupancyOccupants;
|
|
||||||
addCloseModalFunction();
|
addCloseModalFunction();
|
||||||
renderLotOccupancyOccupants();
|
renderLotOccupancyOccupants();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title:
|
title: "Error Adding " + exports.aliases.occupant,
|
||||||
"Error Adding " +
|
|
||||||
exports.aliases.occupant,
|
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage,
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
|
|
@ -886,18 +786,14 @@ declare const bulmaJS: BulmaJS;
|
||||||
) as HTMLInputElement
|
) as HTMLInputElement
|
||||||
).value = lotOccupancyId;
|
).value = lotOccupancyId;
|
||||||
|
|
||||||
const lotOccupantTypeSelectElement =
|
const lotOccupantTypeSelectElement = modalElement.querySelector(
|
||||||
modalElement.querySelector(
|
|
||||||
"#lotOccupancyOccupantAdd--lotOccupantTypeId"
|
"#lotOccupancyOccupantAdd--lotOccupantTypeId"
|
||||||
) as HTMLSelectElement;
|
) as HTMLSelectElement;
|
||||||
|
|
||||||
for (const lotOccupantType of exports.lotOccupantTypes as recordTypes.LotOccupantType[]) {
|
for (const lotOccupantType of exports.lotOccupantTypes as recordTypes.LotOccupantType[]) {
|
||||||
const optionElement =
|
const optionElement = document.createElement("option");
|
||||||
document.createElement("option");
|
optionElement.value = lotOccupantType.lotOccupantTypeId.toString();
|
||||||
optionElement.value =
|
optionElement.textContent = lotOccupantType.lotOccupantType;
|
||||||
lotOccupantType.lotOccupantTypeId.toString();
|
|
||||||
optionElement.textContent =
|
|
||||||
lotOccupantType.lotOccupantType;
|
|
||||||
lotOccupantTypeSelectElement.append(optionElement);
|
lotOccupantTypeSelectElement.append(optionElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -940,8 +836,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!isCreate) {
|
if (!isCreate) {
|
||||||
let lotOccupancyComments: recordTypes.LotOccupancyComment[] =
|
let lotOccupancyComments: recordTypes.LotOccupancyComment[] = exports.lotOccupancyComments;
|
||||||
exports.lotOccupancyComments;
|
|
||||||
delete exports.lotOccupancyComments;
|
delete exports.lotOccupancyComments;
|
||||||
|
|
||||||
const openEditLotOccupancyComment = (clickEvent: Event) => {
|
const openEditLotOccupancyComment = (clickEvent: Event) => {
|
||||||
|
|
@ -951,14 +846,9 @@ declare const bulmaJS: BulmaJS;
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
const lotOccupancyComment = lotOccupancyComments.find(
|
const lotOccupancyComment = lotOccupancyComments.find((currentLotOccupancyComment) => {
|
||||||
(currentLotOccupancyComment) => {
|
return currentLotOccupancyComment.lotOccupancyCommentId === lotOccupancyCommentId;
|
||||||
return (
|
});
|
||||||
currentLotOccupancyComment.lotOccupancyCommentId ===
|
|
||||||
lotOccupancyCommentId
|
|
||||||
);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
let editFormElement: HTMLFormElement;
|
let editFormElement: HTMLFormElement;
|
||||||
let editCloseModalFunction: () => void;
|
let editCloseModalFunction: () => void;
|
||||||
|
|
@ -975,8 +865,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotOccupancyComments?: recordTypes.LotOccupancyComment[];
|
lotOccupancyComments?: recordTypes.LotOccupancyComment[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyComments =
|
lotOccupancyComments = responseJSON.lotOccupancyComments;
|
||||||
responseJSON.lotOccupancyComments;
|
|
||||||
editCloseModalFunction();
|
editCloseModalFunction();
|
||||||
renderLotOccupancyComments();
|
renderLotOccupancyComments();
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -1024,6 +913,9 @@ declare const bulmaJS: BulmaJS;
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
onshown: (modalElement, closeModalFunction) => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
||||||
|
los.initializeDatePickers(modalElement);
|
||||||
|
los.initializeTimePickers(modalElement);
|
||||||
|
|
||||||
(
|
(
|
||||||
modalElement.querySelector(
|
modalElement.querySelector(
|
||||||
"#lotOccupancyCommentEdit--lotOccupancyComment"
|
"#lotOccupancyCommentEdit--lotOccupancyComment"
|
||||||
|
|
@ -1061,8 +953,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotOccupancyComments: recordTypes.LotOccupancyComment[];
|
lotOccupancyComments: recordTypes.LotOccupancyComment[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyComments =
|
lotOccupancyComments = responseJSON.lotOccupancyComments;
|
||||||
responseJSON.lotOccupancyComments;
|
|
||||||
renderLotOccupancyComments();
|
renderLotOccupancyComments();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
|
|
@ -1100,8 +991,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
}
|
}
|
||||||
|
|
||||||
const tableElement = document.createElement("table");
|
const tableElement = document.createElement("table");
|
||||||
tableElement.className =
|
tableElement.className = "table is-fullwidth is-striped is-hoverable";
|
||||||
"table is-fullwidth is-striped is-hoverable";
|
|
||||||
tableElement.innerHTML =
|
tableElement.innerHTML =
|
||||||
"<thead><tr>" +
|
"<thead><tr>" +
|
||||||
"<th>Commentor</th>" +
|
"<th>Commentor</th>" +
|
||||||
|
|
@ -1118,21 +1008,16 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
tableRowElement.innerHTML =
|
tableRowElement.innerHTML =
|
||||||
"<td>" +
|
"<td>" +
|
||||||
cityssm.escapeHTML(
|
cityssm.escapeHTML(lotOccupancyComment.recordCreate_userName) +
|
||||||
lotOccupancyComment.recordCreate_userName
|
|
||||||
) +
|
|
||||||
"</td>" +
|
"</td>" +
|
||||||
"<td>" +
|
"<td>" +
|
||||||
lotOccupancyComment.lotOccupancyCommentDateString +
|
lotOccupancyComment.lotOccupancyCommentDateString +
|
||||||
(lotOccupancyComment.lotOccupancyCommentTime === 0
|
(lotOccupancyComment.lotOccupancyCommentTime === 0
|
||||||
? ""
|
? ""
|
||||||
: " " +
|
: " " + lotOccupancyComment.lotOccupancyCommentTimeString) +
|
||||||
lotOccupancyComment.lotOccupancyCommentTimeString) +
|
|
||||||
"</td>" +
|
"</td>" +
|
||||||
"<td>" +
|
"<td>" +
|
||||||
cityssm.escapeHTML(
|
cityssm.escapeHTML(lotOccupancyComment.lotOccupancyComment) +
|
||||||
lotOccupancyComment.lotOccupancyComment
|
|
||||||
) +
|
|
||||||
"</td>" +
|
"</td>" +
|
||||||
('<td class="is-hidden-print">' +
|
('<td class="is-hidden-print">' +
|
||||||
'<div class="buttons are-small is-justify-content-end">' +
|
'<div class="buttons are-small is-justify-content-end">' +
|
||||||
|
|
@ -1160,9 +1045,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
containerElement.append(tableElement);
|
containerElement.append(tableElement);
|
||||||
};
|
};
|
||||||
|
|
||||||
document
|
document.querySelector("#button--addComment").addEventListener("click", () => {
|
||||||
.querySelector("#button--addComment")
|
|
||||||
.addEventListener("click", () => {
|
|
||||||
let addFormElement: HTMLFormElement;
|
let addFormElement: HTMLFormElement;
|
||||||
let addCloseModalFunction: () => void;
|
let addCloseModalFunction: () => void;
|
||||||
|
|
||||||
|
|
@ -1178,8 +1061,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotOccupancyComments?: recordTypes.LotOccupancyComment[];
|
lotOccupancyComments?: recordTypes.LotOccupancyComment[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyComments =
|
lotOccupancyComments = responseJSON.lotOccupancyComments;
|
||||||
responseJSON.lotOccupancyComments;
|
|
||||||
addCloseModalFunction();
|
addCloseModalFunction();
|
||||||
renderLotOccupancyComments();
|
renderLotOccupancyComments();
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -1231,8 +1113,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!isCreate) {
|
if (!isCreate) {
|
||||||
let lotOccupancyFees: recordTypes.LotOccupancyFee[] =
|
let lotOccupancyFees: recordTypes.LotOccupancyFee[] = exports.lotOccupancyFees;
|
||||||
exports.lotOccupancyFees;
|
|
||||||
delete exports.lotOccupancyFees;
|
delete exports.lotOccupancyFees;
|
||||||
|
|
||||||
const lotOccupancyFeesContainerElement = document.querySelector(
|
const lotOccupancyFeesContainerElement = document.querySelector(
|
||||||
|
|
@ -1332,10 +1213,10 @@ declare const bulmaJS: BulmaJS;
|
||||||
for (const lotOccupancyFee of lotOccupancyFees) {
|
for (const lotOccupancyFee of lotOccupancyFees) {
|
||||||
const tableRowElement = document.createElement("tr");
|
const tableRowElement = document.createElement("tr");
|
||||||
tableRowElement.className = "container--lotOccupancyFee";
|
tableRowElement.className = "container--lotOccupancyFee";
|
||||||
tableRowElement.dataset.feeId =
|
tableRowElement.dataset.feeId = lotOccupancyFee.feeId.toString();
|
||||||
lotOccupancyFee.feeId.toString();
|
tableRowElement.dataset.includeQuantity = lotOccupancyFee.includeQuantity
|
||||||
tableRowElement.dataset.includeQuantity =
|
? "1"
|
||||||
lotOccupancyFee.includeQuantity ? "1" : "0";
|
: "0";
|
||||||
|
|
||||||
tableRowElement.innerHTML =
|
tableRowElement.innerHTML =
|
||||||
'<td colspan="' +
|
'<td colspan="' +
|
||||||
|
|
@ -1354,9 +1235,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
"</td>" +
|
"</td>" +
|
||||||
"<td>=</td>") +
|
"<td>=</td>") +
|
||||||
'<td class="has-text-right">$' +
|
'<td class="has-text-right">$' +
|
||||||
(
|
(lotOccupancyFee.feeAmount * lotOccupancyFee.quantity).toFixed(2) +
|
||||||
lotOccupancyFee.feeAmount * lotOccupancyFee.quantity
|
|
||||||
).toFixed(2) +
|
|
||||||
"</td>" +
|
"</td>" +
|
||||||
('<td class="is-hidden-print">' +
|
('<td class="is-hidden-print">' +
|
||||||
'<button class="button is-small is-danger is-light" data-tooltip="Delete Fee" type="button">' +
|
'<button class="button is-small is-danger is-light" data-tooltip="Delete Fee" type="button">' +
|
||||||
|
|
@ -1368,14 +1247,10 @@ declare const bulmaJS: BulmaJS;
|
||||||
.querySelector("button")
|
.querySelector("button")
|
||||||
.addEventListener("click", deleteLotOccupancyFee);
|
.addEventListener("click", deleteLotOccupancyFee);
|
||||||
|
|
||||||
lotOccupancyFeesContainerElement
|
lotOccupancyFeesContainerElement.querySelector("tbody").append(tableRowElement);
|
||||||
.querySelector("tbody")
|
|
||||||
.append(tableRowElement);
|
|
||||||
|
|
||||||
feeAmountTotal +=
|
feeAmountTotal += lotOccupancyFee.feeAmount * lotOccupancyFee.quantity;
|
||||||
lotOccupancyFee.feeAmount * lotOccupancyFee.quantity;
|
taxAmountTotal += lotOccupancyFee.taxAmount * lotOccupancyFee.quantity;
|
||||||
taxAmountTotal +=
|
|
||||||
lotOccupancyFee.taxAmount * lotOccupancyFee.quantity;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
(
|
(
|
||||||
|
|
@ -1397,13 +1272,10 @@ declare const bulmaJS: BulmaJS;
|
||||||
renderLotOccupancyTransactions();
|
renderLotOccupancyTransactions();
|
||||||
};
|
};
|
||||||
|
|
||||||
document
|
document.querySelector("#button--addFee").addEventListener("click", () => {
|
||||||
.querySelector("#button--addFee")
|
|
||||||
.addEventListener("click", () => {
|
|
||||||
if (hasUnsavedChanges) {
|
if (hasUnsavedChanges) {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
message:
|
message: "Please save all unsaved changes before adding fees.",
|
||||||
"Please save all unsaved changes before adding fees.",
|
|
||||||
contextualColorName: "warning"
|
contextualColorName: "warning"
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
|
|
@ -1414,10 +1286,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
let feeFilterElement: HTMLInputElement;
|
let feeFilterElement: HTMLInputElement;
|
||||||
let feeFilterResultsElement: HTMLElement;
|
let feeFilterResultsElement: HTMLElement;
|
||||||
|
|
||||||
const doAddFee = (
|
const doAddFee = (feeId: number, quantity: number | string = 1) => {
|
||||||
feeId: number,
|
|
||||||
quantity: number | string = 1
|
|
||||||
) => {
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/lotOccupancies/doAddLotOccupancyFee",
|
urlPrefix + "/lotOccupancies/doAddLotOccupancyFee",
|
||||||
{
|
{
|
||||||
|
|
@ -1431,8 +1300,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotOccupancyFees?: recordTypes.LotOccupancyFee[];
|
lotOccupancyFees?: recordTypes.LotOccupancyFee[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyFees =
|
lotOccupancyFees = responseJSON.lotOccupancyFees;
|
||||||
responseJSON.lotOccupancyFees;
|
|
||||||
renderLotOccupancyFees();
|
renderLotOccupancyFees();
|
||||||
filterFees();
|
filterFees();
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -1492,14 +1360,9 @@ declare const bulmaJS: BulmaJS;
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
const feeCategory = feeCategories.find(
|
const feeCategory = feeCategories.find((currentFeeCategory) => {
|
||||||
(currentFeeCategory) => {
|
return currentFeeCategory.feeCategoryId === feeCategoryId;
|
||||||
return (
|
});
|
||||||
currentFeeCategory.feeCategoryId ===
|
|
||||||
feeCategoryId
|
|
||||||
);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
const fee = feeCategory.fees.find((currentFee) => {
|
const fee = feeCategory.fees.find((currentFee) => {
|
||||||
return currentFee.feeId === feeId;
|
return currentFee.feeId === feeId;
|
||||||
|
|
@ -1513,18 +1376,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
};
|
};
|
||||||
|
|
||||||
const filterFees = () => {
|
const filterFees = () => {
|
||||||
const filterStringPieces = feeFilterElement.value
|
const filterStringPieces = feeFilterElement.value.trim().toLowerCase().split(" ");
|
||||||
.trim()
|
|
||||||
.toLowerCase()
|
|
||||||
.split(" ");
|
|
||||||
|
|
||||||
feeFilterResultsElement.innerHTML = "";
|
feeFilterResultsElement.innerHTML = "";
|
||||||
|
|
||||||
for (const feeCategory of feeCategories) {
|
for (const feeCategory of feeCategories) {
|
||||||
const categoryContainerElement =
|
const categoryContainerElement = document.createElement("div");
|
||||||
document.createElement("div");
|
categoryContainerElement.className = "container--feeCategory";
|
||||||
categoryContainerElement.className =
|
|
||||||
"container--feeCategory";
|
|
||||||
categoryContainerElement.dataset.feeCategoryId =
|
categoryContainerElement.dataset.feeCategoryId =
|
||||||
feeCategory.feeCategoryId.toString();
|
feeCategory.feeCategoryId.toString();
|
||||||
categoryContainerElement.innerHTML =
|
categoryContainerElement.innerHTML =
|
||||||
|
|
@ -1549,11 +1407,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
let includeFee = true;
|
let includeFee = true;
|
||||||
|
|
||||||
for (const filterStringPiece of filterStringPieces) {
|
for (const filterStringPiece of filterStringPieces) {
|
||||||
if (
|
if (!fee.feeName.toLowerCase().includes(filterStringPiece)) {
|
||||||
!fee.feeName
|
|
||||||
.toLowerCase()
|
|
||||||
.includes(filterStringPiece)
|
|
||||||
) {
|
|
||||||
includeFee = false;
|
includeFee = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -1565,12 +1419,9 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
hasFees = true;
|
hasFees = true;
|
||||||
|
|
||||||
const panelBlockElement =
|
const panelBlockElement = document.createElement("a");
|
||||||
document.createElement("a");
|
panelBlockElement.className = "panel-block is-block container--fee";
|
||||||
panelBlockElement.className =
|
panelBlockElement.dataset.feeId = fee.feeId.toString();
|
||||||
"panel-block is-block container--fee";
|
|
||||||
panelBlockElement.dataset.feeId =
|
|
||||||
fee.feeId.toString();
|
|
||||||
panelBlockElement.href = "#";
|
panelBlockElement.href = "#";
|
||||||
|
|
||||||
panelBlockElement.innerHTML =
|
panelBlockElement.innerHTML =
|
||||||
|
|
@ -1578,34 +1429,23 @@ declare const bulmaJS: BulmaJS;
|
||||||
cityssm.escapeHTML(fee.feeName) +
|
cityssm.escapeHTML(fee.feeName) +
|
||||||
"</strong><br />" +
|
"</strong><br />" +
|
||||||
"<small>" +
|
"<small>" +
|
||||||
cityssm
|
cityssm.escapeHTML(fee.feeDescription).replace(/\n/g, "<br />") +
|
||||||
.escapeHTML(fee.feeDescription)
|
|
||||||
.replace(/\n/g, "<br />") +
|
|
||||||
"</small>";
|
"</small>";
|
||||||
|
|
||||||
panelBlockElement.addEventListener(
|
panelBlockElement.addEventListener("click", tryAddFee);
|
||||||
"click",
|
|
||||||
tryAddFee
|
|
||||||
);
|
|
||||||
|
|
||||||
categoryContainerElement
|
categoryContainerElement.querySelector(".panel").append(panelBlockElement);
|
||||||
.querySelector(".panel")
|
|
||||||
.append(panelBlockElement);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hasFees) {
|
if (hasFees) {
|
||||||
feeFilterResultsElement.append(
|
feeFilterResultsElement.append(categoryContainerElement);
|
||||||
categoryContainerElement
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
cityssm.openHtmlModal("lotOccupancy-addFee", {
|
cityssm.openHtmlModal("lotOccupancy-addFee", {
|
||||||
onshow: (modalElement) => {
|
onshow: (modalElement) => {
|
||||||
feeFilterElement = modalElement.querySelector(
|
feeFilterElement = modalElement.querySelector("#feeSelect--feeName");
|
||||||
"#feeSelect--feeName"
|
|
||||||
);
|
|
||||||
feeFilterResultsElement = modalElement.querySelector(
|
feeFilterResultsElement = modalElement.querySelector(
|
||||||
"#resultsContainer--feeSelect"
|
"#resultsContainer--feeSelect"
|
||||||
);
|
);
|
||||||
|
|
@ -1615,16 +1455,11 @@ declare const bulmaJS: BulmaJS;
|
||||||
{
|
{
|
||||||
lotOccupancyId
|
lotOccupancyId
|
||||||
},
|
},
|
||||||
(responseJSON: {
|
(responseJSON: { feeCategories: recordTypes.FeeCategory[] }) => {
|
||||||
feeCategories: recordTypes.FeeCategory[];
|
|
||||||
}) => {
|
|
||||||
feeCategories = responseJSON.feeCategories;
|
feeCategories = responseJSON.feeCategories;
|
||||||
|
|
||||||
feeFilterElement.disabled = false;
|
feeFilterElement.disabled = false;
|
||||||
feeFilterElement.addEventListener(
|
feeFilterElement.addEventListener("keyup", filterFees);
|
||||||
"keyup",
|
|
||||||
filterFees
|
|
||||||
);
|
|
||||||
feeFilterElement.focus();
|
feeFilterElement.focus();
|
||||||
|
|
||||||
filterFees();
|
filterFees();
|
||||||
|
|
@ -1655,8 +1490,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
let transactionGrandTotal = 0;
|
let transactionGrandTotal = 0;
|
||||||
|
|
||||||
for (const lotOccupancyTransaction of lotOccupancyTransactions) {
|
for (const lotOccupancyTransaction of lotOccupancyTransactions) {
|
||||||
transactionGrandTotal +=
|
transactionGrandTotal += lotOccupancyTransaction.transactionAmount;
|
||||||
lotOccupancyTransaction.transactionAmount;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return transactionGrandTotal;
|
return transactionGrandTotal;
|
||||||
|
|
@ -1671,8 +1505,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix +
|
urlPrefix + "/lotOccupancies/doDeleteLotOccupancyTransaction",
|
||||||
"/lotOccupancies/doDeleteLotOccupancyTransaction",
|
|
||||||
{
|
{
|
||||||
lotOccupancyId,
|
lotOccupancyId,
|
||||||
transactionIndex
|
transactionIndex
|
||||||
|
|
@ -1683,8 +1516,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotOccupancyTransactions?: recordTypes.LotOccupancyTransaction[];
|
lotOccupancyTransactions?: recordTypes.LotOccupancyTransaction[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyTransactions =
|
lotOccupancyTransactions = responseJSON.lotOccupancyTransactions;
|
||||||
responseJSON.lotOccupancyTransactions;
|
|
||||||
renderLotOccupancyTransactions();
|
renderLotOccupancyTransactions();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
|
|
@ -1741,12 +1573,10 @@ declare const bulmaJS: BulmaJS;
|
||||||
let transactionGrandTotal = 0;
|
let transactionGrandTotal = 0;
|
||||||
|
|
||||||
for (const lotOccupancyTransaction of lotOccupancyTransactions) {
|
for (const lotOccupancyTransaction of lotOccupancyTransactions) {
|
||||||
transactionGrandTotal +=
|
transactionGrandTotal += lotOccupancyTransaction.transactionAmount;
|
||||||
lotOccupancyTransaction.transactionAmount;
|
|
||||||
|
|
||||||
const tableRowElement = document.createElement("tr");
|
const tableRowElement = document.createElement("tr");
|
||||||
tableRowElement.className =
|
tableRowElement.className = "container--lotOccupancyTransaction";
|
||||||
"container--lotOccupancyTransaction";
|
|
||||||
tableRowElement.dataset.transactionIndex =
|
tableRowElement.dataset.transactionIndex =
|
||||||
lotOccupancyTransaction.transactionIndex.toString();
|
lotOccupancyTransaction.transactionIndex.toString();
|
||||||
|
|
||||||
|
|
@ -1755,14 +1585,10 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotOccupancyTransaction.transactionDateString +
|
lotOccupancyTransaction.transactionDateString +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
cityssm.escapeHTML(
|
cityssm.escapeHTML(lotOccupancyTransaction.externalReceiptNumber) +
|
||||||
lotOccupancyTransaction.externalReceiptNumber
|
|
||||||
) +
|
|
||||||
"<br />" +
|
"<br />" +
|
||||||
"<small>" +
|
"<small>" +
|
||||||
cityssm.escapeHTML(
|
cityssm.escapeHTML(lotOccupancyTransaction.transactionNote) +
|
||||||
lotOccupancyTransaction.transactionNote
|
|
||||||
) +
|
|
||||||
"</small>" +
|
"</small>" +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
('<td class="has-text-right">$' +
|
('<td class="has-text-right">$' +
|
||||||
|
|
@ -1808,17 +1634,14 @@ declare const bulmaJS: BulmaJS;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
document
|
document.querySelector("#button--addTransaction").addEventListener("click", () => {
|
||||||
.querySelector("#button--addTransaction")
|
|
||||||
.addEventListener("click", () => {
|
|
||||||
let addCloseModalFunction: () => void;
|
let addCloseModalFunction: () => void;
|
||||||
|
|
||||||
const doAddTransaction = (submitEvent: SubmitEvent) => {
|
const doAddTransaction = (submitEvent: SubmitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix +
|
urlPrefix + "/lotOccupancies/doAddLotOccupancyTransaction",
|
||||||
"/lotOccupancies/doAddLotOccupancyTransaction",
|
|
||||||
submitEvent.currentTarget,
|
submitEvent.currentTarget,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -1826,8 +1649,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotOccupancyTransactions?: recordTypes.LotOccupancyTransaction[];
|
lotOccupancyTransactions?: recordTypes.LotOccupancyTransaction[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyTransactions =
|
lotOccupancyTransactions = responseJSON.lotOccupancyTransactions;
|
||||||
responseJSON.lotOccupancyTransactions;
|
|
||||||
addCloseModalFunction();
|
addCloseModalFunction();
|
||||||
renderLotOccupancyTransactions();
|
renderLotOccupancyTransactions();
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -1852,17 +1674,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
).value = lotOccupancyId.toString();
|
).value = lotOccupancyId.toString();
|
||||||
|
|
||||||
const feeGrandTotal = getFeeGrandTotal();
|
const feeGrandTotal = getFeeGrandTotal();
|
||||||
const transactionGrandTotal =
|
const transactionGrandTotal = getTransactionGrandTotal();
|
||||||
getTransactionGrandTotal();
|
|
||||||
|
|
||||||
const transactionAmountElement =
|
const transactionAmountElement = modalElement.querySelector(
|
||||||
modalElement.querySelector(
|
|
||||||
"#lotOccupancyTransactionAdd--transactionAmount"
|
"#lotOccupancyTransactionAdd--transactionAmount"
|
||||||
) as HTMLInputElement;
|
) as HTMLInputElement;
|
||||||
|
|
||||||
transactionAmountElement.min = (
|
transactionAmountElement.min = (-1 * transactionGrandTotal).toFixed(2);
|
||||||
-1 * transactionGrandTotal
|
|
||||||
).toFixed(2);
|
|
||||||
transactionAmountElement.max = Math.max(
|
transactionAmountElement.max = Math.max(
|
||||||
feeGrandTotal - transactionGrandTotal,
|
feeGrandTotal - transactionGrandTotal,
|
||||||
0
|
0
|
||||||
|
|
@ -1877,9 +1695,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
addCloseModalFunction = closeModalFunction;
|
addCloseModalFunction = closeModalFunction;
|
||||||
|
|
||||||
modalElement
|
modalElement.querySelector("form").addEventListener("submit", doAddTransaction);
|
||||||
.querySelector("form")
|
|
||||||
.addEventListener("submit", doAddTransaction);
|
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved: () => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
|
||||||
|
|
@ -43,9 +43,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const datePickerBaseOptions = {
|
const datePickerBaseOptions = {
|
||||||
|
type: "date",
|
||||||
dateFormat: "yyyy-MM-dd",
|
dateFormat: "yyyy-MM-dd",
|
||||||
showFooter: false,
|
showFooter: false,
|
||||||
color: "info"
|
color: "info",
|
||||||
|
displayMode: "dialog"
|
||||||
};
|
};
|
||||||
const initializeDatePickers = (containerElement) => {
|
const initializeDatePickers = (containerElement) => {
|
||||||
const dateElements = containerElement.querySelectorAll("input[type='date']");
|
const dateElements = containerElement.querySelectorAll("input[type='date']");
|
||||||
|
|
@ -64,7 +66,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
cal.on("save", () => {
|
cal.on("save", () => {
|
||||||
dateElement.dispatchEvent(new Event("change"));
|
dateElement.dispatchEvent(new Event("change"));
|
||||||
});
|
});
|
||||||
const clearButtonElement = containerElement.querySelector("#" + cal._id + " .datetimepicker-clear-button");
|
const datepickerElement = containerElement.querySelector("#" + cal._id);
|
||||||
|
const datePickerNavButtonElements = datepickerElement.querySelectorAll(".datepicker-nav button.is-text");
|
||||||
|
for (const datePickerNavButtonElement of datePickerNavButtonElements) {
|
||||||
|
datePickerNavButtonElement.classList.add("is-" + datePickerBaseOptions.color);
|
||||||
|
datePickerNavButtonElement.classList.remove("is-text");
|
||||||
|
}
|
||||||
|
const clearButtonElement = datepickerElement.querySelector(".datetimepicker-clear-button");
|
||||||
if (clearButtonElement) {
|
if (clearButtonElement) {
|
||||||
if (dateElement.required) {
|
if (dateElement.required) {
|
||||||
clearButtonElement.remove();
|
clearButtonElement.remove();
|
||||||
|
|
@ -72,7 +80,44 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
clearButtonElement.dataset.tooltip = "Clear";
|
clearButtonElement.dataset.tooltip = "Clear";
|
||||||
clearButtonElement.innerHTML =
|
clearButtonElement.innerHTML =
|
||||||
'<i class="fas fa-times" aria-hidden="true"></i>';
|
'<span class="has-text-weight-bold" aria-hidden="true">×</span>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const timePickerBaseOptions = {
|
||||||
|
type: "time",
|
||||||
|
timeFormat: "hh:mm",
|
||||||
|
color: "info",
|
||||||
|
displayMode: "dialog",
|
||||||
|
validateLabel: "Set Time",
|
||||||
|
minuteSteps: 1
|
||||||
|
};
|
||||||
|
const initializeTimePickers = (containerElement) => {
|
||||||
|
const timeElements = containerElement.querySelectorAll("input[type='time']");
|
||||||
|
for (const timeElement of timeElements) {
|
||||||
|
const timePickerOptions = Object.assign({}, timePickerBaseOptions);
|
||||||
|
if (timeElement.required) {
|
||||||
|
timePickerOptions.showClearButton = false;
|
||||||
|
}
|
||||||
|
const cal = exports.bulmaCalendar.attach(timeElement, timePickerOptions)[0];
|
||||||
|
cal.on("save", () => {
|
||||||
|
timeElement.dispatchEvent(new Event("change"));
|
||||||
|
});
|
||||||
|
const timePickerElement = containerElement.querySelector("#" + cal._id);
|
||||||
|
const timePickerCancelButtonElement = timePickerElement.querySelector(".datetimepicker-footer-cancel");
|
||||||
|
if (timePickerCancelButtonElement) {
|
||||||
|
timePickerCancelButtonElement.remove();
|
||||||
|
}
|
||||||
|
const clearButtonElement = timePickerElement.querySelector(".datetimepicker-clear-button");
|
||||||
|
if (clearButtonElement) {
|
||||||
|
if (timeElement.required) {
|
||||||
|
clearButtonElement.remove();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
clearButtonElement.dataset.tooltip = "Clear";
|
||||||
|
clearButtonElement.innerHTML =
|
||||||
|
'<span class="has-text-weight-bold" aria-hidden="true">×</span>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -122,6 +167,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
highlightMap,
|
highlightMap,
|
||||||
initializeUnlockFieldButtons,
|
initializeUnlockFieldButtons,
|
||||||
initializeDatePickers,
|
initializeDatePickers,
|
||||||
|
initializeTimePickers,
|
||||||
populateAliases,
|
populateAliases,
|
||||||
getRandomColor
|
getRandomColor
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -74,9 +74,11 @@ declare const cityssm: cityssmGlobal;
|
||||||
};
|
};
|
||||||
|
|
||||||
const datePickerBaseOptions: BulmaCalendarOptions = {
|
const datePickerBaseOptions: BulmaCalendarOptions = {
|
||||||
|
type: "date",
|
||||||
dateFormat: "yyyy-MM-dd",
|
dateFormat: "yyyy-MM-dd",
|
||||||
showFooter: false,
|
showFooter: false,
|
||||||
color: "info"
|
color: "info",
|
||||||
|
displayMode: "dialog"
|
||||||
};
|
};
|
||||||
|
|
||||||
const initializeDatePickers = (containerElement: HTMLElement) => {
|
const initializeDatePickers = (containerElement: HTMLElement) => {
|
||||||
|
|
@ -108,9 +110,25 @@ declare const cityssm: cityssmGlobal;
|
||||||
dateElement.dispatchEvent(new Event("change"));
|
dateElement.dispatchEvent(new Event("change"));
|
||||||
});
|
});
|
||||||
|
|
||||||
// style the clear button
|
// Get the datepicker container element
|
||||||
const clearButtonElement = containerElement.querySelector(
|
|
||||||
"#" + cal._id + " .datetimepicker-clear-button"
|
const datepickerElement = containerElement.querySelector("#" + cal._id) as HTMLElement;
|
||||||
|
|
||||||
|
// Override the previous and next month button styles
|
||||||
|
|
||||||
|
const datePickerNavButtonElements = datepickerElement.querySelectorAll(
|
||||||
|
".datepicker-nav button.is-text"
|
||||||
|
);
|
||||||
|
|
||||||
|
for (const datePickerNavButtonElement of datePickerNavButtonElements) {
|
||||||
|
datePickerNavButtonElement.classList.add("is-" + datePickerBaseOptions.color);
|
||||||
|
datePickerNavButtonElement.classList.remove("is-text");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override the clear button style
|
||||||
|
|
||||||
|
const clearButtonElement = datepickerElement.querySelector(
|
||||||
|
".datetimepicker-clear-button"
|
||||||
) as HTMLElement;
|
) as HTMLElement;
|
||||||
|
|
||||||
if (clearButtonElement) {
|
if (clearButtonElement) {
|
||||||
|
|
@ -119,7 +137,66 @@ declare const cityssm: cityssmGlobal;
|
||||||
} else {
|
} else {
|
||||||
clearButtonElement.dataset.tooltip = "Clear";
|
clearButtonElement.dataset.tooltip = "Clear";
|
||||||
clearButtonElement.innerHTML =
|
clearButtonElement.innerHTML =
|
||||||
'<i class="fas fa-times" aria-hidden="true"></i>';
|
'<span class="has-text-weight-bold" aria-hidden="true">×</span>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const timePickerBaseOptions: BulmaCalendarOptions = {
|
||||||
|
type: "time",
|
||||||
|
timeFormat: "hh:mm",
|
||||||
|
color: "info",
|
||||||
|
displayMode: "dialog",
|
||||||
|
validateLabel: "Set Time",
|
||||||
|
minuteSteps: 1
|
||||||
|
};
|
||||||
|
|
||||||
|
const initializeTimePickers = (containerElement: HTMLElement) => {
|
||||||
|
const timeElements = containerElement.querySelectorAll(
|
||||||
|
"input[type='time']"
|
||||||
|
) as NodeListOf<HTMLInputElement>;
|
||||||
|
|
||||||
|
for (const timeElement of timeElements) {
|
||||||
|
const timePickerOptions = Object.assign({}, timePickerBaseOptions);
|
||||||
|
|
||||||
|
if (timeElement.required) {
|
||||||
|
timePickerOptions.showClearButton = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
const cal = exports.bulmaCalendar.attach(timeElement, timePickerOptions)[0];
|
||||||
|
|
||||||
|
// trigger change event on original element
|
||||||
|
cal.on("save", () => {
|
||||||
|
timeElement.dispatchEvent(new Event("change"));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Get the datepicker container element
|
||||||
|
const timePickerElement = containerElement.querySelector("#" + cal._id) as HTMLElement;
|
||||||
|
|
||||||
|
// Remove "cancel" button
|
||||||
|
|
||||||
|
const timePickerCancelButtonElement = timePickerElement.querySelector(
|
||||||
|
".datetimepicker-footer-cancel"
|
||||||
|
);
|
||||||
|
|
||||||
|
if (timePickerCancelButtonElement) {
|
||||||
|
timePickerCancelButtonElement.remove();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override the clear button style
|
||||||
|
|
||||||
|
const clearButtonElement = timePickerElement.querySelector(
|
||||||
|
".datetimepicker-clear-button"
|
||||||
|
) as HTMLElement;
|
||||||
|
|
||||||
|
if (clearButtonElement) {
|
||||||
|
if (timeElement.required) {
|
||||||
|
clearButtonElement.remove();
|
||||||
|
} else {
|
||||||
|
clearButtonElement.dataset.tooltip = "Clear";
|
||||||
|
clearButtonElement.innerHTML =
|
||||||
|
'<span class="has-text-weight-bold" aria-hidden="true">×</span>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -187,6 +264,7 @@ declare const cityssm: cityssmGlobal;
|
||||||
highlightMap,
|
highlightMap,
|
||||||
initializeUnlockFieldButtons,
|
initializeUnlockFieldButtons,
|
||||||
initializeDatePickers,
|
initializeDatePickers,
|
||||||
|
initializeTimePickers,
|
||||||
populateAliases,
|
populateAliases,
|
||||||
getRandomColor
|
getRandomColor
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -812,8 +812,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
},
|
},
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
onshown: (modalElement, closeModalFunction) => {
|
||||||
editCloseModalFunction = closeModalFunction;
|
editCloseModalFunction = closeModalFunction;
|
||||||
los.initializeDatePickers(modalElement);
|
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
los.initializeDatePickers(modalElement);
|
||||||
|
los.initializeTimePickers(modalElement);
|
||||||
modalElement
|
modalElement
|
||||||
.querySelector("form")
|
.querySelector("form")
|
||||||
.addEventListener("submit", doEdit);
|
.addEventListener("submit", doEdit);
|
||||||
|
|
@ -963,6 +964,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
addModalElement = modalElement;
|
addModalElement = modalElement;
|
||||||
addCloseModalFunction = closeModalFunction;
|
addCloseModalFunction = closeModalFunction;
|
||||||
los.initializeDatePickers(modalElement);
|
los.initializeDatePickers(modalElement);
|
||||||
|
los.initializeTimePickers(modalElement);
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
modalElement
|
modalElement
|
||||||
.querySelector("form")
|
.querySelector("form")
|
||||||
|
|
|
||||||
|
|
@ -1196,9 +1196,11 @@ declare const bulmaJS: BulmaJS;
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
onshown: (modalElement, closeModalFunction) => {
|
||||||
editCloseModalFunction = closeModalFunction;
|
editCloseModalFunction = closeModalFunction;
|
||||||
|
|
||||||
los.initializeDatePickers(modalElement);
|
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
||||||
|
los.initializeDatePickers(modalElement);
|
||||||
|
los.initializeTimePickers(modalElement);
|
||||||
|
|
||||||
modalElement
|
modalElement
|
||||||
.querySelector("form")
|
.querySelector("form")
|
||||||
.addEventListener("submit", doEdit);
|
.addEventListener("submit", doEdit);
|
||||||
|
|
@ -1407,6 +1409,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
addCloseModalFunction = closeModalFunction;
|
addCloseModalFunction = closeModalFunction;
|
||||||
|
|
||||||
los.initializeDatePickers(modalElement);
|
los.initializeDatePickers(modalElement);
|
||||||
|
los.initializeTimePickers(modalElement);
|
||||||
|
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,16 +21,22 @@
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label" for="lotCommentEdit--lotCommentDateString">Comment Date</label>
|
<label class="label" for="lotCommentEdit--lotCommentDateString">Comment Date</label>
|
||||||
<div class="control">
|
<div class="control has-icons-left">
|
||||||
<input class="input" id="lotCommentEdit--lotCommentDateString" name="lotCommentDateString" type="date" required />
|
<input class="input" id="lotCommentEdit--lotCommentDateString" name="lotCommentDateString" type="date" required />
|
||||||
|
<span class="icon is-left">
|
||||||
|
<i class="fas fa-calendar" aria-hidden="true"></i>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label" for="lotCommentEdit--lotCommentTimeString">Comment Time</label>
|
<label class="label" for="lotCommentEdit--lotCommentTimeString">Comment Time</label>
|
||||||
<div class="control">
|
<div class="control has-icons-left">
|
||||||
<input class="input" id="lotCommentEdit--lotCommentTimeString" name="lotCommentTimeString" type="time" required />
|
<input class="input" id="lotCommentEdit--lotCommentTimeString" name="lotCommentTimeString" type="time" required />
|
||||||
|
<span class="icon is-left">
|
||||||
|
<i class="fas fa-clock" aria-hidden="true"></i>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -21,16 +21,22 @@
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label" for="lotOccupancyCommentEdit--lotOccupancyCommentDateString">Comment Date</label>
|
<label class="label" for="lotOccupancyCommentEdit--lotOccupancyCommentDateString">Comment Date</label>
|
||||||
<div class="control">
|
<div class="control has-icons-left">
|
||||||
<input class="input" id="lotOccupancyCommentEdit--lotOccupancyCommentDateString" name="lotOccupancyCommentDateString" type="date" required />
|
<input class="input" id="lotOccupancyCommentEdit--lotOccupancyCommentDateString" name="lotOccupancyCommentDateString" type="date" required />
|
||||||
|
<span class="icon is-left">
|
||||||
|
<i class="fas fa-calendar" aria-hidden="true"></i>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label" for="lotOccupancyCommentEdit--lotOccupancyCommentTimeString">Comment Time</label>
|
<label class="label" for="lotOccupancyCommentEdit--lotOccupancyCommentTimeString">Comment Time</label>
|
||||||
<div class="control">
|
<div class="control has-icons-left">
|
||||||
<input class="input" id="lotOccupancyCommentEdit--lotOccupancyCommentTimeString" name="lotOccupancyCommentTimeString" type="time" required />
|
<input class="input" id="lotOccupancyCommentEdit--lotOccupancyCommentTimeString" name="lotOccupancyCommentTimeString" type="time" required />
|
||||||
|
<span class="icon is-left">
|
||||||
|
<i class="fas fa-clock" aria-hidden="true"></i>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -36,8 +36,11 @@
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label" for="milestoneAdd--workOrderMilestoneTimeString">Milestone Time</label>
|
<label class="label" for="milestoneAdd--workOrderMilestoneTimeString">Milestone Time</label>
|
||||||
<div class="control">
|
<div class="control has-icons-left">
|
||||||
<input class="input" id="milestoneAdd--workOrderMilestoneTimeString" name="workOrderMilestoneTimeString" type="time" />
|
<input class="input" id="milestoneAdd--workOrderMilestoneTimeString" name="workOrderMilestoneTimeString" type="time" />
|
||||||
|
<span class="icon is-left">
|
||||||
|
<i class="fas fa-clock" aria-hidden="true"></i>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -37,8 +37,11 @@
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label" for="milestoneEdit--workOrderMilestoneTimeString">Milestone Time</label>
|
<label class="label" for="milestoneEdit--workOrderMilestoneTimeString">Milestone Time</label>
|
||||||
<div class="control">
|
<div class="control has-icons-left">
|
||||||
<input class="input" id="milestoneEdit--workOrderMilestoneTimeString" name="workOrderMilestoneTimeString" type="time" />
|
<input class="input" id="milestoneEdit--workOrderMilestoneTimeString" name="workOrderMilestoneTimeString" type="time" />
|
||||||
|
<span class="icon is-left">
|
||||||
|
<i class="fas fa-clock" aria-hidden="true"></i>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const t=exports.los,e=document.querySelector("main").dataset.urlPrefix,o=document.querySelector("#lot--lotId").value,l=""===o,s=document.querySelector("#form--lot");s.addEventListener("submit",t=>{t.preventDefault(),cityssm.postJSON(e+"/lots/"+(l?"doCreateLot":"doUpdateLot"),s,t=>{t.success?l?window.location.href=e+"/lots/"+t.lotId+"/edit":bulmaJS.alert({message:exports.aliases.lot+" Updated Successfully",contextualColorName:"success"}):bulmaJS.alert({title:"Error Updating "+exports.aliases.lot,message:t.errorMessage,contextualColorName:"danger"})})}),t.initializeUnlockFieldButtons(s),l||document.querySelector("#button--deleteLot").addEventListener("click",t=>{t.preventDefault();bulmaJS.confirm({title:"Delete "+exports.aliases.lot,message:"Are you sure you want to delete this "+exports.aliases.lot.toLowerCase()+"?",contextualColorName:"warning",okButton:{text:"Yes, Delete "+exports.aliases.lot,callbackFunction:()=>{cityssm.postJSON(e+"/lots/doDeleteLot",{lotId:o},t=>{t.success?(cityssm.disableNavBlocker(),window.location.href=e+"/lots/?t="+Date.now()):bulmaJS.alert({title:"Error Deleting "+exports.aliases.lot,message:t.errorMessage,contextualColorName:"danger"})})}}})});let n=exports.lotComments;delete exports.lotComments;const r=l=>{const s=Number.parseInt(l.currentTarget.closest("tr").dataset.lotCommentId,10),r=n.find(t=>t.lotCommentId===s);let a,i;const d=t=>{t.preventDefault(),cityssm.postJSON(e+"/lots/doUpdateLotComment",a,t=>{t.success?(n=t.lotComments,i(),m()):bulmaJS.alert({title:"Error Updating Comment",message:t.errorMessage,contextualColorName:"danger"})})};cityssm.openHtmlModal("lot-editComment",{onshow:e=>{t.populateAliases(e),e.querySelector("#lotCommentEdit--lotId").value=o,e.querySelector("#lotCommentEdit--lotCommentId").value=s.toString(),e.querySelector("#lotCommentEdit--lotComment").value=r.lotComment,e.querySelector("#lotCommentEdit--lotCommentDateString").value=r.lotCommentDateString,e.querySelector("#lotCommentEdit--lotCommentTimeString").value=r.lotCommentTimeString},onshown:(t,e)=>{bulmaJS.toggleHtmlClipped(),t.querySelector("#lotCommentEdit--lotComment").focus(),(a=t.querySelector("form")).addEventListener("submit",d),i=e},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},a=t=>{const l=Number.parseInt(t.currentTarget.closest("tr").dataset.lotCommentId,10);bulmaJS.confirm({title:"Remove Comment?",message:"Are you sure you want to remove this comment?",okButton:{text:"Yes, Remove Comment",callbackFunction:()=>{cityssm.postJSON(e+"/lots/doDeleteLotComment",{lotId:o,lotCommentId:l},t=>{t.success?(n=t.lotComments,m()):bulmaJS.alert({title:"Error Removing Comment",message:t.errorMessage,contextualColorName:"danger"})})}},contextualColorName:"warning"})},m=()=>{const t=document.querySelector("#container--lotComments");if(0===n.length)return void(t.innerHTML='<div class="message is-info"><p class="message-body">There are no comments to display.</p></div>');const e=document.createElement("table");e.className="table is-fullwidth is-striped is-hoverable",e.innerHTML='<thead><tr><th>Commentor</th><th>Comment Date</th><th>Comment</th><th class="is-hidden-print"><span class="is-sr-only">Options</span></th></tr></thead><tbody></tbody>';for(const t of n){const o=document.createElement("tr");o.dataset.lotCommentId=t.lotCommentId.toString(),o.innerHTML="<td>"+cityssm.escapeHTML(t.recordCreate_userName)+"</td><td>"+t.lotCommentDateString+(0===t.lotCommentTime?"":" "+t.lotCommentTimeString)+"</td><td>"+cityssm.escapeHTML(t.lotComment)+'</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>',o.querySelector(".button--edit").addEventListener("click",r),o.querySelector(".button--delete").addEventListener("click",a),e.querySelector("tbody").append(o)}t.innerHTML="",t.append(e)},i=()=>{let l;const s=t=>{t.preventDefault(),cityssm.postJSON(e+"/lots/doAddLotComment",t.currentTarget,t=>{t.success&&(n=t.lotComments,m(),l())})};cityssm.openHtmlModal("lot-addComment",{onshow(e){t.populateAliases(e),e.querySelector("#lotCommentAdd--lotId").value=o,e.querySelector("form").addEventListener("submit",s)},onshown(t,e){bulmaJS.toggleHtmlClipped(),l=e,t.querySelector("#lotCommentAdd--lotComment").focus()},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#lotComments--add").focus()}})};l||(document.querySelector("#lotComments--add").addEventListener("click",i),m())})();
|
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const t=exports.los,e=document.querySelector("main").dataset.urlPrefix,o=document.querySelector("#lot--lotId").value,l=""===o,s=document.querySelector("#form--lot");s.addEventListener("submit",t=>{t.preventDefault(),cityssm.postJSON(e+"/lots/"+(l?"doCreateLot":"doUpdateLot"),s,t=>{t.success?l?window.location.href=e+"/lots/"+t.lotId+"/edit":bulmaJS.alert({message:exports.aliases.lot+" Updated Successfully",contextualColorName:"success"}):bulmaJS.alert({title:"Error Updating "+exports.aliases.lot,message:t.errorMessage,contextualColorName:"danger"})})}),t.initializeUnlockFieldButtons(s),l||document.querySelector("#button--deleteLot").addEventListener("click",t=>{t.preventDefault();bulmaJS.confirm({title:"Delete "+exports.aliases.lot,message:"Are you sure you want to delete this "+exports.aliases.lot.toLowerCase()+"?",contextualColorName:"warning",okButton:{text:"Yes, Delete "+exports.aliases.lot,callbackFunction:()=>{cityssm.postJSON(e+"/lots/doDeleteLot",{lotId:o},t=>{t.success?(cityssm.disableNavBlocker(),window.location.href=e+"/lots/?t="+Date.now()):bulmaJS.alert({title:"Error Deleting "+exports.aliases.lot,message:t.errorMessage,contextualColorName:"danger"})})}}})});let n=exports.lotComments;delete exports.lotComments;const r=l=>{const s=Number.parseInt(l.currentTarget.closest("tr").dataset.lotCommentId,10),r=n.find(t=>t.lotCommentId===s);let a,i;const d=t=>{t.preventDefault(),cityssm.postJSON(e+"/lots/doUpdateLotComment",a,t=>{t.success?(n=t.lotComments,i(),m()):bulmaJS.alert({title:"Error Updating Comment",message:t.errorMessage,contextualColorName:"danger"})})};cityssm.openHtmlModal("lot-editComment",{onshow:e=>{t.populateAliases(e),e.querySelector("#lotCommentEdit--lotId").value=o,e.querySelector("#lotCommentEdit--lotCommentId").value=s.toString(),e.querySelector("#lotCommentEdit--lotComment").value=r.lotComment,e.querySelector("#lotCommentEdit--lotCommentDateString").value=r.lotCommentDateString,e.querySelector("#lotCommentEdit--lotCommentTimeString").value=r.lotCommentTimeString},onshown:(e,o)=>{bulmaJS.toggleHtmlClipped(),t.initializeDatePickers(e),t.initializeTimePickers(e),e.querySelector("#lotCommentEdit--lotComment").focus(),(a=e.querySelector("form")).addEventListener("submit",d),i=o},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},a=t=>{const l=Number.parseInt(t.currentTarget.closest("tr").dataset.lotCommentId,10);bulmaJS.confirm({title:"Remove Comment?",message:"Are you sure you want to remove this comment?",okButton:{text:"Yes, Remove Comment",callbackFunction:()=>{cityssm.postJSON(e+"/lots/doDeleteLotComment",{lotId:o,lotCommentId:l},t=>{t.success?(n=t.lotComments,m()):bulmaJS.alert({title:"Error Removing Comment",message:t.errorMessage,contextualColorName:"danger"})})}},contextualColorName:"warning"})},m=()=>{const t=document.querySelector("#container--lotComments");if(0===n.length)return void(t.innerHTML='<div class="message is-info"><p class="message-body">There are no comments to display.</p></div>');const e=document.createElement("table");e.className="table is-fullwidth is-striped is-hoverable",e.innerHTML='<thead><tr><th>Commentor</th><th>Comment Date</th><th>Comment</th><th class="is-hidden-print"><span class="is-sr-only">Options</span></th></tr></thead><tbody></tbody>';for(const t of n){const o=document.createElement("tr");o.dataset.lotCommentId=t.lotCommentId.toString(),o.innerHTML="<td>"+cityssm.escapeHTML(t.recordCreate_userName)+"</td><td>"+t.lotCommentDateString+(0===t.lotCommentTime?"":" "+t.lotCommentTimeString)+"</td><td>"+cityssm.escapeHTML(t.lotComment)+'</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>',o.querySelector(".button--edit").addEventListener("click",r),o.querySelector(".button--delete").addEventListener("click",a),e.querySelector("tbody").append(o)}t.innerHTML="",t.append(e)},i=()=>{let l;const s=t=>{t.preventDefault(),cityssm.postJSON(e+"/lots/doAddLotComment",t.currentTarget,t=>{t.success&&(n=t.lotComments,m(),l())})};cityssm.openHtmlModal("lot-addComment",{onshow(e){t.populateAliases(e),e.querySelector("#lotCommentAdd--lotId").value=o,e.querySelector("form").addEventListener("submit",s)},onshown(t,e){bulmaJS.toggleHtmlClipped(),l=e,t.querySelector("#lotCommentAdd--lotComment").focus()},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#lotComments--add").focus()}})};l||(document.querySelector("#lotComments--add").addEventListener("click",i),m())})();
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
||||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=e=>{const t=e.currentTarget.closest(".field").querySelector("input, select");if(t.classList.remove("is-readonly"),"INPUT"===t.tagName)t.readOnly=!1,t.disabled=!1;else{const e=t.querySelectorAll("option");for(const t of e)t.disabled=!1}t.focus()},t={dateFormat:"yyyy-MM-dd",showFooter:!1,color:"info"},o=["red","green","orange","blue","pink","yellow","purple"],a=["bright","light","dark"],s={highlightMap:(e,t,o)=>{let a,s=t;for(;!(a=e.querySelector("#"+s))&&s.includes("-");)s=s.slice(0,Math.max(0,s.lastIndexOf("-")));if(a){a.style.fill=null,a.classList.add("highlight","is-"+o);const e=a.querySelectorAll("path");for(const t of e)t.style.fill=null}},initializeUnlockFieldButtons:t=>{const o=t.querySelectorAll(".is-unlock-field-button");for(const t of o)t.addEventListener("click",e)},initializeDatePickers:e=>{const o=e.querySelectorAll("input[type='date']");for(const a of o){const o=Object.assign({},t);a.required&&(o.showClearButton=!1),a.min&&(o.minDate=cityssm.dateStringToDate(a.min)),a.max&&(o.maxDate=cityssm.dateStringToDate(a.max));const s=exports.bulmaCalendar.attach(a,o)[0];s.on("save",()=>{a.dispatchEvent(new Event("change"))});const l=e.querySelector("#"+s._id+" .datetimepicker-clear-button");l&&(a.required?l.remove():(l.dataset.tooltip="Clear",l.innerHTML='<i class="fas fa-times" aria-hidden="true"></i>'))}},populateAliases:e=>{const t=e.querySelectorAll(".alias");for(const e of t)switch(e.dataset.alias){case"Lot":e.textContent=exports.aliases.lot;break;case"lot":e.textContent=exports.aliases.lot.toLowerCase();break;case"Occupancy":e.textContent=exports.aliases.occupancy;break;case"occupancy":e.textContent=exports.aliases.occupancy.toLowerCase();break;case"Occupant":e.textContent=exports.aliases.occupant;break;case"occupant":e.textContent=exports.aliases.occupant.toLowerCase();break;case"ExternalReceiptNumber":e.textContent=exports.aliases.externalReceiptNumber}},getRandomColor:e=>{let t=e;return t.length<2&&(t+="a1"),exports.randomColor({seed:t+t,hue:o[t.codePointAt(t.length-1)%o.length],luminosity:a[t.codePointAt(t.length-2)%a.length]})}};exports.los=s})();
|
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=e=>{const t=e.currentTarget.closest(".field").querySelector("input, select");if(t.classList.remove("is-readonly"),"INPUT"===t.tagName)t.readOnly=!1,t.disabled=!1;else{const e=t.querySelectorAll("option");for(const t of e)t.disabled=!1}t.focus()},t={type:"date",dateFormat:"yyyy-MM-dd",showFooter:!1,color:"info",displayMode:"dialog"},o={type:"time",timeFormat:"hh:mm",color:"info",displayMode:"dialog",validateLabel:"Set Time",minuteSteps:1},a=["red","green","orange","blue","pink","yellow","purple"],s=["bright","light","dark"],l={highlightMap:(e,t,o)=>{let a,s=t;for(;!(a=e.querySelector("#"+s))&&s.includes("-");)s=s.slice(0,Math.max(0,s.lastIndexOf("-")));if(a){a.style.fill=null,a.classList.add("highlight","is-"+o);const e=a.querySelectorAll("path");for(const t of e)t.style.fill=null}},initializeUnlockFieldButtons:t=>{const o=t.querySelectorAll(".is-unlock-field-button");for(const t of o)t.addEventListener("click",e)},initializeDatePickers:e=>{const o=e.querySelectorAll("input[type='date']");for(const a of o){const o=Object.assign({},t);a.required&&(o.showClearButton=!1),a.min&&(o.minDate=cityssm.dateStringToDate(a.min)),a.max&&(o.maxDate=cityssm.dateStringToDate(a.max));const s=exports.bulmaCalendar.attach(a,o)[0];s.on("save",()=>{a.dispatchEvent(new Event("change"))});const l=e.querySelector("#"+s._id),r=l.querySelectorAll(".datepicker-nav button.is-text");for(const e of r)e.classList.add("is-"+t.color),e.classList.remove("is-text");const n=l.querySelector(".datetimepicker-clear-button");n&&(a.required?n.remove():(n.dataset.tooltip="Clear",n.innerHTML='<span class="has-text-weight-bold" aria-hidden="true">×</span>'))}},initializeTimePickers:e=>{const t=e.querySelectorAll("input[type='time']");for(const a of t){const t=Object.assign({},o);a.required&&(t.showClearButton=!1);const s=exports.bulmaCalendar.attach(a,t)[0];s.on("save",()=>{a.dispatchEvent(new Event("change"))});const l=e.querySelector("#"+s._id),r=l.querySelector(".datetimepicker-footer-cancel");r&&r.remove();const n=l.querySelector(".datetimepicker-clear-button");n&&(a.required?n.remove():(n.dataset.tooltip="Clear",n.innerHTML='<span class="has-text-weight-bold" aria-hidden="true">×</span>'))}},populateAliases:e=>{const t=e.querySelectorAll(".alias");for(const e of t)switch(e.dataset.alias){case"Lot":e.textContent=exports.aliases.lot;break;case"lot":e.textContent=exports.aliases.lot.toLowerCase();break;case"Occupancy":e.textContent=exports.aliases.occupancy;break;case"occupancy":e.textContent=exports.aliases.occupancy.toLowerCase();break;case"Occupant":e.textContent=exports.aliases.occupant;break;case"occupant":e.textContent=exports.aliases.occupant.toLowerCase();break;case"ExternalReceiptNumber":e.textContent=exports.aliases.externalReceiptNumber}},getRandomColor:e=>{let t=e;return t.length<2&&(t+="a1"),exports.randomColor({seed:t+t,hue:a[t.codePointAt(t.length-1)%a.length],luminosity:s[t.codePointAt(t.length-2)%s.length]})}};exports.los=l})();
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,6 +1,7 @@
|
||||||
export interface LOS {
|
export interface LOS {
|
||||||
highlightMap: (mapContainerElement: HTMLElement, mapKey: string, contextualClass: "success" | "danger") => void;
|
highlightMap: (mapContainerElement: HTMLElement, mapKey: string, contextualClass: "success" | "danger") => void;
|
||||||
initializeDatePickers: (containerElement: HTMLElement) => void;
|
initializeDatePickers: (containerElement: HTMLElement) => void;
|
||||||
|
initializeTimePickers: (containerElement: HTMLElement) => void;
|
||||||
initializeUnlockFieldButtons: (containerElement: HTMLElement) => void;
|
initializeUnlockFieldButtons: (containerElement: HTMLElement) => void;
|
||||||
populateAliases: (containerElement: HTMLElement) => void;
|
populateAliases: (containerElement: HTMLElement) => void;
|
||||||
getRandomColor: (seedString: string) => string;
|
getRandomColor: (seedString: string) => string;
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ export interface LOS {
|
||||||
contextualClass: "success" | "danger"
|
contextualClass: "success" | "danger"
|
||||||
) => void;
|
) => void;
|
||||||
initializeDatePickers: (containerElement: HTMLElement) => void;
|
initializeDatePickers: (containerElement: HTMLElement) => void;
|
||||||
|
initializeTimePickers: (containerElement: HTMLElement) => void;
|
||||||
initializeUnlockFieldButtons: (containerElement: HTMLElement) => void;
|
initializeUnlockFieldButtons: (containerElement: HTMLElement) => void;
|
||||||
populateAliases: (containerElement: HTMLElement) => void;
|
populateAliases: (containerElement: HTMLElement) => void;
|
||||||
getRandomColor: (seedString: string) => string;
|
getRandomColor: (seedString: string) => string;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue