fix lot occupancy type fields
parent
4f683e7432
commit
bf672408c8
|
|
@ -1,7 +1,8 @@
|
||||||
import { getOccupancyTypeById, getAllOccupancyTypeFields } from '../../helpers/functions.cache.js';
|
import { getOccupancyTypeById, getAllOccupancyTypeFields } from '../../helpers/functions.cache.js';
|
||||||
export async function handler(request, response) {
|
export async function handler(request, response) {
|
||||||
const occupancyTypeFields = await getAllOccupancyTypeFields();
|
const allOccupancyTypeFields = await getAllOccupancyTypeFields();
|
||||||
const result = (await getOccupancyTypeById(Number.parseInt(request.body.occupancyTypeId, 10)));
|
const result = (await getOccupancyTypeById(Number.parseInt(request.body.occupancyTypeId, 10)));
|
||||||
|
const occupancyTypeFields = [...allOccupancyTypeFields];
|
||||||
occupancyTypeFields.push(...(result.occupancyTypeFields ?? []));
|
occupancyTypeFields.push(...(result.occupancyTypeFields ?? []));
|
||||||
response.json({
|
response.json({
|
||||||
occupancyTypeFields
|
occupancyTypeFields
|
||||||
|
|
|
||||||
|
|
@ -9,12 +9,14 @@ export async function handler(
|
||||||
request: Request,
|
request: Request,
|
||||||
response: Response
|
response: Response
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
const occupancyTypeFields = await getAllOccupancyTypeFields()
|
const allOccupancyTypeFields = await getAllOccupancyTypeFields()
|
||||||
|
|
||||||
const result = (await getOccupancyTypeById(
|
const result = (await getOccupancyTypeById(
|
||||||
Number.parseInt(request.body.occupancyTypeId, 10)
|
Number.parseInt(request.body.occupancyTypeId, 10)
|
||||||
))!
|
))!
|
||||||
|
|
||||||
|
const occupancyTypeFields = [...allOccupancyTypeFields]
|
||||||
|
|
||||||
occupancyTypeFields.push(...(result.occupancyTypeFields ?? []))
|
occupancyTypeFields.push(...(result.occupancyTypeFields ?? []))
|
||||||
|
|
||||||
response.json({
|
response.json({
|
||||||
|
|
|
||||||
|
|
@ -186,11 +186,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doGetOccupancyTypeFields', {
|
cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doGetOccupancyTypeFields', {
|
||||||
occupancyTypeId: occupancyTypeIdElement.value
|
occupancyTypeId: occupancyTypeIdElement.value
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
var _a;
|
var _a, _b;
|
||||||
if (responseJSON.occupancyTypeFields.length === 0) {
|
if (responseJSON.occupancyTypeFields.length === 0) {
|
||||||
lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
|
lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
|
||||||
<p class="message-body">There are no additional fields for this ${los.escapedAliases.occupancy} type.</p>
|
<p class="message-body">There are no additional fields for this ${los.escapedAliases.occupancy} type.</p>
|
||||||
</div>`;
|
</div>`;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
lotOccupancyFieldsContainerElement.innerHTML = '';
|
lotOccupancyFieldsContainerElement.innerHTML = '';
|
||||||
|
|
@ -205,7 +205,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
fieldElement.className = 'field';
|
fieldElement.className = 'field';
|
||||||
fieldElement.innerHTML = `<label class="label" for="${fieldId}"></label><div class="control"></div>`;
|
fieldElement.innerHTML = `<label class="label" for="${fieldId}"></label><div class="control"></div>`;
|
||||||
fieldElement.querySelector('label').textContent = occupancyTypeField.occupancyTypeField;
|
fieldElement.querySelector('label').textContent = occupancyTypeField.occupancyTypeField;
|
||||||
if (occupancyTypeField.occupancyTypeFieldValues === '') {
|
if (((_a = occupancyTypeField.occupancyTypeFieldValues) !== null && _a !== void 0 ? _a : '') === '') {
|
||||||
const inputElement = document.createElement('input');
|
const inputElement = document.createElement('input');
|
||||||
inputElement.className = 'input';
|
inputElement.className = 'input';
|
||||||
inputElement.id = fieldId;
|
inputElement.id = fieldId;
|
||||||
|
|
@ -216,7 +216,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
occupancyTypeField.minimumLength;
|
occupancyTypeField.minimumLength;
|
||||||
inputElement.maxLength =
|
inputElement.maxLength =
|
||||||
occupancyTypeField.maximumLength;
|
occupancyTypeField.maximumLength;
|
||||||
if (((_a = occupancyTypeField.pattern) !== null && _a !== void 0 ? _a : '') !== '') {
|
if (((_b = occupancyTypeField.pattern) !== null && _b !== void 0 ? _b : '') !== '') {
|
||||||
inputElement.pattern = occupancyTypeField.pattern;
|
inputElement.pattern = occupancyTypeField.pattern;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
@ -239,6 +239,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
selectElement.append(optionElement);
|
selectElement.append(optionElement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
console.log(fieldElement);
|
||||||
lotOccupancyFieldsContainerElement.append(fieldElement);
|
lotOccupancyFieldsContainerElement.append(fieldElement);
|
||||||
}
|
}
|
||||||
lotOccupancyFieldsContainerElement.insertAdjacentHTML('beforeend', `<input name="occupancyTypeFieldIds" type="hidden" value="${occupancyTypeFieldIds.slice(1)}" />`);
|
lotOccupancyFieldsContainerElement.insertAdjacentHTML('beforeend', `<input name="occupancyTypeFieldIds" type="hidden" value="${occupancyTypeFieldIds.slice(1)}" />`);
|
||||||
|
|
@ -351,10 +352,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
cityssm.openHtmlModal('lotOccupancy-selectLot', {
|
cityssm.openHtmlModal('lotOccupancy-selectLot', {
|
||||||
onshow: (modalElement) => {
|
onshow(modalElement) {
|
||||||
los.populateAliases(modalElement);
|
los.populateAliases(modalElement);
|
||||||
},
|
},
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
onshown(modalElement, closeModalFunction) {
|
||||||
var _a;
|
var _a;
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
lotSelectModalElement = modalElement;
|
lotSelectModalElement = modalElement;
|
||||||
|
|
@ -409,7 +410,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
;
|
;
|
||||||
modalElement.querySelector('#form--lotCreate').addEventListener('submit', createLotAndSelect);
|
modalElement.querySelector('#form--lotCreate').addEventListener('submit', createLotAndSelect);
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved() {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -458,8 +459,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
*/
|
*/
|
||||||
"use strict";
|
"use strict";
|
||||||
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
|
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
|
||||||
|
var _a;
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let lotOccupancyOccupants;
|
let lotOccupancyOccupants = exports.lotOccupancyOccupants;
|
||||||
|
delete exports.lotOccupancyOccupants;
|
||||||
function openEditLotOccupancyOccupant(clickEvent) {
|
function openEditLotOccupancyOccupant(clickEvent) {
|
||||||
const lotOccupantIndex = Number.parseInt(clickEvent.currentTarget.closest('tr').dataset
|
const lotOccupantIndex = Number.parseInt(clickEvent.currentTarget.closest('tr').dataset
|
||||||
.lotOccupantIndex, 10);
|
.lotOccupantIndex, 10);
|
||||||
|
|
@ -650,7 +653,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
: cityssm.escapeHTML(lotOccupancyOccupant.occupantEmailAddress)) +
|
: cityssm.escapeHTML(lotOccupancyOccupant.occupantEmailAddress)) +
|
||||||
'</td>') +
|
'</td>') +
|
||||||
('<td>' +
|
('<td>' +
|
||||||
'<span data-tooltip="' + cityssm.escapeHTML(((_j = lotOccupancyOccupant.occupantCommentTitle) !== null && _j !== void 0 ? _j : '') === '' ? 'Comment' : lotOccupancyOccupant.occupantCommentTitle) + '">' +
|
'<span data-tooltip="' +
|
||||||
|
cityssm.escapeHTML(((_j = lotOccupancyOccupant.occupantCommentTitle) !== null && _j !== void 0 ? _j : '') === ''
|
||||||
|
? 'Comment'
|
||||||
|
: lotOccupancyOccupant.occupantCommentTitle) +
|
||||||
|
'">' +
|
||||||
cityssm.escapeHTML((_k = lotOccupancyOccupant.occupantComment) !== null && _k !== void 0 ? _k : '') +
|
cityssm.escapeHTML((_k = lotOccupancyOccupant.occupantComment) !== null && _k !== void 0 ? _k : '') +
|
||||||
'</span>' +
|
'</span>' +
|
||||||
'</td>') +
|
'</td>') +
|
||||||
|
|
@ -687,162 +694,158 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
lotOccupancyOccupants = exports.lotOccupancyOccupants;
|
|
||||||
delete exports.lotOccupancyOccupants;
|
|
||||||
document
|
|
||||||
.querySelector('#button--addOccupant')
|
|
||||||
.addEventListener('click', () => {
|
|
||||||
let addCloseModalFunction;
|
|
||||||
let addFormElement;
|
|
||||||
let searchFormElement;
|
|
||||||
let searchResultsElement;
|
|
||||||
function addOccupant(formOrObject) {
|
|
||||||
cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doAddLotOccupancyOccupant', formOrObject, (responseJSON) => {
|
|
||||||
var _a;
|
|
||||||
if (responseJSON.success) {
|
|
||||||
lotOccupancyOccupants = responseJSON.lotOccupancyOccupants;
|
|
||||||
addCloseModalFunction();
|
|
||||||
renderLotOccupancyOccupants();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
bulmaJS.alert({
|
|
||||||
title: `Error Adding ${los.escapedAliases.Occupant}`,
|
|
||||||
message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '',
|
|
||||||
contextualColorName: 'danger'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
function addOccupantFromForm(submitEvent) {
|
|
||||||
submitEvent.preventDefault();
|
|
||||||
addOccupant(addFormElement);
|
|
||||||
}
|
|
||||||
let pastOccupantSearchResults = [];
|
|
||||||
function addOccupantFromCopy(clickEvent) {
|
|
||||||
clickEvent.preventDefault();
|
|
||||||
const panelBlockElement = clickEvent.currentTarget;
|
|
||||||
const occupant = pastOccupantSearchResults[Number.parseInt(panelBlockElement.dataset.index, 10)];
|
|
||||||
const lotOccupantTypeId = panelBlockElement
|
|
||||||
.closest('.modal')
|
|
||||||
.querySelector('#lotOccupancyOccupantCopy--lotOccupantTypeId').value;
|
|
||||||
if (lotOccupantTypeId === '') {
|
|
||||||
bulmaJS.alert({
|
|
||||||
title: `No ${los.escapedAliases.Occupant} Type Selected`,
|
|
||||||
message: `Select a type to apply to the newly added ${los.escapedAliases.occupant}.`,
|
|
||||||
contextualColorName: 'warning'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
occupant.lotOccupantTypeId = Number.parseInt(lotOccupantTypeId, 10);
|
|
||||||
occupant.lotOccupancyId = Number.parseInt(lotOccupancyId, 10);
|
|
||||||
addOccupant(occupant);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function searchOccupants(event) {
|
|
||||||
event.preventDefault();
|
|
||||||
if (searchFormElement.querySelector('#lotOccupancyOccupantCopy--searchFilter').value === '') {
|
|
||||||
searchResultsElement.innerHTML =
|
|
||||||
'<div class="message is-info">' +
|
|
||||||
'<p class="message-body">Enter a partial name or address in the search field above.</p>' +
|
|
||||||
'</div>';
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
searchResultsElement.innerHTML =
|
|
||||||
los.getLoadingParagraphHTML('Searching...');
|
|
||||||
cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doSearchPastOccupants', searchFormElement, (responseJSON) => {
|
|
||||||
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
||||||
pastOccupantSearchResults = responseJSON.occupants;
|
|
||||||
const panelElement = document.createElement('div');
|
|
||||||
panelElement.className = 'panel';
|
|
||||||
for (const [index, occupant] of pastOccupantSearchResults.entries()) {
|
|
||||||
const panelBlockElement = document.createElement('a');
|
|
||||||
panelBlockElement.className = 'panel-block is-block';
|
|
||||||
panelBlockElement.dataset.index = index.toString();
|
|
||||||
panelBlockElement.innerHTML =
|
|
||||||
'<strong>' +
|
|
||||||
cityssm.escapeHTML((_a = occupant.occupantName) !== null && _a !== void 0 ? _a : '') +
|
|
||||||
'</strong>' +
|
|
||||||
'<br />' +
|
|
||||||
'<div class="columns">' +
|
|
||||||
('<div class="column">' +
|
|
||||||
cityssm.escapeHTML((_b = occupant.occupantAddress1) !== null && _b !== void 0 ? _b : '') +
|
|
||||||
'<br />' +
|
|
||||||
(((_c = occupant.occupantAddress2) !== null && _c !== void 0 ? _c : '') === ''
|
|
||||||
? ''
|
|
||||||
: cityssm.escapeHTML(occupant.occupantAddress2) +
|
|
||||||
'<br />') +
|
|
||||||
cityssm.escapeHTML((_d = occupant.occupantCity) !== null && _d !== void 0 ? _d : '') +
|
|
||||||
', ' +
|
|
||||||
cityssm.escapeHTML((_e = occupant.occupantProvince) !== null && _e !== void 0 ? _e : '') +
|
|
||||||
'<br />' +
|
|
||||||
cityssm.escapeHTML((_f = occupant.occupantPostalCode) !== null && _f !== void 0 ? _f : '') +
|
|
||||||
'</div>') +
|
|
||||||
('<div class="column">' +
|
|
||||||
(((_g = occupant.occupantPhoneNumber) !== null && _g !== void 0 ? _g : '') === ''
|
|
||||||
? ''
|
|
||||||
: cityssm.escapeHTML(occupant.occupantPhoneNumber) +
|
|
||||||
'<br />') +
|
|
||||||
cityssm.escapeHTML((_h = occupant.occupantEmailAddress) !== null && _h !== void 0 ? _h : '') +
|
|
||||||
'<br />' +
|
|
||||||
'</div>') +
|
|
||||||
'</div>';
|
|
||||||
panelBlockElement.addEventListener('click', addOccupantFromCopy);
|
|
||||||
panelElement.append(panelBlockElement);
|
|
||||||
}
|
|
||||||
searchResultsElement.innerHTML = '';
|
|
||||||
searchResultsElement.append(panelElement);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
cityssm.openHtmlModal('lotOccupancy-addOccupant', {
|
|
||||||
onshow(modalElement) {
|
|
||||||
los.populateAliases(modalElement);
|
|
||||||
modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupancyId').value = lotOccupancyId;
|
|
||||||
const lotOccupantTypeSelectElement = modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupantTypeId');
|
|
||||||
const lotOccupantTypeCopySelectElement = modalElement.querySelector('#lotOccupancyOccupantCopy--lotOccupantTypeId');
|
|
||||||
for (const lotOccupantType of exports.lotOccupantTypes) {
|
|
||||||
const optionElement = document.createElement('option');
|
|
||||||
optionElement.value = lotOccupantType.lotOccupantTypeId.toString();
|
|
||||||
optionElement.textContent = lotOccupantType.lotOccupantType;
|
|
||||||
optionElement.dataset.occupantCommentTitle =
|
|
||||||
lotOccupantType.occupantCommentTitle;
|
|
||||||
lotOccupantTypeSelectElement.append(optionElement);
|
|
||||||
lotOccupantTypeCopySelectElement.append(optionElement.cloneNode(true));
|
|
||||||
}
|
|
||||||
;
|
|
||||||
modalElement.querySelector('#lotOccupancyOccupantAdd--occupantCity').value = exports.occupantCityDefault;
|
|
||||||
modalElement.querySelector('#lotOccupancyOccupantAdd--occupantProvince').value = exports.occupantProvinceDefault;
|
|
||||||
},
|
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
|
||||||
bulmaJS.toggleHtmlClipped();
|
|
||||||
bulmaJS.init(modalElement);
|
|
||||||
const lotOccupantTypeIdElement = modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupantTypeId');
|
|
||||||
lotOccupantTypeIdElement.focus();
|
|
||||||
lotOccupantTypeIdElement.addEventListener('change', () => {
|
|
||||||
var _a;
|
|
||||||
let occupantCommentTitle = (_a = lotOccupantTypeIdElement.selectedOptions[0].dataset
|
|
||||||
.occupantCommentTitle) !== null && _a !== void 0 ? _a : '';
|
|
||||||
if (occupantCommentTitle === '') {
|
|
||||||
occupantCommentTitle = 'Comment';
|
|
||||||
}
|
|
||||||
modalElement.querySelector('#lotOccupancyOccupantAdd--occupantCommentTitle').textContent = occupantCommentTitle;
|
|
||||||
});
|
|
||||||
addFormElement = modalElement.querySelector('#form--lotOccupancyOccupantAdd');
|
|
||||||
addFormElement.addEventListener('submit', addOccupantFromForm);
|
|
||||||
searchResultsElement = modalElement.querySelector('#lotOccupancyOccupantCopy--searchResults');
|
|
||||||
searchFormElement = modalElement.querySelector('#form--lotOccupancyOccupantCopy');
|
|
||||||
searchFormElement.addEventListener('submit', (formEvent) => {
|
|
||||||
formEvent.preventDefault();
|
|
||||||
});
|
|
||||||
modalElement.querySelector('#lotOccupancyOccupantCopy--searchFilter').addEventListener('change', searchOccupants);
|
|
||||||
addCloseModalFunction = closeModalFunction;
|
|
||||||
},
|
|
||||||
onremoved: () => {
|
|
||||||
bulmaJS.toggleHtmlClipped();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
renderLotOccupancyOccupants();
|
renderLotOccupancyOccupants();
|
||||||
}
|
}
|
||||||
|
(_a = document
|
||||||
|
.querySelector('#button--addOccupant')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', () => {
|
||||||
|
let addCloseModalFunction;
|
||||||
|
let addFormElement;
|
||||||
|
let searchFormElement;
|
||||||
|
let searchResultsElement;
|
||||||
|
function addOccupant(formOrObject) {
|
||||||
|
cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doAddLotOccupancyOccupant', formOrObject, (responseJSON) => {
|
||||||
|
var _a;
|
||||||
|
if (responseJSON.success) {
|
||||||
|
lotOccupancyOccupants = responseJSON.lotOccupancyOccupants;
|
||||||
|
addCloseModalFunction();
|
||||||
|
renderLotOccupancyOccupants();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
bulmaJS.alert({
|
||||||
|
title: `Error Adding ${los.escapedAliases.Occupant}`,
|
||||||
|
message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '',
|
||||||
|
contextualColorName: 'danger'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function addOccupantFromForm(submitEvent) {
|
||||||
|
submitEvent.preventDefault();
|
||||||
|
addOccupant(addFormElement);
|
||||||
|
}
|
||||||
|
let pastOccupantSearchResults = [];
|
||||||
|
function addOccupantFromCopy(clickEvent) {
|
||||||
|
clickEvent.preventDefault();
|
||||||
|
const panelBlockElement = clickEvent.currentTarget;
|
||||||
|
const occupant = pastOccupantSearchResults[Number.parseInt(panelBlockElement.dataset.index, 10)];
|
||||||
|
const lotOccupantTypeId = panelBlockElement
|
||||||
|
.closest('.modal')
|
||||||
|
.querySelector('#lotOccupancyOccupantCopy--lotOccupantTypeId').value;
|
||||||
|
if (lotOccupantTypeId === '') {
|
||||||
|
bulmaJS.alert({
|
||||||
|
title: `No ${los.escapedAliases.Occupant} Type Selected`,
|
||||||
|
message: `Select a type to apply to the newly added ${los.escapedAliases.occupant}.`,
|
||||||
|
contextualColorName: 'warning'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
occupant.lotOccupantTypeId = Number.parseInt(lotOccupantTypeId, 10);
|
||||||
|
occupant.lotOccupancyId = Number.parseInt(lotOccupancyId, 10);
|
||||||
|
addOccupant(occupant);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function searchOccupants(event) {
|
||||||
|
event.preventDefault();
|
||||||
|
if (searchFormElement.querySelector('#lotOccupancyOccupantCopy--searchFilter').value === '') {
|
||||||
|
searchResultsElement.innerHTML =
|
||||||
|
'<div class="message is-info">' +
|
||||||
|
'<p class="message-body">Enter a partial name or address in the search field above.</p>' +
|
||||||
|
'</div>';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
searchResultsElement.innerHTML =
|
||||||
|
los.getLoadingParagraphHTML('Searching...');
|
||||||
|
cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doSearchPastOccupants', searchFormElement, (responseJSON) => {
|
||||||
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
||||||
|
pastOccupantSearchResults = responseJSON.occupants;
|
||||||
|
const panelElement = document.createElement('div');
|
||||||
|
panelElement.className = 'panel';
|
||||||
|
for (const [index, occupant] of pastOccupantSearchResults.entries()) {
|
||||||
|
const panelBlockElement = document.createElement('a');
|
||||||
|
panelBlockElement.className = 'panel-block is-block';
|
||||||
|
panelBlockElement.dataset.index = index.toString();
|
||||||
|
panelBlockElement.innerHTML =
|
||||||
|
'<strong>' +
|
||||||
|
cityssm.escapeHTML((_a = occupant.occupantName) !== null && _a !== void 0 ? _a : '') +
|
||||||
|
'</strong>' +
|
||||||
|
'<br />' +
|
||||||
|
'<div class="columns">' +
|
||||||
|
('<div class="column">' +
|
||||||
|
cityssm.escapeHTML((_b = occupant.occupantAddress1) !== null && _b !== void 0 ? _b : '') +
|
||||||
|
'<br />' +
|
||||||
|
(((_c = occupant.occupantAddress2) !== null && _c !== void 0 ? _c : '') === ''
|
||||||
|
? ''
|
||||||
|
: cityssm.escapeHTML(occupant.occupantAddress2) + '<br />') +
|
||||||
|
cityssm.escapeHTML((_d = occupant.occupantCity) !== null && _d !== void 0 ? _d : '') +
|
||||||
|
', ' +
|
||||||
|
cityssm.escapeHTML((_e = occupant.occupantProvince) !== null && _e !== void 0 ? _e : '') +
|
||||||
|
'<br />' +
|
||||||
|
cityssm.escapeHTML((_f = occupant.occupantPostalCode) !== null && _f !== void 0 ? _f : '') +
|
||||||
|
'</div>') +
|
||||||
|
('<div class="column">' +
|
||||||
|
(((_g = occupant.occupantPhoneNumber) !== null && _g !== void 0 ? _g : '') === ''
|
||||||
|
? ''
|
||||||
|
: cityssm.escapeHTML(occupant.occupantPhoneNumber) +
|
||||||
|
'<br />') +
|
||||||
|
cityssm.escapeHTML((_h = occupant.occupantEmailAddress) !== null && _h !== void 0 ? _h : '') +
|
||||||
|
'<br />' +
|
||||||
|
'</div>') +
|
||||||
|
'</div>';
|
||||||
|
panelBlockElement.addEventListener('click', addOccupantFromCopy);
|
||||||
|
panelElement.append(panelBlockElement);
|
||||||
|
}
|
||||||
|
searchResultsElement.innerHTML = '';
|
||||||
|
searchResultsElement.append(panelElement);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
cityssm.openHtmlModal('lotOccupancy-addOccupant', {
|
||||||
|
onshow(modalElement) {
|
||||||
|
los.populateAliases(modalElement);
|
||||||
|
modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupancyId').value = lotOccupancyId;
|
||||||
|
const lotOccupantTypeSelectElement = modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupantTypeId');
|
||||||
|
const lotOccupantTypeCopySelectElement = modalElement.querySelector('#lotOccupancyOccupantCopy--lotOccupantTypeId');
|
||||||
|
for (const lotOccupantType of exports.lotOccupantTypes) {
|
||||||
|
const optionElement = document.createElement('option');
|
||||||
|
optionElement.value = lotOccupantType.lotOccupantTypeId.toString();
|
||||||
|
optionElement.textContent = lotOccupantType.lotOccupantType;
|
||||||
|
optionElement.dataset.occupantCommentTitle =
|
||||||
|
lotOccupantType.occupantCommentTitle;
|
||||||
|
lotOccupantTypeSelectElement.append(optionElement);
|
||||||
|
lotOccupantTypeCopySelectElement.append(optionElement.cloneNode(true));
|
||||||
|
}
|
||||||
|
;
|
||||||
|
modalElement.querySelector('#lotOccupancyOccupantAdd--occupantCity').value = exports.occupantCityDefault;
|
||||||
|
modalElement.querySelector('#lotOccupancyOccupantAdd--occupantProvince').value = exports.occupantProvinceDefault;
|
||||||
|
},
|
||||||
|
onshown: (modalElement, closeModalFunction) => {
|
||||||
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
bulmaJS.init(modalElement);
|
||||||
|
const lotOccupantTypeIdElement = modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupantTypeId');
|
||||||
|
lotOccupantTypeIdElement.focus();
|
||||||
|
lotOccupantTypeIdElement.addEventListener('change', () => {
|
||||||
|
var _a;
|
||||||
|
let occupantCommentTitle = (_a = lotOccupantTypeIdElement.selectedOptions[0].dataset
|
||||||
|
.occupantCommentTitle) !== null && _a !== void 0 ? _a : '';
|
||||||
|
if (occupantCommentTitle === '') {
|
||||||
|
occupantCommentTitle = 'Comment';
|
||||||
|
}
|
||||||
|
modalElement.querySelector('#lotOccupancyOccupantAdd--occupantCommentTitle').textContent = occupantCommentTitle;
|
||||||
|
});
|
||||||
|
addFormElement = modalElement.querySelector('#form--lotOccupancyOccupantAdd');
|
||||||
|
addFormElement.addEventListener('submit', addOccupantFromForm);
|
||||||
|
searchResultsElement = modalElement.querySelector('#lotOccupancyOccupantCopy--searchResults');
|
||||||
|
searchFormElement = modalElement.querySelector('#form--lotOccupancyOccupantCopy');
|
||||||
|
searchFormElement.addEventListener('submit', (formEvent) => {
|
||||||
|
formEvent.preventDefault();
|
||||||
|
});
|
||||||
|
modalElement.querySelector('#lotOccupancyOccupantCopy--searchFilter').addEventListener('change', searchOccupants);
|
||||||
|
addCloseModalFunction = closeModalFunction;
|
||||||
|
},
|
||||||
|
onremoved: () => {
|
||||||
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
if (!isCreate) {
|
if (!isCreate) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
|
||||||
|
|
@ -186,11 +186,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doGetOccupancyTypeFields', {
|
cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doGetOccupancyTypeFields', {
|
||||||
occupancyTypeId: occupancyTypeIdElement.value
|
occupancyTypeId: occupancyTypeIdElement.value
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
var _a;
|
var _a, _b;
|
||||||
if (responseJSON.occupancyTypeFields.length === 0) {
|
if (responseJSON.occupancyTypeFields.length === 0) {
|
||||||
lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
|
lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
|
||||||
<p class="message-body">There are no additional fields for this ${los.escapedAliases.occupancy} type.</p>
|
<p class="message-body">There are no additional fields for this ${los.escapedAliases.occupancy} type.</p>
|
||||||
</div>`;
|
</div>`;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
lotOccupancyFieldsContainerElement.innerHTML = '';
|
lotOccupancyFieldsContainerElement.innerHTML = '';
|
||||||
|
|
@ -205,7 +205,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
fieldElement.className = 'field';
|
fieldElement.className = 'field';
|
||||||
fieldElement.innerHTML = `<label class="label" for="${fieldId}"></label><div class="control"></div>`;
|
fieldElement.innerHTML = `<label class="label" for="${fieldId}"></label><div class="control"></div>`;
|
||||||
fieldElement.querySelector('label').textContent = occupancyTypeField.occupancyTypeField;
|
fieldElement.querySelector('label').textContent = occupancyTypeField.occupancyTypeField;
|
||||||
if (occupancyTypeField.occupancyTypeFieldValues === '') {
|
if (((_a = occupancyTypeField.occupancyTypeFieldValues) !== null && _a !== void 0 ? _a : '') === '') {
|
||||||
const inputElement = document.createElement('input');
|
const inputElement = document.createElement('input');
|
||||||
inputElement.className = 'input';
|
inputElement.className = 'input';
|
||||||
inputElement.id = fieldId;
|
inputElement.id = fieldId;
|
||||||
|
|
@ -216,7 +216,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
occupancyTypeField.minimumLength;
|
occupancyTypeField.minimumLength;
|
||||||
inputElement.maxLength =
|
inputElement.maxLength =
|
||||||
occupancyTypeField.maximumLength;
|
occupancyTypeField.maximumLength;
|
||||||
if (((_a = occupancyTypeField.pattern) !== null && _a !== void 0 ? _a : '') !== '') {
|
if (((_b = occupancyTypeField.pattern) !== null && _b !== void 0 ? _b : '') !== '') {
|
||||||
inputElement.pattern = occupancyTypeField.pattern;
|
inputElement.pattern = occupancyTypeField.pattern;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
@ -239,6 +239,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
selectElement.append(optionElement);
|
selectElement.append(optionElement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
console.log(fieldElement);
|
||||||
lotOccupancyFieldsContainerElement.append(fieldElement);
|
lotOccupancyFieldsContainerElement.append(fieldElement);
|
||||||
}
|
}
|
||||||
lotOccupancyFieldsContainerElement.insertAdjacentHTML('beforeend', `<input name="occupancyTypeFieldIds" type="hidden" value="${occupancyTypeFieldIds.slice(1)}" />`);
|
lotOccupancyFieldsContainerElement.insertAdjacentHTML('beforeend', `<input name="occupancyTypeFieldIds" type="hidden" value="${occupancyTypeFieldIds.slice(1)}" />`);
|
||||||
|
|
@ -351,10 +352,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
cityssm.openHtmlModal('lotOccupancy-selectLot', {
|
cityssm.openHtmlModal('lotOccupancy-selectLot', {
|
||||||
onshow: (modalElement) => {
|
onshow(modalElement) {
|
||||||
los.populateAliases(modalElement);
|
los.populateAliases(modalElement);
|
||||||
},
|
},
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
onshown(modalElement, closeModalFunction) {
|
||||||
var _a;
|
var _a;
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
lotSelectModalElement = modalElement;
|
lotSelectModalElement = modalElement;
|
||||||
|
|
@ -409,7 +410,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
;
|
;
|
||||||
modalElement.querySelector('#form--lotCreate').addEventListener('submit', createLotAndSelect);
|
modalElement.querySelector('#form--lotCreate').addEventListener('submit', createLotAndSelect);
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved() {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -284,8 +284,8 @@ declare const bulmaJS: BulmaJS
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.occupancyTypeFields.length === 0) {
|
if (responseJSON.occupancyTypeFields.length === 0) {
|
||||||
lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
|
lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
|
||||||
<p class="message-body">There are no additional fields for this ${los.escapedAliases.occupancy} type.</p>
|
<p class="message-body">There are no additional fields for this ${los.escapedAliases.occupancy} type.</p>
|
||||||
</div>`
|
</div>`
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -311,7 +311,7 @@ declare const bulmaJS: BulmaJS
|
||||||
fieldElement.querySelector('label') as HTMLLabelElement
|
fieldElement.querySelector('label') as HTMLLabelElement
|
||||||
).textContent = occupancyTypeField.occupancyTypeField as string
|
).textContent = occupancyTypeField.occupancyTypeField as string
|
||||||
|
|
||||||
if (occupancyTypeField.occupancyTypeFieldValues === '') {
|
if ((occupancyTypeField.occupancyTypeFieldValues ?? '') === '') {
|
||||||
const inputElement = document.createElement('input')
|
const inputElement = document.createElement('input')
|
||||||
|
|
||||||
inputElement.className = 'input'
|
inputElement.className = 'input'
|
||||||
|
|
@ -362,6 +362,8 @@ declare const bulmaJS: BulmaJS
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log(fieldElement)
|
||||||
|
|
||||||
lotOccupancyFieldsContainerElement.append(fieldElement)
|
lotOccupancyFieldsContainerElement.append(fieldElement)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -529,10 +531,10 @@ declare const bulmaJS: BulmaJS
|
||||||
}
|
}
|
||||||
|
|
||||||
cityssm.openHtmlModal('lotOccupancy-selectLot', {
|
cityssm.openHtmlModal('lotOccupancy-selectLot', {
|
||||||
onshow: (modalElement) => {
|
onshow(modalElement) {
|
||||||
los.populateAliases(modalElement)
|
los.populateAliases(modalElement)
|
||||||
},
|
},
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
onshown(modalElement, closeModalFunction) {
|
||||||
bulmaJS.toggleHtmlClipped()
|
bulmaJS.toggleHtmlClipped()
|
||||||
|
|
||||||
lotSelectModalElement = modalElement
|
lotSelectModalElement = modalElement
|
||||||
|
|
@ -628,7 +630,7 @@ declare const bulmaJS: BulmaJS
|
||||||
modalElement.querySelector('#form--lotCreate') as HTMLFormElement
|
modalElement.querySelector('#form--lotCreate') as HTMLFormElement
|
||||||
).addEventListener('submit', createLotAndSelect)
|
).addEventListener('submit', createLotAndSelect)
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved() {
|
||||||
bulmaJS.toggleHtmlClipped()
|
bulmaJS.toggleHtmlClipped()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue