diff --git a/handlers/admin-get/ntfyStartup.d.ts b/handlers/admin-get/ntfyStartup.d.ts index 9621c611..7151ed90 100644 --- a/handlers/admin-get/ntfyStartup.d.ts +++ b/handlers/admin-get/ntfyStartup.d.ts @@ -1,3 +1,3 @@ -import type { RequestHandler } from "express"; +import type { RequestHandler } from 'express'; export declare const handler: RequestHandler; export default handler; diff --git a/handlers/admin-get/ntfyStartup.js b/handlers/admin-get/ntfyStartup.js index caa13354..c829fcc1 100644 --- a/handlers/admin-get/ntfyStartup.js +++ b/handlers/admin-get/ntfyStartup.js @@ -1,11 +1,12 @@ -import * as configFunctions from "../../helpers/functions.config.js"; +import * as configFunctions from '../../helpers/functions.config.js'; export const handler = (_request, response) => { - if (!configFunctions.getProperty("application.ntfyStartup")) { - return response.redirect(configFunctions.getProperty("reverseProxy.urlPrefix") + - "/dashboard/?error=ntfyNotConfigured"); + if (!configFunctions.getProperty('application.ntfyStartup')) { + response.redirect(configFunctions.getProperty('reverseProxy.urlPrefix') + + '/dashboard/?error=ntfyNotConfigured'); + return; } - response.render("admin-ntfyStartup", { - headTitle: "Ntfy Startup Notification" + response.render('admin-ntfyStartup', { + headTitle: 'Ntfy Startup Notification' }); }; export default handler; diff --git a/handlers/admin-get/ntfyStartup.ts b/handlers/admin-get/ntfyStartup.ts index 77a5363e..ccce4d55 100644 --- a/handlers/admin-get/ntfyStartup.ts +++ b/handlers/admin-get/ntfyStartup.ts @@ -1,19 +1,19 @@ -import type { RequestHandler } from "express"; +import type { RequestHandler } from 'express' -import * as configFunctions from "../../helpers/functions.config.js"; +import * as configFunctions from '../../helpers/functions.config.js' export const handler: RequestHandler = (_request, response) => { + if (!configFunctions.getProperty('application.ntfyStartup')) { + response.redirect( + configFunctions.getProperty('reverseProxy.urlPrefix') + + '/dashboard/?error=ntfyNotConfigured' + ) + return + } - if (!configFunctions.getProperty("application.ntfyStartup")) { - return response.redirect( - configFunctions.getProperty("reverseProxy.urlPrefix") + - "/dashboard/?error=ntfyNotConfigured" - ); - } + response.render('admin-ntfyStartup', { + headTitle: 'Ntfy Startup Notification' + }) +} - response.render("admin-ntfyStartup", { - headTitle: "Ntfy Startup Notification" - }); -}; - -export default handler; +export default handler diff --git a/helpers/lotOccupancyDB/getPastLotOccupancyOccupants.d.ts b/helpers/lotOccupancyDB/getPastLotOccupancyOccupants.d.ts index 1810f838..3d3f2a99 100644 --- a/helpers/lotOccupancyDB/getPastLotOccupancyOccupants.d.ts +++ b/helpers/lotOccupancyDB/getPastLotOccupancyOccupants.d.ts @@ -1,4 +1,4 @@ -import type * as recordTypes from "../../types/recordTypes"; +import type * as recordTypes from '../../types/recordTypes'; interface GetPastLotOccupancyOccupantsFilters { searchFilter: string; } diff --git a/helpers/lotOccupancyDB/getPastLotOccupancyOccupants.js b/helpers/lotOccupancyDB/getPastLotOccupancyOccupants.js index 12c1831b..30eb897d 100644 --- a/helpers/lotOccupancyDB/getPastLotOccupancyOccupants.js +++ b/helpers/lotOccupancyDB/getPastLotOccupancyOccupants.js @@ -1,13 +1,13 @@ -import sqlite from "better-sqlite3"; -import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js"; +import sqlite from 'better-sqlite3'; +import { lotOccupancyDB as databasePath } from '../../data/databasePaths.js'; export function getPastLotOccupancyOccupants(filters, options) { const database = sqlite(databasePath, { readonly: true }); - let sqlWhereClause = " where o.recordDelete_timeMillis is null and l.recordDelete_timeMillis is null"; + let sqlWhereClause = ' where o.recordDelete_timeMillis is null and l.recordDelete_timeMillis is null'; const sqlParameters = []; if (filters.searchFilter) { - const searchFilterPieces = filters.searchFilter.split(" "); + const searchFilterPieces = filters.searchFilter.split(' '); for (const searchFilterPiece of searchFilterPieces) { sqlWhereClause += " and (o.occupantName like '%' || ? || '%'" + @@ -17,19 +17,19 @@ export function getPastLotOccupancyOccupants(filters, options) { sqlParameters.push(searchFilterPiece, searchFilterPiece, searchFilterPiece, searchFilterPiece); } } - const sql = "select" + - " o.occupantName, o.occupantAddress1, o.occupantAddress2," + - " o.occupantCity, o.occupantProvince, o.occupantPostalCode," + - " o.occupantPhoneNumber, o.occupantEmailAddress," + - " count(*) as lotOccupancyIdCount," + - " max(o.recordUpdate_timeMillis) as recordUpdate_timeMillisMax" + - " from LotOccupancyOccupants o" + - " left join LotOccupancies l on o.lotOccupancyId = l.lotOccupancyId" + + const sql = 'select' + + ' o.occupantName, o.occupantAddress1, o.occupantAddress2,' + + ' o.occupantCity, o.occupantProvince, o.occupantPostalCode,' + + ' o.occupantPhoneNumber, o.occupantEmailAddress,' + + ' count(*) as lotOccupancyIdCount,' + + ' max(o.recordUpdate_timeMillis) as recordUpdate_timeMillisMax' + + ' from LotOccupancyOccupants o' + + ' left join LotOccupancies l on o.lotOccupancyId = l.lotOccupancyId' + sqlWhereClause + - " group by occupantName, occupantAddress1, occupantAddress2, occupantCity, occupantProvince, occupantPostalCode," + - " occupantPhoneNumber, occupantEmailAddress" + - " order by lotOccupancyIdCount desc, recordUpdate_timeMillisMax desc" + - " limit " + + ' group by occupantName, occupantAddress1, occupantAddress2, occupantCity, occupantProvince, occupantPostalCode,' + + ' occupantPhoneNumber, occupantEmailAddress' + + ' order by lotOccupancyIdCount desc, recordUpdate_timeMillisMax desc' + + ' limit ' + options.limit; const lotOccupancyOccupants = database .prepare(sql) diff --git a/helpers/lotOccupancyDB/getPastLotOccupancyOccupants.ts b/helpers/lotOccupancyDB/getPastLotOccupancyOccupants.ts index 1cca988f..5ec18eee 100644 --- a/helpers/lotOccupancyDB/getPastLotOccupancyOccupants.ts +++ b/helpers/lotOccupancyDB/getPastLotOccupancyOccupants.ts @@ -1,72 +1,72 @@ -import sqlite from "better-sqlite3"; +import sqlite from 'better-sqlite3' -import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js"; +import { lotOccupancyDB as databasePath } from '../../data/databasePaths.js' -import type * as recordTypes from "../../types/recordTypes"; +import type * as recordTypes from '../../types/recordTypes' interface GetPastLotOccupancyOccupantsFilters { - searchFilter: string; + searchFilter: string } interface GetPastLotOccupancyOccupantsOptions { - limit: number; + limit: number } export function getPastLotOccupancyOccupants( - filters: GetPastLotOccupancyOccupantsFilters, - options: GetPastLotOccupancyOccupantsOptions + filters: GetPastLotOccupancyOccupantsFilters, + options: GetPastLotOccupancyOccupantsOptions ): recordTypes.LotOccupancyOccupant[] { - const database = sqlite(databasePath, { - readonly: true - }); + const database = sqlite(databasePath, { + readonly: true + }) - let sqlWhereClause = - " where o.recordDelete_timeMillis is null and l.recordDelete_timeMillis is null"; + let sqlWhereClause = + ' where o.recordDelete_timeMillis is null and l.recordDelete_timeMillis is null' - const sqlParameters: unknown[] = []; + const sqlParameters: unknown[] = [] - if (filters.searchFilter) { - const searchFilterPieces = filters.searchFilter.split(" "); + if (filters.searchFilter) { + const searchFilterPieces = filters.searchFilter.split(' ') - for (const searchFilterPiece of searchFilterPieces) { - sqlWhereClause += - " and (o.occupantName like '%' || ? || '%'" + - " or o.occupantAddress1 like '%' || ? || '%'" + - " or o.occupantAddress2 like '%' || ? || '%'" + - " or o.occupantCity like '%' || ? || '%')"; + for (const searchFilterPiece of searchFilterPieces) { + sqlWhereClause += + " and (o.occupantName like '%' || ? || '%'" + + " or o.occupantAddress1 like '%' || ? || '%'" + + " or o.occupantAddress2 like '%' || ? || '%'" + + " or o.occupantCity like '%' || ? || '%')" - sqlParameters.push( - searchFilterPiece, - searchFilterPiece, - searchFilterPiece, - searchFilterPiece - ); - } + sqlParameters.push( + searchFilterPiece, + searchFilterPiece, + searchFilterPiece, + searchFilterPiece + ) } + } - const sql = - "select" + - " o.occupantName, o.occupantAddress1, o.occupantAddress2," + - " o.occupantCity, o.occupantProvince, o.occupantPostalCode," + - " o.occupantPhoneNumber, o.occupantEmailAddress," + - " count(*) as lotOccupancyIdCount," + - " max(o.recordUpdate_timeMillis) as recordUpdate_timeMillisMax" + - " from LotOccupancyOccupants o" + - " left join LotOccupancies l on o.lotOccupancyId = l.lotOccupancyId" + - sqlWhereClause + - " group by occupantName, occupantAddress1, occupantAddress2, occupantCity, occupantProvince, occupantPostalCode," + - " occupantPhoneNumber, occupantEmailAddress" + - " order by lotOccupancyIdCount desc, recordUpdate_timeMillisMax desc" + - " limit " + - options.limit; + const sql = + 'select' + + ' o.occupantName, o.occupantAddress1, o.occupantAddress2,' + + ' o.occupantCity, o.occupantProvince, o.occupantPostalCode,' + + ' o.occupantPhoneNumber, o.occupantEmailAddress,' + + ' count(*) as lotOccupancyIdCount,' + + ' max(o.recordUpdate_timeMillis) as recordUpdate_timeMillisMax' + + ' from LotOccupancyOccupants o' + + ' left join LotOccupancies l on o.lotOccupancyId = l.lotOccupancyId' + + sqlWhereClause + + ' group by occupantName, occupantAddress1, occupantAddress2, occupantCity, occupantProvince, occupantPostalCode,' + + ' occupantPhoneNumber, occupantEmailAddress' + + ' order by lotOccupancyIdCount desc, recordUpdate_timeMillisMax desc' + + ' limit ' + + options.limit - const lotOccupancyOccupants: recordTypes.LotOccupancyOccupant[] = database - .prepare(sql) - .all(sqlParameters); + const lotOccupancyOccupants: recordTypes.LotOccupancyOccupant[] = database + .prepare(sql) + .all(sqlParameters) - database.close(); + database.close() - return lotOccupancyOccupants; + return lotOccupancyOccupants } -export default getPastLotOccupancyOccupants; +export default getPastLotOccupancyOccupants diff --git a/package-lock.json b/package-lock.json index 40ff478f..8da8e8d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -78,8 +78,8 @@ "cypress": "^12.3.0", "cypress-axe": "^1.2.0", "eslint": "^8.31.0", - "eslint-config-standard-with-typescript": "^26.0.0", - "eslint-plugin-import": "^2.26.0", + "eslint-config-standard-with-typescript": "^27.0.1", + "eslint-plugin-import": "^2.27.4", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-unicorn": "^45.0.2", @@ -1888,15 +1888,15 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "node_modules/array-includes": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "get-intrinsic": "^1.1.1", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "is-string": "^1.0.7" }, "engines": { @@ -1991,14 +1991,32 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -4058,9 +4076,9 @@ } }, "node_modules/eslint-config-standard-with-typescript": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-26.0.0.tgz", - "integrity": "sha512-TluIWunQo76qp4MHyYIaTT+sN2q2v/jTeE3Dj4rXsSbx27GOUEOujhJaAL3v9dHVQelAK13gZ5Jy9IWnWCyFrg==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-27.0.1.tgz", + "integrity": "sha512-jJVyJldqqiCu3uSA/FP0x9jCDMG+Bbl73twTSnp0aysumJrz4iaVqLl+tGgmPrv0R829GVs117Nmn47M1DDDXA==", "dev": true, "dependencies": { "@typescript-eslint/parser": "^5.0.0", @@ -4076,13 +4094,14 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", "dev": true, "dependencies": { "debug": "^3.2.7", - "resolve": "^1.20.0" + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -4095,16 +4114,20 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "dev": true, "dependencies": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "debug": "^3.2.7" }, "engines": { "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/eslint-module-utils/node_modules/debug": { @@ -4160,23 +4183,25 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "version": "2.27.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.4.tgz", + "integrity": "sha512-Z1jVt1EGKia1X9CnBCkpAOhWy8FgQ7OmJ/IblEkT82yrFU/xJaxwujaTzLWqigewwynRQ9mmHfX9MtAfhxm0sA==", "dev": true, "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.0", + "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", "has": "^1.0.3", - "is-core-module": "^2.8.1", + "is-core-module": "^2.11.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", "tsconfig-paths": "^3.14.1" }, "engines": { @@ -4187,12 +4212,12 @@ } }, "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { @@ -4207,11 +4232,14 @@ "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } }, "node_modules/eslint-plugin-n": { "version": "15.6.1", @@ -5306,18 +5334,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/findup-sync": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", @@ -8077,19 +8093,6 @@ "node": ">=0.10.0" } }, - "node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -9166,14 +9169,14 @@ } }, "node_modules/object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" @@ -9293,30 +9296,6 @@ "node": ">=8" } }, - "node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/p-map": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", @@ -9332,15 +9311,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/papaparse": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.2.tgz", @@ -9431,15 +9401,6 @@ "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", "dev": true }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -14162,15 +14123,15 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "array-includes": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "get-intrinsic": "^1.1.1", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "is-string": "^1.0.7" } }, @@ -14239,14 +14200,26 @@ "dev": true }, "array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", "es-shim-unscopables": "^1.0.0" } }, @@ -15906,9 +15879,9 @@ "requires": {} }, "eslint-config-standard-with-typescript": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-26.0.0.tgz", - "integrity": "sha512-TluIWunQo76qp4MHyYIaTT+sN2q2v/jTeE3Dj4rXsSbx27GOUEOujhJaAL3v9dHVQelAK13gZ5Jy9IWnWCyFrg==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-27.0.1.tgz", + "integrity": "sha512-jJVyJldqqiCu3uSA/FP0x9jCDMG+Bbl73twTSnp0aysumJrz4iaVqLl+tGgmPrv0R829GVs117Nmn47M1DDDXA==", "dev": true, "requires": { "@typescript-eslint/parser": "^5.0.0", @@ -15916,13 +15889,14 @@ } }, "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", "dev": true, "requires": { "debug": "^3.2.7", - "resolve": "^1.20.0" + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" }, "dependencies": { "debug": { @@ -15937,13 +15911,12 @@ } }, "eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "dev": true, "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "debug": "^3.2.7" }, "dependencies": { "debug": { @@ -15985,33 +15958,35 @@ } }, "eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "version": "2.27.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.4.tgz", + "integrity": "sha512-Z1jVt1EGKia1X9CnBCkpAOhWy8FgQ7OmJ/IblEkT82yrFU/xJaxwujaTzLWqigewwynRQ9mmHfX9MtAfhxm0sA==", "dev": true, "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.0", + "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", "has": "^1.0.3", - "is-core-module": "^2.8.1", + "is-core-module": "^2.11.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", "tsconfig-paths": "^3.14.1" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "doctrine": { @@ -16023,10 +15998,10 @@ "esutils": "^2.0.2" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -16786,15 +16761,6 @@ } } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, "findup-sync": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", @@ -18907,16 +18873,6 @@ } } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -19742,14 +19698,14 @@ } }, "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "on-finished": { @@ -19836,24 +19792,6 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, "p-map": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", @@ -19863,12 +19801,6 @@ "aggregate-error": "^3.0.0" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true - }, "papaparse": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.2.tgz", @@ -19935,12 +19867,6 @@ "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", "dev": true }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true - }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", diff --git a/package.json b/package.json index 49d54357..fe843621 100644 --- a/package.json +++ b/package.json @@ -102,8 +102,8 @@ "cypress": "^12.3.0", "cypress-axe": "^1.2.0", "eslint": "^8.31.0", - "eslint-config-standard-with-typescript": "^26.0.0", - "eslint-plugin-import": "^2.26.0", + "eslint-config-standard-with-typescript": "^27.0.1", + "eslint-plugin-import": "^2.27.4", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-unicorn": "^45.0.2", diff --git a/public-typescript/adminTables.js b/public-typescript/adminTables.js index 9237b862..2c74ed67 100644 --- a/public-typescript/adminTables.js +++ b/public-typescript/adminTables.js @@ -1,5 +1,5 @@ "use strict"; -/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ +/* eslint-disable spaced-comment, @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); (() => { // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -17,9 +17,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true }); let workOrderTypes = exports.workOrderTypes; delete exports.workOrderTypes; - const updateWorkOrderType = (submitEvent) => { + function updateWorkOrderType(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/admin/doUpdateWorkOrderType', submitEvent.currentTarget, (responseJSON) => { + var _a; if (responseJSON.success) { workOrderTypes = responseJSON.workOrderTypes; bulmaJS.alert({ @@ -30,19 +31,20 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Updating Work Order Type', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } const deleteWorkOrderType = (clickEvent) => { const tableRowElement = clickEvent.currentTarget.closest('tr'); const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + '/admin/doDeleteWorkOrderType', { workOrderTypeId }, (responseJSON) => { + var _a; if (responseJSON.success) { workOrderTypes = responseJSON.workOrderTypes; if (workOrderTypes.length === 0) { @@ -59,12 +61,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Deleting Work Order Type', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } bulmaJS.confirm({ title: 'Delete Work Order Type', message: `Are you sure you want to delete this work order type?
@@ -77,7 +79,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } }); }; - const moveWorkOrderType = (clickEvent) => { + function moveWorkOrderType(clickEvent) { const buttonElement = clickEvent.currentTarget; const tableRowElement = buttonElement.closest('tr'); const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; @@ -87,6 +89,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); workOrderTypeId, moveToEnd: clickEvent.shiftKey ? '1' : '0' }, (responseJSON) => { + var _a; if (responseJSON.success) { workOrderTypes = responseJSON.workOrderTypes; renderWorkOrderTypes(); @@ -94,13 +97,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Moving Work Order Type', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; - const renderWorkOrderTypes = () => { + } + function renderWorkOrderTypes() { + var _a; const containerElement = document.querySelector('#container--workOrderTypes'); if (workOrderTypes.length === 0) { containerElement.innerHTML = ` @@ -121,7 +125,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); ('
' + '
' + '' + '
' + '
' + @@ -150,11 +154,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); .addEventListener('click', deleteWorkOrderType); containerElement.append(tableRowElement); } - }; + } document.querySelector('#form--addWorkOrderType').addEventListener('submit', (submitEvent) => { submitEvent.preventDefault(); const formElement = submitEvent.currentTarget; cityssm.postJSON(los.urlPrefix + '/admin/doAddWorkOrderType', formElement, (responseJSON) => { + var _a; if (responseJSON.success) { workOrderTypes = responseJSON.workOrderTypes; renderWorkOrderTypes(); @@ -164,7 +169,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Adding Work Order Type', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } @@ -177,9 +182,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true }); let workOrderMilestoneTypes = exports.workOrderMilestoneTypes; delete exports.workOrderMilestoneTypes; - const updateWorkOrderMilestoneType = (submitEvent) => { + function updateWorkOrderMilestoneType(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/admin/doUpdateWorkOrderMilestoneType', submitEvent.currentTarget, (responseJSON) => { + var _a; if (responseJSON.success) { workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes; bulmaJS.alert({ @@ -190,19 +196,20 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Updating Work Order Milestone Type', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; - const deleteWorkOrderMilestoneType = (clickEvent) => { + } + function deleteWorkOrderMilestoneType(clickEvent) { const tableRowElement = clickEvent.currentTarget.closest('tr'); const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId; - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + '/admin/doDeleteWorkOrderMilestoneType', { workOrderMilestoneTypeId }, (responseJSON) => { + var _a; if (responseJSON.success) { workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes; if (workOrderMilestoneTypes.length === 0) { @@ -219,12 +226,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Deleting Work Order Milestone Type', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } bulmaJS.confirm({ title: 'Delete Work Order Milestone Type', message: `Are you sure you want to delete this work order milestone type?
@@ -236,8 +243,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); callbackFunction: doDelete } }); - }; - const moveWorkOrderMilestoneType = (clickEvent) => { + } + function moveWorkOrderMilestoneType(clickEvent) { const buttonElement = clickEvent.currentTarget; const tableRowElement = buttonElement.closest('tr'); const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId; @@ -249,6 +256,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); workOrderMilestoneTypeId, moveToEnd: clickEvent.shiftKey ? '1' : '0' }, (responseJSON) => { + var _a; if (responseJSON.success) { workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes; renderWorkOrderMilestoneTypes(); @@ -256,13 +264,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Moving Work Order Milestone Type', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; - const renderWorkOrderMilestoneTypes = () => { + } + function renderWorkOrderMilestoneTypes() { const containerElement = document.querySelector('#container--workOrderMilestoneTypes'); if (workOrderMilestoneTypes.length === 0) { containerElement.innerHTML = ` @@ -305,7 +313,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); '
' + '
' + ''; - tableRowElement.querySelector('form').addEventListener('submit', updateWorkOrderMilestoneType); + tableRowElement + .querySelector('form') + .addEventListener('submit', updateWorkOrderMilestoneType); tableRowElement.querySelector('.button--moveWorkOrderMilestoneTypeUp').addEventListener('click', moveWorkOrderMilestoneType); tableRowElement.querySelector('.button--moveWorkOrderMilestoneTypeDown').addEventListener('click', moveWorkOrderMilestoneType); tableRowElement @@ -313,11 +323,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); .addEventListener('click', deleteWorkOrderMilestoneType); containerElement.append(tableRowElement); } - }; + } + ; document.querySelector('#form--addWorkOrderMilestoneType').addEventListener('submit', (submitEvent) => { submitEvent.preventDefault(); const formElement = submitEvent.currentTarget; cityssm.postJSON(los.urlPrefix + '/admin/doAddWorkOrderMilestoneType', formElement, (responseJSON) => { + var _a; if (responseJSON.success) { workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes; renderWorkOrderMilestoneTypes(); @@ -327,7 +339,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Adding Work Order Milestone Type', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } @@ -340,9 +352,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true }); let lotStatuses = exports.lotStatuses; delete exports.lotStatuses; - const updateLotStatus = (submitEvent) => { + function updateLotStatus(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/admin/doUpdateLotStatus', submitEvent.currentTarget, (responseJSON) => { + var _a; if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses; bulmaJS.alert({ @@ -353,19 +366,20 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Updating ' + los.escapedAliases.Lot + ' Status', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; - const deleteLotStatus = (clickEvent) => { + } + function deleteLotStatus(clickEvent) { const tableRowElement = clickEvent.currentTarget.closest('tr'); const lotStatusId = tableRowElement.dataset.lotStatusId; - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + '/admin/doDeleteLotStatus', { lotStatusId }, (responseJSON) => { + var _a; if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses; if (lotStatuses.length === 0) { @@ -381,13 +395,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { bulmaJS.alert({ - title: 'Error Deleting ' + los.escapedAliases.Lot + ' Status', - message: responseJSON.errorMessage || '', + title: `Error Deleting ${los.escapedAliases.Lot} Status`, + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } bulmaJS.confirm({ title: `Delete ${los.escapedAliases.Lot} Status`, message: `Are you sure you want to delete this status?
@@ -399,31 +413,34 @@ Object.defineProperty(exports, "__esModule", { value: true }); callbackFunction: doDelete } }); - }; - const moveLotStatus = (clickEvent) => { + } + function moveLotStatus(clickEvent) { const buttonElement = clickEvent.currentTarget; const tableRowElement = buttonElement.closest('tr'); const lotStatusId = tableRowElement.dataset.lotStatusId; cityssm.postJSON(los.urlPrefix + '/admin/' + - (buttonElement.dataset.direction === 'up' ? 'doMoveLotStatusUp' : 'doMoveLotStatusDown'), { + (buttonElement.dataset.direction === 'up' + ? 'doMoveLotStatusUp' + : 'doMoveLotStatusDown'), { lotStatusId, moveToEnd: clickEvent.shiftKey ? '1' : '0' }, (responseJSON) => { + var _a; if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses; renderLotStatuses(); } else { bulmaJS.alert({ - title: 'Error Moving ' + exports.aliases.lot + ' Status', - message: responseJSON.errorMessage || '', + title: 'Error Moving ' + los.escapedAliases.Lot + ' Status', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; - const renderLotStatuses = () => { + } + function renderLotStatuses() { const containerElement = document.querySelector('#container--lotStatuses'); if (lotStatuses.length === 0) { containerElement.innerHTML = ` @@ -445,7 +462,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); '
' + '' + '
' + '
' + @@ -466,17 +485,23 @@ Object.defineProperty(exports, "__esModule", { value: true }); '
' + '' + ''; - tableRowElement.querySelector('form').addEventListener('submit', updateLotStatus); + tableRowElement + .querySelector('form') + .addEventListener('submit', updateLotStatus); tableRowElement.querySelector('.button--moveLotStatusUp').addEventListener('click', moveLotStatus); tableRowElement.querySelector('.button--moveLotStatusDown').addEventListener('click', moveLotStatus); - tableRowElement.querySelector('.button--deleteLotStatus').addEventListener('click', deleteLotStatus); + tableRowElement + .querySelector('.button--deleteLotStatus') + .addEventListener('click', deleteLotStatus); containerElement.append(tableRowElement); } - }; + } + ; document.querySelector('#form--addLotStatus').addEventListener('submit', (submitEvent) => { submitEvent.preventDefault(); const formElement = submitEvent.currentTarget; cityssm.postJSON(los.urlPrefix + '/admin/doAddLotStatus', formElement, (responseJSON) => { + var _a; if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses; renderLotStatuses(); @@ -486,7 +511,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: `Error Adding ${los.escapedAliases.Lot} Status`, - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } @@ -499,9 +524,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true }); let lotOccupantTypes = exports.lotOccupantTypes; delete exports.lotOccupantTypes; - const updateLotOccupantType = (submitEvent) => { + function updateLotOccupantType(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/admin/doUpdateLotOccupantType', submitEvent.currentTarget, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupantTypes = responseJSON.lotOccupantTypes; bulmaJS.alert({ @@ -512,19 +538,20 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: `Error Updating ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; - const deleteLotOccupantType = (clickEvent) => { + } + function deleteLotOccupantType(clickEvent) { const tableRowElement = clickEvent.currentTarget.closest('tr'); const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId; - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + '/admin/doDeleteLotOccupantType', { lotOccupantTypeId }, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupantTypes = responseJSON.lotOccupantTypes; if (lotOccupantTypes.length === 0) { @@ -541,12 +568,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: `Error Deleting ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } bulmaJS.confirm({ title: `Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, message: `Are you sure you want to delete this ${los.escapedAliases.lot} ${los.escapedAliases.occupant} type?
@@ -558,17 +585,20 @@ Object.defineProperty(exports, "__esModule", { value: true }); callbackFunction: doDelete } }); - }; - const moveLotOccupantType = (clickEvent) => { + } + function moveLotOccupantType(clickEvent) { const buttonElement = clickEvent.currentTarget; const tableRowElement = buttonElement.closest('tr'); const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId; cityssm.postJSON(los.urlPrefix + '/admin/' + - (buttonElement.dataset.direction === 'up' ? 'doMoveLotOccupantTypeUp' : 'doMoveLotOccupantTypeDown'), { + (buttonElement.dataset.direction === 'up' + ? 'doMoveLotOccupantTypeUp' + : 'doMoveLotOccupantTypeDown'), { lotOccupantTypeId, moveToEnd: clickEvent.shiftKey ? '1' : '0' }, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupantTypes = responseJSON.lotOccupantTypes; renderLotOccupantTypes(); @@ -576,13 +606,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: `Error Moving ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; - const renderLotOccupantTypes = () => { + } + function renderLotOccupantTypes() { const containerElement = document.querySelector('#container--lotOccupantTypes'); if (lotOccupantTypes.length === 0) { containerElement.innerHTML = ` @@ -593,17 +623,22 @@ Object.defineProperty(exports, "__esModule", { value: true }); containerElement.innerHTML = ''; for (const lotOccupantType of lotOccupantTypes) { const tableRowElement = document.createElement('tr'); - tableRowElement.dataset.lotOccupantTypeId = lotOccupantType.lotOccupantTypeId.toString(); - const formId = 'form--lotOccupantType-' + lotOccupantType.lotOccupantTypeId; + tableRowElement.dataset.lotOccupantTypeId = + lotOccupantType.lotOccupantTypeId.toString(); + const formId = 'form--lotOccupantType-' + lotOccupantType.lotOccupantTypeId.toString(); tableRowElement.innerHTML = '' + ('
' + '
' + '' + '
' + @@ -614,7 +649,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); '
fa-
' + '
' + ' { submitEvent.preventDefault(); const formElement = submitEvent.currentTarget; cityssm.postJSON(los.urlPrefix + '/admin/doAddLotOccupantType', formElement, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupantTypes = responseJSON.lotOccupantTypes; renderLotOccupantTypes(); @@ -681,7 +722,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: `Error Adding ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } diff --git a/public-typescript/adminTables/adminTables.js b/public-typescript/adminTables/adminTables.js index 44288e47..048d2a51 100644 --- a/public-typescript/adminTables/adminTables.js +++ b/public-typescript/adminTables/adminTables.js @@ -1,5 +1,5 @@ "use strict"; -/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ +/* eslint-disable spaced-comment, @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); (() => { // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/public-typescript/adminTables/adminTables.ts b/public-typescript/adminTables/adminTables.ts index 526b09b6..7442f8b1 100644 --- a/public-typescript/adminTables/adminTables.ts +++ b/public-typescript/adminTables/adminTables.ts @@ -1,13 +1,12 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ +/* eslint-disable spaced-comment, @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ import type * as globalTypes from '../../types/globalTypes' - ;(() => { // eslint-disable-next-line @typescript-eslint/no-unused-vars const los = exports.los as globalTypes.LOS // eslint-disable-next-line @typescript-eslint/no-unused-vars - function refreshFontAwesomeIcon(changeEvent: Event) { + function refreshFontAwesomeIcon(changeEvent: Event): void { const inputElement = changeEvent.currentTarget as HTMLInputElement const fontAwesomeIconClass = inputElement.value diff --git a/public-typescript/adminTables/adminTablesLotOccupantTypes.js b/public-typescript/adminTables/adminTablesLotOccupantTypes.js index ef682082..a877d900 100644 --- a/public-typescript/adminTables/adminTablesLotOccupantTypes.js +++ b/public-typescript/adminTables/adminTablesLotOccupantTypes.js @@ -3,9 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); let lotOccupantTypes = exports.lotOccupantTypes; delete exports.lotOccupantTypes; -const updateLotOccupantType = (submitEvent) => { +function updateLotOccupantType(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/admin/doUpdateLotOccupantType', submitEvent.currentTarget, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupantTypes = responseJSON.lotOccupantTypes; bulmaJS.alert({ @@ -16,19 +17,20 @@ const updateLotOccupantType = (submitEvent) => { else { bulmaJS.alert({ title: `Error Updating ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); -}; -const deleteLotOccupantType = (clickEvent) => { +} +function deleteLotOccupantType(clickEvent) { const tableRowElement = clickEvent.currentTarget.closest('tr'); const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId; - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + '/admin/doDeleteLotOccupantType', { lotOccupantTypeId }, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupantTypes = responseJSON.lotOccupantTypes; if (lotOccupantTypes.length === 0) { @@ -45,12 +47,12 @@ const deleteLotOccupantType = (clickEvent) => { else { bulmaJS.alert({ title: `Error Deleting ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } bulmaJS.confirm({ title: `Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, message: `Are you sure you want to delete this ${los.escapedAliases.lot} ${los.escapedAliases.occupant} type?
@@ -62,17 +64,20 @@ const deleteLotOccupantType = (clickEvent) => { callbackFunction: doDelete } }); -}; -const moveLotOccupantType = (clickEvent) => { +} +function moveLotOccupantType(clickEvent) { const buttonElement = clickEvent.currentTarget; const tableRowElement = buttonElement.closest('tr'); const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId; cityssm.postJSON(los.urlPrefix + '/admin/' + - (buttonElement.dataset.direction === 'up' ? 'doMoveLotOccupantTypeUp' : 'doMoveLotOccupantTypeDown'), { + (buttonElement.dataset.direction === 'up' + ? 'doMoveLotOccupantTypeUp' + : 'doMoveLotOccupantTypeDown'), { lotOccupantTypeId, moveToEnd: clickEvent.shiftKey ? '1' : '0' }, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupantTypes = responseJSON.lotOccupantTypes; renderLotOccupantTypes(); @@ -80,13 +85,13 @@ const moveLotOccupantType = (clickEvent) => { else { bulmaJS.alert({ title: `Error Moving ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); -}; -const renderLotOccupantTypes = () => { +} +function renderLotOccupantTypes() { const containerElement = document.querySelector('#container--lotOccupantTypes'); if (lotOccupantTypes.length === 0) { containerElement.innerHTML = ` @@ -97,17 +102,22 @@ const renderLotOccupantTypes = () => { containerElement.innerHTML = ''; for (const lotOccupantType of lotOccupantTypes) { const tableRowElement = document.createElement('tr'); - tableRowElement.dataset.lotOccupantTypeId = lotOccupantType.lotOccupantTypeId.toString(); - const formId = 'form--lotOccupantType-' + lotOccupantType.lotOccupantTypeId; + tableRowElement.dataset.lotOccupantTypeId = + lotOccupantType.lotOccupantTypeId.toString(); + const formId = 'form--lotOccupantType-' + lotOccupantType.lotOccupantTypeId.toString(); tableRowElement.innerHTML = '' + ('
' + '
' + '' + '
' + @@ -118,7 +128,9 @@ const renderLotOccupantTypes = () => { '
fa-
' + '
' + ' { const fontAwesomeInputElement = tableRowElement.querySelector("input[name='fontAwesomeIconClass']"); fontAwesomeInputElement.addEventListener('keyup', refreshFontAwesomeIcon); fontAwesomeInputElement.addEventListener('change', refreshFontAwesomeIcon); - tableRowElement.querySelector('form').addEventListener('submit', updateLotOccupantType); + tableRowElement + .querySelector('form') + .addEventListener('submit', updateLotOccupantType); tableRowElement.querySelector('.button--moveLotOccupantTypeUp').addEventListener('click', moveLotOccupantType); tableRowElement.querySelector('.button--moveLotOccupantTypeDown').addEventListener('click', moveLotOccupantType); tableRowElement @@ -171,11 +185,13 @@ const renderLotOccupantTypes = () => { .addEventListener('click', deleteLotOccupantType); containerElement.append(tableRowElement); } -}; +} +; document.querySelector('#form--addLotOccupantType').addEventListener('submit', (submitEvent) => { submitEvent.preventDefault(); const formElement = submitEvent.currentTarget; cityssm.postJSON(los.urlPrefix + '/admin/doAddLotOccupantType', formElement, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupantTypes = responseJSON.lotOccupantTypes; renderLotOccupantTypes(); @@ -185,7 +201,7 @@ document.querySelector('#form--addLotOccupantType').addEventListener('submit', ( else { bulmaJS.alert({ title: `Error Adding ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } diff --git a/public-typescript/adminTables/adminTablesLotOccupantTypes.ts b/public-typescript/adminTables/adminTablesLotOccupantTypes.ts index 9afec509..3d6d2ff9 100644 --- a/public-typescript/adminTables/adminTablesLotOccupantTypes.ts +++ b/public-typescript/adminTables/adminTablesLotOccupantTypes.ts @@ -16,7 +16,7 @@ declare const refreshFontAwesomeIcon: (changeEvent: Event) => void let lotOccupantTypes: recordTypes.LotOccupantType[] = exports.lotOccupantTypes delete exports.lotOccupantTypes -const updateLotOccupantType = (submitEvent: SubmitEvent) => { +function updateLotOccupantType(submitEvent: SubmitEvent): void { submitEvent.preventDefault() cityssm.postJSON( @@ -37,7 +37,7 @@ const updateLotOccupantType = (submitEvent: SubmitEvent) => { } else { bulmaJS.alert({ title: `Error Updating ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -45,12 +45,14 @@ const updateLotOccupantType = (submitEvent: SubmitEvent) => { ) } -const deleteLotOccupantType = (clickEvent: Event) => { - const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest('tr')! +function deleteLotOccupantType(clickEvent: Event): void { + const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest( + 'tr' + )! const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId - const doDelete = () => { + function doDelete(): void { cityssm.postJSON( los.urlPrefix + '/admin/doDeleteLotOccupantType', { @@ -77,7 +79,7 @@ const deleteLotOccupantType = (clickEvent: Event) => { } else { bulmaJS.alert({ title: `Error Deleting ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -98,7 +100,7 @@ const deleteLotOccupantType = (clickEvent: Event) => { }) } -const moveLotOccupantType = (clickEvent: MouseEvent) => { +function moveLotOccupantType(clickEvent: MouseEvent): void { const buttonElement = clickEvent.currentTarget as HTMLButtonElement const tableRowElement = buttonElement.closest('tr')! @@ -108,7 +110,9 @@ const moveLotOccupantType = (clickEvent: MouseEvent) => { cityssm.postJSON( los.urlPrefix + '/admin/' + - (buttonElement.dataset.direction === 'up' ? 'doMoveLotOccupantTypeUp' : 'doMoveLotOccupantTypeDown'), + (buttonElement.dataset.direction === 'up' + ? 'doMoveLotOccupantTypeUp' + : 'doMoveLotOccupantTypeDown'), { lotOccupantTypeId, moveToEnd: clickEvent.shiftKey ? '1' : '0' @@ -124,7 +128,7 @@ const moveLotOccupantType = (clickEvent: MouseEvent) => { } else { bulmaJS.alert({ title: `Error Moving ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -132,8 +136,10 @@ const moveLotOccupantType = (clickEvent: MouseEvent) => { ) } -const renderLotOccupantTypes = () => { - const containerElement = document.querySelector('#container--lotOccupantTypes') as HTMLTableSectionElement +function renderLotOccupantTypes(): void { + const containerElement = document.querySelector( + '#container--lotOccupantTypes' + ) as HTMLTableSectionElement if (lotOccupantTypes.length === 0) { containerElement.innerHTML = ` @@ -148,19 +154,25 @@ const renderLotOccupantTypes = () => { for (const lotOccupantType of lotOccupantTypes) { const tableRowElement = document.createElement('tr') - tableRowElement.dataset.lotOccupantTypeId = lotOccupantType.lotOccupantTypeId.toString() + tableRowElement.dataset.lotOccupantTypeId = + lotOccupantType.lotOccupantTypeId.toString() - const formId = 'form--lotOccupantType-' + lotOccupantType.lotOccupantTypeId + const formId = + 'form--lotOccupantType-' + lotOccupantType.lotOccupantTypeId.toString() tableRowElement.innerHTML = '' + ('
' + '
' + '' + '
' + @@ -171,7 +183,9 @@ const renderLotOccupantTypes = () => { '
fa-
' + '
' + ' { '
' + '' - const fontAwesomeInputElement = tableRowElement.querySelector("input[name='fontAwesomeIconClass']")! + const fontAwesomeInputElement = tableRowElement.querySelector( + "input[name='fontAwesomeIconClass']" + )! fontAwesomeInputElement.addEventListener('keyup', refreshFontAwesomeIcon) fontAwesomeInputElement.addEventListener('change', refreshFontAwesomeIcon) - tableRowElement.querySelector('form')!.addEventListener('submit', updateLotOccupantType) - - ;(tableRowElement.querySelector('.button--moveLotOccupantTypeUp') as HTMLButtonElement).addEventListener( - 'click', - moveLotOccupantType - ) - + tableRowElement + .querySelector('form')! + .addEventListener('submit', updateLotOccupantType) ;( - tableRowElement.querySelector('.button--moveLotOccupantTypeDown') as HTMLButtonElement + tableRowElement.querySelector( + '.button--moveLotOccupantTypeUp' + ) as HTMLButtonElement + ).addEventListener('click', moveLotOccupantType) + ;( + tableRowElement.querySelector( + '.button--moveLotOccupantTypeDown' + ) as HTMLButtonElement ).addEventListener('click', moveLotOccupantType) tableRowElement @@ -241,37 +260,35 @@ const renderLotOccupantTypes = () => { containerElement.append(tableRowElement) } } +;( + document.querySelector('#form--addLotOccupantType') as HTMLFormElement +).addEventListener('submit', (submitEvent: SubmitEvent) => { + submitEvent.preventDefault() -;(document.querySelector('#form--addLotOccupantType') as HTMLFormElement).addEventListener( - 'submit', - (submitEvent: SubmitEvent) => { - submitEvent.preventDefault() + const formElement = submitEvent.currentTarget as HTMLFormElement - const formElement = submitEvent.currentTarget as HTMLFormElement - - cityssm.postJSON( - los.urlPrefix + '/admin/doAddLotOccupantType', - formElement, - (responseJSON: { - success: boolean - errorMessage?: string - lotOccupantTypes?: recordTypes.LotOccupantType[] - }) => { - if (responseJSON.success) { - lotOccupantTypes = responseJSON.lotOccupantTypes! - renderLotOccupantTypes() - formElement.reset() - formElement.querySelector('input')!.focus() - } else { - bulmaJS.alert({ - title: `Error Adding ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, - message: responseJSON.errorMessage || '', - contextualColorName: 'danger' - }) - } + cityssm.postJSON( + los.urlPrefix + '/admin/doAddLotOccupantType', + formElement, + (responseJSON: { + success: boolean + errorMessage?: string + lotOccupantTypes?: recordTypes.LotOccupantType[] + }) => { + if (responseJSON.success) { + lotOccupantTypes = responseJSON.lotOccupantTypes! + renderLotOccupantTypes() + formElement.reset() + formElement.querySelector('input')!.focus() + } else { + bulmaJS.alert({ + title: `Error Adding ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, + message: responseJSON.errorMessage ?? '', + contextualColorName: 'danger' + }) } - ) - } -) + } + ) +}) renderLotOccupantTypes() diff --git a/public-typescript/adminTables/adminTablesLotStatuses.js b/public-typescript/adminTables/adminTablesLotStatuses.js index eb0f9b4d..8cad78aa 100644 --- a/public-typescript/adminTables/adminTablesLotStatuses.js +++ b/public-typescript/adminTables/adminTablesLotStatuses.js @@ -3,9 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); let lotStatuses = exports.lotStatuses; delete exports.lotStatuses; -const updateLotStatus = (submitEvent) => { +function updateLotStatus(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/admin/doUpdateLotStatus', submitEvent.currentTarget, (responseJSON) => { + var _a; if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses; bulmaJS.alert({ @@ -16,19 +17,20 @@ const updateLotStatus = (submitEvent) => { else { bulmaJS.alert({ title: 'Error Updating ' + los.escapedAliases.Lot + ' Status', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); -}; -const deleteLotStatus = (clickEvent) => { +} +function deleteLotStatus(clickEvent) { const tableRowElement = clickEvent.currentTarget.closest('tr'); const lotStatusId = tableRowElement.dataset.lotStatusId; - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + '/admin/doDeleteLotStatus', { lotStatusId }, (responseJSON) => { + var _a; if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses; if (lotStatuses.length === 0) { @@ -44,13 +46,13 @@ const deleteLotStatus = (clickEvent) => { } else { bulmaJS.alert({ - title: 'Error Deleting ' + los.escapedAliases.Lot + ' Status', - message: responseJSON.errorMessage || '', + title: `Error Deleting ${los.escapedAliases.Lot} Status`, + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } bulmaJS.confirm({ title: `Delete ${los.escapedAliases.Lot} Status`, message: `Are you sure you want to delete this status?
@@ -62,31 +64,34 @@ const deleteLotStatus = (clickEvent) => { callbackFunction: doDelete } }); -}; -const moveLotStatus = (clickEvent) => { +} +function moveLotStatus(clickEvent) { const buttonElement = clickEvent.currentTarget; const tableRowElement = buttonElement.closest('tr'); const lotStatusId = tableRowElement.dataset.lotStatusId; cityssm.postJSON(los.urlPrefix + '/admin/' + - (buttonElement.dataset.direction === 'up' ? 'doMoveLotStatusUp' : 'doMoveLotStatusDown'), { + (buttonElement.dataset.direction === 'up' + ? 'doMoveLotStatusUp' + : 'doMoveLotStatusDown'), { lotStatusId, moveToEnd: clickEvent.shiftKey ? '1' : '0' }, (responseJSON) => { + var _a; if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses; renderLotStatuses(); } else { bulmaJS.alert({ - title: 'Error Moving ' + exports.aliases.lot + ' Status', - message: responseJSON.errorMessage || '', + title: 'Error Moving ' + los.escapedAliases.Lot + ' Status', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); -}; -const renderLotStatuses = () => { +} +function renderLotStatuses() { const containerElement = document.querySelector('#container--lotStatuses'); if (lotStatuses.length === 0) { containerElement.innerHTML = ` @@ -108,7 +113,9 @@ const renderLotStatuses = () => { '
' + '' + '
' + '
' + @@ -129,17 +136,23 @@ const renderLotStatuses = () => { '
' + '
' + ''; - tableRowElement.querySelector('form').addEventListener('submit', updateLotStatus); + tableRowElement + .querySelector('form') + .addEventListener('submit', updateLotStatus); tableRowElement.querySelector('.button--moveLotStatusUp').addEventListener('click', moveLotStatus); tableRowElement.querySelector('.button--moveLotStatusDown').addEventListener('click', moveLotStatus); - tableRowElement.querySelector('.button--deleteLotStatus').addEventListener('click', deleteLotStatus); + tableRowElement + .querySelector('.button--deleteLotStatus') + .addEventListener('click', deleteLotStatus); containerElement.append(tableRowElement); } -}; +} +; document.querySelector('#form--addLotStatus').addEventListener('submit', (submitEvent) => { submitEvent.preventDefault(); const formElement = submitEvent.currentTarget; cityssm.postJSON(los.urlPrefix + '/admin/doAddLotStatus', formElement, (responseJSON) => { + var _a; if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses; renderLotStatuses(); @@ -149,7 +162,7 @@ document.querySelector('#form--addLotStatus').addEventListener('submit', (submit else { bulmaJS.alert({ title: `Error Adding ${los.escapedAliases.Lot} Status`, - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } diff --git a/public-typescript/adminTables/adminTablesLotStatuses.ts b/public-typescript/adminTables/adminTablesLotStatuses.ts index d6f3d87c..2b1139da 100644 --- a/public-typescript/adminTables/adminTablesLotStatuses.ts +++ b/public-typescript/adminTables/adminTablesLotStatuses.ts @@ -15,13 +15,17 @@ declare const los: globalTypes.LOS let lotStatuses: recordTypes.LotStatus[] = exports.lotStatuses delete exports.lotStatuses -const updateLotStatus = (submitEvent: SubmitEvent) => { +function updateLotStatus(submitEvent: SubmitEvent): void { submitEvent.preventDefault() cityssm.postJSON( los.urlPrefix + '/admin/doUpdateLotStatus', submitEvent.currentTarget, - (responseJSON: { success: boolean; errorMessage?: string; lotStatuses?: recordTypes.LotStatus[] }) => { + (responseJSON: { + success: boolean + errorMessage?: string + lotStatuses?: recordTypes.LotStatus[] + }) => { if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses! @@ -32,7 +36,7 @@ const updateLotStatus = (submitEvent: SubmitEvent) => { } else { bulmaJS.alert({ title: 'Error Updating ' + los.escapedAliases.Lot + ' Status', - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -40,18 +44,24 @@ const updateLotStatus = (submitEvent: SubmitEvent) => { ) } -const deleteLotStatus = (clickEvent: Event) => { - const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest('tr')! +function deleteLotStatus(clickEvent: Event): void { + const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest( + 'tr' + )! const lotStatusId = tableRowElement.dataset.lotStatusId - const doDelete = () => { + function doDelete(): void { cityssm.postJSON( los.urlPrefix + '/admin/doDeleteLotStatus', { lotStatusId }, - (responseJSON: { success: boolean; errorMessage?: string; lotStatuses?: recordTypes.LotStatus[] }) => { + (responseJSON: { + success: boolean + errorMessage?: string + lotStatuses?: recordTypes.LotStatus[] + }) => { if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses! @@ -67,8 +77,8 @@ const deleteLotStatus = (clickEvent: Event) => { }) } else { bulmaJS.alert({ - title: 'Error Deleting ' + los.escapedAliases.Lot + ' Status', - message: responseJSON.errorMessage || '', + title: `Error Deleting ${los.escapedAliases.Lot} Status`, + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -89,7 +99,7 @@ const deleteLotStatus = (clickEvent: Event) => { }) } -const moveLotStatus = (clickEvent: MouseEvent) => { +function moveLotStatus(clickEvent: MouseEvent): void { const buttonElement = clickEvent.currentTarget as HTMLButtonElement const tableRowElement = buttonElement.closest('tr')! @@ -99,19 +109,25 @@ const moveLotStatus = (clickEvent: MouseEvent) => { cityssm.postJSON( los.urlPrefix + '/admin/' + - (buttonElement.dataset.direction === 'up' ? 'doMoveLotStatusUp' : 'doMoveLotStatusDown'), + (buttonElement.dataset.direction === 'up' + ? 'doMoveLotStatusUp' + : 'doMoveLotStatusDown'), { lotStatusId, moveToEnd: clickEvent.shiftKey ? '1' : '0' }, - (responseJSON: { success: boolean; errorMessage?: string; lotStatuses?: recordTypes.LotStatus[] }) => { + (responseJSON: { + success: boolean + errorMessage?: string + lotStatuses?: recordTypes.LotStatus[] + }) => { if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses! renderLotStatuses() } else { bulmaJS.alert({ - title: 'Error Moving ' + exports.aliases.lot + ' Status', - message: responseJSON.errorMessage || '', + title: 'Error Moving ' + los.escapedAliases.Lot + ' Status', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -119,8 +135,10 @@ const moveLotStatus = (clickEvent: MouseEvent) => { ) } -const renderLotStatuses = () => { - const containerElement = document.querySelector('#container--lotStatuses') as HTMLTableSectionElement +function renderLotStatuses(): void { + const containerElement = document.querySelector( + '#container--lotStatuses' + ) as HTMLTableSectionElement if (lotStatuses.length === 0) { containerElement.innerHTML = ` @@ -147,7 +165,9 @@ const renderLotStatuses = () => { '
' + '' + '
' + '
' + @@ -159,7 +179,11 @@ const renderLotStatuses = () => { '' + '
' + '
' + - los.getMoveUpDownButtonFieldHTML('button--moveLotStatusUp', 'button--moveLotStatusDown', false) + + los.getMoveUpDownButtonFieldHTML( + 'button--moveLotStatusUp', + 'button--moveLotStatusDown', + false + ) + '
' + '
' + '
' + '' - tableRowElement.querySelector('form')!.addEventListener('submit', updateLotStatus) + tableRowElement + .querySelector('form')! + .addEventListener('submit', updateLotStatus) + ;( + tableRowElement.querySelector( + '.button--moveLotStatusUp' + ) as HTMLButtonElement + ).addEventListener('click', moveLotStatus) + ;( + tableRowElement.querySelector( + '.button--moveLotStatusDown' + ) as HTMLButtonElement + ).addEventListener('click', moveLotStatus) - ;(tableRowElement.querySelector('.button--moveLotStatusUp') as HTMLButtonElement).addEventListener( - 'click', - moveLotStatus - ) - - ;(tableRowElement.querySelector('.button--moveLotStatusDown') as HTMLButtonElement).addEventListener( - 'click', - moveLotStatus - ) - - tableRowElement.querySelector('.button--deleteLotStatus')!.addEventListener('click', deleteLotStatus) + tableRowElement + .querySelector('.button--deleteLotStatus')! + .addEventListener('click', deleteLotStatus) containerElement.append(tableRowElement) } } +;( + document.querySelector('#form--addLotStatus') as HTMLFormElement +).addEventListener('submit', (submitEvent: SubmitEvent) => { + submitEvent.preventDefault() -;(document.querySelector('#form--addLotStatus') as HTMLFormElement).addEventListener( - 'submit', - (submitEvent: SubmitEvent) => { - submitEvent.preventDefault() + const formElement = submitEvent.currentTarget as HTMLFormElement - const formElement = submitEvent.currentTarget as HTMLFormElement - - cityssm.postJSON( - los.urlPrefix + '/admin/doAddLotStatus', - formElement, - (responseJSON: { success: boolean; errorMessage?: string; lotStatuses?: recordTypes.LotStatus[] }) => { - if (responseJSON.success) { - lotStatuses = responseJSON.lotStatuses! - renderLotStatuses() - formElement.reset() - formElement.querySelector('input')!.focus() - } else { - bulmaJS.alert({ - title: `Error Adding ${los.escapedAliases.Lot} Status`, - message: responseJSON.errorMessage || '', - contextualColorName: 'danger' - }) - } + cityssm.postJSON( + los.urlPrefix + '/admin/doAddLotStatus', + formElement, + (responseJSON: { + success: boolean + errorMessage?: string + lotStatuses?: recordTypes.LotStatus[] + }) => { + if (responseJSON.success) { + lotStatuses = responseJSON.lotStatuses! + renderLotStatuses() + formElement.reset() + formElement.querySelector('input')!.focus() + } else { + bulmaJS.alert({ + title: `Error Adding ${los.escapedAliases.Lot} Status`, + message: responseJSON.errorMessage ?? '', + contextualColorName: 'danger' + }) } - ) - } -) + } + ) +}) renderLotStatuses() diff --git a/public-typescript/adminTables/adminTablesWorkOrderMilestoneTypes.js b/public-typescript/adminTables/adminTablesWorkOrderMilestoneTypes.js index f73ec4da..a5a2b319 100644 --- a/public-typescript/adminTables/adminTablesWorkOrderMilestoneTypes.js +++ b/public-typescript/adminTables/adminTablesWorkOrderMilestoneTypes.js @@ -3,9 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); let workOrderMilestoneTypes = exports.workOrderMilestoneTypes; delete exports.workOrderMilestoneTypes; -const updateWorkOrderMilestoneType = (submitEvent) => { +function updateWorkOrderMilestoneType(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/admin/doUpdateWorkOrderMilestoneType', submitEvent.currentTarget, (responseJSON) => { + var _a; if (responseJSON.success) { workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes; bulmaJS.alert({ @@ -16,19 +17,20 @@ const updateWorkOrderMilestoneType = (submitEvent) => { else { bulmaJS.alert({ title: 'Error Updating Work Order Milestone Type', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); -}; -const deleteWorkOrderMilestoneType = (clickEvent) => { +} +function deleteWorkOrderMilestoneType(clickEvent) { const tableRowElement = clickEvent.currentTarget.closest('tr'); const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId; - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + '/admin/doDeleteWorkOrderMilestoneType', { workOrderMilestoneTypeId }, (responseJSON) => { + var _a; if (responseJSON.success) { workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes; if (workOrderMilestoneTypes.length === 0) { @@ -45,12 +47,12 @@ const deleteWorkOrderMilestoneType = (clickEvent) => { else { bulmaJS.alert({ title: 'Error Deleting Work Order Milestone Type', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } bulmaJS.confirm({ title: 'Delete Work Order Milestone Type', message: `Are you sure you want to delete this work order milestone type?
@@ -62,8 +64,8 @@ const deleteWorkOrderMilestoneType = (clickEvent) => { callbackFunction: doDelete } }); -}; -const moveWorkOrderMilestoneType = (clickEvent) => { +} +function moveWorkOrderMilestoneType(clickEvent) { const buttonElement = clickEvent.currentTarget; const tableRowElement = buttonElement.closest('tr'); const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId; @@ -75,6 +77,7 @@ const moveWorkOrderMilestoneType = (clickEvent) => { workOrderMilestoneTypeId, moveToEnd: clickEvent.shiftKey ? '1' : '0' }, (responseJSON) => { + var _a; if (responseJSON.success) { workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes; renderWorkOrderMilestoneTypes(); @@ -82,13 +85,13 @@ const moveWorkOrderMilestoneType = (clickEvent) => { else { bulmaJS.alert({ title: 'Error Moving Work Order Milestone Type', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); -}; -const renderWorkOrderMilestoneTypes = () => { +} +function renderWorkOrderMilestoneTypes() { const containerElement = document.querySelector('#container--workOrderMilestoneTypes'); if (workOrderMilestoneTypes.length === 0) { containerElement.innerHTML = ` @@ -131,7 +134,9 @@ const renderWorkOrderMilestoneTypes = () => { '
' + '
' + ''; - tableRowElement.querySelector('form').addEventListener('submit', updateWorkOrderMilestoneType); + tableRowElement + .querySelector('form') + .addEventListener('submit', updateWorkOrderMilestoneType); tableRowElement.querySelector('.button--moveWorkOrderMilestoneTypeUp').addEventListener('click', moveWorkOrderMilestoneType); tableRowElement.querySelector('.button--moveWorkOrderMilestoneTypeDown').addEventListener('click', moveWorkOrderMilestoneType); tableRowElement @@ -139,11 +144,13 @@ const renderWorkOrderMilestoneTypes = () => { .addEventListener('click', deleteWorkOrderMilestoneType); containerElement.append(tableRowElement); } -}; +} +; document.querySelector('#form--addWorkOrderMilestoneType').addEventListener('submit', (submitEvent) => { submitEvent.preventDefault(); const formElement = submitEvent.currentTarget; cityssm.postJSON(los.urlPrefix + '/admin/doAddWorkOrderMilestoneType', formElement, (responseJSON) => { + var _a; if (responseJSON.success) { workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes; renderWorkOrderMilestoneTypes(); @@ -153,7 +160,7 @@ document.querySelector('#form--addWorkOrderMilestoneType').addEventListener('sub else { bulmaJS.alert({ title: 'Error Adding Work Order Milestone Type', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } diff --git a/public-typescript/adminTables/adminTablesWorkOrderMilestoneTypes.ts b/public-typescript/adminTables/adminTablesWorkOrderMilestoneTypes.ts index 3cd02c39..5400a550 100644 --- a/public-typescript/adminTables/adminTablesWorkOrderMilestoneTypes.ts +++ b/public-typescript/adminTables/adminTablesWorkOrderMilestoneTypes.ts @@ -12,10 +12,11 @@ declare const bulmaJS: BulmaJS declare const los: globalTypes.LOS -let workOrderMilestoneTypes: recordTypes.WorkOrderMilestoneType[] = exports.workOrderMilestoneTypes +let workOrderMilestoneTypes: recordTypes.WorkOrderMilestoneType[] = + exports.workOrderMilestoneTypes delete exports.workOrderMilestoneTypes -const updateWorkOrderMilestoneType = (submitEvent: SubmitEvent) => { +function updateWorkOrderMilestoneType(submitEvent: SubmitEvent): void { submitEvent.preventDefault() cityssm.postJSON( @@ -36,7 +37,7 @@ const updateWorkOrderMilestoneType = (submitEvent: SubmitEvent) => { } else { bulmaJS.alert({ title: 'Error Updating Work Order Milestone Type', - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -44,12 +45,15 @@ const updateWorkOrderMilestoneType = (submitEvent: SubmitEvent) => { ) } -const deleteWorkOrderMilestoneType = (clickEvent: Event) => { - const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest('tr')! +function deleteWorkOrderMilestoneType(clickEvent: Event): void { + const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest( + 'tr' + )! - const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId + const workOrderMilestoneTypeId = + tableRowElement.dataset.workOrderMilestoneTypeId - const doDelete = () => { + function doDelete(): void { cityssm.postJSON( los.urlPrefix + '/admin/doDeleteWorkOrderMilestoneType', { @@ -76,7 +80,7 @@ const deleteWorkOrderMilestoneType = (clickEvent: Event) => { } else { bulmaJS.alert({ title: 'Error Deleting Work Order Milestone Type', - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -97,12 +101,13 @@ const deleteWorkOrderMilestoneType = (clickEvent: Event) => { }) } -const moveWorkOrderMilestoneType = (clickEvent: MouseEvent) => { +function moveWorkOrderMilestoneType(clickEvent: MouseEvent): void { const buttonElement = clickEvent.currentTarget as HTMLButtonElement const tableRowElement = buttonElement.closest('tr')! - const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId + const workOrderMilestoneTypeId = + tableRowElement.dataset.workOrderMilestoneTypeId cityssm.postJSON( los.urlPrefix + @@ -125,7 +130,7 @@ const moveWorkOrderMilestoneType = (clickEvent: MouseEvent) => { } else { bulmaJS.alert({ title: 'Error Moving Work Order Milestone Type', - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -133,7 +138,7 @@ const moveWorkOrderMilestoneType = (clickEvent: MouseEvent) => { ) } -const renderWorkOrderMilestoneTypes = () => { +function renderWorkOrderMilestoneTypes(): void { const containerElement = document.querySelector( '#container--workOrderMilestoneTypes' ) as HTMLTableSectionElement @@ -189,14 +194,18 @@ const renderWorkOrderMilestoneTypes = () => { '
' + '' - tableRowElement.querySelector('form')!.addEventListener('submit', updateWorkOrderMilestoneType) - + tableRowElement + .querySelector('form')! + .addEventListener('submit', updateWorkOrderMilestoneType) ;( - tableRowElement.querySelector('.button--moveWorkOrderMilestoneTypeUp') as HTMLButtonElement + tableRowElement.querySelector( + '.button--moveWorkOrderMilestoneTypeUp' + ) as HTMLButtonElement ).addEventListener('click', moveWorkOrderMilestoneType) - ;( - tableRowElement.querySelector('.button--moveWorkOrderMilestoneTypeDown') as HTMLButtonElement + tableRowElement.querySelector( + '.button--moveWorkOrderMilestoneTypeDown' + ) as HTMLButtonElement ).addEventListener('click', moveWorkOrderMilestoneType) tableRowElement @@ -206,37 +215,35 @@ const renderWorkOrderMilestoneTypes = () => { containerElement.append(tableRowElement) } } +;( + document.querySelector('#form--addWorkOrderMilestoneType') as HTMLFormElement +).addEventListener('submit', (submitEvent: SubmitEvent) => { + submitEvent.preventDefault() -;(document.querySelector('#form--addWorkOrderMilestoneType') as HTMLFormElement).addEventListener( - 'submit', - (submitEvent: SubmitEvent) => { - submitEvent.preventDefault() + const formElement = submitEvent.currentTarget as HTMLFormElement - const formElement = submitEvent.currentTarget as HTMLFormElement - - cityssm.postJSON( - los.urlPrefix + '/admin/doAddWorkOrderMilestoneType', - formElement, - (responseJSON: { - success: boolean - errorMessage?: string - workOrderMilestoneTypes?: recordTypes.WorkOrderMilestoneType[] - }) => { - if (responseJSON.success) { - workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes! - renderWorkOrderMilestoneTypes() - formElement.reset() - formElement.querySelector('input')!.focus() - } else { - bulmaJS.alert({ - title: 'Error Adding Work Order Milestone Type', - message: responseJSON.errorMessage || '', - contextualColorName: 'danger' - }) - } + cityssm.postJSON( + los.urlPrefix + '/admin/doAddWorkOrderMilestoneType', + formElement, + (responseJSON: { + success: boolean + errorMessage?: string + workOrderMilestoneTypes?: recordTypes.WorkOrderMilestoneType[] + }) => { + if (responseJSON.success) { + workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes! + renderWorkOrderMilestoneTypes() + formElement.reset() + formElement.querySelector('input')!.focus() + } else { + bulmaJS.alert({ + title: 'Error Adding Work Order Milestone Type', + message: responseJSON.errorMessage ?? '', + contextualColorName: 'danger' + }) } - ) - } -) + } + ) +}) renderWorkOrderMilestoneTypes() diff --git a/public-typescript/adminTables/adminTablesWorkOrderTypes.js b/public-typescript/adminTables/adminTablesWorkOrderTypes.js index 0c9e8cba..72dbc145 100644 --- a/public-typescript/adminTables/adminTablesWorkOrderTypes.js +++ b/public-typescript/adminTables/adminTablesWorkOrderTypes.js @@ -3,9 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); let workOrderTypes = exports.workOrderTypes; delete exports.workOrderTypes; -const updateWorkOrderType = (submitEvent) => { +function updateWorkOrderType(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/admin/doUpdateWorkOrderType', submitEvent.currentTarget, (responseJSON) => { + var _a; if (responseJSON.success) { workOrderTypes = responseJSON.workOrderTypes; bulmaJS.alert({ @@ -16,19 +17,20 @@ const updateWorkOrderType = (submitEvent) => { else { bulmaJS.alert({ title: 'Error Updating Work Order Type', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); -}; +} const deleteWorkOrderType = (clickEvent) => { const tableRowElement = clickEvent.currentTarget.closest('tr'); const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + '/admin/doDeleteWorkOrderType', { workOrderTypeId }, (responseJSON) => { + var _a; if (responseJSON.success) { workOrderTypes = responseJSON.workOrderTypes; if (workOrderTypes.length === 0) { @@ -45,12 +47,12 @@ const deleteWorkOrderType = (clickEvent) => { else { bulmaJS.alert({ title: 'Error Deleting Work Order Type', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } bulmaJS.confirm({ title: 'Delete Work Order Type', message: `Are you sure you want to delete this work order type?
@@ -63,7 +65,7 @@ const deleteWorkOrderType = (clickEvent) => { } }); }; -const moveWorkOrderType = (clickEvent) => { +function moveWorkOrderType(clickEvent) { const buttonElement = clickEvent.currentTarget; const tableRowElement = buttonElement.closest('tr'); const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; @@ -73,6 +75,7 @@ const moveWorkOrderType = (clickEvent) => { workOrderTypeId, moveToEnd: clickEvent.shiftKey ? '1' : '0' }, (responseJSON) => { + var _a; if (responseJSON.success) { workOrderTypes = responseJSON.workOrderTypes; renderWorkOrderTypes(); @@ -80,13 +83,14 @@ const moveWorkOrderType = (clickEvent) => { else { bulmaJS.alert({ title: 'Error Moving Work Order Type', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); -}; -const renderWorkOrderTypes = () => { +} +function renderWorkOrderTypes() { + var _a; const containerElement = document.querySelector('#container--workOrderTypes'); if (workOrderTypes.length === 0) { containerElement.innerHTML = ` @@ -107,7 +111,7 @@ const renderWorkOrderTypes = () => { ('
' + '
' + '' + '
' + '
' + @@ -136,11 +140,12 @@ const renderWorkOrderTypes = () => { .addEventListener('click', deleteWorkOrderType); containerElement.append(tableRowElement); } -}; +} document.querySelector('#form--addWorkOrderType').addEventListener('submit', (submitEvent) => { submitEvent.preventDefault(); const formElement = submitEvent.currentTarget; cityssm.postJSON(los.urlPrefix + '/admin/doAddWorkOrderType', formElement, (responseJSON) => { + var _a; if (responseJSON.success) { workOrderTypes = responseJSON.workOrderTypes; renderWorkOrderTypes(); @@ -150,7 +155,7 @@ document.querySelector('#form--addWorkOrderType').addEventListener('submit', (su else { bulmaJS.alert({ title: 'Error Adding Work Order Type', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } diff --git a/public-typescript/adminTables/adminTablesWorkOrderTypes.ts b/public-typescript/adminTables/adminTablesWorkOrderTypes.ts index ce21b1ba..74d89fbe 100644 --- a/public-typescript/adminTables/adminTablesWorkOrderTypes.ts +++ b/public-typescript/adminTables/adminTablesWorkOrderTypes.ts @@ -15,7 +15,7 @@ declare const los: globalTypes.LOS let workOrderTypes: recordTypes.WorkOrderType[] = exports.workOrderTypes delete exports.workOrderTypes -const updateWorkOrderType = (submitEvent: SubmitEvent) => { +function updateWorkOrderType(submitEvent: SubmitEvent): void { submitEvent.preventDefault() cityssm.postJSON( @@ -36,7 +36,7 @@ const updateWorkOrderType = (submitEvent: SubmitEvent) => { } else { bulmaJS.alert({ title: 'Error Updating Work Order Type', - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -44,12 +44,12 @@ const updateWorkOrderType = (submitEvent: SubmitEvent) => { ) } -const deleteWorkOrderType = (clickEvent: Event) => { +const deleteWorkOrderType = (clickEvent: Event): void => { const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest('tr')! const workOrderTypeId = tableRowElement.dataset.workOrderTypeId - const doDelete = () => { + function doDelete(): void { cityssm.postJSON( los.urlPrefix + '/admin/doDeleteWorkOrderType', { @@ -76,7 +76,7 @@ const deleteWorkOrderType = (clickEvent: Event) => { } else { bulmaJS.alert({ title: 'Error Deleting Work Order Type', - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -97,7 +97,7 @@ const deleteWorkOrderType = (clickEvent: Event) => { }) } -const moveWorkOrderType = (clickEvent: MouseEvent) => { +function moveWorkOrderType(clickEvent: MouseEvent): void { const buttonElement = clickEvent.currentTarget as HTMLButtonElement const tableRowElement = buttonElement.closest('tr')! @@ -106,8 +106,8 @@ const moveWorkOrderType = (clickEvent: MouseEvent) => { cityssm.postJSON( los.urlPrefix + - '/admin/' + - (buttonElement.dataset.direction === 'up' ? 'doMoveWorkOrderTypeUp' : 'doMoveWorkOrderTypeDown'), + '/admin/' + + (buttonElement.dataset.direction === 'up' ? 'doMoveWorkOrderTypeUp' : 'doMoveWorkOrderTypeDown'), { workOrderTypeId, moveToEnd: clickEvent.shiftKey ? '1' : '0' @@ -123,7 +123,7 @@ const moveWorkOrderType = (clickEvent: MouseEvent) => { } else { bulmaJS.alert({ title: 'Error Moving Work Order Type', - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -131,7 +131,7 @@ const moveWorkOrderType = (clickEvent: MouseEvent) => { ) } -const renderWorkOrderTypes = () => { +function renderWorkOrderTypes(): void { const containerElement = document.querySelector('#container--workOrderTypes') as HTMLTableSectionElement if (workOrderTypes.length === 0) { @@ -158,7 +158,7 @@ const renderWorkOrderTypes = () => { ('
' + '
' + '' + '
' + '
' + @@ -184,14 +184,10 @@ const renderWorkOrderTypes = () => { '
' + '' - tableRowElement.querySelector('form')!.addEventListener('submit', updateWorkOrderType) - - ;(tableRowElement.querySelector('.button--moveWorkOrderTypeUp') as HTMLButtonElement).addEventListener( + tableRowElement.querySelector('form')!.addEventListener('submit', updateWorkOrderType); (tableRowElement.querySelector('.button--moveWorkOrderTypeUp') as HTMLButtonElement).addEventListener( 'click', moveWorkOrderType - ) - - ;(tableRowElement.querySelector('.button--moveWorkOrderTypeDown') as HTMLButtonElement).addEventListener( + ); (tableRowElement.querySelector('.button--moveWorkOrderTypeDown') as HTMLButtonElement).addEventListener( 'click', moveWorkOrderType ) @@ -202,9 +198,7 @@ const renderWorkOrderTypes = () => { containerElement.append(tableRowElement) } -} - -;(document.querySelector('#form--addWorkOrderType') as HTMLFormElement).addEventListener( +}(document.querySelector('#form--addWorkOrderType') as HTMLFormElement).addEventListener( 'submit', (submitEvent: SubmitEvent) => { submitEvent.preventDefault() @@ -227,7 +221,7 @@ const renderWorkOrderTypes = () => { } else { bulmaJS.alert({ title: 'Error Adding Work Order Type', - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } diff --git a/public-typescript/dashboard.js b/public-typescript/dashboard.js index 3612a1e0..a54132e6 100644 --- a/public-typescript/dashboard.js +++ b/public-typescript/dashboard.js @@ -2,9 +2,10 @@ /* eslint-disable unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); (() => { + var _a; const los = exports.los; const workOrderNumberCircleElements = document.querySelectorAll('.fa-circle[data-work-order-number'); for (const workOrderNumberCircleElement of workOrderNumberCircleElements) { - workOrderNumberCircleElement.style.color = los.getRandomColor(workOrderNumberCircleElement.dataset.workOrderNumber || ''); + workOrderNumberCircleElement.style.color = los.getRandomColor((_a = workOrderNumberCircleElement.dataset.workOrderNumber) !== null && _a !== void 0 ? _a : ''); } })(); diff --git a/public-typescript/dashboard.ts b/public-typescript/dashboard.ts index 76333a68..4b7d8bdf 100644 --- a/public-typescript/dashboard.ts +++ b/public-typescript/dashboard.ts @@ -1,17 +1,16 @@ /* eslint-disable unicorn/prefer-module */ import type * as globalTypes from '../types/globalTypes' - ;(() => { const los = exports.los as globalTypes.LOS - const workOrderNumberCircleElements = document.querySelectorAll( + const workOrderNumberCircleElements: NodeListOf = document.querySelectorAll( '.fa-circle[data-work-order-number' - ) as NodeListOf + ) for (const workOrderNumberCircleElement of workOrderNumberCircleElements) { workOrderNumberCircleElement.style.color = los.getRandomColor( - workOrderNumberCircleElement.dataset.workOrderNumber || '' + workOrderNumberCircleElement.dataset.workOrderNumber ?? '' ) } })() diff --git a/public-typescript/lotOccupancyEdit.js b/public-typescript/lotOccupancyEdit.js index 4346b923..ce1d0e6a 100644 --- a/public-typescript/lotOccupancyEdit.js +++ b/public-typescript/lotOccupancyEdit.js @@ -1,8 +1,8 @@ "use strict"; -/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ +/* eslint-disable spaced-comment, @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); (() => { - var _a, _b, _c; + var _a; const los = exports.los; const lotOccupancyId = document.querySelector('#lotOccupancy--lotOccupancyId').value; const isCreate = lotOccupancyId === ''; @@ -16,6 +16,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.postJSON(los.urlPrefix + '/lotOccupancies/' + (isCreate ? 'doCreateLotOccupancy' : 'doUpdateLotOccupancy'), formElement, (responseJSON) => { + var _a; if (responseJSON.success) { los.clearUnsavedChanges(); if (isCreate || refreshAfterSave) { @@ -30,8 +31,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { bulmaJS.alert({ - title: 'Error Saving ' + exports.aliases.occupancy, - message: responseJSON.errorMessage || '', + title: 'Error Saving ' + los.escapedAliases.Occupancy, + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } @@ -41,10 +42,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); for (const formInputElement of formInputElements) { formInputElement.addEventListener('change', los.setUnsavedChanges); } - const doCopy = () => { + function doCopy() { cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doCopyLotOccupancy', { lotOccupancyId }, (responseJSON) => { + var _a; if (responseJSON.success) { cityssm.disableNavBlocker(); window.location.href = los.getLotOccupancyURL(responseJSON.lotOccupancyId, true); @@ -52,12 +54,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Copying Record', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } (_a = document .querySelector('#button--copyLotOccupancy')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', (clickEvent) => { clickEvent.preventDefault(); @@ -80,13 +82,15 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } }); - (_b = document - .querySelector('#button--deleteLotOccupancy')) === null || _b === void 0 ? void 0 : _b.addEventListener('click', (clickEvent) => { + document + .querySelector('#button--deleteLotOccupancy') + .addEventListener('click', (clickEvent) => { clickEvent.preventDefault(); - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doDeleteLotOccupancy', { lotOccupancyId }, (responseJSON) => { + var _a; if (responseJSON.success) { cityssm.disableNavBlocker(); window.location.href = los.getLotOccupancyURL(); @@ -94,14 +98,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Deleting Record', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } bulmaJS.confirm({ - title: 'Delete ' + exports.aliases.occupancy + ' Record', + title: `Delete ${los.escapedAliases.Occupancy} Record`, message: 'Are you sure you want to delete this record?', contextualColorName: 'warning', okButton: { @@ -110,11 +114,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); } }); }); - (_c = document - .querySelector('#button--createWorkOrder')) === null || _c === void 0 ? void 0 : _c.addEventListener('click', (clickEvent) => { + document + .querySelector('#button--createWorkOrder') + .addEventListener('click', (clickEvent) => { clickEvent.preventDefault(); let createCloseModalFunction; - const doCreate = (formEvent) => { + function doCreate(formEvent) { formEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/workOrders/doCreateWorkOrder', formEvent.currentTarget, (responseJSON) => { if (responseJSON.success) { @@ -126,11 +131,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); okButton: { text: 'Yes, Open the Work Order', callbackFunction: () => { - window.location.href = - los.urlPrefix + - '/workOrders/' + - responseJSON.workOrderId + - '/edit'; + window.location.href = los.getWorkOrderURL(responseJSON.workOrderId, true); } } }); @@ -143,7 +144,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } }); - }; + } cityssm.openHtmlModal('lotOccupancy-createWorkOrder', { onshow(modalElement) { ; @@ -278,26 +279,27 @@ Object.defineProperty(exports, "__esModule", { value: true }); let lotSelectModalElement; let lotSelectFormElement; let lotSelectResultsElement; - const renderSelectedLotAndClose = (lotId, lotName) => { + function renderSelectedLotAndClose(lotId, lotName) { ; document.querySelector('#lotOccupancy--lotId').value = lotId.toString(); document.querySelector('#lotOccupancy--lotName').value = lotName; los.setUnsavedChanges(); lotSelectCloseModalFunction(); - }; - const selectExistingLot = (clickEvent) => { + } + function selectExistingLot(clickEvent) { clickEvent.preventDefault(); const selectedLotElement = clickEvent.currentTarget; renderSelectedLotAndClose(selectedLotElement.dataset.lotId, selectedLotElement.dataset.lotName); - }; - const searchLots = () => { + } + function searchLots() { lotSelectResultsElement.innerHTML = los.getLoadingParagraphHTML('Searching...'); cityssm.postJSON(los.urlPrefix + '/lots/doSearchLots', lotSelectFormElement, (responseJSON) => { + var _a, _b; if (responseJSON.count === 0) { lotSelectResultsElement.innerHTML = `
-

No results.

-
`; +

No results.

+
`; return; } const panelElement = document.createElement('div'); @@ -311,10 +313,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); panelBlockElement.innerHTML = '
' + ('
' + - cityssm.escapeHTML(lot.lotName || '') + + cityssm.escapeHTML((_a = lot.lotName) !== null && _a !== void 0 ? _a : '') + '
' + '' + - cityssm.escapeHTML(lot.mapName || '') + + cityssm.escapeHTML((_b = lot.mapName) !== null && _b !== void 0 ? _b : '') + '' + '
') + ('
' + @@ -331,28 +333,30 @@ Object.defineProperty(exports, "__esModule", { value: true }); lotSelectResultsElement.innerHTML = ''; lotSelectResultsElement.append(panelElement); }); - }; - const createLotAndSelect = (submitEvent) => { + } + function createLotAndSelect(submitEvent) { submitEvent.preventDefault(); const lotName = lotSelectModalElement.querySelector('#lotCreate--lotName').value; cityssm.postJSON(los.urlPrefix + '/lots/doCreateLot', submitEvent.currentTarget, (responseJSON) => { + var _a; if (responseJSON.success) { renderSelectedLotAndClose(responseJSON.lotId, lotName); } else { bulmaJS.alert({ title: `Error Creating ${los.escapedAliases.Lot}`, - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } cityssm.openHtmlModal('lotOccupancy-selectLot', { onshow: (modalElement) => { los.populateAliases(modalElement); }, onshown: (modalElement, closeModalFunction) => { + var _a; bulmaJS.toggleHtmlClipped(); lotSelectModalElement = modalElement; lotSelectCloseModalFunction = closeModalFunction; @@ -399,7 +403,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); for (const map of exports.maps) { const optionElement = document.createElement('option'); optionElement.value = map.mapId.toString(); - optionElement.textContent = map.mapName || '(No Name)'; + optionElement.textContent = + ((_a = map.mapName) !== null && _a !== void 0 ? _a : '') === '' ? '(No Name)' : map.mapName; mapElement.append(optionElement); } ; @@ -811,7 +816,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true }); let lotOccupancyComments = exports.lotOccupancyComments; delete exports.lotOccupancyComments; - const openEditLotOccupancyComment = (clickEvent) => { + function openEditLotOccupancyComment(clickEvent) { const lotOccupancyCommentId = Number.parseInt(clickEvent.currentTarget.closest('tr').dataset .lotOccupancyCommentId, 10); const lotOccupancyComment = lotOccupancyComments.find((currentLotOccupancyComment) => { @@ -820,9 +825,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); let editFormElement; let editCloseModalFunction; - const editComment = (submitEvent) => { + function editComment(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doUpdateLotOccupancyComment', editFormElement, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupancyComments = responseJSON.lotOccupancyComments; editCloseModalFunction(); @@ -831,12 +837,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Updating Comment', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } cityssm.openHtmlModal('lotOccupancy-editComment', { onshow: (modalElement) => { los.populateAliases(modalElement); @@ -865,15 +871,16 @@ Object.defineProperty(exports, "__esModule", { value: true }); bulmaJS.toggleHtmlClipped(); } }); - }; - const deleteLotOccupancyComment = (clickEvent) => { + } + function deleteLotOccupancyComment(clickEvent) { const lotOccupancyCommentId = Number.parseInt(clickEvent.currentTarget.closest('tr').dataset .lotOccupancyCommentId, 10); - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doDeleteLotOccupancyComment', { lotOccupancyId, lotOccupancyCommentId }, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupancyComments = responseJSON.lotOccupancyComments; renderLotOccupancyComments(); @@ -881,12 +888,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Removing Comment', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } bulmaJS.confirm({ title: 'Remove Comment?', message: 'Are you sure you want to remove this comment?', @@ -896,8 +903,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); }, contextualColorName: 'warning' }); - }; - const renderLotOccupancyComments = () => { + } + function renderLotOccupancyComments() { + var _a, _b; const containerElement = document.querySelector('#container--lotOccupancyComments'); if (lotOccupancyComments.length === 0) { containerElement.innerHTML = @@ -922,7 +930,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); lotOccupancyComment.lotOccupancyCommentId.toString(); tableRowElement.innerHTML = '' + - cityssm.escapeHTML(lotOccupancyComment.recordCreate_userName || '') + + cityssm.escapeHTML((_a = lotOccupancyComment.recordCreate_userName) !== null && _a !== void 0 ? _a : '') + '' + '' + lotOccupancyComment.lotOccupancyCommentDateString + @@ -931,7 +939,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); : ' ' + lotOccupancyComment.lotOccupancyCommentTimeString) + '' + '' + - cityssm.escapeHTML(lotOccupancyComment.lotOccupancyComment || '') + + cityssm.escapeHTML((_b = lotOccupancyComment.lotOccupancyComment) !== null && _b !== void 0 ? _b : '') + '' + ('' + '
' + @@ -954,13 +962,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); } containerElement.innerHTML = ''; containerElement.append(tableElement); - }; + } document.querySelector('#button--addComment').addEventListener('click', () => { let addFormElement; let addCloseModalFunction; - const addComment = (submitEvent) => { + function addComment(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doAddLotOccupancyComment', addFormElement, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupancyComments = responseJSON.lotOccupancyComments; addCloseModalFunction(); @@ -969,12 +978,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Adding Comment', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } cityssm.openHtmlModal('lotOccupancy-addComment', { onshow: (modalElement) => { los.populateAliases(modalElement); diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js index 60252ae4..0780d5e3 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js @@ -1,8 +1,8 @@ "use strict"; -/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ +/* eslint-disable spaced-comment, @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); (() => { - var _a, _b, _c; + var _a; const los = exports.los; const lotOccupancyId = document.querySelector('#lotOccupancy--lotOccupancyId').value; const isCreate = lotOccupancyId === ''; @@ -16,6 +16,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.postJSON(los.urlPrefix + '/lotOccupancies/' + (isCreate ? 'doCreateLotOccupancy' : 'doUpdateLotOccupancy'), formElement, (responseJSON) => { + var _a; if (responseJSON.success) { los.clearUnsavedChanges(); if (isCreate || refreshAfterSave) { @@ -30,8 +31,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { bulmaJS.alert({ - title: 'Error Saving ' + exports.aliases.occupancy, - message: responseJSON.errorMessage || '', + title: 'Error Saving ' + los.escapedAliases.Occupancy, + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } @@ -41,10 +42,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); for (const formInputElement of formInputElements) { formInputElement.addEventListener('change', los.setUnsavedChanges); } - const doCopy = () => { + function doCopy() { cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doCopyLotOccupancy', { lotOccupancyId }, (responseJSON) => { + var _a; if (responseJSON.success) { cityssm.disableNavBlocker(); window.location.href = los.getLotOccupancyURL(responseJSON.lotOccupancyId, true); @@ -52,12 +54,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Copying Record', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } (_a = document .querySelector('#button--copyLotOccupancy')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', (clickEvent) => { clickEvent.preventDefault(); @@ -80,13 +82,15 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } }); - (_b = document - .querySelector('#button--deleteLotOccupancy')) === null || _b === void 0 ? void 0 : _b.addEventListener('click', (clickEvent) => { + document + .querySelector('#button--deleteLotOccupancy') + .addEventListener('click', (clickEvent) => { clickEvent.preventDefault(); - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doDeleteLotOccupancy', { lotOccupancyId }, (responseJSON) => { + var _a; if (responseJSON.success) { cityssm.disableNavBlocker(); window.location.href = los.getLotOccupancyURL(); @@ -94,14 +98,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Deleting Record', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } bulmaJS.confirm({ - title: 'Delete ' + exports.aliases.occupancy + ' Record', + title: `Delete ${los.escapedAliases.Occupancy} Record`, message: 'Are you sure you want to delete this record?', contextualColorName: 'warning', okButton: { @@ -110,11 +114,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); } }); }); - (_c = document - .querySelector('#button--createWorkOrder')) === null || _c === void 0 ? void 0 : _c.addEventListener('click', (clickEvent) => { + document + .querySelector('#button--createWorkOrder') + .addEventListener('click', (clickEvent) => { clickEvent.preventDefault(); let createCloseModalFunction; - const doCreate = (formEvent) => { + function doCreate(formEvent) { formEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/workOrders/doCreateWorkOrder', formEvent.currentTarget, (responseJSON) => { if (responseJSON.success) { @@ -126,11 +131,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); okButton: { text: 'Yes, Open the Work Order', callbackFunction: () => { - window.location.href = - los.urlPrefix + - '/workOrders/' + - responseJSON.workOrderId + - '/edit'; + window.location.href = los.getWorkOrderURL(responseJSON.workOrderId, true); } } }); @@ -143,7 +144,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } }); - }; + } cityssm.openHtmlModal('lotOccupancy-createWorkOrder', { onshow(modalElement) { ; @@ -278,26 +279,27 @@ Object.defineProperty(exports, "__esModule", { value: true }); let lotSelectModalElement; let lotSelectFormElement; let lotSelectResultsElement; - const renderSelectedLotAndClose = (lotId, lotName) => { + function renderSelectedLotAndClose(lotId, lotName) { ; document.querySelector('#lotOccupancy--lotId').value = lotId.toString(); document.querySelector('#lotOccupancy--lotName').value = lotName; los.setUnsavedChanges(); lotSelectCloseModalFunction(); - }; - const selectExistingLot = (clickEvent) => { + } + function selectExistingLot(clickEvent) { clickEvent.preventDefault(); const selectedLotElement = clickEvent.currentTarget; renderSelectedLotAndClose(selectedLotElement.dataset.lotId, selectedLotElement.dataset.lotName); - }; - const searchLots = () => { + } + function searchLots() { lotSelectResultsElement.innerHTML = los.getLoadingParagraphHTML('Searching...'); cityssm.postJSON(los.urlPrefix + '/lots/doSearchLots', lotSelectFormElement, (responseJSON) => { + var _a, _b; if (responseJSON.count === 0) { lotSelectResultsElement.innerHTML = `
-

No results.

-
`; +

No results.

+
`; return; } const panelElement = document.createElement('div'); @@ -311,10 +313,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); panelBlockElement.innerHTML = '
' + ('
' + - cityssm.escapeHTML(lot.lotName || '') + + cityssm.escapeHTML((_a = lot.lotName) !== null && _a !== void 0 ? _a : '') + '
' + '' + - cityssm.escapeHTML(lot.mapName || '') + + cityssm.escapeHTML((_b = lot.mapName) !== null && _b !== void 0 ? _b : '') + '' + '
') + ('
' + @@ -331,28 +333,30 @@ Object.defineProperty(exports, "__esModule", { value: true }); lotSelectResultsElement.innerHTML = ''; lotSelectResultsElement.append(panelElement); }); - }; - const createLotAndSelect = (submitEvent) => { + } + function createLotAndSelect(submitEvent) { submitEvent.preventDefault(); const lotName = lotSelectModalElement.querySelector('#lotCreate--lotName').value; cityssm.postJSON(los.urlPrefix + '/lots/doCreateLot', submitEvent.currentTarget, (responseJSON) => { + var _a; if (responseJSON.success) { renderSelectedLotAndClose(responseJSON.lotId, lotName); } else { bulmaJS.alert({ title: `Error Creating ${los.escapedAliases.Lot}`, - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } cityssm.openHtmlModal('lotOccupancy-selectLot', { onshow: (modalElement) => { los.populateAliases(modalElement); }, onshown: (modalElement, closeModalFunction) => { + var _a; bulmaJS.toggleHtmlClipped(); lotSelectModalElement = modalElement; lotSelectCloseModalFunction = closeModalFunction; @@ -399,7 +403,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); for (const map of exports.maps) { const optionElement = document.createElement('option'); optionElement.value = map.mapId.toString(); - optionElement.textContent = map.mapName || '(No Name)'; + optionElement.textContent = + ((_a = map.mapName) !== null && _a !== void 0 ? _a : '') === '' ? '(No Name)' : map.mapName; mapElement.append(optionElement); } ; diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts index 728c6ae9..6e552dca 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ +/* eslint-disable spaced-comment, @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ import type * as globalTypes from '../../types/globalTypes' import type * as recordTypes from '../../types/recordTypes' @@ -57,8 +57,8 @@ declare const bulmaJS: BulmaJS } } else { bulmaJS.alert({ - title: 'Error Saving ' + exports.aliases.occupancy, - message: responseJSON.errorMessage || '', + title: 'Error Saving ' + los.escapedAliases.Occupancy, + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -72,7 +72,7 @@ declare const bulmaJS: BulmaJS formInputElement.addEventListener('change', los.setUnsavedChanges) } - const doCopy = () => { + function doCopy(): void { cityssm.postJSON( los.urlPrefix + '/lotOccupancies/doCopyLotOccupancy', { @@ -92,7 +92,7 @@ declare const bulmaJS: BulmaJS } else { bulmaJS.alert({ title: 'Error Copying Record', - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -125,11 +125,11 @@ declare const bulmaJS: BulmaJS }) document - .querySelector('#button--deleteLotOccupancy') - ?.addEventListener('click', (clickEvent) => { + .querySelector('#button--deleteLotOccupancy')! + .addEventListener('click', (clickEvent) => { clickEvent.preventDefault() - const doDelete = () => { + function doDelete(): void { cityssm.postJSON( los.urlPrefix + '/lotOccupancies/doDeleteLotOccupancy', { @@ -142,7 +142,7 @@ declare const bulmaJS: BulmaJS } else { bulmaJS.alert({ title: 'Error Deleting Record', - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -151,7 +151,7 @@ declare const bulmaJS: BulmaJS } bulmaJS.confirm({ - title: 'Delete ' + exports.aliases.occupancy + ' Record', + title: `Delete ${los.escapedAliases.Occupancy} Record`, message: 'Are you sure you want to delete this record?', contextualColorName: 'warning', okButton: { @@ -162,13 +162,13 @@ declare const bulmaJS: BulmaJS }) document - .querySelector('#button--createWorkOrder') - ?.addEventListener('click', (clickEvent) => { + .querySelector('#button--createWorkOrder')! + .addEventListener('click', (clickEvent) => { clickEvent.preventDefault() let createCloseModalFunction: () => void - const doCreate = (formEvent: SubmitEvent) => { + function doCreate(formEvent: SubmitEvent): void { formEvent.preventDefault() cityssm.postJSON( @@ -189,11 +189,10 @@ declare const bulmaJS: BulmaJS okButton: { text: 'Yes, Open the Work Order', callbackFunction: () => { - window.location.href = - los.urlPrefix + - '/workOrders/' + - responseJSON.workOrderId + - '/edit' + window.location.href = los.getWorkOrderURL( + responseJSON.workOrderId, + true + ) } } }) @@ -419,10 +418,10 @@ declare const bulmaJS: BulmaJS let lotSelectFormElement: HTMLFormElement let lotSelectResultsElement: HTMLElement - const renderSelectedLotAndClose = ( + function renderSelectedLotAndClose( lotId: number | string, lotName: string - ) => { + ): void { ;( document.querySelector('#lotOccupancy--lotId') as HTMLInputElement ).value = lotId.toString() @@ -434,7 +433,7 @@ declare const bulmaJS: BulmaJS lotSelectCloseModalFunction() } - const selectExistingLot = (clickEvent: Event) => { + function selectExistingLot(clickEvent: Event): void { clickEvent.preventDefault() const selectedLotElement = clickEvent.currentTarget as HTMLElement @@ -445,7 +444,7 @@ declare const bulmaJS: BulmaJS ) } - const searchLots = () => { + function searchLots(): void { lotSelectResultsElement.innerHTML = los.getLoadingParagraphHTML('Searching...') @@ -455,8 +454,8 @@ declare const bulmaJS: BulmaJS (responseJSON: { count: number; lots: recordTypes.Lot[] }) => { if (responseJSON.count === 0) { lotSelectResultsElement.innerHTML = `
-

No results.

-
` +

No results.

+
` return } @@ -475,10 +474,10 @@ declare const bulmaJS: BulmaJS panelBlockElement.innerHTML = '
' + ('
' + - cityssm.escapeHTML(lot.lotName || '') + + cityssm.escapeHTML(lot.lotName ?? '') + '
' + '' + - cityssm.escapeHTML(lot.mapName || '') + + cityssm.escapeHTML(lot.mapName ?? '') + '' + '
') + ('
' + @@ -501,7 +500,7 @@ declare const bulmaJS: BulmaJS ) } - const createLotAndSelect = (submitEvent: SubmitEvent) => { + function createLotAndSelect(submitEvent: SubmitEvent): void { submitEvent.preventDefault() const lotName = ( @@ -523,7 +522,7 @@ declare const bulmaJS: BulmaJS } else { bulmaJS.alert({ title: `Error Creating ${los.escapedAliases.Lot}`, - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -622,7 +621,8 @@ declare const bulmaJS: BulmaJS for (const map of exports.maps as recordTypes.Map[]) { const optionElement = document.createElement('option') optionElement.value = map.mapId!.toString() - optionElement.textContent = map.mapName || '(No Name)' + optionElement.textContent = + (map.mapName ?? '') === '' ? '(No Name)' : map.mapName! mapElement.append(optionElement) } diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.js b/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.js index 20741725..79353285 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.js +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); let lotOccupancyComments = exports.lotOccupancyComments; delete exports.lotOccupancyComments; -const openEditLotOccupancyComment = (clickEvent) => { +function openEditLotOccupancyComment(clickEvent) { const lotOccupancyCommentId = Number.parseInt(clickEvent.currentTarget.closest('tr').dataset .lotOccupancyCommentId, 10); const lotOccupancyComment = lotOccupancyComments.find((currentLotOccupancyComment) => { @@ -12,9 +12,10 @@ const openEditLotOccupancyComment = (clickEvent) => { }); let editFormElement; let editCloseModalFunction; - const editComment = (submitEvent) => { + function editComment(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doUpdateLotOccupancyComment', editFormElement, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupancyComments = responseJSON.lotOccupancyComments; editCloseModalFunction(); @@ -23,12 +24,12 @@ const openEditLotOccupancyComment = (clickEvent) => { else { bulmaJS.alert({ title: 'Error Updating Comment', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } cityssm.openHtmlModal('lotOccupancy-editComment', { onshow: (modalElement) => { los.populateAliases(modalElement); @@ -57,15 +58,16 @@ const openEditLotOccupancyComment = (clickEvent) => { bulmaJS.toggleHtmlClipped(); } }); -}; -const deleteLotOccupancyComment = (clickEvent) => { +} +function deleteLotOccupancyComment(clickEvent) { const lotOccupancyCommentId = Number.parseInt(clickEvent.currentTarget.closest('tr').dataset .lotOccupancyCommentId, 10); - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doDeleteLotOccupancyComment', { lotOccupancyId, lotOccupancyCommentId }, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupancyComments = responseJSON.lotOccupancyComments; renderLotOccupancyComments(); @@ -73,12 +75,12 @@ const deleteLotOccupancyComment = (clickEvent) => { else { bulmaJS.alert({ title: 'Error Removing Comment', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } bulmaJS.confirm({ title: 'Remove Comment?', message: 'Are you sure you want to remove this comment?', @@ -88,8 +90,9 @@ const deleteLotOccupancyComment = (clickEvent) => { }, contextualColorName: 'warning' }); -}; -const renderLotOccupancyComments = () => { +} +function renderLotOccupancyComments() { + var _a, _b; const containerElement = document.querySelector('#container--lotOccupancyComments'); if (lotOccupancyComments.length === 0) { containerElement.innerHTML = @@ -114,7 +117,7 @@ const renderLotOccupancyComments = () => { lotOccupancyComment.lotOccupancyCommentId.toString(); tableRowElement.innerHTML = '' + - cityssm.escapeHTML(lotOccupancyComment.recordCreate_userName || '') + + cityssm.escapeHTML((_a = lotOccupancyComment.recordCreate_userName) !== null && _a !== void 0 ? _a : '') + '' + '' + lotOccupancyComment.lotOccupancyCommentDateString + @@ -123,7 +126,7 @@ const renderLotOccupancyComments = () => { : ' ' + lotOccupancyComment.lotOccupancyCommentTimeString) + '' + '' + - cityssm.escapeHTML(lotOccupancyComment.lotOccupancyComment || '') + + cityssm.escapeHTML((_b = lotOccupancyComment.lotOccupancyComment) !== null && _b !== void 0 ? _b : '') + '' + ('' + '
' + @@ -146,13 +149,14 @@ const renderLotOccupancyComments = () => { } containerElement.innerHTML = ''; containerElement.append(tableElement); -}; +} document.querySelector('#button--addComment').addEventListener('click', () => { let addFormElement; let addCloseModalFunction; - const addComment = (submitEvent) => { + function addComment(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doAddLotOccupancyComment', addFormElement, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupancyComments = responseJSON.lotOccupancyComments; addCloseModalFunction(); @@ -161,12 +165,12 @@ document.querySelector('#button--addComment').addEventListener('click', () => { else { bulmaJS.alert({ title: 'Error Adding Comment', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } cityssm.openHtmlModal('lotOccupancy-addComment', { onshow: (modalElement) => { los.populateAliases(modalElement); diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.ts b/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.ts index d7066567..99188f71 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.ts +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.ts @@ -18,7 +18,7 @@ let lotOccupancyComments: recordTypes.LotOccupancyComment[] = exports.lotOccupancyComments delete exports.lotOccupancyComments -const openEditLotOccupancyComment = (clickEvent: Event) => { +function openEditLotOccupancyComment(clickEvent: Event): void { const lotOccupancyCommentId = Number.parseInt( (clickEvent.currentTarget as HTMLElement).closest('tr')!.dataset .lotOccupancyCommentId!, @@ -37,7 +37,7 @@ const openEditLotOccupancyComment = (clickEvent: Event) => { let editFormElement: HTMLFormElement let editCloseModalFunction: () => void - const editComment = (submitEvent: SubmitEvent) => { + function editComment(submitEvent: SubmitEvent): void { submitEvent.preventDefault() cityssm.postJSON( @@ -55,7 +55,7 @@ const openEditLotOccupancyComment = (clickEvent: Event) => { } else { bulmaJS.alert({ title: 'Error Updating Comment', - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -66,7 +66,6 @@ const openEditLotOccupancyComment = (clickEvent: Event) => { cityssm.openHtmlModal('lotOccupancy-editComment', { onshow: (modalElement) => { los.populateAliases(modalElement) - ;( modalElement.querySelector( '#lotOccupancyCommentEdit--lotOccupancyId' @@ -77,7 +76,6 @@ const openEditLotOccupancyComment = (clickEvent: Event) => { '#lotOccupancyCommentEdit--lotOccupancyCommentId' ) as HTMLInputElement ).value = lotOccupancyCommentId.toString() - ;( modalElement.querySelector( '#lotOccupancyCommentEdit--lotOccupancyComment' @@ -97,7 +95,6 @@ const openEditLotOccupancyComment = (clickEvent: Event) => { lotOccupancyComment.lotOccupancyCommentDateString! <= currentDateString ? currentDateString : lotOccupancyComment.lotOccupancyCommentDateString! - ;( modalElement.querySelector( '#lotOccupancyCommentEdit--lotOccupancyCommentTimeString' @@ -108,8 +105,6 @@ const openEditLotOccupancyComment = (clickEvent: Event) => { bulmaJS.toggleHtmlClipped() los.initializeDatePickers(modalElement) - // los.initializeTimePickers(modalElement); - ;( modalElement.querySelector( '#lotOccupancyCommentEdit--lotOccupancyComment' @@ -127,14 +122,14 @@ const openEditLotOccupancyComment = (clickEvent: Event) => { }) } -const deleteLotOccupancyComment = (clickEvent: Event) => { +function deleteLotOccupancyComment(clickEvent: Event): void { const lotOccupancyCommentId = Number.parseInt( (clickEvent.currentTarget as HTMLElement).closest('tr')!.dataset .lotOccupancyCommentId!, 10 ) - const doDelete = () => { + function doDelete(): void { cityssm.postJSON( los.urlPrefix + '/lotOccupancies/doDeleteLotOccupancyComment', { @@ -152,7 +147,7 @@ const deleteLotOccupancyComment = (clickEvent: Event) => { } else { bulmaJS.alert({ title: 'Error Removing Comment', - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -171,7 +166,7 @@ const deleteLotOccupancyComment = (clickEvent: Event) => { }) } -const renderLotOccupancyComments = () => { +function renderLotOccupancyComments(): void { const containerElement = document.querySelector( '#container--lotOccupancyComments' ) as HTMLElement @@ -202,7 +197,7 @@ const renderLotOccupancyComments = () => { tableRowElement.innerHTML = '' + - cityssm.escapeHTML(lotOccupancyComment.recordCreate_userName || '') + + cityssm.escapeHTML(lotOccupancyComment.recordCreate_userName ?? '') + '' + '' + lotOccupancyComment.lotOccupancyCommentDateString + @@ -211,7 +206,7 @@ const renderLotOccupancyComments = () => { : ' ' + lotOccupancyComment.lotOccupancyCommentTimeString) + '' + '' + - cityssm.escapeHTML(lotOccupancyComment.lotOccupancyComment || '') + + cityssm.escapeHTML(lotOccupancyComment.lotOccupancyComment ?? '') + '' + ('' + '
' + @@ -244,7 +239,7 @@ document.querySelector('#button--addComment')!.addEventListener('click', () => { let addFormElement: HTMLFormElement let addCloseModalFunction: () => void - const addComment = (submitEvent: SubmitEvent) => { + function addComment(submitEvent: SubmitEvent): void { submitEvent.preventDefault() cityssm.postJSON( @@ -262,7 +257,7 @@ document.querySelector('#button--addComment')!.addEventListener('click', () => { } else { bulmaJS.alert({ title: 'Error Adding Comment', - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -273,7 +268,6 @@ document.querySelector('#button--addComment')!.addEventListener('click', () => { cityssm.openHtmlModal('lotOccupancy-addComment', { onshow: (modalElement) => { los.populateAliases(modalElement) - ;( modalElement.querySelector( '#lotOccupancyCommentAdd--lotOccupancyId' @@ -282,7 +276,6 @@ document.querySelector('#button--addComment')!.addEventListener('click', () => { }, onshown: (modalElement, closeModalFunction) => { bulmaJS.toggleHtmlClipped() - ;( modalElement.querySelector( '#lotOccupancyCommentAdd--lotOccupancyComment' diff --git a/public-typescript/main.js b/public-typescript/main.js index b591cd5f..ee115222 100644 --- a/public-typescript/main.js +++ b/public-typescript/main.js @@ -47,6 +47,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } function unlockField(clickEvent) { const fieldElement = clickEvent.currentTarget.closest('.field'); + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion const inputOrSelectElement = fieldElement.querySelector('input, select'); inputOrSelectElement.classList.remove('is-readonly'); if (inputOrSelectElement.tagName === 'INPUT') { diff --git a/public-typescript/main.ts b/public-typescript/main.ts index b44ddb3e..61d35952 100644 --- a/public-typescript/main.ts +++ b/public-typescript/main.ts @@ -7,7 +7,6 @@ import type { BulmaJS } from '@cityssm/bulma-js/types' declare const cityssm: cityssmGlobal declare const bulmaJS: BulmaJS - ;(() => { /* * Unsaved Changes @@ -15,19 +14,19 @@ declare const bulmaJS: BulmaJS let _hasUnsavedChanges = false - function setUnsavedChanges() { + function setUnsavedChanges(): void { if (!hasUnsavedChanges()) { _hasUnsavedChanges = true cityssm.enableNavBlocker() } } - function clearUnsavedChanges() { + function clearUnsavedChanges(): void { _hasUnsavedChanges = false cityssm.disableNavBlocker() } - function hasUnsavedChanges() { + function hasUnsavedChanges(): boolean { return _hasUnsavedChanges } @@ -74,9 +73,10 @@ declare const bulmaJS: BulmaJS '.field' )! - const inputOrSelectElement = fieldElement.querySelector('input, select') as - | HTMLInputElement - | HTMLSelectElement + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion + const inputOrSelectElement = fieldElement.querySelector( + 'input, select' + ) as HTMLElement inputOrSelectElement.classList.remove('is-readonly') @@ -116,9 +116,8 @@ declare const bulmaJS: BulmaJS } function initializeDatePickers(containerElement: HTMLElement): void { - const dateElements = containerElement.querySelectorAll( - "input[type='date']" - ) as NodeListOf + const dateElements: NodeListOf = + containerElement.querySelectorAll("input[type='date']") for (const dateElement of dateElements) { const datePickerOptions = Object.assign({}, datePickerBaseOptions) @@ -159,9 +158,8 @@ declare const bulmaJS: BulmaJS }) // Get the datepicker container element - const datepickerElement = containerElement.querySelector( - '#' + cal._id - ) as HTMLElement + const datepickerElement: HTMLElement | null = + containerElement.querySelector('#' + cal._id)! // Override the previous and next month button styles const datePickerNavButtonElements = datepickerElement.querySelectorAll( @@ -176,9 +174,8 @@ declare const bulmaJS: BulmaJS } // Override the clear button style - const clearButtonElement = datepickerElement.querySelector( - '.datetimepicker-clear-button' - ) as HTMLElement + const clearButtonElement: HTMLElement | null = + datepickerElement.querySelector('.datetimepicker-clear-button') if (clearButtonElement) { if (dateElement.required) { @@ -282,9 +279,8 @@ declare const bulmaJS: BulmaJS */ function populateAliases(containerElement: HTMLElement): void { - const aliasElements = containerElement.querySelectorAll( - '.alias' - ) as NodeListOf + const aliasElements: NodeListOf = + containerElement.querySelectorAll('.alias') for (const aliasElement of aliasElements) { switch (aliasElement.dataset.alias) { @@ -375,7 +371,7 @@ declare const bulmaJS: BulmaJS const hues = ['red', 'green', 'orange', 'blue', 'pink', 'yellow', 'purple'] const luminosity = ['bright', 'light', 'dark'] - function getRandomColor(seedString: string) { + function getRandomColor(seedString: string): string { let actualSeedString = seedString if (actualSeedString.length < 2) { @@ -437,7 +433,7 @@ declare const bulmaJS: BulmaJS limit: number, offset: number, count: number - ) { + ): string { return ( '
' + ('
' + @@ -493,11 +489,19 @@ declare const bulmaJS: BulmaJS ) } - function getMapURL(mapId: number | string = '', edit = false, time = false) { + function getMapURL( + mapId: number | string = '', + edit = false, + time = false + ): string { return getRecordURL('maps', mapId, edit, time) } - function getLotURL(lotId: number | string = '', edit = false, time = false) { + function getLotURL( + lotId: number | string = '', + edit = false, + time = false + ): string { return getRecordURL('lots', lotId, edit, time) } @@ -505,7 +509,7 @@ declare const bulmaJS: BulmaJS lotOccupancyId: number | string = '', edit = false, time = false - ) { + ): string { return getRecordURL('lotOccupancies', lotOccupancyId, edit, time) } @@ -513,7 +517,7 @@ declare const bulmaJS: BulmaJS workOrderId: number | string = '', edit = false, time = false - ) { + ): string { return getRecordURL('workOrders', workOrderId, edit, time) } diff --git a/public-typescript/mapEdit.js b/public-typescript/mapEdit.js index ad4d158b..4ec62314 100644 --- a/public-typescript/mapEdit.js +++ b/public-typescript/mapEdit.js @@ -11,23 +11,23 @@ Object.defineProperty(exports, "__esModule", { value: true }); function updateMap(formEvent) { formEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/maps/' + (isCreate ? 'doCreateMap' : 'doUpdateMap'), mapForm, (responseJSON) => { + var _a; if (responseJSON.success) { cityssm.disableNavBlocker(); if (isCreate) { - window.location.href = - los.urlPrefix + '/maps/' + responseJSON.mapId + '/edit'; + window.location.href = los.getMapURL(responseJSON.mapId, true); } else { bulmaJS.alert({ - message: exports.aliases.map + ' Updated Successfully', + message: los.escapedAliases.Map + ' Updated Successfully', contextualColorName: 'success' }); } } else { bulmaJS.alert({ - title: 'Error Updating ' + exports.aliases.map, - message: responseJSON.errorMessage || '', + title: 'Error Updating ' + los.escapedAliases.Map, + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } @@ -45,24 +45,25 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.postJSON(los.urlPrefix + '/maps/doDeleteMap', { mapId }, (responseJSON) => { + var _a; if (responseJSON.success) { window.location.href = los.getMapURL(); } else { bulmaJS.alert({ - title: 'Error Deleting ' + exports.aliases.map, - message: responseJSON.errorMessage || '', + title: 'Error Deleting ' + los.escapedAliases.Map, + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); } bulmaJS.confirm({ - title: 'Delete ' + exports.aliases.map, - message: `Are you sure you want to delete this ${exports.aliases.map.toLowerCase()} and all related ${exports.aliases.lots.toLowerCase()}?`, + title: 'Delete ' + los.escapedAliases.Map, + message: `Are you sure you want to delete this ${los.escapedAliases.map} and all related ${los.escapedAliases.lots}?`, contextualColorName: 'warning', okButton: { - text: `Yes, Delete ${exports.aliases.map}`, + text: `Yes, Delete ${los.escapedAliases.Map}`, callbackFunction: doDelete } }); diff --git a/public-typescript/mapEdit.ts b/public-typescript/mapEdit.ts index 9878dfa8..e50810f9 100644 --- a/public-typescript/mapEdit.ts +++ b/public-typescript/mapEdit.ts @@ -7,7 +7,6 @@ import type { BulmaJS } from '@cityssm/bulma-js/types' declare const cityssm: cityssmGlobal declare const bulmaJS: BulmaJS - ;(() => { const los = exports.los as globalTypes.LOS @@ -17,7 +16,7 @@ declare const bulmaJS: BulmaJS const mapForm = document.querySelector('#form--map') as HTMLFormElement - function updateMap(formEvent: SubmitEvent) { + function updateMap(formEvent: SubmitEvent): void { formEvent.preventDefault() cityssm.postJSON( @@ -32,18 +31,17 @@ declare const bulmaJS: BulmaJS cityssm.disableNavBlocker() if (isCreate) { - window.location.href = - los.urlPrefix + '/maps/' + responseJSON.mapId + '/edit' + window.location.href = los.getMapURL(responseJSON.mapId, true) } else { bulmaJS.alert({ - message: exports.aliases.map + ' Updated Successfully', + message: los.escapedAliases.Map + ' Updated Successfully', contextualColorName: 'success' }) } } else { bulmaJS.alert({ - title: 'Error Updating ' + exports.aliases.map, - message: responseJSON.errorMessage || '', + title: 'Error Updating ' + los.escapedAliases.Map, + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -53,9 +51,8 @@ declare const bulmaJS: BulmaJS mapForm.addEventListener('submit', updateMap) - const inputElements = mapForm.querySelectorAll('input, select') as NodeListOf< - HTMLInputElement | HTMLSelectElement - > + const inputElements: NodeListOf = + mapForm.querySelectorAll('input, select') for (const inputElement of inputElements) { inputElement.addEventListener('change', cityssm.enableNavBlocker) @@ -66,7 +63,7 @@ declare const bulmaJS: BulmaJS ?.addEventListener('click', (clickEvent) => { clickEvent.preventDefault() - function doDelete() { + function doDelete(): void { cityssm.postJSON( los.urlPrefix + '/maps/doDeleteMap', { @@ -77,8 +74,8 @@ declare const bulmaJS: BulmaJS window.location.href = los.getMapURL() } else { bulmaJS.alert({ - title: 'Error Deleting ' + exports.aliases.map, - message: responseJSON.errorMessage || '', + title: 'Error Deleting ' + los.escapedAliases.Map, + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -87,11 +84,11 @@ declare const bulmaJS: BulmaJS } bulmaJS.confirm({ - title: 'Delete ' + exports.aliases.map, - message: `Are you sure you want to delete this ${exports.aliases.map.toLowerCase()} and all related ${exports.aliases.lots.toLowerCase()}?`, + title: 'Delete ' + los.escapedAliases.Map, + message: `Are you sure you want to delete this ${los.escapedAliases.map} and all related ${los.escapedAliases.lots}?`, contextualColorName: 'warning', okButton: { - text: `Yes, Delete ${exports.aliases.map}`, + text: `Yes, Delete ${los.escapedAliases.Map}`, callbackFunction: doDelete } }) diff --git a/public-typescript/mapSearch.js b/public-typescript/mapSearch.js index 9c4e2232..dd45ed9f 100644 --- a/public-typescript/mapSearch.js +++ b/public-typescript/mapSearch.js @@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const searchFilterElement = document.querySelector('#searchFilter--map'); const searchResultsContainerElement = document.querySelector('#container--searchResults'); function renderResults() { + var _a, _b, _c, _d, _e, _f, _g, _h; searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML(`Loading ${los.escapedAliases.Maps}...`); let searchResultCount = 0; const searchResultsTbodyElement = document.createElement('tbody'); @@ -15,7 +16,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); .toLowerCase() .split(' '); for (const map of maps) { - const mapSearchString = `${map.mapName} ${map.mapDescription} ${map.mapAddress1} ${map.mapAddress2}`.toLowerCase(); + const mapSearchString = `${(_a = map.mapName) !== null && _a !== void 0 ? _a : ''} ${(_b = map.mapDescription) !== null && _b !== void 0 ? _b : ''} ${(_c = map.mapAddress1) !== null && _c !== void 0 ? _c : ''} ${(_d = map.mapAddress2) !== null && _d !== void 0 ? _d : ''}`.toLowerCase(); let showMap = true; for (const filterStringPiece of filterStringSplit) { if (!mapSearchString.includes(filterStringPiece)) { @@ -30,14 +31,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); searchResultsTbodyElement.insertAdjacentHTML('beforeend', '' + ('' + '' + - cityssm.escapeHTML(map.mapName || '(No Name)') + + cityssm.escapeHTML(map.mapName === '' ? '(No Name)' : map.mapName) + '
' + '' + - cityssm.escapeHTML(map.mapDescription || '') + + cityssm.escapeHTML((_e = map.mapDescription) !== null && _e !== void 0 ? _e : '') + '' + '') + ('' + @@ -48,14 +47,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); ? cityssm.escapeHTML(map.mapAddress2) + '
' : '') + (map.mapCity || map.mapProvince - ? cityssm.escapeHTML(map.mapCity || '') + + ? cityssm.escapeHTML((_f = map.mapCity) !== null && _f !== void 0 ? _f : '') + ', ' + - cityssm.escapeHTML(map.mapProvince || '') + + cityssm.escapeHTML((_g = map.mapProvince) !== null && _g !== void 0 ? _g : '') + '
' : '') + (map.mapPostalCode ? cityssm.escapeHTML(map.mapPostalCode) : '') + '') + - ('' + cityssm.escapeHTML(map.mapPhoneNumber || '') + '') + + ('' + cityssm.escapeHTML((_h = map.mapPhoneNumber) !== null && _h !== void 0 ? _h : '') + '') + '' + (map.mapLatitude && map.mapLongitude ? '' @@ -80,21 +79,21 @@ Object.defineProperty(exports, "__esModule", { value: true }); searchResultsContainerElement.innerHTML = ''; if (searchResultCount === 0) { searchResultsContainerElement.innerHTML = `
-

There are no ${los.escapedAliases.maps} that meet the search criteria.

-
`; +

There are no ${los.escapedAliases.maps} that meet the search criteria.

+
`; } else { const searchResultsTableElement = document.createElement('table'); searchResultsTableElement.className = 'table is-fullwidth is-striped is-hoverable has-sticky-header'; searchResultsTableElement.innerHTML = ` - ${los.escapedAliases.Map} - Address - Phone Number - Coordinates - Image - ${los.escapedAliases.Lot} Count - `; + ${los.escapedAliases.Map} + Address + Phone Number + Coordinates + Image + ${los.escapedAliases.Lot} Count + `; searchResultsTableElement.append(searchResultsTbodyElement); searchResultsContainerElement.append(searchResultsTableElement); } diff --git a/public-typescript/mapSearch.ts b/public-typescript/mapSearch.ts index 593edf78..26068471 100644 --- a/public-typescript/mapSearch.ts +++ b/public-typescript/mapSearch.ts @@ -6,7 +6,6 @@ import type * as recordTypes from '../types/recordTypes' import type { cityssmGlobal } from '@cityssm/bulma-webapp-js/src/types' declare const cityssm: cityssmGlobal - ;(() => { const los = exports.los as globalTypes.LOS @@ -34,8 +33,9 @@ declare const cityssm: cityssmGlobal .split(' ') for (const map of maps) { - const mapSearchString = - `${map.mapName} ${map.mapDescription} ${map.mapAddress1} ${map.mapAddress2}`.toLowerCase() + const mapSearchString = `${map.mapName ?? ''} ${ + map.mapDescription ?? '' + } ${map.mapAddress1 ?? ''} ${map.mapAddress2 ?? ''}`.toLowerCase() let showMap = true @@ -57,14 +57,14 @@ declare const cityssm: cityssmGlobal '' + ('' + '' + - cityssm.escapeHTML(map.mapName || '(No Name)') + + cityssm.escapeHTML( + map.mapName! === '' ? '(No Name)' : map.mapName! + ) + '
' + '' + - cityssm.escapeHTML(map.mapDescription || '') + + cityssm.escapeHTML(map.mapDescription ?? '') + '' + '') + ('' + @@ -75,14 +75,14 @@ declare const cityssm: cityssmGlobal ? cityssm.escapeHTML(map.mapAddress2) + '
' : '') + (map.mapCity || map.mapProvince - ? cityssm.escapeHTML(map.mapCity || '') + + ? cityssm.escapeHTML(map.mapCity ?? '') + ', ' + - cityssm.escapeHTML(map.mapProvince || '') + + cityssm.escapeHTML(map.mapProvince ?? '') + '
' : '') + (map.mapPostalCode ? cityssm.escapeHTML(map.mapPostalCode) : '') + '') + - ('' + cityssm.escapeHTML(map.mapPhoneNumber || '') + '') + + ('' + cityssm.escapeHTML(map.mapPhoneNumber ?? '') + '') + '' + (map.mapLatitude && map.mapLongitude ? '' @@ -110,8 +110,8 @@ declare const cityssm: cityssmGlobal if (searchResultCount === 0) { searchResultsContainerElement.innerHTML = `
-

There are no ${los.escapedAliases.maps} that meet the search criteria.

-
` +

There are no ${los.escapedAliases.maps} that meet the search criteria.

+
` } else { const searchResultsTableElement = document.createElement('table') @@ -119,13 +119,13 @@ declare const cityssm: cityssmGlobal 'table is-fullwidth is-striped is-hoverable has-sticky-header' searchResultsTableElement.innerHTML = ` - ${los.escapedAliases.Map} - Address - Phone Number - Coordinates - Image - ${los.escapedAliases.Lot} Count - ` + ${los.escapedAliases.Map} + Address + Phone Number + Coordinates + Image + ${los.escapedAliases.Lot} Count + ` searchResultsTableElement.append(searchResultsTbodyElement) diff --git a/public/javascripts/adminTables.min.js b/public/javascripts/adminTables.min.js index d97eb110..831df786 100644 --- a/public/javascripts/adminTables.min.js +++ b/public/javascripts/adminTables.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los;function t(e){const t=e.currentTarget,s=t.value;t.closest(".field").querySelectorAll(".button.is-static")[1].innerHTML=``}Object.defineProperty(exports,"__esModule",{value:!0});let s=exports.workOrderTypes;delete exports.workOrderTypes;const r=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateWorkOrderType",t.currentTarget,e=>{e.success?(s=e.workOrderTypes,bulmaJS.alert({message:"Work Order Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Type",message:e.errorMessage||"",contextualColorName:"danger"})})},o=t=>{const r=t.currentTarget.closest("tr"),o=r.dataset.workOrderTypeId;bulmaJS.confirm({title:"Delete Work Order Type",message:"Are you sure you want to delete this work order type?
\n Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Type",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/admin/doDeleteWorkOrderType",{workOrderTypeId:o},e=>{e.success?(0===(s=e.workOrderTypes).length?l():r.remove(),bulmaJS.alert({message:"Work Order Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Type",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},a=t=>{const r=t.currentTarget,o=r.closest("tr").dataset.workOrderTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===r.dataset.direction?"doMoveWorkOrderTypeUp":"doMoveWorkOrderTypeDown"),{workOrderTypeId:o,moveToEnd:t.shiftKey?"1":"0"},e=>{e.success?(s=e.workOrderTypes,l()):bulmaJS.alert({title:"Error Moving Work Order Type",message:e.errorMessage||"",contextualColorName:"danger"})})},l=()=>{const t=document.querySelector("#container--workOrderTypes");if(0!==s.length){t.innerHTML="";for(const l of s){const s=document.createElement("tr");s.dataset.workOrderTypeId=l.workOrderTypeId.toString(),s.innerHTML='
'+e.getMoveUpDownButtonFieldHTML("button--moveWorkOrderTypeUp","button--moveWorkOrderTypeDown",!1)+'
',s.querySelector("form").addEventListener("submit",r),s.querySelector(".button--moveWorkOrderTypeUp").addEventListener("click",a),s.querySelector(".button--moveWorkOrderTypeDown").addEventListener("click",a),s.querySelector(".button--deleteWorkOrderType").addEventListener("click",o),t.append(s)}}else t.innerHTML='\n

There are no active work order types.

\n '};document.querySelector("#form--addWorkOrderType").addEventListener("submit",t=>{t.preventDefault();const r=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddWorkOrderType",r,e=>{e.success?(s=e.workOrderTypes,l(),r.reset(),r.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding Work Order Type",message:e.errorMessage||"",contextualColorName:"danger"})})}),l(),Object.defineProperty(exports,"__esModule",{value:!0});let n=exports.workOrderMilestoneTypes;delete exports.workOrderMilestoneTypes;const d=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateWorkOrderMilestoneType",t.currentTarget,e=>{e.success?(n=e.workOrderMilestoneTypes,bulmaJS.alert({message:"Work Order Milestone Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Milestone Type",message:e.errorMessage||"",contextualColorName:"danger"})})},c=t=>{const s=t.currentTarget.closest("tr"),r=s.dataset.workOrderMilestoneTypeId;bulmaJS.confirm({title:"Delete Work Order Milestone Type",message:"Are you sure you want to delete this work order milestone type?
\n Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Milestone Type",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/admin/doDeleteWorkOrderMilestoneType",{workOrderMilestoneTypeId:r},e=>{e.success?(0===(n=e.workOrderMilestoneTypes).length?u():s.remove(),bulmaJS.alert({message:"Work Order Milestone Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Milestone Type",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},i=t=>{const s=t.currentTarget,r=s.closest("tr").dataset.workOrderMilestoneTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveWorkOrderMilestoneTypeUp":"doMoveWorkOrderMilestoneTypeDown"),{workOrderMilestoneTypeId:r,moveToEnd:t.shiftKey?"1":"0"},e=>{e.success?(n=e.workOrderMilestoneTypes,u()):bulmaJS.alert({title:"Error Moving Work Order Milestone Type",message:e.errorMessage||"",contextualColorName:"danger"})})},u=()=>{const t=document.querySelector("#container--workOrderMilestoneTypes");if(0!==n.length){t.innerHTML="";for(const s of n){const r=document.createElement("tr");r.dataset.workOrderMilestoneTypeId=s.workOrderMilestoneTypeId.toString(),r.innerHTML='
'+e.getMoveUpDownButtonFieldHTML("button--moveWorkOrderMilestoneTypeUp","button--moveWorkOrderMilestoneTypeDown",!1)+'
',r.querySelector("form").addEventListener("submit",d),r.querySelector(".button--moveWorkOrderMilestoneTypeUp").addEventListener("click",i),r.querySelector(".button--moveWorkOrderMilestoneTypeDown").addEventListener("click",i),r.querySelector(".button--deleteWorkOrderMilestoneType").addEventListener("click",c),t.append(r)}}else t.innerHTML='\n

There are no active work order milestone types.

\n '};document.querySelector("#form--addWorkOrderMilestoneType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddWorkOrderMilestoneType",s,e=>{e.success?(n=e.workOrderMilestoneTypes,u(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding Work Order Milestone Type",message:e.errorMessage||"",contextualColorName:"danger"})})}),u(),Object.defineProperty(exports,"__esModule",{value:!0});let p=exports.lotStatuses;delete exports.lotStatuses;const m=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateLotStatus",t.currentTarget,t=>{t.success?(p=t.lotStatuses,bulmaJS.alert({message:e.escapedAliases.Lot+" Status Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+e.escapedAliases.Lot+" Status",message:t.errorMessage||"",contextualColorName:"danger"})})},y=t=>{const s=t.currentTarget.closest("tr"),r=s.dataset.lotStatusId;bulmaJS.confirm({title:`Delete ${e.escapedAliases.Lot} Status`,message:`Are you sure you want to delete this status?
\n Note that no ${e.escapedAliases.lot} will be removed.`,messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Status",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/admin/doDeleteLotStatus",{lotStatusId:r},t=>{t.success?(0===(p=t.lotStatuses).length?v():s.remove(),bulmaJS.alert({message:e.escapedAliases.Lot+" Status Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting "+e.escapedAliases.Lot+" Status",message:t.errorMessage||"",contextualColorName:"danger"})})}}})},T=t=>{const s=t.currentTarget,r=s.closest("tr").dataset.lotStatusId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveLotStatusUp":"doMoveLotStatusDown"),{lotStatusId:r,moveToEnd:t.shiftKey?"1":"0"},e=>{e.success?(p=e.lotStatuses,v()):bulmaJS.alert({title:"Error Moving "+exports.aliases.lot+" Status",message:e.errorMessage||"",contextualColorName:"danger"})})},v=()=>{const t=document.querySelector("#container--lotStatuses");if(0!==p.length){t.innerHTML="";for(const s of p){const r=document.createElement("tr");r.dataset.lotStatusId=s.lotStatusId.toString(),r.innerHTML='
'+e.getMoveUpDownButtonFieldHTML("button--moveLotStatusUp","button--moveLotStatusDown",!1)+'
',r.querySelector("form").addEventListener("submit",m),r.querySelector(".button--moveLotStatusUp").addEventListener("click",T),r.querySelector(".button--moveLotStatusDown").addEventListener("click",T),r.querySelector(".button--deleteLotStatus").addEventListener("click",y),t.append(r)}}else t.innerHTML=`\n

There are no active ${e.escapedAliases.lot} statuses.

\n `};document.querySelector("#form--addLotStatus").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddLotStatus",s,t=>{t.success?(p=t.lotStatuses,v(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:`Error Adding ${e.escapedAliases.Lot} Status`,message:t.errorMessage||"",contextualColorName:"danger"})})}),v(),Object.defineProperty(exports,"__esModule",{value:!0});let g=exports.lotOccupantTypes;delete exports.lotOccupantTypes;const O=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateLotOccupantType",t.currentTarget,t=>{t.success?(g=t.lotOccupantTypes,bulmaJS.alert({message:`${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type Updated Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:`Error Updating ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:t.errorMessage||"",contextualColorName:"danger"})})},S=t=>{const s=t.currentTarget.closest("tr"),r=s.dataset.lotOccupantTypeId;bulmaJS.confirm({title:`Delete ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:`Are you sure you want to delete this ${e.escapedAliases.lot} ${e.escapedAliases.occupant} type?
\n Note that no ${e.escapedAliases.lot} ${e.escapedAliases.occupants} will be removed.`,messageIsHtml:!0,contextualColorName:"warning",okButton:{text:`Yes, Delete ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/admin/doDeleteLotOccupantType",{lotOccupantTypeId:r},t=>{t.success?(0===(g=t.lotOccupantTypes).length?f():s.remove(),bulmaJS.alert({message:`${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type Deleted Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:`Error Deleting ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:t.errorMessage||"",contextualColorName:"danger"})})}}})},b=t=>{const s=t.currentTarget,r=s.closest("tr").dataset.lotOccupantTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveLotOccupantTypeUp":"doMoveLotOccupantTypeDown"),{lotOccupantTypeId:r,moveToEnd:t.shiftKey?"1":"0"},t=>{t.success?(g=t.lotOccupantTypes,f()):bulmaJS.alert({title:`Error Moving ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:t.errorMessage||"",contextualColorName:"danger"})})},f=()=>{const s=document.querySelector("#container--lotOccupantTypes");if(0!==g.length){s.innerHTML="";for(const r of g){const o=document.createElement("tr");o.dataset.lotOccupantTypeId=r.lotOccupantTypeId.toString();const a="form--lotOccupantType-"+r.lotOccupantTypeId;o.innerHTML='
fa-
'+e.getMoveUpDownButtonFieldHTML("button--moveLotOccupantTypeUp","button--moveLotOccupantTypeDown",!1)+'
';const l=o.querySelector("input[name='fontAwesomeIconClass']");l.addEventListener("keyup",t),l.addEventListener("change",t),o.querySelector("form").addEventListener("submit",O),o.querySelector(".button--moveLotOccupantTypeUp").addEventListener("click",b),o.querySelector(".button--moveLotOccupantTypeDown").addEventListener("click",b),o.querySelector(".button--deleteLotOccupantType").addEventListener("click",S),s.append(o)}}else s.innerHTML=`\n

There are no active ${e.escapedAliases.lot} ${e.escapedAliases.occupant} types.

\n `};document.querySelector("#form--addLotOccupantType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddLotOccupantType",s,t=>{t.success?(g=t.lotOccupantTypes,f(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:`Error Adding ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:t.errorMessage||"",contextualColorName:"danger"})})}),f()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los;function t(e){const t=e.currentTarget,s=t.value;t.closest(".field").querySelectorAll(".button.is-static")[1].innerHTML=``}Object.defineProperty(exports,"__esModule",{value:!0});let s=exports.workOrderTypes;function r(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateWorkOrderType",t.currentTarget,e=>{var t;e.success?(s=e.workOrderTypes,bulmaJS.alert({message:"Work Order Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}delete exports.workOrderTypes;const o=t=>{const r=t.currentTarget.closest("tr"),o=r.dataset.workOrderTypeId;bulmaJS.confirm({title:"Delete Work Order Type",message:"Are you sure you want to delete this work order type?
\n Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Type",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteWorkOrderType",{workOrderTypeId:o},e=>{var t;e.success?(0===(s=e.workOrderTypes).length?n():r.remove(),bulmaJS.alert({message:"Work Order Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})};function a(t){const r=t.currentTarget,o=r.closest("tr").dataset.workOrderTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===r.dataset.direction?"doMoveWorkOrderTypeUp":"doMoveWorkOrderTypeDown"),{workOrderTypeId:o,moveToEnd:t.shiftKey?"1":"0"},e=>{var t;e.success?(s=e.workOrderTypes,n()):bulmaJS.alert({title:"Error Moving Work Order Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function n(){var t;const n=document.querySelector("#container--workOrderTypes");if(0!==s.length){n.innerHTML="";for(const l of s){const s=document.createElement("tr");s.dataset.workOrderTypeId=l.workOrderTypeId.toString(),s.innerHTML='
'+e.getMoveUpDownButtonFieldHTML("button--moveWorkOrderTypeUp","button--moveWorkOrderTypeDown",!1)+'
',s.querySelector("form").addEventListener("submit",r),s.querySelector(".button--moveWorkOrderTypeUp").addEventListener("click",a),s.querySelector(".button--moveWorkOrderTypeDown").addEventListener("click",a),s.querySelector(".button--deleteWorkOrderType").addEventListener("click",o),n.append(s)}}else n.innerHTML='\n

There are no active work order types.

\n '}document.querySelector("#form--addWorkOrderType").addEventListener("submit",t=>{t.preventDefault();const r=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddWorkOrderType",r,e=>{var t;e.success?(s=e.workOrderTypes,n(),r.reset(),r.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding Work Order Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}),n(),Object.defineProperty(exports,"__esModule",{value:!0});let l=exports.workOrderMilestoneTypes;function d(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateWorkOrderMilestoneType",t.currentTarget,e=>{var t;e.success?(l=e.workOrderMilestoneTypes,bulmaJS.alert({message:"Work Order Milestone Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Milestone Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function c(t){const s=t.currentTarget.closest("tr"),r=s.dataset.workOrderMilestoneTypeId;bulmaJS.confirm({title:"Delete Work Order Milestone Type",message:"Are you sure you want to delete this work order milestone type?
\n Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Milestone Type",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteWorkOrderMilestoneType",{workOrderMilestoneTypeId:r},e=>{var t;e.success?(0===(l=e.workOrderMilestoneTypes).length?u():s.remove(),bulmaJS.alert({message:"Work Order Milestone Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Milestone Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function i(t){const s=t.currentTarget,r=s.closest("tr").dataset.workOrderMilestoneTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveWorkOrderMilestoneTypeUp":"doMoveWorkOrderMilestoneTypeDown"),{workOrderMilestoneTypeId:r,moveToEnd:t.shiftKey?"1":"0"},e=>{var t;e.success?(l=e.workOrderMilestoneTypes,u()):bulmaJS.alert({title:"Error Moving Work Order Milestone Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function u(){const t=document.querySelector("#container--workOrderMilestoneTypes");if(0!==l.length){t.innerHTML="";for(const s of l){const r=document.createElement("tr");r.dataset.workOrderMilestoneTypeId=s.workOrderMilestoneTypeId.toString(),r.innerHTML='
'+e.getMoveUpDownButtonFieldHTML("button--moveWorkOrderMilestoneTypeUp","button--moveWorkOrderMilestoneTypeDown",!1)+'
',r.querySelector("form").addEventListener("submit",d),r.querySelector(".button--moveWorkOrderMilestoneTypeUp").addEventListener("click",i),r.querySelector(".button--moveWorkOrderMilestoneTypeDown").addEventListener("click",i),r.querySelector(".button--deleteWorkOrderMilestoneType").addEventListener("click",c),t.append(r)}}else t.innerHTML='\n

There are no active work order milestone types.

\n '}delete exports.workOrderMilestoneTypes,document.querySelector("#form--addWorkOrderMilestoneType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddWorkOrderMilestoneType",s,e=>{var t;e.success?(l=e.workOrderMilestoneTypes,u(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding Work Order Milestone Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}),u(),Object.defineProperty(exports,"__esModule",{value:!0});let p=exports.lotStatuses;function m(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateLotStatus",t.currentTarget,t=>{var s;t.success?(p=t.lotStatuses,bulmaJS.alert({message:e.escapedAliases.Lot+" Status Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+e.escapedAliases.Lot+" Status",message:null!==(s=t.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function y(t){const s=t.currentTarget.closest("tr"),r=s.dataset.lotStatusId;bulmaJS.confirm({title:`Delete ${e.escapedAliases.Lot} Status`,message:`Are you sure you want to delete this status?
\n Note that no ${e.escapedAliases.lot} will be removed.`,messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Status",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteLotStatus",{lotStatusId:r},t=>{var r;t.success?(0===(p=t.lotStatuses).length?T():s.remove(),bulmaJS.alert({message:e.escapedAliases.Lot+" Status Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:`Error Deleting ${e.escapedAliases.Lot} Status`,message:null!==(r=t.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}}})}function v(t){const s=t.currentTarget,r=s.closest("tr").dataset.lotStatusId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveLotStatusUp":"doMoveLotStatusDown"),{lotStatusId:r,moveToEnd:t.shiftKey?"1":"0"},t=>{var s;t.success?(p=t.lotStatuses,T()):bulmaJS.alert({title:"Error Moving "+e.escapedAliases.Lot+" Status",message:null!==(s=t.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function T(){const t=document.querySelector("#container--lotStatuses");if(0!==p.length){t.innerHTML="";for(const s of p){const r=document.createElement("tr");r.dataset.lotStatusId=s.lotStatusId.toString(),r.innerHTML='
'+e.getMoveUpDownButtonFieldHTML("button--moveLotStatusUp","button--moveLotStatusDown",!1)+'
',r.querySelector("form").addEventListener("submit",m),r.querySelector(".button--moveLotStatusUp").addEventListener("click",v),r.querySelector(".button--moveLotStatusDown").addEventListener("click",v),r.querySelector(".button--deleteLotStatus").addEventListener("click",y),t.append(r)}}else t.innerHTML=`\n

There are no active ${e.escapedAliases.lot} statuses.

\n `}delete exports.lotStatuses,document.querySelector("#form--addLotStatus").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddLotStatus",s,t=>{var r;t.success?(p=t.lotStatuses,T(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:`Error Adding ${e.escapedAliases.Lot} Status`,message:null!==(r=t.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}),T(),Object.defineProperty(exports,"__esModule",{value:!0});let g=exports.lotOccupantTypes;function O(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateLotOccupantType",t.currentTarget,t=>{var s;t.success?(g=t.lotOccupantTypes,bulmaJS.alert({message:`${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type Updated Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:`Error Updating ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(s=t.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function f(t){const s=t.currentTarget.closest("tr"),r=s.dataset.lotOccupantTypeId;bulmaJS.confirm({title:`Delete ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:`Are you sure you want to delete this ${e.escapedAliases.lot} ${e.escapedAliases.occupant} type?
\n Note that no ${e.escapedAliases.lot} ${e.escapedAliases.occupants} will be removed.`,messageIsHtml:!0,contextualColorName:"warning",okButton:{text:`Yes, Delete ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteLotOccupantType",{lotOccupantTypeId:r},t=>{var r;t.success?(0===(g=t.lotOccupantTypes).length?b():s.remove(),bulmaJS.alert({message:`${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type Deleted Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:`Error Deleting ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(r=t.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}}})}function S(t){const s=t.currentTarget,r=s.closest("tr").dataset.lotOccupantTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveLotOccupantTypeUp":"doMoveLotOccupantTypeDown"),{lotOccupantTypeId:r,moveToEnd:t.shiftKey?"1":"0"},t=>{var s;t.success?(g=t.lotOccupantTypes,b()):bulmaJS.alert({title:`Error Moving ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(s=t.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function b(){const s=document.querySelector("#container--lotOccupantTypes");if(0!==g.length){s.innerHTML="";for(const r of g){const o=document.createElement("tr");o.dataset.lotOccupantTypeId=r.lotOccupantTypeId.toString();const a="form--lotOccupantType-"+r.lotOccupantTypeId.toString();o.innerHTML='
fa-
'+e.getMoveUpDownButtonFieldHTML("button--moveLotOccupantTypeUp","button--moveLotOccupantTypeDown",!1)+'
';const n=o.querySelector("input[name='fontAwesomeIconClass']");n.addEventListener("keyup",t),n.addEventListener("change",t),o.querySelector("form").addEventListener("submit",O),o.querySelector(".button--moveLotOccupantTypeUp").addEventListener("click",S),o.querySelector(".button--moveLotOccupantTypeDown").addEventListener("click",S),o.querySelector(".button--deleteLotOccupantType").addEventListener("click",f),s.append(o)}}else s.innerHTML=`\n

There are no active ${e.escapedAliases.lot} ${e.escapedAliases.occupant} types.

\n `}delete exports.lotOccupantTypes,document.querySelector("#form--addLotOccupantType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddLotOccupantType",s,t=>{var r;t.success?(g=t.lotOccupantTypes,b(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:`Error Adding ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(r=t.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}),b()})(); \ No newline at end of file diff --git a/public/javascripts/dashboard.min.js b/public/javascripts/dashboard.min.js index e650afc4..57a6cc8b 100644 --- a/public/javascripts/dashboard.min.js +++ b/public/javascripts/dashboard.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,o=document.querySelectorAll(".fa-circle[data-work-order-number");for(const r of o)r.style.color=e.getRandomColor(r.dataset.workOrderNumber||"")})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e;const o=exports.los,r=document.querySelectorAll(".fa-circle[data-work-order-number");for(const t of r)t.style.color=o.getRandomColor(null!==(e=t.dataset.workOrderNumber)&&void 0!==e?e:"")})(); \ No newline at end of file diff --git a/public/javascripts/lotOccupancyEdit.min.js b/public/javascripts/lotOccupancyEdit.min.js index 837f9452..3d68cdd5 100644 --- a/public/javascripts/lotOccupancyEdit.min.js +++ b/public/javascripts/lotOccupancyEdit.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e,t,c;const a=exports.los,o=document.querySelector("#lotOccupancy--lotOccupancyId").value,n=""===o;let s=n;const l=document.querySelector("#form--lotOccupancy");l.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/"+(n?"doCreateLotOccupancy":"doUpdateLotOccupancy"),l,e=>{e.success?(a.clearUnsavedChanges(),n||s?window.location.href=a.getLotOccupancyURL(e.lotOccupancyId,!0,!0):bulmaJS.alert({message:`${a.escapedAliases.Occupancy} Updated Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:"Error Saving "+exports.aliases.occupancy,message:e.errorMessage||"",contextualColorName:"danger"})})});const r=l.querySelectorAll("input, select");for(const e of r)e.addEventListener("change",a.setUnsavedChanges);const u=()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doCopyLotOccupancy",{lotOccupancyId:o},e=>{e.success?(cityssm.disableNavBlocker(),window.location.href=a.getLotOccupancyURL(e.lotOccupancyId,!0)):bulmaJS.alert({title:"Error Copying Record",message:e.errorMessage||"",contextualColorName:"danger"})})};null===(e=document.querySelector("#button--copyLotOccupancy"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),a.hasUnsavedChanges()?bulmaJS.alert({title:"Unsaved Changes",message:"Please save all unsaved changes before continuing.",contextualColorName:"warning"}):bulmaJS.confirm({title:`Copy ${a.escapedAliases.Occupancy} Record as New`,message:"Are you sure you want to copy this record to a new record?",contextualColorName:"info",okButton:{text:"Yes, Copy",callbackFunction:u}})}),null===(t=document.querySelector("#button--deleteLotOccupancy"))||void 0===t||t.addEventListener("click",e=>{e.preventDefault();bulmaJS.confirm({title:"Delete "+exports.aliases.occupancy+" Record",message:"Are you sure you want to delete this record?",contextualColorName:"warning",okButton:{text:"Yes, Delete",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancy",{lotOccupancyId:o},e=>{e.success?(cityssm.disableNavBlocker(),window.location.href=a.getLotOccupancyURL()):bulmaJS.alert({title:"Error Deleting Record",message:e.errorMessage||"",contextualColorName:"danger"})})}}})}),null===(c=document.querySelector("#button--createWorkOrder"))||void 0===c||c.addEventListener("click",e=>{let t;e.preventDefault();const c=e=>{e.preventDefault(),cityssm.postJSON(a.urlPrefix+"/workOrders/doCreateWorkOrder",e.currentTarget,e=>{e.success?(t(),bulmaJS.confirm({title:"Work Order Created Successfully",message:"Would you like to open the work order now?",contextualColorName:"success",okButton:{text:"Yes, Open the Work Order",callbackFunction:()=>{window.location.href=a.urlPrefix+"/workOrders/"+e.workOrderId+"/edit"}}})):bulmaJS.alert({title:"Error Creating Work Order",message:e.errorMessage,contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-createWorkOrder",{onshow(e){e.querySelector("#workOrderCreate--lotOccupancyId").value=o,e.querySelector("#workOrderCreate--workOrderOpenDateString").value=cityssm.dateToString(new Date);const t=e.querySelector("#workOrderCreate--workOrderTypeId"),c=exports.workOrderTypes;1===c.length&&(t.innerHTML="");for(const e of c){const c=document.createElement("option");c.value=e.workOrderTypeId.toString(),c.textContent=e.workOrderType,t.append(c)}},onshown(e,a){var o;t=a,null===(o=e.querySelector("form"))||void 0===o||o.addEventListener("submit",c)}})});const i=document.querySelector("#lotOccupancy--occupancyTypeId");if(n){const e=document.querySelector("#container--lotOccupancyFields");i.addEventListener("change",()=>{""!==i.value?cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doGetOccupancyTypeFields",{occupancyTypeId:i.value},t=>{if(0===t.occupancyTypeFields.length)return void(e.innerHTML=`
\n

There are no additional fields for this ${a.escapedAliases.occupancy} type.

\n
`);e.innerHTML="";let c="";for(const a of t.occupancyTypeFields){c+=","+a.occupancyTypeFieldId;const t="lotOccupancyFieldValue_"+a.occupancyTypeFieldId,o="lotOccupancy--"+t,n=document.createElement("div");if(n.className="field",n.innerHTML=`
`,n.querySelector("label").textContent=a.occupancyTypeField,""===a.occupancyTypeFieldValues){const e=document.createElement("input");e.className="input",e.id=o,e.name=t,e.type="text",e.required=a.isRequired,e.minLength=a.minimumLength,e.maxLength=a.maximumLength,a.pattern&&""!==a.pattern&&(e.pattern=a.pattern),n.querySelector(".control").append(e)}else{n.querySelector(".control").innerHTML='
';const e=n.querySelector("select");e.required=a.isRequired;const c=a.occupancyTypeFieldValues.split("\n");for(const t of c){const c=document.createElement("option");c.value=t,c.textContent=t,e.append(c)}}e.append(n)}e.insertAdjacentHTML("beforeend",``)}):e.innerHTML=`
\n

Select the ${a.escapedAliases.occupancy} type to load the available fields.

\n
`})}else{const e=i.value;i.addEventListener("change",()=>{i.value!==e&&bulmaJS.confirm({title:"Confirm Change",message:`Are you sure you want to change the ${a.escapedAliases.occupancy} type?\n\n This change affects the additional fields associated with this record, and may also affect the available fees.`,contextualColorName:"warning",okButton:{text:"Yes, Keep the Change",callbackFunction:()=>{s=!0}},cancelButton:{text:"Revert the Change",callbackFunction:()=>{i.value=e}}})})}const d=document.querySelector("#lotOccupancy--lotName");let p;d.addEventListener("click",e=>{const t=e.currentTarget.value;let c,o,n,s;const l=(e,t)=>{document.querySelector("#lotOccupancy--lotId").value=e.toString(),document.querySelector("#lotOccupancy--lotName").value=t,a.setUnsavedChanges(),c()},r=e=>{e.preventDefault();const t=e.currentTarget;l(t.dataset.lotId,t.dataset.lotName)},u=()=>{s.innerHTML=a.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(a.urlPrefix+"/lots/doSearchLots",n,e=>{if(0===e.count)return void(s.innerHTML='
\n

No results.

\n
');const t=document.createElement("div");t.className="panel";for(const c of e.lots){const e=document.createElement("a");e.className="panel-block is-block",e.href="#",e.dataset.lotId=c.lotId.toString(),e.dataset.lotName=c.lotName,e.innerHTML='
'+cityssm.escapeHTML(c.lotName||"")+'
'+cityssm.escapeHTML(c.mapName||"")+'
'+cityssm.escapeHTML(c.lotStatus)+'
'+(c.lotOccupancyCount>0?"Currently Occupied":"")+"
",e.addEventListener("click",r),t.append(e)}s.innerHTML="",s.append(t)})},i=e=>{e.preventDefault();const t=o.querySelector("#lotCreate--lotName").value;cityssm.postJSON(a.urlPrefix+"/lots/doCreateLot",e.currentTarget,e=>{e.success?l(e.lotId,t):bulmaJS.alert({title:`Error Creating ${a.escapedAliases.Lot}`,message:e.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-selectLot",{onshow:e=>{a.populateAliases(e)},onshown:(e,a)=>{bulmaJS.toggleHtmlClipped(),o=e,c=a,bulmaJS.init(e);const l=e.querySelector("#lotSelect--lotName");""!==document.querySelector("#lotOccupancy--lotId").value&&(l.value=t),l.focus(),l.addEventListener("change",u);const r=e.querySelector("#lotSelect--occupancyStatus");if(r.addEventListener("change",u),""!==t&&(r.value=""),n=e.querySelector("#form--lotSelect"),s=e.querySelector("#resultsContainer--lotSelect"),n.addEventListener("submit",e=>{e.preventDefault()}),u(),exports.lotNamePattern){const t=exports.lotNamePattern;e.querySelector("#lotCreate--lotName").pattern=t.source}const d=e.querySelector("#lotCreate--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,d.append(t)}const p=e.querySelector("#lotCreate--lotStatusId");for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,p.append(t)}const m=e.querySelector("#lotCreate--mapId");for(const e of exports.maps){const t=document.createElement("option");t.value=e.mapId.toString(),t.textContent=e.mapName||"(No Name)",m.append(t)}e.querySelector("#form--lotCreate").addEventListener("submit",i)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),document.querySelector(".is-lot-view-button").addEventListener("click",()=>{const e=document.querySelector("#lotOccupancy--lotId").value;e?window.open(a.urlPrefix+"/lots/"+e):bulmaJS.alert({message:`No ${a.escapedAliases.lot} selected.`,contextualColorName:"info"})}),document.querySelector(".is-clear-lot-button").addEventListener("click",()=>{d.disabled?bulmaJS.alert({message:"You need to unlock the field before clearing it.",contextualColorName:"info"}):(d.value=`(No ${a.escapedAliases.Lot})`,document.querySelector("#lotOccupancy--lotId").value="",a.setUnsavedChanges())}),a.initializeDatePickers(l),document.querySelector("#lotOccupancy--occupancyStartDateString").addEventListener("change",()=>{const e=document.querySelector("#lotOccupancy--occupancyEndDateString").bulmaCalendar.datePicker;e.min=document.querySelector("#lotOccupancy--occupancyStartDateString").value,e.refresh()}),a.initializeUnlockFieldButtons(l),Object.defineProperty(exports,"__esModule",{value:!0});const m=e=>{const t=Number.parseInt(e.currentTarget.closest("tr").dataset.lotOccupantIndex,10),c=p.find(e=>e.lotOccupantIndex===t);let n,s;const l=e=>{e.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyOccupant",n,e=>{e.success?(p=e.lotOccupancyOccupants,s(),O()):bulmaJS.alert({title:"Error Updating "+exports.aliases.occupant,message:e.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-editOccupant",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyOccupantEdit--lotOccupancyId").value=o,e.querySelector("#lotOccupancyOccupantEdit--lotOccupantIndex").value=t.toString();const n=e.querySelector("#lotOccupancyOccupantEdit--lotOccupantTypeId");let s=!1;for(const e of exports.lotOccupantTypes){const t=document.createElement("option");t.value=e.lotOccupantTypeId.toString(),t.textContent=e.lotOccupantType,e.lotOccupantTypeId===c.lotOccupantTypeId&&(t.selected=!0,s=!0),n.append(t)}if(!s){const e=document.createElement("option");e.value=c.lotOccupantTypeId.toString(),e.textContent=c.lotOccupantType,e.selected=!0,n.append(e)}e.querySelector("#lotOccupancyOccupantEdit--occupantName").value=c.occupantName,e.querySelector("#lotOccupancyOccupantEdit--occupantAddress1").value=c.occupantAddress1,e.querySelector("#lotOccupancyOccupantEdit--occupantAddress2").value=c.occupantAddress2,e.querySelector("#lotOccupancyOccupantEdit--occupantCity").value=c.occupantCity,e.querySelector("#lotOccupancyOccupantEdit--occupantProvince").value=c.occupantProvince,e.querySelector("#lotOccupancyOccupantEdit--occupantPostalCode").value=c.occupantPostalCode,e.querySelector("#lotOccupancyOccupantEdit--occupantPhoneNumber").value=c.occupantPhoneNumber,e.querySelector("#lotOccupancyOccupantEdit--occupantEmailAddress").value=c.occupantEmailAddress,e.querySelector("#lotOccupancyOccupantEdit--occupantComment").value=c.occupantComment},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyOccupantEdit--lotOccupantTypeId").focus(),(n=e.querySelector("form")).addEventListener("submit",l),s=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},y=e=>{const t=e.currentTarget.closest("tr").dataset.lotOccupantIndex;bulmaJS.confirm({title:"Remove "+exports.aliases.occupant+"?",message:"Are you sure you want to remove this "+exports.aliases.occupant.toLowerCase()+"?",okButton:{text:"Yes, Remove "+exports.aliases.occupant,callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyOccupant",{lotOccupancyId:o,lotOccupantIndex:t},e=>{e.success?(p=e.lotOccupancyOccupants,O()):bulmaJS.alert({title:"Error Removing "+exports.aliases.occupant,message:e.errorMessage||"",contextualColorName:"danger"})})}},contextualColorName:"warning"})},O=()=>{const e=document.querySelector("#container--lotOccupancyOccupants");if(cityssm.clearElement(e),0===p.length)return void(e.innerHTML='

There are no '+exports.aliases.occupants.toLowerCase()+" associated with this record.

");const t=document.createElement("table");t.className="table is-fullwidth is-striped is-hoverable",t.innerHTML=""+exports.aliases.occupant+'AddressOther ContactCommentOptions';for(const e of p){const c=document.createElement("tr");c.dataset.lotOccupantIndex=e.lotOccupantIndex.toString(),c.innerHTML=""+cityssm.escapeHTML(e.occupantName||"(No Name)")+'
'+cityssm.escapeHTML(e.lotOccupantType)+""+(e.occupantAddress1?cityssm.escapeHTML(e.occupantAddress1)+"
":"")+(e.occupantAddress2?cityssm.escapeHTML(e.occupantAddress2)+"
":"")+(e.occupantCity?cityssm.escapeHTML(e.occupantCity)+", ":"")+cityssm.escapeHTML(e.occupantProvince||"")+"
"+cityssm.escapeHTML(e.occupantPostalCode||"")+""+(e.occupantPhoneNumber?cityssm.escapeHTML(e.occupantPhoneNumber)+"
":"")+(e.occupantEmailAddress?cityssm.escapeHTML(e.occupantEmailAddress):"")+""+cityssm.escapeHTML(e.occupantComment)+'
',c.querySelector(".button--edit").addEventListener("click",m),c.querySelector(".button--delete").addEventListener("click",y),t.querySelector("tbody").append(c)}e.append(t)};if(n){const e=document.querySelector("#lotOccupancy--lotOccupantTypeId");e.addEventListener("change",()=>{const t=l.querySelectorAll("[data-table='LotOccupancyOccupant']");for(const c of t)c.disabled=""===e.value})}else p=exports.lotOccupancyOccupants,delete exports.lotOccupancyOccupants,document.querySelector("#button--addOccupant").addEventListener("click",()=>{let e,t,c,n;const s=t=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyOccupant",t,t=>{t.success?(p=t.lotOccupancyOccupants,e(),O()):bulmaJS.alert({title:"Error Adding "+exports.aliases.occupant,message:t.errorMessage||"",contextualColorName:"danger"})})},l=e=>{e.preventDefault(),s(t)};let r=[];const u=e=>{e.preventDefault();const t=e.currentTarget,c=r[Number.parseInt(t.dataset.index,10)],a=t.closest(".modal").querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId").value;""===a?bulmaJS.alert({title:"No "+exports.aliases.occupant+" Type Selected",message:"Select a type to apply to the newly added "+exports.aliases.occupant.toLowerCase()+".",contextualColorName:"warning"}):(c.lotOccupantTypeId=Number.parseInt(a,10),c.lotOccupancyId=Number.parseInt(o,10),s(c))},i=e=>{e.preventDefault(),""!==c.querySelector("#lotOccupancyOccupantCopy--searchFilter").value?(n.innerHTML=a.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doSearchPastOccupants",c,e=>{r=e.occupants;const t=document.createElement("div");t.className="panel";for(const[e,c]of r.entries()){const a=document.createElement("a");a.className="panel-block is-block",a.dataset.index=e.toString(),a.innerHTML=""+cityssm.escapeHTML(c.occupantName||"")+'
'+cityssm.escapeHTML(c.occupantAddress1||"")+"
"+(c.occupantAddress2?cityssm.escapeHTML(c.occupantAddress2)+"
":"")+cityssm.escapeHTML(c.occupantCity||"")+", "+cityssm.escapeHTML(c.occupantProvince||"")+"
"+cityssm.escapeHTML(c.occupantPostalCode||"")+'
'+(c.occupantPhoneNumber?cityssm.escapeHTML(c.occupantPhoneNumber)+"
":"")+cityssm.escapeHTML(c.occupantEmailAddress||"")+"
",a.addEventListener("click",u),t.append(a)}n.innerHTML="",n.append(t)})):n.innerHTML='

Enter a partial name or address in the search field above.

'};cityssm.openHtmlModal("lotOccupancy-addOccupant",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyOccupantAdd--lotOccupancyId").value=o;const t=e.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId"),c=e.querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId");for(const e of exports.lotOccupantTypes){const a=document.createElement("option");a.value=e.lotOccupantTypeId.toString(),a.textContent=e.lotOccupantType,t.append(a),c.append(a.cloneNode(!0))}e.querySelector("#lotOccupancyOccupantAdd--occupantCity").value=exports.occupantCityDefault,e.querySelector("#lotOccupancyOccupantAdd--occupantProvince").value=exports.occupantProvinceDefault},onshown:(a,o)=>{bulmaJS.toggleHtmlClipped(),bulmaJS.init(a),a.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId").focus(),(t=a.querySelector("#form--lotOccupancyOccupantAdd")).addEventListener("submit",l),n=a.querySelector("#lotOccupancyOccupantCopy--searchResults"),(c=a.querySelector("#form--lotOccupancyOccupantCopy")).addEventListener("submit",e=>{e.preventDefault()}),a.querySelector("#lotOccupancyOccupantCopy--searchFilter").addEventListener("change",i),e=o},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),O();if(!n){Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.lotOccupancyComments;delete exports.lotOccupancyComments;const t=t=>{const c=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10),s=e.find(e=>e.lotOccupancyCommentId===c);let l,r;const u=t=>{t.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyComment",l,t=>{t.success?(e=t.lotOccupancyComments,r(),n()):bulmaJS.alert({title:"Error Updating Comment",message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-editComment",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyId").value=o,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentId").value=c.toString(),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").value=s.lotOccupancyComment;const t=e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentDateString");t.value=s.lotOccupancyCommentDateString;const n=cityssm.dateToString(new Date);t.max=s.lotOccupancyCommentDateString<=n?n:s.lotOccupancyCommentDateString,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentTimeString").value=s.lotOccupancyCommentTimeString},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),a.initializeDatePickers(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").focus(),(l=e.querySelector("form")).addEventListener("submit",u),r=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},c=t=>{const c=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10);bulmaJS.confirm({title:"Remove Comment?",message:"Are you sure you want to remove this comment?",okButton:{text:"Yes, Remove Comment",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyComment",{lotOccupancyId:o,lotOccupancyCommentId:c},t=>{t.success?(e=t.lotOccupancyComments,n()):bulmaJS.alert({title:"Error Removing Comment",message:t.errorMessage||"",contextualColorName:"danger"})})}},contextualColorName:"warning"})},n=()=>{const a=document.querySelector("#container--lotOccupancyComments");if(0===e.length)return void(a.innerHTML='

There are no comments associated with this record.

');const o=document.createElement("table");o.className="table is-fullwidth is-striped is-hoverable",o.innerHTML='CommentorComment DateCommentOptions';for(const a of e){const e=document.createElement("tr");e.dataset.lotOccupancyCommentId=a.lotOccupancyCommentId.toString(),e.innerHTML=""+cityssm.escapeHTML(a.recordCreate_userName||"")+""+a.lotOccupancyCommentDateString+(0===a.lotOccupancyCommentTime?"":" "+a.lotOccupancyCommentTimeString)+""+cityssm.escapeHTML(a.lotOccupancyComment||"")+'
',e.querySelector(".button--edit").addEventListener("click",t),e.querySelector(".button--delete").addEventListener("click",c),o.querySelector("tbody").append(e)}a.innerHTML="",a.append(o)};document.querySelector("#button--addComment").addEventListener("click",()=>{let t,c;const s=o=>{o.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyComment",t,t=>{t.success?(e=t.lotOccupancyComments,c(),n()):bulmaJS.alert({title:"Error Adding Comment",message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-addComment",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyId").value=o},onshown:(e,a)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyComment").focus(),(t=e.querySelector("form")).addEventListener("submit",s),c=a},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),n(),Object.defineProperty(exports,"__esModule",{value:!0});let s=exports.lotOccupancyFees;delete exports.lotOccupancyFees;const l=document.querySelector("#container--lotOccupancyFees"),r=()=>{let e=0;for(const t of s)e+=(t.feeAmount+t.taxAmount)*t.quantity;return e},u=e=>{const t=e.currentTarget.closest(".container--lotOccupancyFee").dataset.feeId;bulmaJS.confirm({title:"Delete Fee",message:"Are you sure you want to delete this fee?",contextualColorName:"warning",okButton:{text:"Yes, Delete Fee",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyFee",{lotOccupancyId:o,feeId:t},e=>{e.success?(s=e.lotOccupancyFees,i()):bulmaJS.alert({title:"Error Deleting Fee",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},i=()=>{if(0===s.length)return l.innerHTML='

There are no fees associated with this record.

',void O();l.innerHTML='
FeeUnit Cost×QuantityequalsTotalOptions
Subtotal
Tax
Grand Total
';let e=0,t=0;for(const c of s){const a=document.createElement("tr");a.className="container--lotOccupancyFee",a.dataset.feeId=c.feeId.toString(),a.dataset.includeQuantity=c.includeQuantity?"1":"0",a.innerHTML=''+cityssm.escapeHTML(c.feeName||"")+""+(1===c.quantity?"":'$'+c.feeAmount.toFixed(2)+'×'+c.quantity+"=")+'$'+(c.feeAmount*c.quantity).toFixed(2)+'',a.querySelector("button").addEventListener("click",u),l.querySelector("tbody").append(a),e+=c.feeAmount*c.quantity,t+=c.taxAmount*c.quantity}l.querySelector("#lotOccupancyFees--feeAmountTotal").textContent="$"+e.toFixed(2),l.querySelector("#lotOccupancyFees--taxAmountTotal").textContent="$"+t.toFixed(2),l.querySelector("#lotOccupancyFees--grandTotal").textContent="$"+(e+t).toFixed(2),O()};document.querySelector("#button--addFee").addEventListener("click",()=>{if(hasUnsavedChanges)return void bulmaJS.alert({message:"Please save all unsaved changes before adding fees.",contextualColorName:"warning"});let e,t,c;const n=(e,t=1)=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyFee",{lotOccupancyId:o,feeId:e,quantity:t},e=>{e.success?(s=e.lotOccupancyFees,i(),u()):bulmaJS.alert({title:"Error Adding Fee",message:e.errorMessage||"",contextualColorName:"danger"})})},r=t=>{t.preventDefault();const c=Number.parseInt(t.currentTarget.dataset.feeId,10),a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10),o=e.find(e=>e.feeCategoryId===a).fees.find(e=>e.feeId===c);o.includeQuantity?(e=>{let t,c;const a=a=>{a.preventDefault(),n(e.feeId,t.value),c()};cityssm.openHtmlModal("lotOccupancy-setFeeQuantity",{onshow:t=>{t.querySelector("#lotOccupancyFeeQuantity--quantityUnit").textContent=e.quantityUnit},onshown:(e,o)=>{c=o,t=e.querySelector("#lotOccupancyFeeQuantity--quantity"),e.querySelector("form").addEventListener("submit",a)}})})(o):n(c)},u=()=>{const a=t.value.trim().toLowerCase().split(" ");c.innerHTML="";for(const t of e){const e=document.createElement("div");e.className="container--feeCategory",e.dataset.feeCategoryId=t.feeCategoryId.toString(),e.innerHTML='

'+cityssm.escapeHTML(t.feeCategory||"")+'

';let o=!1;for(const c of t.fees){if(l.querySelector(".container--lotOccupancyFee[data-fee-id='"+c.feeId+"'][data-include-quantity='0']"))continue;let t=!0;for(const e of a)if(!c.feeName.toLowerCase().includes(e)){t=!1;break}if(!t)continue;o=!0;const n=document.createElement("a");n.className="panel-block is-block container--fee",n.dataset.feeId=c.feeId.toString(),n.href="#",n.innerHTML=""+cityssm.escapeHTML(c.feeName||"")+"
"+cityssm.escapeHTML(c.feeDescription||"").replace(/\n/g,"
")+"
",n.addEventListener("click",r),e.querySelector(".panel").append(n)}o&&c.append(e)}};cityssm.openHtmlModal("lotOccupancy-addFee",{onshow:n=>{t=n.querySelector("#feeSelect--feeName"),c=n.querySelector("#resultsContainer--feeSelect"),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doGetFees",{lotOccupancyId:o},c=>{e=c.feeCategories,t.disabled=!1,t.addEventListener("keyup",u),t.focus(),u()})},onshown:()=>{bulmaJS.toggleHtmlClipped()},onhidden:()=>{i()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})});let d=exports.lotOccupancyTransactions;delete exports.lotOccupancyTransactions;const p=document.querySelector("#container--lotOccupancyTransactions"),m=()=>{let e=0;for(const t of d)e+=t.transactionAmount;return e},y=e=>{const t=e.currentTarget.closest(".container--lotOccupancyTransaction").dataset.transactionIndex;bulmaJS.confirm({title:"Delete Trasnaction",message:"Are you sure you want to delete this transaction?",contextualColorName:"warning",okButton:{text:"Yes, Delete Transaction",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyTransaction",{lotOccupancyId:o,transactionIndex:t},e=>{e.success?(d=e.lotOccupancyTransactions,O()):bulmaJS.alert({title:"Error Deleting Transaction",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},O=()=>{if(0===d.length)return void(p.innerHTML='

There are no transactions associated with this record.

');p.innerHTML='
Date'+cityssm.escapeHTML(exports.aliases.externalReceiptNumber)+'AmountOptions
Transaction Total
';let e=0;for(const t of d){e+=t.transactionAmount;const c=document.createElement("tr");c.className="container--lotOccupancyTransaction",c.dataset.transactionIndex=t.transactionIndex.toString(),c.innerHTML=""+t.transactionDateString+""+cityssm.escapeHTML(t.externalReceiptNumber||"")+"
"+cityssm.escapeHTML(t.transactionNote||"")+'$'+t.transactionAmount.toFixed(2)+'',c.querySelector("button").addEventListener("click",y),p.querySelector("tbody").append(c)}p.querySelector("#lotOccupancyTransactions--grandTotal").textContent="$"+e.toFixed(2);const t=r();t>e&&p.insertAdjacentHTML("afterbegin",'
Outstanding Balance
$'+(t-e).toFixed(2)+"
")};document.querySelector("#button--addTransaction").addEventListener("click",()=>{let e;const t=t=>{t.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyTransaction",t.currentTarget,t=>{t.success?(d=t.lotOccupancyTransactions,e(),O()):bulmaJS.confirm({title:"Error Adding Transaction",message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-addTransaction",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyTransactionAdd--lotOccupancyId").value=o.toString();const t=r(),c=m(),n=e.querySelector("#lotOccupancyTransactionAdd--transactionAmount");n.min=(-1*c).toFixed(2),n.max=Math.max(t-c,0).toFixed(2),n.value=Math.max(t-c,0).toFixed(2)},onshown:(c,a)=>{bulmaJS.toggleHtmlClipped(),e=a,c.querySelector("form").addEventListener("submit",t)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),i()}})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e;const t=exports.los,c=document.querySelector("#lotOccupancy--lotOccupancyId").value,a=""===c;let o=a;const n=document.querySelector("#form--lotOccupancy");n.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/lotOccupancies/"+(a?"doCreateLotOccupancy":"doUpdateLotOccupancy"),n,e=>{var c;e.success?(t.clearUnsavedChanges(),a||o?window.location.href=t.getLotOccupancyURL(e.lotOccupancyId,!0,!0):bulmaJS.alert({message:`${t.escapedAliases.Occupancy} Updated Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:"Error Saving "+t.escapedAliases.Occupancy,message:null!==(c=e.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})});const s=n.querySelectorAll("input, select");for(const e of s)e.addEventListener("change",t.setUnsavedChanges);function l(){cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doCopyLotOccupancy",{lotOccupancyId:c},e=>{var c;e.success?(cityssm.disableNavBlocker(),window.location.href=t.getLotOccupancyURL(e.lotOccupancyId,!0)):bulmaJS.alert({title:"Error Copying Record",message:null!==(c=e.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}null===(e=document.querySelector("#button--copyLotOccupancy"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),t.hasUnsavedChanges()?bulmaJS.alert({title:"Unsaved Changes",message:"Please save all unsaved changes before continuing.",contextualColorName:"warning"}):bulmaJS.confirm({title:`Copy ${t.escapedAliases.Occupancy} Record as New`,message:"Are you sure you want to copy this record to a new record?",contextualColorName:"info",okButton:{text:"Yes, Copy",callbackFunction:l}})}),document.querySelector("#button--deleteLotOccupancy").addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:`Delete ${t.escapedAliases.Occupancy} Record`,message:"Are you sure you want to delete this record?",contextualColorName:"warning",okButton:{text:"Yes, Delete",callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doDeleteLotOccupancy",{lotOccupancyId:c},e=>{var c;e.success?(cityssm.disableNavBlocker(),window.location.href=t.getLotOccupancyURL()):bulmaJS.alert({title:"Error Deleting Record",message:null!==(c=e.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}}})}),document.querySelector("#button--createWorkOrder").addEventListener("click",e=>{let a;function o(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doCreateWorkOrder",e.currentTarget,e=>{e.success?(a(),bulmaJS.confirm({title:"Work Order Created Successfully",message:"Would you like to open the work order now?",contextualColorName:"success",okButton:{text:"Yes, Open the Work Order",callbackFunction:()=>{window.location.href=t.getWorkOrderURL(e.workOrderId,!0)}}})):bulmaJS.alert({title:"Error Creating Work Order",message:e.errorMessage,contextualColorName:"danger"})})}e.preventDefault(),cityssm.openHtmlModal("lotOccupancy-createWorkOrder",{onshow(e){e.querySelector("#workOrderCreate--lotOccupancyId").value=c,e.querySelector("#workOrderCreate--workOrderOpenDateString").value=cityssm.dateToString(new Date);const t=e.querySelector("#workOrderCreate--workOrderTypeId"),a=exports.workOrderTypes;1===a.length&&(t.innerHTML="");for(const e of a){const c=document.createElement("option");c.value=e.workOrderTypeId.toString(),c.textContent=e.workOrderType,t.append(c)}},onshown(e,t){var c;a=t,null===(c=e.querySelector("form"))||void 0===c||c.addEventListener("submit",o)}})});const r=document.querySelector("#lotOccupancy--occupancyTypeId");if(a){const e=document.querySelector("#container--lotOccupancyFields");r.addEventListener("change",()=>{""!==r.value?cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doGetOccupancyTypeFields",{occupancyTypeId:r.value},c=>{if(0===c.occupancyTypeFields.length)return void(e.innerHTML=`
\n

There are no additional fields for this ${t.escapedAliases.occupancy} type.

\n
`);e.innerHTML="";let a="";for(const t of c.occupancyTypeFields){a+=","+t.occupancyTypeFieldId;const c="lotOccupancyFieldValue_"+t.occupancyTypeFieldId,o="lotOccupancy--"+c,n=document.createElement("div");if(n.className="field",n.innerHTML=`
`,n.querySelector("label").textContent=t.occupancyTypeField,""===t.occupancyTypeFieldValues){const e=document.createElement("input");e.className="input",e.id=o,e.name=c,e.type="text",e.required=t.isRequired,e.minLength=t.minimumLength,e.maxLength=t.maximumLength,t.pattern&&""!==t.pattern&&(e.pattern=t.pattern),n.querySelector(".control").append(e)}else{n.querySelector(".control").innerHTML='
';const e=n.querySelector("select");e.required=t.isRequired;const a=t.occupancyTypeFieldValues.split("\n");for(const t of a){const c=document.createElement("option");c.value=t,c.textContent=t,e.append(c)}}e.append(n)}e.insertAdjacentHTML("beforeend",``)}):e.innerHTML=`
\n

Select the ${t.escapedAliases.occupancy} type to load the available fields.

\n
`})}else{const e=r.value;r.addEventListener("change",()=>{r.value!==e&&bulmaJS.confirm({title:"Confirm Change",message:`Are you sure you want to change the ${t.escapedAliases.occupancy} type?\n\n This change affects the additional fields associated with this record, and may also affect the available fees.`,contextualColorName:"warning",okButton:{text:"Yes, Keep the Change",callbackFunction:()=>{o=!0}},cancelButton:{text:"Revert the Change",callbackFunction:()=>{r.value=e}}})})}const u=document.querySelector("#lotOccupancy--lotName");let i;u.addEventListener("click",e=>{const c=e.currentTarget.value;let a,o,n,s;function l(e,c){document.querySelector("#lotOccupancy--lotId").value=e.toString(),document.querySelector("#lotOccupancy--lotName").value=c,t.setUnsavedChanges(),a()}function r(e){e.preventDefault();const t=e.currentTarget;l(t.dataset.lotId,t.dataset.lotName)}function u(){s.innerHTML=t.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(t.urlPrefix+"/lots/doSearchLots",n,e=>{var t,c;if(0===e.count)return void(s.innerHTML='
\n

No results.

\n
');const a=document.createElement("div");a.className="panel";for(const o of e.lots){const e=document.createElement("a");e.className="panel-block is-block",e.href="#",e.dataset.lotId=o.lotId.toString(),e.dataset.lotName=o.lotName,e.innerHTML='
'+cityssm.escapeHTML(null!==(t=o.lotName)&&void 0!==t?t:"")+'
'+cityssm.escapeHTML(null!==(c=o.mapName)&&void 0!==c?c:"")+'
'+cityssm.escapeHTML(o.lotStatus)+'
'+(o.lotOccupancyCount>0?"Currently Occupied":"")+"
",e.addEventListener("click",r),a.append(e)}s.innerHTML="",s.append(a)})}function i(e){e.preventDefault();const c=o.querySelector("#lotCreate--lotName").value;cityssm.postJSON(t.urlPrefix+"/lots/doCreateLot",e.currentTarget,e=>{var a;e.success?l(e.lotId,c):bulmaJS.alert({title:`Error Creating ${t.escapedAliases.Lot}`,message:null!==(a=e.errorMessage)&&void 0!==a?a:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-selectLot",{onshow:e=>{t.populateAliases(e)},onshown:(e,t)=>{var l;bulmaJS.toggleHtmlClipped(),o=e,a=t,bulmaJS.init(e);const r=e.querySelector("#lotSelect--lotName");""!==document.querySelector("#lotOccupancy--lotId").value&&(r.value=c),r.focus(),r.addEventListener("change",u);const d=e.querySelector("#lotSelect--occupancyStatus");if(d.addEventListener("change",u),""!==c&&(d.value=""),n=e.querySelector("#form--lotSelect"),s=e.querySelector("#resultsContainer--lotSelect"),n.addEventListener("submit",e=>{e.preventDefault()}),u(),exports.lotNamePattern){const t=exports.lotNamePattern;e.querySelector("#lotCreate--lotName").pattern=t.source}const p=e.querySelector("#lotCreate--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,p.append(t)}const m=e.querySelector("#lotCreate--lotStatusId");for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,m.append(t)}const y=e.querySelector("#lotCreate--mapId");for(const e of exports.maps){const t=document.createElement("option");t.value=e.mapId.toString(),t.textContent=""===(null!==(l=e.mapName)&&void 0!==l?l:"")?"(No Name)":e.mapName,y.append(t)}e.querySelector("#form--lotCreate").addEventListener("submit",i)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),document.querySelector(".is-lot-view-button").addEventListener("click",()=>{const e=document.querySelector("#lotOccupancy--lotId").value;e?window.open(t.urlPrefix+"/lots/"+e):bulmaJS.alert({message:`No ${t.escapedAliases.lot} selected.`,contextualColorName:"info"})}),document.querySelector(".is-clear-lot-button").addEventListener("click",()=>{u.disabled?bulmaJS.alert({message:"You need to unlock the field before clearing it.",contextualColorName:"info"}):(u.value=`(No ${t.escapedAliases.Lot})`,document.querySelector("#lotOccupancy--lotId").value="",t.setUnsavedChanges())}),t.initializeDatePickers(n),document.querySelector("#lotOccupancy--occupancyStartDateString").addEventListener("change",()=>{const e=document.querySelector("#lotOccupancy--occupancyEndDateString").bulmaCalendar.datePicker;e.min=document.querySelector("#lotOccupancy--occupancyStartDateString").value,e.refresh()}),t.initializeUnlockFieldButtons(n),Object.defineProperty(exports,"__esModule",{value:!0});const d=e=>{const a=Number.parseInt(e.currentTarget.closest("tr").dataset.lotOccupantIndex,10),o=i.find(e=>e.lotOccupantIndex===a);let n,s;const l=e=>{e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyOccupant",n,e=>{e.success?(i=e.lotOccupancyOccupants,s(),m()):bulmaJS.alert({title:"Error Updating "+exports.aliases.occupant,message:e.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-editOccupant",{onshow:e=>{t.populateAliases(e),e.querySelector("#lotOccupancyOccupantEdit--lotOccupancyId").value=c,e.querySelector("#lotOccupancyOccupantEdit--lotOccupantIndex").value=a.toString();const n=e.querySelector("#lotOccupancyOccupantEdit--lotOccupantTypeId");let s=!1;for(const e of exports.lotOccupantTypes){const t=document.createElement("option");t.value=e.lotOccupantTypeId.toString(),t.textContent=e.lotOccupantType,e.lotOccupantTypeId===o.lotOccupantTypeId&&(t.selected=!0,s=!0),n.append(t)}if(!s){const e=document.createElement("option");e.value=o.lotOccupantTypeId.toString(),e.textContent=o.lotOccupantType,e.selected=!0,n.append(e)}e.querySelector("#lotOccupancyOccupantEdit--occupantName").value=o.occupantName,e.querySelector("#lotOccupancyOccupantEdit--occupantAddress1").value=o.occupantAddress1,e.querySelector("#lotOccupancyOccupantEdit--occupantAddress2").value=o.occupantAddress2,e.querySelector("#lotOccupancyOccupantEdit--occupantCity").value=o.occupantCity,e.querySelector("#lotOccupancyOccupantEdit--occupantProvince").value=o.occupantProvince,e.querySelector("#lotOccupancyOccupantEdit--occupantPostalCode").value=o.occupantPostalCode,e.querySelector("#lotOccupancyOccupantEdit--occupantPhoneNumber").value=o.occupantPhoneNumber,e.querySelector("#lotOccupancyOccupantEdit--occupantEmailAddress").value=o.occupantEmailAddress,e.querySelector("#lotOccupancyOccupantEdit--occupantComment").value=o.occupantComment},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyOccupantEdit--lotOccupantTypeId").focus(),(n=e.querySelector("form")).addEventListener("submit",l),s=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},p=e=>{const a=e.currentTarget.closest("tr").dataset.lotOccupantIndex;bulmaJS.confirm({title:"Remove "+exports.aliases.occupant+"?",message:"Are you sure you want to remove this "+exports.aliases.occupant.toLowerCase()+"?",okButton:{text:"Yes, Remove "+exports.aliases.occupant,callbackFunction:()=>{cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyOccupant",{lotOccupancyId:c,lotOccupantIndex:a},e=>{e.success?(i=e.lotOccupancyOccupants,m()):bulmaJS.alert({title:"Error Removing "+exports.aliases.occupant,message:e.errorMessage||"",contextualColorName:"danger"})})}},contextualColorName:"warning"})},m=()=>{const e=document.querySelector("#container--lotOccupancyOccupants");if(cityssm.clearElement(e),0===i.length)return void(e.innerHTML='

There are no '+exports.aliases.occupants.toLowerCase()+" associated with this record.

");const t=document.createElement("table");t.className="table is-fullwidth is-striped is-hoverable",t.innerHTML=""+exports.aliases.occupant+'AddressOther ContactCommentOptions';for(const e of i){const c=document.createElement("tr");c.dataset.lotOccupantIndex=e.lotOccupantIndex.toString(),c.innerHTML=""+cityssm.escapeHTML(e.occupantName||"(No Name)")+'
'+cityssm.escapeHTML(e.lotOccupantType)+""+(e.occupantAddress1?cityssm.escapeHTML(e.occupantAddress1)+"
":"")+(e.occupantAddress2?cityssm.escapeHTML(e.occupantAddress2)+"
":"")+(e.occupantCity?cityssm.escapeHTML(e.occupantCity)+", ":"")+cityssm.escapeHTML(e.occupantProvince||"")+"
"+cityssm.escapeHTML(e.occupantPostalCode||"")+""+(e.occupantPhoneNumber?cityssm.escapeHTML(e.occupantPhoneNumber)+"
":"")+(e.occupantEmailAddress?cityssm.escapeHTML(e.occupantEmailAddress):"")+""+cityssm.escapeHTML(e.occupantComment)+'
',c.querySelector(".button--edit").addEventListener("click",d),c.querySelector(".button--delete").addEventListener("click",p),t.querySelector("tbody").append(c)}e.append(t)};if(a){const e=document.querySelector("#lotOccupancy--lotOccupantTypeId");e.addEventListener("change",()=>{const t=n.querySelectorAll("[data-table='LotOccupancyOccupant']");for(const c of t)c.disabled=""===e.value})}else i=exports.lotOccupancyOccupants,delete exports.lotOccupancyOccupants,document.querySelector("#button--addOccupant").addEventListener("click",()=>{let e,a,o,n;const s=c=>{cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doAddLotOccupancyOccupant",c,t=>{t.success?(i=t.lotOccupancyOccupants,e(),m()):bulmaJS.alert({title:"Error Adding "+exports.aliases.occupant,message:t.errorMessage||"",contextualColorName:"danger"})})},l=e=>{e.preventDefault(),s(a)};let r=[];const u=e=>{e.preventDefault();const t=e.currentTarget,a=r[Number.parseInt(t.dataset.index,10)],o=t.closest(".modal").querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId").value;""===o?bulmaJS.alert({title:"No "+exports.aliases.occupant+" Type Selected",message:"Select a type to apply to the newly added "+exports.aliases.occupant.toLowerCase()+".",contextualColorName:"warning"}):(a.lotOccupantTypeId=Number.parseInt(o,10),a.lotOccupancyId=Number.parseInt(c,10),s(a))},d=e=>{e.preventDefault(),""!==o.querySelector("#lotOccupancyOccupantCopy--searchFilter").value?(n.innerHTML=t.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doSearchPastOccupants",o,e=>{r=e.occupants;const t=document.createElement("div");t.className="panel";for(const[e,c]of r.entries()){const a=document.createElement("a");a.className="panel-block is-block",a.dataset.index=e.toString(),a.innerHTML=""+cityssm.escapeHTML(c.occupantName||"")+'
'+cityssm.escapeHTML(c.occupantAddress1||"")+"
"+(c.occupantAddress2?cityssm.escapeHTML(c.occupantAddress2)+"
":"")+cityssm.escapeHTML(c.occupantCity||"")+", "+cityssm.escapeHTML(c.occupantProvince||"")+"
"+cityssm.escapeHTML(c.occupantPostalCode||"")+'
'+(c.occupantPhoneNumber?cityssm.escapeHTML(c.occupantPhoneNumber)+"
":"")+cityssm.escapeHTML(c.occupantEmailAddress||"")+"
",a.addEventListener("click",u),t.append(a)}n.innerHTML="",n.append(t)})):n.innerHTML='

Enter a partial name or address in the search field above.

'};cityssm.openHtmlModal("lotOccupancy-addOccupant",{onshow:e=>{t.populateAliases(e),e.querySelector("#lotOccupancyOccupantAdd--lotOccupancyId").value=c;const a=e.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId"),o=e.querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId");for(const e of exports.lotOccupantTypes){const t=document.createElement("option");t.value=e.lotOccupantTypeId.toString(),t.textContent=e.lotOccupantType,a.append(t),o.append(t.cloneNode(!0))}e.querySelector("#lotOccupancyOccupantAdd--occupantCity").value=exports.occupantCityDefault,e.querySelector("#lotOccupancyOccupantAdd--occupantProvince").value=exports.occupantProvinceDefault},onshown:(t,c)=>{bulmaJS.toggleHtmlClipped(),bulmaJS.init(t),t.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId").focus(),(a=t.querySelector("#form--lotOccupancyOccupantAdd")).addEventListener("submit",l),n=t.querySelector("#lotOccupancyOccupantCopy--searchResults"),(o=t.querySelector("#form--lotOccupancyOccupantCopy")).addEventListener("submit",e=>{e.preventDefault()}),t.querySelector("#lotOccupancyOccupantCopy--searchFilter").addEventListener("change",d),e=c},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),m();if(!a){Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.lotOccupancyComments;function y(a){const o=Number.parseInt(a.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10),n=e.find(e=>e.lotOccupancyCommentId===o);let s,l;function r(c){c.preventDefault(),cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyComment",s,t=>{var c;t.success?(e=t.lotOccupancyComments,l(),g()):bulmaJS.alert({title:"Error Updating Comment",message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-editComment",{onshow:e=>{t.populateAliases(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyId").value=c,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentId").value=o.toString(),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").value=n.lotOccupancyComment;const a=e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentDateString");a.value=n.lotOccupancyCommentDateString;const s=cityssm.dateToString(new Date);a.max=n.lotOccupancyCommentDateString<=s?s:n.lotOccupancyCommentDateString,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentTimeString").value=n.lotOccupancyCommentTimeString},onshown:(e,c)=>{bulmaJS.toggleHtmlClipped(),t.initializeDatePickers(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").focus(),(s=e.querySelector("form")).addEventListener("submit",r),l=c},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function O(a){const o=Number.parseInt(a.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10);bulmaJS.confirm({title:"Remove Comment?",message:"Are you sure you want to remove this comment?",okButton:{text:"Yes, Remove Comment",callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyComment",{lotOccupancyId:c,lotOccupancyCommentId:o},t=>{var c;t.success?(e=t.lotOccupancyComments,g()):bulmaJS.alert({title:"Error Removing Comment",message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function g(){var t,c;const a=document.querySelector("#container--lotOccupancyComments");if(0===e.length)return void(a.innerHTML='

There are no comments associated with this record.

');const o=document.createElement("table");o.className="table is-fullwidth is-striped is-hoverable",o.innerHTML='CommentorComment DateCommentOptions';for(const a of e){const e=document.createElement("tr");e.dataset.lotOccupancyCommentId=a.lotOccupancyCommentId.toString(),e.innerHTML=""+cityssm.escapeHTML(null!==(t=a.recordCreate_userName)&&void 0!==t?t:"")+""+a.lotOccupancyCommentDateString+(0===a.lotOccupancyCommentTime?"":" "+a.lotOccupancyCommentTimeString)+""+cityssm.escapeHTML(null!==(c=a.lotOccupancyComment)&&void 0!==c?c:"")+'
',e.querySelector(".button--edit").addEventListener("click",y),e.querySelector(".button--delete").addEventListener("click",O),o.querySelector("tbody").append(e)}a.innerHTML="",a.append(o)}delete exports.lotOccupancyComments,document.querySelector("#button--addComment").addEventListener("click",()=>{let a,o;function n(c){c.preventDefault(),cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doAddLotOccupancyComment",a,t=>{var c;t.success?(e=t.lotOccupancyComments,o(),g()):bulmaJS.alert({title:"Error Adding Comment",message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-addComment",{onshow:e=>{t.populateAliases(e),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyId").value=c},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyComment").focus(),(a=e.querySelector("form")).addEventListener("submit",n),o=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),g(),Object.defineProperty(exports,"__esModule",{value:!0});let a=exports.lotOccupancyFees;delete exports.lotOccupancyFees;const o=document.querySelector("#container--lotOccupancyFees"),n=()=>{let e=0;for(const t of a)e+=(t.feeAmount+t.taxAmount)*t.quantity;return e},s=e=>{const o=e.currentTarget.closest(".container--lotOccupancyFee").dataset.feeId;bulmaJS.confirm({title:"Delete Fee",message:"Are you sure you want to delete this fee?",contextualColorName:"warning",okButton:{text:"Yes, Delete Fee",callbackFunction:()=>{cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyFee",{lotOccupancyId:c,feeId:o},e=>{e.success?(a=e.lotOccupancyFees,l()):bulmaJS.alert({title:"Error Deleting Fee",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},l=()=>{if(0===a.length)return o.innerHTML='

There are no fees associated with this record.

',void p();o.innerHTML='
FeeUnit Cost×QuantityequalsTotalOptions
Subtotal
Tax
Grand Total
';let e=0,t=0;for(const c of a){const a=document.createElement("tr");a.className="container--lotOccupancyFee",a.dataset.feeId=c.feeId.toString(),a.dataset.includeQuantity=c.includeQuantity?"1":"0",a.innerHTML=''+cityssm.escapeHTML(c.feeName||"")+""+(1===c.quantity?"":'$'+c.feeAmount.toFixed(2)+'×'+c.quantity+"=")+'$'+(c.feeAmount*c.quantity).toFixed(2)+'',a.querySelector("button").addEventListener("click",s),o.querySelector("tbody").append(a),e+=c.feeAmount*c.quantity,t+=c.taxAmount*c.quantity}o.querySelector("#lotOccupancyFees--feeAmountTotal").textContent="$"+e.toFixed(2),o.querySelector("#lotOccupancyFees--taxAmountTotal").textContent="$"+t.toFixed(2),o.querySelector("#lotOccupancyFees--grandTotal").textContent="$"+(e+t).toFixed(2),p()};document.querySelector("#button--addFee").addEventListener("click",()=>{if(hasUnsavedChanges)return void bulmaJS.alert({message:"Please save all unsaved changes before adding fees.",contextualColorName:"warning"});let e,n,s;const r=(e,o=1)=>{cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doAddLotOccupancyFee",{lotOccupancyId:c,feeId:e,quantity:o},e=>{e.success?(a=e.lotOccupancyFees,l(),i()):bulmaJS.alert({title:"Error Adding Fee",message:e.errorMessage||"",contextualColorName:"danger"})})},u=t=>{t.preventDefault();const c=Number.parseInt(t.currentTarget.dataset.feeId,10),a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10),o=e.find(e=>e.feeCategoryId===a).fees.find(e=>e.feeId===c);o.includeQuantity?(e=>{let t,c;const a=a=>{a.preventDefault(),r(e.feeId,t.value),c()};cityssm.openHtmlModal("lotOccupancy-setFeeQuantity",{onshow:t=>{t.querySelector("#lotOccupancyFeeQuantity--quantityUnit").textContent=e.quantityUnit},onshown:(e,o)=>{c=o,t=e.querySelector("#lotOccupancyFeeQuantity--quantity"),e.querySelector("form").addEventListener("submit",a)}})})(o):r(c)},i=()=>{const t=n.value.trim().toLowerCase().split(" ");s.innerHTML="";for(const c of e){const e=document.createElement("div");e.className="container--feeCategory",e.dataset.feeCategoryId=c.feeCategoryId.toString(),e.innerHTML='

'+cityssm.escapeHTML(c.feeCategory||"")+'

';let a=!1;for(const n of c.fees){if(o.querySelector(".container--lotOccupancyFee[data-fee-id='"+n.feeId+"'][data-include-quantity='0']"))continue;let c=!0;for(const e of t)if(!n.feeName.toLowerCase().includes(e)){c=!1;break}if(!c)continue;a=!0;const s=document.createElement("a");s.className="panel-block is-block container--fee",s.dataset.feeId=n.feeId.toString(),s.href="#",s.innerHTML=""+cityssm.escapeHTML(n.feeName||"")+"
"+cityssm.escapeHTML(n.feeDescription||"").replace(/\n/g,"
")+"
",s.addEventListener("click",u),e.querySelector(".panel").append(s)}a&&s.append(e)}};cityssm.openHtmlModal("lotOccupancy-addFee",{onshow:a=>{n=a.querySelector("#feeSelect--feeName"),s=a.querySelector("#resultsContainer--feeSelect"),cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doGetFees",{lotOccupancyId:c},t=>{e=t.feeCategories,n.disabled=!1,n.addEventListener("keyup",i),n.focus(),i()})},onshown:()=>{bulmaJS.toggleHtmlClipped()},onhidden:()=>{l()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})});let r=exports.lotOccupancyTransactions;delete exports.lotOccupancyTransactions;const u=document.querySelector("#container--lotOccupancyTransactions"),i=()=>{let e=0;for(const t of r)e+=t.transactionAmount;return e},d=e=>{const a=e.currentTarget.closest(".container--lotOccupancyTransaction").dataset.transactionIndex;bulmaJS.confirm({title:"Delete Trasnaction",message:"Are you sure you want to delete this transaction?",contextualColorName:"warning",okButton:{text:"Yes, Delete Transaction",callbackFunction:()=>{cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyTransaction",{lotOccupancyId:c,transactionIndex:a},e=>{e.success?(r=e.lotOccupancyTransactions,p()):bulmaJS.alert({title:"Error Deleting Transaction",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},p=()=>{if(0===r.length)return void(u.innerHTML='

There are no transactions associated with this record.

');u.innerHTML='
Date'+cityssm.escapeHTML(exports.aliases.externalReceiptNumber)+'AmountOptions
Transaction Total
';let e=0;for(const t of r){e+=t.transactionAmount;const c=document.createElement("tr");c.className="container--lotOccupancyTransaction",c.dataset.transactionIndex=t.transactionIndex.toString(),c.innerHTML=""+t.transactionDateString+""+cityssm.escapeHTML(t.externalReceiptNumber||"")+"
"+cityssm.escapeHTML(t.transactionNote||"")+'$'+t.transactionAmount.toFixed(2)+'',c.querySelector("button").addEventListener("click",d),u.querySelector("tbody").append(c)}u.querySelector("#lotOccupancyTransactions--grandTotal").textContent="$"+e.toFixed(2);const t=n();t>e&&u.insertAdjacentHTML("afterbegin",'
Outstanding Balance
$'+(t-e).toFixed(2)+"
")};document.querySelector("#button--addTransaction").addEventListener("click",()=>{let e;const a=c=>{c.preventDefault(),cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doAddLotOccupancyTransaction",c.currentTarget,t=>{t.success?(r=t.lotOccupancyTransactions,e(),p()):bulmaJS.confirm({title:"Error Adding Transaction",message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-addTransaction",{onshow:e=>{t.populateAliases(e),e.querySelector("#lotOccupancyTransactionAdd--lotOccupancyId").value=c.toString();const a=n(),o=i(),s=e.querySelector("#lotOccupancyTransactionAdd--transactionAmount");s.min=(-1*o).toFixed(2),s.max=Math.max(a-o,0).toFixed(2),s.value=Math.max(a-o,0).toFixed(2)},onshown:(t,c)=>{bulmaJS.toggleHtmlClipped(),e=c,t.querySelector("form").addEventListener("submit",a)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),l()}})(); \ No newline at end of file diff --git a/public/javascripts/mapEdit.min.js b/public/javascripts/mapEdit.min.js index 3fe77852..951c3b37 100644 --- a/public/javascripts/mapEdit.min.js +++ b/public/javascripts/mapEdit.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e;const t=exports.los,a=document.querySelector("#map--mapId").value,s=""===a,o=document.querySelector("#form--map");o.addEventListener("submit",function(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/maps/"+(s?"doCreateMap":"doUpdateMap"),o,e=>{e.success?(cityssm.disableNavBlocker(),s?window.location.href=t.urlPrefix+"/maps/"+e.mapId+"/edit":bulmaJS.alert({message:exports.aliases.map+" Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+exports.aliases.map,message:e.errorMessage||"",contextualColorName:"danger"})})});const r=o.querySelectorAll("input, select");for(const e of r)e.addEventListener("change",cityssm.enableNavBlocker);null===(e=document.querySelector("#button--deleteMap"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:"Delete "+exports.aliases.map,message:`Are you sure you want to delete this ${exports.aliases.map.toLowerCase()} and all related ${exports.aliases.lots.toLowerCase()}?`,contextualColorName:"warning",okButton:{text:`Yes, Delete ${exports.aliases.map}`,callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/maps/doDeleteMap",{mapId:a},e=>{e.success?window.location.href=t.getMapURL():bulmaJS.alert({title:"Error Deleting "+exports.aliases.map,message:e.errorMessage||"",contextualColorName:"danger"})})}}})})})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e;const a=exports.los,t=document.querySelector("#map--mapId").value,s=""===t,l=document.querySelector("#form--map");l.addEventListener("submit",function(e){e.preventDefault(),cityssm.postJSON(a.urlPrefix+"/maps/"+(s?"doCreateMap":"doUpdateMap"),l,e=>{var t;e.success?(cityssm.disableNavBlocker(),s?window.location.href=a.getMapURL(e.mapId,!0):bulmaJS.alert({message:a.escapedAliases.Map+" Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+a.escapedAliases.Map,message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})});const o=l.querySelectorAll("input, select");for(const e of o)e.addEventListener("change",cityssm.enableNavBlocker);null===(e=document.querySelector("#button--deleteMap"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:"Delete "+a.escapedAliases.Map,message:`Are you sure you want to delete this ${a.escapedAliases.map} and all related ${a.escapedAliases.lots}?`,contextualColorName:"warning",okButton:{text:`Yes, Delete ${a.escapedAliases.Map}`,callbackFunction:function(){cityssm.postJSON(a.urlPrefix+"/maps/doDeleteMap",{mapId:t},e=>{var t;e.success?window.location.href=a.getMapURL():bulmaJS.alert({title:"Error Deleting "+a.escapedAliases.Map,message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})})})(); \ No newline at end of file diff --git a/public/javascripts/mapSearch.min.js b/public/javascripts/mapSearch.min.js index 6a7b3277..045b3062 100644 --- a/public/javascripts/mapSearch.min.js +++ b/public/javascripts/mapSearch.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,s=exports.maps,a=document.querySelector("#searchFilter--map"),t=document.querySelector("#container--searchResults");function r(){t.innerHTML=e.getLoadingParagraphHTML(`Loading ${e.escapedAliases.Maps}...`);let r=0;const i=document.createElement("tbody"),d=a.value.trim().toLowerCase().split(" ");for(const a of s){const s=`${a.mapName} ${a.mapDescription} ${a.mapAddress1} ${a.mapAddress2}`.toLowerCase();let t=!0;for(const e of d)if(!s.includes(e)){t=!1;break}t&&(r+=1,i.insertAdjacentHTML("beforeend",''+cityssm.escapeHTML(a.mapName||"(No Name)")+'
'+cityssm.escapeHTML(a.mapDescription||"")+""+(a.mapAddress1?cityssm.escapeHTML(a.mapAddress1)+"
":"")+(a.mapAddress2?cityssm.escapeHTML(a.mapAddress2)+"
":"")+(a.mapCity||a.mapProvince?cityssm.escapeHTML(a.mapCity||"")+", "+cityssm.escapeHTML(a.mapProvince||"")+"
":"")+(a.mapPostalCode?cityssm.escapeHTML(a.mapPostalCode):"")+""+cityssm.escapeHTML(a.mapPhoneNumber||"")+''+(a.mapLatitude&&a.mapLongitude?'':"")+''+(a.mapSVG?'':"")+''+a.lotCount+""))}if(t.innerHTML="",0===r)t.innerHTML=`
\n

There are no ${e.escapedAliases.maps} that meet the search criteria.

\n
`;else{const s=document.createElement("table");s.className="table is-fullwidth is-striped is-hoverable has-sticky-header",s.innerHTML=`\n ${e.escapedAliases.Map}\n Address\n Phone Number\n Coordinates\n Image\n ${e.escapedAliases.Lot} Count\n `,s.append(i),t.append(s)}}a.addEventListener("keyup",r),document.querySelector("#form--searchFilters").addEventListener("submit",e=>{e.preventDefault(),r()}),r()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,a=exports.maps,s=document.querySelector("#searchFilter--map"),t=document.querySelector("#container--searchResults");function r(){var r,i,d,n,o,c,p,l;t.innerHTML=e.getLoadingParagraphHTML(`Loading ${e.escapedAliases.Maps}...`);let m=0;const h=document.createElement("tbody"),u=s.value.trim().toLowerCase().split(" ");for(const s of a){const a=`${null!==(r=s.mapName)&&void 0!==r?r:""} ${null!==(i=s.mapDescription)&&void 0!==i?i:""} ${null!==(d=s.mapAddress1)&&void 0!==d?d:""} ${null!==(n=s.mapAddress2)&&void 0!==n?n:""}`.toLowerCase();let t=!0;for(const e of u)if(!a.includes(e)){t=!1;break}t&&(m+=1,h.insertAdjacentHTML("beforeend",''+cityssm.escapeHTML(""===s.mapName?"(No Name)":s.mapName)+'
'+cityssm.escapeHTML(null!==(o=s.mapDescription)&&void 0!==o?o:"")+""+(s.mapAddress1?cityssm.escapeHTML(s.mapAddress1)+"
":"")+(s.mapAddress2?cityssm.escapeHTML(s.mapAddress2)+"
":"")+(s.mapCity||s.mapProvince?cityssm.escapeHTML(null!==(c=s.mapCity)&&void 0!==c?c:"")+", "+cityssm.escapeHTML(null!==(p=s.mapProvince)&&void 0!==p?p:"")+"
":"")+(s.mapPostalCode?cityssm.escapeHTML(s.mapPostalCode):"")+""+cityssm.escapeHTML(null!==(l=s.mapPhoneNumber)&&void 0!==l?l:"")+''+(s.mapLatitude&&s.mapLongitude?'':"")+''+(s.mapSVG?'':"")+''+s.lotCount+""))}if(t.innerHTML="",0===m)t.innerHTML=`
\n

There are no ${e.escapedAliases.maps} that meet the search criteria.

\n
`;else{const a=document.createElement("table");a.className="table is-fullwidth is-striped is-hoverable has-sticky-header",a.innerHTML=`\n ${e.escapedAliases.Map}\n Address\n Phone Number\n Coordinates\n Image\n ${e.escapedAliases.Lot} Count\n `,a.append(h),t.append(a)}}s.addEventListener("keyup",r),document.querySelector("#form--searchFilters").addEventListener("submit",e=>{e.preventDefault(),r()}),r()})(); \ No newline at end of file diff --git a/tsconfig.client.json b/tsconfig.client.json index 4c19b6f1..673c6b66 100644 --- a/tsconfig.client.json +++ b/tsconfig.client.json @@ -7,7 +7,8 @@ "declaration": true, "noImplicitAny": false, "removeComments": false, - "allowUnreachableCode": false + "allowUnreachableCode": false, + "strictNullChecks": true }, "files": [ "public-typescript/adminCleanup.ts",