lot occupancy updates

- show fee category
- avoid line break if no receipt number
- transfer focus back to add button after closing add modal
deepsource-autofix-76c6eb20
Dan Gowans 2023-01-31 10:06:04 -05:00
parent 420314f5bc
commit f2d481fffc
11 changed files with 103 additions and 57 deletions

View File

@ -145,6 +145,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
}
cityssm.openHtmlModal('lotOccupancy-createWorkOrder', {
onshow(modalElement) {
var _a;
;
modalElement.querySelector('#workOrderCreate--lotOccupancyId').value = lotOccupancyId;
modalElement.querySelector('#workOrderCreate--workOrderOpenDateString').value = cityssm.dateToString(new Date());
@ -156,7 +157,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
for (const workOrderType of workOrderTypes) {
const optionElement = document.createElement('option');
optionElement.value = workOrderType.workOrderTypeId.toString();
optionElement.textContent = workOrderType.workOrderType;
optionElement.textContent = (_a = workOrderType.workOrderType) !== null && _a !== void 0 ? _a : '';
workOrderTypeSelectElement.append(optionElement);
}
},
@ -164,11 +165,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
var _a;
createCloseModalFunction = closeModalFunction;
bulmaJS.toggleHtmlClipped();
modalElement.querySelector('#workOrderCreate--workOrderTypeId').focus();
(_a = modalElement
.querySelector('form')) === null || _a === void 0 ? void 0 : _a.addEventListener('submit', doCreate);
},
onremoved() {
bulmaJS.toggleHtmlClipped();
document.querySelector('#button--createWorkOrder').focus();
}
});
});
@ -817,7 +820,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
modalElement.querySelector('#lotOccupancyOccupantAdd--occupantCity').value = exports.occupantCityDefault;
modalElement.querySelector('#lotOccupancyOccupantAdd--occupantProvince').value = exports.occupantProvinceDefault;
},
onshown: (modalElement, closeModalFunction) => {
onshown(modalElement, closeModalFunction) {
bulmaJS.toggleHtmlClipped();
bulmaJS.init(modalElement);
const lotOccupantTypeIdElement = modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupantTypeId');
@ -841,8 +844,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
modalElement.querySelector('#lotOccupancyOccupantCopy--searchFilter').addEventListener('change', searchOccupants);
addCloseModalFunction = closeModalFunction;
},
onremoved: () => {
onremoved() {
bulmaJS.toggleHtmlClipped();
document.querySelector('#button--addOccupant').focus();
}
});
});
@ -850,6 +854,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
if (!isCreate) {
"use strict";
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
let lotOccupancyComments = exports.lotOccupancyComments;
delete exports.lotOccupancyComments;
@ -881,7 +886,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
});
}
cityssm.openHtmlModal('lotOccupancy-editComment', {
onshow: (modalElement) => {
onshow(modalElement) {
los.populateAliases(modalElement);
modalElement.querySelector('#lotOccupancyCommentEdit--lotOccupancyId').value = lotOccupancyId;
modalElement.querySelector('#lotOccupancyCommentEdit--lotOccupancyCommentId').value = lotOccupancyCommentId.toString();
@ -896,7 +901,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
: lotOccupancyComment.lotOccupancyCommentDateString;
modalElement.querySelector('#lotOccupancyCommentEdit--lotOccupancyCommentTimeString').value = lotOccupancyComment.lotOccupancyCommentTimeString;
},
onshown: (modalElement, closeModalFunction) => {
onshown(modalElement, closeModalFunction) {
bulmaJS.toggleHtmlClipped();
los.initializeDatePickers(modalElement);
modalElement.querySelector('#lotOccupancyCommentEdit--lotOccupancyComment').focus();
@ -904,7 +909,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
editFormElement.addEventListener('submit', editComment);
editCloseModalFunction = closeModalFunction;
},
onremoved: () => {
onremoved() {
bulmaJS.toggleHtmlClipped();
}
});
@ -1000,7 +1005,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
containerElement.innerHTML = '';
containerElement.append(tableElement);
}
document.querySelector('#button--addComment').addEventListener('click', () => {
(_a = document.querySelector('#button--addComment')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', () => {
let addFormElement;
let addCloseModalFunction;
function addComment(submitEvent) {
@ -1022,11 +1027,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
});
}
cityssm.openHtmlModal('lotOccupancy-addComment', {
onshow: (modalElement) => {
onshow(modalElement) {
los.populateAliases(modalElement);
modalElement.querySelector('#lotOccupancyCommentAdd--lotOccupancyId').value = lotOccupancyId;
},
onshown: (modalElement, closeModalFunction) => {
onshown(modalElement, closeModalFunction) {
bulmaJS.toggleHtmlClipped();
modalElement.querySelector('#lotOccupancyCommentAdd--lotOccupancyComment').focus();
addFormElement = modalElement.querySelector('form');
@ -1035,13 +1040,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
},
onremoved: () => {
bulmaJS.toggleHtmlClipped();
document.querySelector('#button--addComment').focus();
}
});
});
renderLotOccupancyComments();
"use strict";
/* eslint-disable unicorn/prefer-module */
/* eslint-disable @typescript-eslint/indent, unicorn/prefer-module */
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
let lotOccupancyFees = exports.lotOccupancyFees;
delete exports.lotOccupancyFees;
@ -1087,7 +1094,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
});
}
function renderLotOccupancyFees() {
var _a, _b;
var _a, _b, _c;
if (lotOccupancyFees.length === 0) {
lotOccupancyFeesContainerElement.innerHTML = `<div class="message is-info">
<p class="message-body">There are no fees associated with this record.</p>
@ -1132,6 +1139,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
(lotOccupancyFee.quantity === 1 ? '5' : '1') +
'">' +
cityssm.escapeHTML((_b = lotOccupancyFee.feeName) !== null && _b !== void 0 ? _b : '') +
'<br />' +
'<span class="tag">' +
cityssm.escapeHTML((_c = lotOccupancyFee.feeCategory) !== null && _c !== void 0 ? _c : '') +
'</span>' +
'</td>' +
(lotOccupancyFee.quantity === 1
? ''
@ -1166,7 +1177,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
lotOccupancyFeesContainerElement.querySelector('#lotOccupancyFees--grandTotal').textContent = '$' + (feeAmountTotal + taxAmountTotal).toFixed(2);
renderLotOccupancyTransactions();
}
document.querySelector('#button--addFee').addEventListener('click', () => {
(_a = document.querySelector('#button--addFee')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', () => {
if (los.hasUnsavedChanges()) {
bulmaJS.alert({
message: 'Please save all unsaved changes before adding fees.',
@ -1401,8 +1412,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
((_a = lotOccupancyTransaction.transactionDateString) !== null && _a !== void 0 ? _a : '') +
'</td>' +
('<td>' +
cityssm.escapeHTML((_b = lotOccupancyTransaction.externalReceiptNumber) !== null && _b !== void 0 ? _b : '') +
'<br />' +
(lotOccupancyTransaction.externalReceiptNumber === ''
? ''
: cityssm.escapeHTML((_b = lotOccupancyTransaction.externalReceiptNumber) !== null && _b !== void 0 ? _b : '') + '<br />') +
'<small>' +
cityssm.escapeHTML((_c = lotOccupancyTransaction.transactionNote) !== null && _c !== void 0 ? _c : '') +
'</small>' +

View File

@ -145,6 +145,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
}
cityssm.openHtmlModal('lotOccupancy-createWorkOrder', {
onshow(modalElement) {
var _a;
;
modalElement.querySelector('#workOrderCreate--lotOccupancyId').value = lotOccupancyId;
modalElement.querySelector('#workOrderCreate--workOrderOpenDateString').value = cityssm.dateToString(new Date());
@ -156,7 +157,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
for (const workOrderType of workOrderTypes) {
const optionElement = document.createElement('option');
optionElement.value = workOrderType.workOrderTypeId.toString();
optionElement.textContent = workOrderType.workOrderType;
optionElement.textContent = (_a = workOrderType.workOrderType) !== null && _a !== void 0 ? _a : '';
workOrderTypeSelectElement.append(optionElement);
}
},
@ -164,11 +165,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
var _a;
createCloseModalFunction = closeModalFunction;
bulmaJS.toggleHtmlClipped();
modalElement.querySelector('#workOrderCreate--workOrderTypeId').focus();
(_a = modalElement
.querySelector('form')) === null || _a === void 0 ? void 0 : _a.addEventListener('submit', doCreate);
},
onremoved() {
bulmaJS.toggleHtmlClipped();
document.querySelector('#button--createWorkOrder').focus();
}
});
});

View File

@ -233,16 +233,19 @@ declare const bulmaJS: BulmaJS
for (const workOrderType of workOrderTypes) {
const optionElement = document.createElement('option')
optionElement.value = (
workOrderType.workOrderTypeId as number
).toString()
optionElement.textContent = workOrderType.workOrderType as string
optionElement.value = workOrderType.workOrderTypeId.toString()
optionElement.textContent = workOrderType.workOrderType ?? ''
workOrderTypeSelectElement.append(optionElement)
}
},
onshown(modalElement, closeModalFunction) {
createCloseModalFunction = closeModalFunction
bulmaJS.toggleHtmlClipped()
;(
modalElement.querySelector(
'#workOrderCreate--workOrderTypeId'
) as HTMLSelectElement
).focus()
modalElement
.querySelector('form')
@ -250,6 +253,11 @@ declare const bulmaJS: BulmaJS
},
onremoved() {
bulmaJS.toggleHtmlClipped()
;(
document.querySelector(
'#button--createWorkOrder'
) as HTMLButtonElement
).focus()
}
})
})

View File

@ -1,5 +1,6 @@
"use strict";
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
let lotOccupancyComments = exports.lotOccupancyComments;
delete exports.lotOccupancyComments;
@ -31,7 +32,7 @@ function openEditLotOccupancyComment(clickEvent) {
});
}
cityssm.openHtmlModal('lotOccupancy-editComment', {
onshow: (modalElement) => {
onshow(modalElement) {
los.populateAliases(modalElement);
modalElement.querySelector('#lotOccupancyCommentEdit--lotOccupancyId').value = lotOccupancyId;
modalElement.querySelector('#lotOccupancyCommentEdit--lotOccupancyCommentId').value = lotOccupancyCommentId.toString();
@ -46,7 +47,7 @@ function openEditLotOccupancyComment(clickEvent) {
: lotOccupancyComment.lotOccupancyCommentDateString;
modalElement.querySelector('#lotOccupancyCommentEdit--lotOccupancyCommentTimeString').value = lotOccupancyComment.lotOccupancyCommentTimeString;
},
onshown: (modalElement, closeModalFunction) => {
onshown(modalElement, closeModalFunction) {
bulmaJS.toggleHtmlClipped();
los.initializeDatePickers(modalElement);
modalElement.querySelector('#lotOccupancyCommentEdit--lotOccupancyComment').focus();
@ -54,7 +55,7 @@ function openEditLotOccupancyComment(clickEvent) {
editFormElement.addEventListener('submit', editComment);
editCloseModalFunction = closeModalFunction;
},
onremoved: () => {
onremoved() {
bulmaJS.toggleHtmlClipped();
}
});
@ -150,7 +151,7 @@ function renderLotOccupancyComments() {
containerElement.innerHTML = '';
containerElement.append(tableElement);
}
document.querySelector('#button--addComment').addEventListener('click', () => {
(_a = document.querySelector('#button--addComment')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', () => {
let addFormElement;
let addCloseModalFunction;
function addComment(submitEvent) {
@ -172,11 +173,11 @@ document.querySelector('#button--addComment').addEventListener('click', () => {
});
}
cityssm.openHtmlModal('lotOccupancy-addComment', {
onshow: (modalElement) => {
onshow(modalElement) {
los.populateAliases(modalElement);
modalElement.querySelector('#lotOccupancyCommentAdd--lotOccupancyId').value = lotOccupancyId;
},
onshown: (modalElement, closeModalFunction) => {
onshown(modalElement, closeModalFunction) {
bulmaJS.toggleHtmlClipped();
modalElement.querySelector('#lotOccupancyCommentAdd--lotOccupancyComment').focus();
addFormElement = modalElement.querySelector('form');
@ -185,6 +186,7 @@ document.querySelector('#button--addComment').addEventListener('click', () => {
},
onremoved: () => {
bulmaJS.toggleHtmlClipped();
document.querySelector('#button--addComment').focus();
}
});
});

View File

@ -64,7 +64,7 @@ function openEditLotOccupancyComment(clickEvent: Event): void {
}
cityssm.openHtmlModal('lotOccupancy-editComment', {
onshow: (modalElement) => {
onshow(modalElement) {
los.populateAliases(modalElement)
;(
modalElement.querySelector(
@ -101,7 +101,7 @@ function openEditLotOccupancyComment(clickEvent: Event): void {
) as HTMLInputElement
).value = lotOccupancyComment.lotOccupancyCommentTimeString!
},
onshown: (modalElement, closeModalFunction) => {
onshown(modalElement, closeModalFunction) {
bulmaJS.toggleHtmlClipped()
los.initializeDatePickers(modalElement)
@ -116,7 +116,7 @@ function openEditLotOccupancyComment(clickEvent: Event): void {
editCloseModalFunction = closeModalFunction
},
onremoved: () => {
onremoved() {
bulmaJS.toggleHtmlClipped()
}
})
@ -235,7 +235,7 @@ function renderLotOccupancyComments(): void {
containerElement.append(tableElement)
}
document.querySelector('#button--addComment')!.addEventListener('click', () => {
document.querySelector('#button--addComment')?.addEventListener('click', () => {
let addFormElement: HTMLFormElement
let addCloseModalFunction: () => void
@ -266,7 +266,7 @@ document.querySelector('#button--addComment')!.addEventListener('click', () => {
}
cityssm.openHtmlModal('lotOccupancy-addComment', {
onshow: (modalElement) => {
onshow(modalElement) {
los.populateAliases(modalElement)
;(
modalElement.querySelector(
@ -274,7 +274,7 @@ document.querySelector('#button--addComment')!.addEventListener('click', () => {
) as HTMLInputElement
).value = lotOccupancyId
},
onshown: (modalElement, closeModalFunction) => {
onshown(modalElement, closeModalFunction) {
bulmaJS.toggleHtmlClipped()
;(
modalElement.querySelector(
@ -289,6 +289,9 @@ document.querySelector('#button--addComment')!.addEventListener('click', () => {
},
onremoved: () => {
bulmaJS.toggleHtmlClipped()
;(
document.querySelector('#button--addComment') as HTMLButtonElement
).focus()
}
})
})

View File

@ -1,5 +1,6 @@
"use strict";
/* eslint-disable unicorn/prefer-module */
/* eslint-disable @typescript-eslint/indent, unicorn/prefer-module */
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
let lotOccupancyFees = exports.lotOccupancyFees;
delete exports.lotOccupancyFees;
@ -45,7 +46,7 @@ function deleteLotOccupancyFee(clickEvent) {
});
}
function renderLotOccupancyFees() {
var _a, _b;
var _a, _b, _c;
if (lotOccupancyFees.length === 0) {
lotOccupancyFeesContainerElement.innerHTML = `<div class="message is-info">
<p class="message-body">There are no fees associated with this record.</p>
@ -90,6 +91,10 @@ function renderLotOccupancyFees() {
(lotOccupancyFee.quantity === 1 ? '5' : '1') +
'">' +
cityssm.escapeHTML((_b = lotOccupancyFee.feeName) !== null && _b !== void 0 ? _b : '') +
'<br />' +
'<span class="tag">' +
cityssm.escapeHTML((_c = lotOccupancyFee.feeCategory) !== null && _c !== void 0 ? _c : '') +
'</span>' +
'</td>' +
(lotOccupancyFee.quantity === 1
? ''
@ -124,7 +129,7 @@ function renderLotOccupancyFees() {
lotOccupancyFeesContainerElement.querySelector('#lotOccupancyFees--grandTotal').textContent = '$' + (feeAmountTotal + taxAmountTotal).toFixed(2);
renderLotOccupancyTransactions();
}
document.querySelector('#button--addFee').addEventListener('click', () => {
(_a = document.querySelector('#button--addFee')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', () => {
if (los.hasUnsavedChanges()) {
bulmaJS.alert({
message: 'Please save all unsaved changes before adding fees.',
@ -359,8 +364,9 @@ function renderLotOccupancyTransactions() {
((_a = lotOccupancyTransaction.transactionDateString) !== null && _a !== void 0 ? _a : '') +
'</td>' +
('<td>' +
cityssm.escapeHTML((_b = lotOccupancyTransaction.externalReceiptNumber) !== null && _b !== void 0 ? _b : '') +
'<br />' +
(lotOccupancyTransaction.externalReceiptNumber === ''
? ''
: cityssm.escapeHTML((_b = lotOccupancyTransaction.externalReceiptNumber) !== null && _b !== void 0 ? _b : '') + '<br />') +
'<small>' +
cityssm.escapeHTML((_c = lotOccupancyTransaction.transactionNote) !== null && _c !== void 0 ? _c : '') +
'</small>' +

View File

@ -1,4 +1,4 @@
/* eslint-disable unicorn/prefer-module */
/* eslint-disable @typescript-eslint/indent, unicorn/prefer-module */
import type * as globalTypes from '../../types/globalTypes'
import type * as recordTypes from '../../types/recordTypes'
@ -128,6 +128,10 @@ function renderLotOccupancyFees(): void {
(lotOccupancyFee.quantity === 1 ? '5' : '1') +
'">' +
cityssm.escapeHTML(lotOccupancyFee.feeName ?? '') +
'<br />' +
'<span class="tag">' +
cityssm.escapeHTML(lotOccupancyFee.feeCategory ?? '') +
'</span>' +
'</td>' +
(lotOccupancyFee.quantity === 1
? ''
@ -179,7 +183,7 @@ function renderLotOccupancyFees(): void {
renderLotOccupancyTransactions()
}
document.querySelector('#button--addFee')!.addEventListener('click', () => {
document.querySelector('#button--addFee')?.addEventListener('click', () => {
if (los.hasUnsavedChanges()) {
bulmaJS.alert({
message: 'Please save all unsaved changes before adding fees.',
@ -504,10 +508,11 @@ function renderLotOccupancyTransactions(): void {
(lotOccupancyTransaction.transactionDateString ?? '') +
'</td>' +
('<td>' +
cityssm.escapeHTML(
lotOccupancyTransaction.externalReceiptNumber ?? ''
) +
'<br />' +
(lotOccupancyTransaction.externalReceiptNumber === ''
? ''
: cityssm.escapeHTML(
lotOccupancyTransaction.externalReceiptNumber ?? ''
) + '<br />') +
'<small>' +
cityssm.escapeHTML(lotOccupancyTransaction.transactionNote ?? '') +
'</small>' +

View File

@ -358,7 +358,7 @@ else {
modalElement.querySelector('#lotOccupancyOccupantAdd--occupantCity').value = exports.occupantCityDefault;
modalElement.querySelector('#lotOccupancyOccupantAdd--occupantProvince').value = exports.occupantProvinceDefault;
},
onshown: (modalElement, closeModalFunction) => {
onshown(modalElement, closeModalFunction) {
bulmaJS.toggleHtmlClipped();
bulmaJS.init(modalElement);
const lotOccupantTypeIdElement = modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupantTypeId');
@ -382,8 +382,9 @@ else {
modalElement.querySelector('#lotOccupancyOccupantCopy--searchFilter').addEventListener('change', searchOccupants);
addCloseModalFunction = closeModalFunction;
},
onremoved: () => {
onremoved() {
bulmaJS.toggleHtmlClipped();
document.querySelector('#button--addOccupant').focus();
}
});
});

View File

@ -561,7 +561,7 @@ document
) as HTMLInputElement
).value = exports.occupantProvinceDefault
},
onshown: (modalElement, closeModalFunction) => {
onshown(modalElement, closeModalFunction) {
bulmaJS.toggleHtmlClipped()
bulmaJS.init(modalElement)
@ -608,8 +608,11 @@ document
addCloseModalFunction = closeModalFunction
},
onremoved: () => {
onremoved() {
bulmaJS.toggleHtmlClipped()
;(
document.querySelector('#button--addOccupant') as HTMLButtonElement
).focus()
}
})
})

File diff suppressed because one or more lines are too long

View File

@ -318,14 +318,14 @@
%>
<table class="table is-fullwidth is-striped is-hoverable">
<thead>
<tr>
<th>Fee</th>
<th class="has-text-right"><span class="is-sr-only">Unit Cost</span></th>
<th class="has-width-1"><span class="is-sr-only">&times;</span></th>
<th class="has-width-1 has-text-right"><span class="is-sr-only">Quantity</span></th>
<th class="has-width-1"><span class="is-sr-only">=</span></th>
<th class="has-width-1 has-text-right">Total</th>
</tr>
<tr>
<th>Fee</th>
<th class="has-text-right"><span class="is-sr-only">Unit Cost</span></th>
<th class="has-width-1"><span class="is-sr-only">&times;</span></th>
<th class="has-width-1 has-text-right"><span class="is-sr-only">Quantity</span></th>
<th class="has-width-1"><span class="is-sr-only">=</span></th>
<th class="has-width-1 has-text-right">Total</th>
</tr>
</thead>
<tbody>
<% for (const lotOccupancyFee of lotOccupancy.lotOccupancyFees) { %>
@ -335,7 +335,8 @@
%>
<tr>
<td colspan="<%= (lotOccupancyFee.quantity === 1 ? "5" : "1") %>">
<%= lotOccupancyFee.feeName %>
<%= lotOccupancyFee.feeName %><br />
<span class="tag"><%= lotOccupancyFee.feeCategory %></span>
</td>
<% if (lotOccupancyFee.quantity !== 1) { %>
<td class="has-text-right">$<%= lotOccupancyFee.feeAmount.toFixed(2) %></td>
@ -392,8 +393,10 @@
<tr>
<td><%= lotOccupancyTransaction.transactionDateString %></td>
<td>
<% if (lotOccupancyTransaction.externalReceiptNumber !== '') { %>
<%= lotOccupancyTransaction.externalReceiptNumber %><br />
<small><%= lotOccupancyTransaction.transactionNote %></small>
<% } %>
<small><%= lotOccupancyTransaction.transactionNote %></small>
</td>
<td class="has-text-right">
$<%= lotOccupancyTransaction.transactionAmount.toFixed(2) %>