change save button when unsaved changes
parent
5eb925c2cd
commit
81a6c9de6b
|
|
@ -9,13 +9,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const isCreate = lotId === '';
|
||||
// Main form
|
||||
let refreshAfterSave = isCreate;
|
||||
function setUnsavedChanges() {
|
||||
var _a;
|
||||
los.setUnsavedChanges();
|
||||
(_a = document
|
||||
.querySelector("button[type='submit'][form='form--lot']")) === null || _a === void 0 ? void 0 : _a.classList.remove('is-light');
|
||||
}
|
||||
function clearUnsavedChanges() {
|
||||
var _a;
|
||||
los.clearUnsavedChanges();
|
||||
(_a = document
|
||||
.querySelector("button[type='submit'][form='form--lot']")) === null || _a === void 0 ? void 0 : _a.classList.add('is-light');
|
||||
}
|
||||
const formElement = document.querySelector('#form--lot');
|
||||
function updateLot(formEvent) {
|
||||
formEvent.preventDefault();
|
||||
cityssm.postJSON(los.urlPrefix + '/lots/' + (isCreate ? 'doCreateLot' : 'doUpdateLot'), formElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + '/lots/' + (isCreate ? 'doCreateLot' : 'doUpdateLot'), formElement, (rawResponseJSON) => {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
los.clearUnsavedChanges();
|
||||
clearUnsavedChanges();
|
||||
if (isCreate || refreshAfterSave) {
|
||||
window.location.href = los.getLotURL(responseJSON.lotId, true, true);
|
||||
}
|
||||
|
|
@ -38,7 +51,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
formElement.addEventListener('submit', updateLot);
|
||||
const formInputElements = formElement.querySelectorAll('input, select');
|
||||
for (const formInputElement of formInputElements) {
|
||||
formInputElement.addEventListener('change', los.setUnsavedChanges);
|
||||
formInputElement.addEventListener('change', setUnsavedChanges);
|
||||
}
|
||||
los.initializeUnlockFieldButtons(formElement);
|
||||
(_a = document
|
||||
|
|
@ -89,8 +102,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
var _a;
|
||||
if (responseJSON.lotTypeFields.length === 0) {
|
||||
lotFieldsContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no additional fields for this ${los.escapedAliases.lot} type.</p>
|
||||
</div>`;
|
||||
<p class="message-body">There are no additional fields for this ${los.escapedAliases.lot} type.</p>
|
||||
</div>`;
|
||||
return;
|
||||
}
|
||||
lotFieldsContainerElement.innerHTML = '';
|
||||
|
|
|
|||
|
|
@ -20,6 +20,20 @@ declare const bulmaJS: BulmaJS
|
|||
|
||||
let refreshAfterSave = isCreate
|
||||
|
||||
function setUnsavedChanges(): void {
|
||||
los.setUnsavedChanges()
|
||||
document
|
||||
.querySelector("button[type='submit'][form='form--lot']")
|
||||
?.classList.remove('is-light')
|
||||
}
|
||||
|
||||
function clearUnsavedChanges(): void {
|
||||
los.clearUnsavedChanges()
|
||||
document
|
||||
.querySelector("button[type='submit'][form='form--lot']")
|
||||
?.classList.add('is-light')
|
||||
}
|
||||
|
||||
const formElement = document.querySelector('#form--lot') as HTMLFormElement
|
||||
|
||||
function updateLot(formEvent: SubmitEvent): void {
|
||||
|
|
@ -28,13 +42,15 @@ declare const bulmaJS: BulmaJS
|
|||
cityssm.postJSON(
|
||||
los.urlPrefix + '/lots/' + (isCreate ? 'doCreateLot' : 'doUpdateLot'),
|
||||
formElement,
|
||||
(responseJSON: {
|
||||
success: boolean
|
||||
lotId?: number
|
||||
errorMessage?: string
|
||||
}) => {
|
||||
(rawResponseJSON) => {
|
||||
const responseJSON = rawResponseJSON as {
|
||||
success: boolean
|
||||
lotId?: number
|
||||
errorMessage?: string
|
||||
}
|
||||
|
||||
if (responseJSON.success) {
|
||||
los.clearUnsavedChanges()
|
||||
clearUnsavedChanges()
|
||||
|
||||
if (isCreate || refreshAfterSave) {
|
||||
window.location.href = los.getLotURL(responseJSON.lotId, true, true)
|
||||
|
|
@ -60,7 +76,7 @@ declare const bulmaJS: BulmaJS
|
|||
const formInputElements = formElement.querySelectorAll('input, select')
|
||||
|
||||
for (const formInputElement of formInputElements) {
|
||||
formInputElement.addEventListener('change', los.setUnsavedChanges)
|
||||
formInputElement.addEventListener('change', setUnsavedChanges)
|
||||
}
|
||||
|
||||
los.initializeUnlockFieldButtons(formElement)
|
||||
|
|
@ -130,8 +146,8 @@ declare const bulmaJS: BulmaJS
|
|||
(responseJSON: { lotTypeFields: recordTypes.LotTypeField[] }) => {
|
||||
if (responseJSON.lotTypeFields.length === 0) {
|
||||
lotFieldsContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no additional fields for this ${los.escapedAliases.lot} type.</p>
|
||||
</div>`
|
||||
<p class="message-body">There are no additional fields for this ${los.escapedAliases.lot} type.</p>
|
||||
</div>`
|
||||
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,15 +10,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
* Main form
|
||||
*/
|
||||
let refreshAfterSave = isCreate;
|
||||
function setUnsavedChanges() {
|
||||
var _a;
|
||||
los.setUnsavedChanges();
|
||||
(_a = document
|
||||
.querySelector("button[type='submit'][form='form--lotOccupancy']")) === null || _a === void 0 ? void 0 : _a.classList.remove('is-light');
|
||||
}
|
||||
function clearUnsavedChanges() {
|
||||
var _a;
|
||||
los.clearUnsavedChanges();
|
||||
(_a = document
|
||||
.querySelector("button[type='submit'][form='form--lotOccupancy']")) === null || _a === void 0 ? void 0 : _a.classList.add('is-light');
|
||||
}
|
||||
const formElement = document.querySelector('#form--lotOccupancy');
|
||||
formElement.addEventListener('submit', (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
cityssm.postJSON(los.urlPrefix +
|
||||
'/lotOccupancies/' +
|
||||
(isCreate ? 'doCreateLotOccupancy' : 'doUpdateLotOccupancy'), formElement, (responseJSON) => {
|
||||
(isCreate ? 'doCreateLotOccupancy' : 'doUpdateLotOccupancy'), formElement, (rawResponseJSON) => {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
los.clearUnsavedChanges();
|
||||
clearUnsavedChanges();
|
||||
if (isCreate || refreshAfterSave) {
|
||||
window.location.href = los.getLotOccupancyURL(responseJSON.lotOccupancyId, true, true);
|
||||
}
|
||||
|
|
@ -40,15 +53,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
const formInputElements = formElement.querySelectorAll('input, select');
|
||||
for (const formInputElement of formInputElements) {
|
||||
formInputElement.addEventListener('change', los.setUnsavedChanges);
|
||||
formInputElement.addEventListener('change', setUnsavedChanges);
|
||||
}
|
||||
function doCopy() {
|
||||
cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doCopyLotOccupancy', {
|
||||
lotOccupancyId
|
||||
}, (responseJSON) => {
|
||||
}, (rawResponseJSON) => {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
clearUnsavedChanges();
|
||||
window.location.href = los.getLotOccupancyURL(responseJSON.lotOccupancyId, true);
|
||||
}
|
||||
else {
|
||||
|
|
@ -88,10 +102,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
function doDelete() {
|
||||
cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doDeleteLotOccupancy', {
|
||||
lotOccupancyId
|
||||
}, (responseJSON) => {
|
||||
}, (rawResponseJSON) => {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
clearUnsavedChanges();
|
||||
window.location.href = los.getLotOccupancyURL();
|
||||
}
|
||||
else {
|
||||
|
|
@ -119,7 +134,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let createCloseModalFunction;
|
||||
function doCreate(formEvent) {
|
||||
formEvent.preventDefault();
|
||||
cityssm.postJSON(los.urlPrefix + '/workOrders/doCreateWorkOrder', formEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + '/workOrders/doCreateWorkOrder', formEvent.currentTarget, (rawResponseJSON) => {
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
createCloseModalFunction();
|
||||
bulmaJS.confirm({
|
||||
|
|
@ -188,8 +204,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doGetOccupancyTypeFields', {
|
||||
occupancyTypeId: occupancyTypeIdElement.value
|
||||
}, (responseJSON) => {
|
||||
}, (rawResponseJSON) => {
|
||||
var _a, _b;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.occupancyTypeFields.length === 0) {
|
||||
lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no additional fields for this ${los.escapedAliases.occupancy} type.</p>
|
||||
|
|
@ -297,8 +314,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
function searchLots() {
|
||||
lotSelectResultsElement.innerHTML =
|
||||
los.getLoadingParagraphHTML('Searching...');
|
||||
cityssm.postJSON(los.urlPrefix + '/lots/doSearchLots', lotSelectFormElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + '/lots/doSearchLots', lotSelectFormElement, (rawResponseJSON) => {
|
||||
var _a, _b;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.count === 0) {
|
||||
lotSelectResultsElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">No results.</p>
|
||||
|
|
@ -340,8 +358,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
function createLotAndSelect(submitEvent) {
|
||||
submitEvent.preventDefault();
|
||||
const lotName = lotSelectModalElement.querySelector('#lotCreate--lotName').value;
|
||||
cityssm.postJSON(los.urlPrefix + '/lots/doCreateLot', submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + '/lots/doCreateLot', submitEvent.currentTarget, (rawResponseJSON) => {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
renderSelectedLotAndClose(responseJSON.lotId, lotName);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,15 +10,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
* Main form
|
||||
*/
|
||||
let refreshAfterSave = isCreate;
|
||||
function setUnsavedChanges() {
|
||||
var _a;
|
||||
los.setUnsavedChanges();
|
||||
(_a = document
|
||||
.querySelector("button[type='submit'][form='form--lotOccupancy']")) === null || _a === void 0 ? void 0 : _a.classList.remove('is-light');
|
||||
}
|
||||
function clearUnsavedChanges() {
|
||||
var _a;
|
||||
los.clearUnsavedChanges();
|
||||
(_a = document
|
||||
.querySelector("button[type='submit'][form='form--lotOccupancy']")) === null || _a === void 0 ? void 0 : _a.classList.add('is-light');
|
||||
}
|
||||
const formElement = document.querySelector('#form--lotOccupancy');
|
||||
formElement.addEventListener('submit', (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
cityssm.postJSON(los.urlPrefix +
|
||||
'/lotOccupancies/' +
|
||||
(isCreate ? 'doCreateLotOccupancy' : 'doUpdateLotOccupancy'), formElement, (responseJSON) => {
|
||||
(isCreate ? 'doCreateLotOccupancy' : 'doUpdateLotOccupancy'), formElement, (rawResponseJSON) => {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
los.clearUnsavedChanges();
|
||||
clearUnsavedChanges();
|
||||
if (isCreate || refreshAfterSave) {
|
||||
window.location.href = los.getLotOccupancyURL(responseJSON.lotOccupancyId, true, true);
|
||||
}
|
||||
|
|
@ -40,15 +53,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
const formInputElements = formElement.querySelectorAll('input, select');
|
||||
for (const formInputElement of formInputElements) {
|
||||
formInputElement.addEventListener('change', los.setUnsavedChanges);
|
||||
formInputElement.addEventListener('change', setUnsavedChanges);
|
||||
}
|
||||
function doCopy() {
|
||||
cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doCopyLotOccupancy', {
|
||||
lotOccupancyId
|
||||
}, (responseJSON) => {
|
||||
}, (rawResponseJSON) => {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
clearUnsavedChanges();
|
||||
window.location.href = los.getLotOccupancyURL(responseJSON.lotOccupancyId, true);
|
||||
}
|
||||
else {
|
||||
|
|
@ -88,10 +102,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
function doDelete() {
|
||||
cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doDeleteLotOccupancy', {
|
||||
lotOccupancyId
|
||||
}, (responseJSON) => {
|
||||
}, (rawResponseJSON) => {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
clearUnsavedChanges();
|
||||
window.location.href = los.getLotOccupancyURL();
|
||||
}
|
||||
else {
|
||||
|
|
@ -119,7 +134,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let createCloseModalFunction;
|
||||
function doCreate(formEvent) {
|
||||
formEvent.preventDefault();
|
||||
cityssm.postJSON(los.urlPrefix + '/workOrders/doCreateWorkOrder', formEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + '/workOrders/doCreateWorkOrder', formEvent.currentTarget, (rawResponseJSON) => {
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
createCloseModalFunction();
|
||||
bulmaJS.confirm({
|
||||
|
|
@ -188,8 +204,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doGetOccupancyTypeFields', {
|
||||
occupancyTypeId: occupancyTypeIdElement.value
|
||||
}, (responseJSON) => {
|
||||
}, (rawResponseJSON) => {
|
||||
var _a, _b;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.occupancyTypeFields.length === 0) {
|
||||
lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no additional fields for this ${los.escapedAliases.occupancy} type.</p>
|
||||
|
|
@ -297,8 +314,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
function searchLots() {
|
||||
lotSelectResultsElement.innerHTML =
|
||||
los.getLoadingParagraphHTML('Searching...');
|
||||
cityssm.postJSON(los.urlPrefix + '/lots/doSearchLots', lotSelectFormElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + '/lots/doSearchLots', lotSelectFormElement, (rawResponseJSON) => {
|
||||
var _a, _b;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.count === 0) {
|
||||
lotSelectResultsElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">No results.</p>
|
||||
|
|
@ -340,8 +358,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
function createLotAndSelect(submitEvent) {
|
||||
submitEvent.preventDefault();
|
||||
const lotName = lotSelectModalElement.querySelector('#lotCreate--lotName').value;
|
||||
cityssm.postJSON(los.urlPrefix + '/lots/doCreateLot', submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + '/lots/doCreateLot', submitEvent.currentTarget, (rawResponseJSON) => {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
renderSelectedLotAndClose(responseJSON.lotId, lotName);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,20 @@ declare const bulmaJS: BulmaJS
|
|||
|
||||
let refreshAfterSave = isCreate
|
||||
|
||||
function setUnsavedChanges(): void {
|
||||
los.setUnsavedChanges()
|
||||
document
|
||||
.querySelector("button[type='submit'][form='form--lotOccupancy']")
|
||||
?.classList.remove('is-light')
|
||||
}
|
||||
|
||||
function clearUnsavedChanges(): void {
|
||||
los.clearUnsavedChanges()
|
||||
document
|
||||
.querySelector("button[type='submit'][form='form--lotOccupancy']")
|
||||
?.classList.add('is-light')
|
||||
}
|
||||
|
||||
const formElement = document.querySelector(
|
||||
'#form--lotOccupancy'
|
||||
) as HTMLFormElement
|
||||
|
|
@ -35,13 +49,15 @@ declare const bulmaJS: BulmaJS
|
|||
'/lotOccupancies/' +
|
||||
(isCreate ? 'doCreateLotOccupancy' : 'doUpdateLotOccupancy'),
|
||||
formElement,
|
||||
(responseJSON: {
|
||||
success: boolean
|
||||
lotOccupancyId?: number
|
||||
errorMessage?: string
|
||||
}) => {
|
||||
(rawResponseJSON) => {
|
||||
const responseJSON = rawResponseJSON as {
|
||||
success: boolean
|
||||
lotOccupancyId?: number
|
||||
errorMessage?: string
|
||||
}
|
||||
|
||||
if (responseJSON.success) {
|
||||
los.clearUnsavedChanges()
|
||||
clearUnsavedChanges()
|
||||
|
||||
if (isCreate || refreshAfterSave) {
|
||||
window.location.href = los.getLotOccupancyURL(
|
||||
|
|
@ -69,7 +85,7 @@ declare const bulmaJS: BulmaJS
|
|||
const formInputElements = formElement.querySelectorAll('input, select')
|
||||
|
||||
for (const formInputElement of formInputElements) {
|
||||
formInputElement.addEventListener('change', los.setUnsavedChanges)
|
||||
formInputElement.addEventListener('change', setUnsavedChanges)
|
||||
}
|
||||
|
||||
function doCopy(): void {
|
||||
|
|
@ -78,13 +94,16 @@ declare const bulmaJS: BulmaJS
|
|||
{
|
||||
lotOccupancyId
|
||||
},
|
||||
(responseJSON: {
|
||||
success: boolean
|
||||
errorMessage?: string
|
||||
lotOccupancyId?: number
|
||||
}) => {
|
||||
(rawResponseJSON) => {
|
||||
const responseJSON = rawResponseJSON as {
|
||||
success: boolean
|
||||
errorMessage?: string
|
||||
lotOccupancyId?: number
|
||||
}
|
||||
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker()
|
||||
clearUnsavedChanges()
|
||||
|
||||
window.location.href = los.getLotOccupancyURL(
|
||||
responseJSON.lotOccupancyId,
|
||||
true
|
||||
|
|
@ -135,9 +154,14 @@ declare const bulmaJS: BulmaJS
|
|||
{
|
||||
lotOccupancyId
|
||||
},
|
||||
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||
(rawResponseJSON) => {
|
||||
const responseJSON = rawResponseJSON as {
|
||||
success: boolean
|
||||
errorMessage?: string
|
||||
}
|
||||
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker()
|
||||
clearUnsavedChanges()
|
||||
window.location.href = los.getLotOccupancyURL()
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
|
|
@ -174,11 +198,13 @@ declare const bulmaJS: BulmaJS
|
|||
cityssm.postJSON(
|
||||
los.urlPrefix + '/workOrders/doCreateWorkOrder',
|
||||
formEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean
|
||||
errorMessage?: string
|
||||
workOrderId?: number
|
||||
}) => {
|
||||
(rawResponseJSON) => {
|
||||
const responseJSON = rawResponseJSON as {
|
||||
success: boolean
|
||||
errorMessage?: string
|
||||
workOrderId?: number
|
||||
}
|
||||
|
||||
if (responseJSON.success) {
|
||||
createCloseModalFunction()
|
||||
|
||||
|
|
@ -287,9 +313,11 @@ declare const bulmaJS: BulmaJS
|
|||
{
|
||||
occupancyTypeId: occupancyTypeIdElement.value
|
||||
},
|
||||
(responseJSON: {
|
||||
occupancyTypeFields: recordTypes.OccupancyTypeField[]
|
||||
}) => {
|
||||
(rawResponseJSON) => {
|
||||
const responseJSON = rawResponseJSON as {
|
||||
occupancyTypeFields: recordTypes.OccupancyTypeField[]
|
||||
}
|
||||
|
||||
if (responseJSON.occupancyTypeFields.length === 0) {
|
||||
lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no additional fields for this ${los.escapedAliases.occupancy} type.</p>
|
||||
|
|
@ -459,7 +487,12 @@ declare const bulmaJS: BulmaJS
|
|||
cityssm.postJSON(
|
||||
los.urlPrefix + '/lots/doSearchLots',
|
||||
lotSelectFormElement,
|
||||
(responseJSON: { count: number; lots: recordTypes.Lot[] }) => {
|
||||
(rawResponseJSON) => {
|
||||
const responseJSON = rawResponseJSON as {
|
||||
count: number
|
||||
lots: recordTypes.Lot[]
|
||||
}
|
||||
|
||||
if (responseJSON.count === 0) {
|
||||
lotSelectResultsElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">No results.</p>
|
||||
|
|
@ -520,11 +553,13 @@ declare const bulmaJS: BulmaJS
|
|||
cityssm.postJSON(
|
||||
los.urlPrefix + '/lots/doCreateLot',
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean
|
||||
errorMessage?: string
|
||||
lotId?: number
|
||||
}) => {
|
||||
(rawResponseJSON) => {
|
||||
const responseJSON = rawResponseJSON as {
|
||||
success: boolean
|
||||
errorMessage?: string
|
||||
lotId?: number
|
||||
}
|
||||
|
||||
if (responseJSON.success) {
|
||||
renderSelectedLotAndClose(responseJSON.lotId!, lotName)
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -8,12 +8,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
.value;
|
||||
const isCreate = mapId === '';
|
||||
const mapForm = document.querySelector('#form--map');
|
||||
function setUnsavedChanges() {
|
||||
var _a;
|
||||
los.setUnsavedChanges();
|
||||
(_a = document
|
||||
.querySelector("button[type='submit'][form='form--map']")) === null || _a === void 0 ? void 0 : _a.classList.remove('is-light');
|
||||
}
|
||||
function clearUnsavedChanges() {
|
||||
var _a;
|
||||
los.clearUnsavedChanges();
|
||||
(_a = document
|
||||
.querySelector("button[type='submit'][form='form--map']")) === null || _a === void 0 ? void 0 : _a.classList.add('is-light');
|
||||
}
|
||||
function updateMap(formEvent) {
|
||||
formEvent.preventDefault();
|
||||
cityssm.postJSON(los.urlPrefix + '/maps/' + (isCreate ? 'doCreateMap' : 'doUpdateMap'), mapForm, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + '/maps/' + (isCreate ? 'doCreateMap' : 'doUpdateMap'), mapForm, (rawResponseJSON) => {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
clearUnsavedChanges();
|
||||
if (isCreate) {
|
||||
window.location.href = los.getMapURL(responseJSON.mapId, true);
|
||||
}
|
||||
|
|
@ -36,7 +49,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
mapForm.addEventListener('submit', updateMap);
|
||||
const inputElements = mapForm.querySelectorAll('input, select');
|
||||
for (const inputElement of inputElements) {
|
||||
inputElement.addEventListener('change', cityssm.enableNavBlocker);
|
||||
inputElement.addEventListener('change', setUnsavedChanges);
|
||||
}
|
||||
(_a = document
|
||||
.querySelector('#button--deleteMap')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', (clickEvent) => {
|
||||
|
|
@ -44,8 +57,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
function doDelete() {
|
||||
cityssm.postJSON(los.urlPrefix + '/maps/doDeleteMap', {
|
||||
mapId
|
||||
}, (responseJSON) => {
|
||||
}, (rawResponseJSON) => {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
window.location.href = los.getMapURL();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,19 +16,35 @@ declare const bulmaJS: BulmaJS
|
|||
|
||||
const mapForm = document.querySelector('#form--map') as HTMLFormElement
|
||||
|
||||
function setUnsavedChanges(): void {
|
||||
los.setUnsavedChanges()
|
||||
document
|
||||
.querySelector("button[type='submit'][form='form--map']")
|
||||
?.classList.remove('is-light')
|
||||
}
|
||||
|
||||
function clearUnsavedChanges(): void {
|
||||
los.clearUnsavedChanges()
|
||||
document
|
||||
.querySelector("button[type='submit'][form='form--map']")
|
||||
?.classList.add('is-light')
|
||||
}
|
||||
|
||||
function updateMap(formEvent: SubmitEvent): void {
|
||||
formEvent.preventDefault()
|
||||
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + '/maps/' + (isCreate ? 'doCreateMap' : 'doUpdateMap'),
|
||||
mapForm,
|
||||
(responseJSON: {
|
||||
success: boolean
|
||||
mapId?: number
|
||||
errorMessage?: string
|
||||
}) => {
|
||||
(rawResponseJSON) => {
|
||||
const responseJSON = rawResponseJSON as {
|
||||
success: boolean
|
||||
mapId?: number
|
||||
errorMessage?: string
|
||||
}
|
||||
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker()
|
||||
clearUnsavedChanges()
|
||||
|
||||
if (isCreate) {
|
||||
window.location.href = los.getMapURL(responseJSON.mapId, true)
|
||||
|
|
@ -55,7 +71,7 @@ declare const bulmaJS: BulmaJS
|
|||
mapForm.querySelectorAll('input, select')
|
||||
|
||||
for (const inputElement of inputElements) {
|
||||
inputElement.addEventListener('change', cityssm.enableNavBlocker)
|
||||
inputElement.addEventListener('change', setUnsavedChanges)
|
||||
}
|
||||
|
||||
document
|
||||
|
|
@ -69,7 +85,12 @@ declare const bulmaJS: BulmaJS
|
|||
{
|
||||
mapId
|
||||
},
|
||||
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||
(rawResponseJSON) => {
|
||||
const responseJSON = rawResponseJSON as {
|
||||
success: boolean
|
||||
errorMessage?: string
|
||||
}
|
||||
|
||||
if (responseJSON.success) {
|
||||
window.location.href = los.getMapURL()
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -11,14 +11,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
.querySelector('#workOrderEdit--workOrderOpenDateString')
|
||||
.closest('.field'));
|
||||
los.initializeUnlockFieldButtons(workOrderFormElement);
|
||||
function setUnsavedChanges() {
|
||||
var _a;
|
||||
los.setUnsavedChanges();
|
||||
(_a = document
|
||||
.querySelector("button[type='submit'][form='form--workOrderEdit']")) === null || _a === void 0 ? void 0 : _a.classList.remove('is-light');
|
||||
}
|
||||
function clearUnsavedChanges() {
|
||||
var _a;
|
||||
los.clearUnsavedChanges();
|
||||
(_a = document
|
||||
.querySelector("button[type='submit'][form='form--workOrderEdit']")) === null || _a === void 0 ? void 0 : _a.classList.add('is-light');
|
||||
}
|
||||
workOrderFormElement.addEventListener('submit', (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(los.urlPrefix +
|
||||
'/workOrders/' +
|
||||
(isCreate ? 'doCreateWorkOrder' : 'doUpdateWorkOrder'), submitEvent.currentTarget, (responseJSON) => {
|
||||
(isCreate ? 'doCreateWorkOrder' : 'doUpdateWorkOrder'), submitEvent.currentTarget, (rawResponseJSON) => {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
clearUnsavedChanges();
|
||||
if (isCreate) {
|
||||
window.location.href = los.getWorkOrderURL(responseJSON.workOrderId, true);
|
||||
}
|
||||
|
|
@ -38,9 +51,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
});
|
||||
});
|
||||
const inputElements = workOrderFormElement.querySelectorAll('input, select');
|
||||
const inputElements = workOrderFormElement.querySelectorAll('input, select, textarea');
|
||||
for (const inputElement of inputElements) {
|
||||
inputElement.addEventListener('change', cityssm.enableNavBlocker);
|
||||
inputElement.addEventListener('change', setUnsavedChanges);
|
||||
}
|
||||
/*
|
||||
* Work Order Options
|
||||
|
|
@ -48,9 +61,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
function doClose() {
|
||||
cityssm.postJSON(los.urlPrefix + '/workOrders/doCloseWorkOrder', {
|
||||
workOrderId
|
||||
}, (responseJSON) => {
|
||||
}, (rawResponseJSON) => {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
clearUnsavedChanges();
|
||||
window.location.href = los.getWorkOrderURL(workOrderId);
|
||||
}
|
||||
else {
|
||||
|
|
@ -65,9 +80,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
function doDelete() {
|
||||
cityssm.postJSON(los.urlPrefix + '/workOrders/doDeleteWorkOrder', {
|
||||
workOrderId
|
||||
}, (responseJSON) => {
|
||||
}, (rawResponseJSON) => {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
clearUnsavedChanges();
|
||||
window.location.href = los.urlPrefix + '/workOrders';
|
||||
}
|
||||
else {
|
||||
|
|
@ -89,28 +106,30 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
bulmaJS.alert({
|
||||
title: 'Outstanding Milestones',
|
||||
message: `You cannot close a work order with outstanding milestones.
|
||||
Either complete the outstanding milestones, or remove them from the work order.`,
|
||||
Either complete the outstanding milestones, or remove them from the work order.`,
|
||||
contextualColorName: 'warning'
|
||||
});
|
||||
/*
|
||||
// Disable closing work orders with open milestones
|
||||
bulmaJS.confirm({
|
||||
title: "Close Work Order with Outstanding Milestones",
|
||||
message:
|
||||
"Are you sure you want to close this work order with outstanding milestones?",
|
||||
contextualColorName: "danger",
|
||||
okButton: {
|
||||
text: "Yes, Close Work Order",
|
||||
callbackFunction: doClose
|
||||
}
|
||||
title: "Close Work Order with Outstanding Milestones",
|
||||
message:
|
||||
"Are you sure you want to close this work order with outstanding milestones?",
|
||||
contextualColorName: "danger",
|
||||
okButton: {
|
||||
text: "Yes, Close Work Order",
|
||||
callbackFunction: doClose
|
||||
}
|
||||
});
|
||||
*/
|
||||
}
|
||||
else {
|
||||
bulmaJS.confirm({
|
||||
title: 'Close Work Order',
|
||||
message: 'Are you sure you want to close this work order?',
|
||||
contextualColorName: 'info',
|
||||
message: los.hasUnsavedChanges()
|
||||
? 'Are you sure you want to close this work order with unsaved changes?'
|
||||
: 'Are you sure you want to close this work order?',
|
||||
contextualColorName: los.hasUnsavedChanges() ? 'warning' : 'info',
|
||||
okButton: {
|
||||
text: 'Yes, Close Work Order',
|
||||
callbackFunction: doClose
|
||||
|
|
@ -902,8 +921,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
/*
|
||||
* Milestones
|
||||
*/
|
||||
function processMilestoneResponse(responseJSON) {
|
||||
function processMilestoneResponse(rawResponseJSON) {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
workOrderMilestones = responseJSON.workOrderMilestones;
|
||||
renderMilestones();
|
||||
|
|
|
|||
|
|
@ -11,14 +11,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
.querySelector('#workOrderEdit--workOrderOpenDateString')
|
||||
.closest('.field'));
|
||||
los.initializeUnlockFieldButtons(workOrderFormElement);
|
||||
function setUnsavedChanges() {
|
||||
var _a;
|
||||
los.setUnsavedChanges();
|
||||
(_a = document
|
||||
.querySelector("button[type='submit'][form='form--workOrderEdit']")) === null || _a === void 0 ? void 0 : _a.classList.remove('is-light');
|
||||
}
|
||||
function clearUnsavedChanges() {
|
||||
var _a;
|
||||
los.clearUnsavedChanges();
|
||||
(_a = document
|
||||
.querySelector("button[type='submit'][form='form--workOrderEdit']")) === null || _a === void 0 ? void 0 : _a.classList.add('is-light');
|
||||
}
|
||||
workOrderFormElement.addEventListener('submit', (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(los.urlPrefix +
|
||||
'/workOrders/' +
|
||||
(isCreate ? 'doCreateWorkOrder' : 'doUpdateWorkOrder'), submitEvent.currentTarget, (responseJSON) => {
|
||||
(isCreate ? 'doCreateWorkOrder' : 'doUpdateWorkOrder'), submitEvent.currentTarget, (rawResponseJSON) => {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
clearUnsavedChanges();
|
||||
if (isCreate) {
|
||||
window.location.href = los.getWorkOrderURL(responseJSON.workOrderId, true);
|
||||
}
|
||||
|
|
@ -38,9 +51,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
});
|
||||
});
|
||||
const inputElements = workOrderFormElement.querySelectorAll('input, select');
|
||||
const inputElements = workOrderFormElement.querySelectorAll('input, select, textarea');
|
||||
for (const inputElement of inputElements) {
|
||||
inputElement.addEventListener('change', cityssm.enableNavBlocker);
|
||||
inputElement.addEventListener('change', setUnsavedChanges);
|
||||
}
|
||||
/*
|
||||
* Work Order Options
|
||||
|
|
@ -48,9 +61,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
function doClose() {
|
||||
cityssm.postJSON(los.urlPrefix + '/workOrders/doCloseWorkOrder', {
|
||||
workOrderId
|
||||
}, (responseJSON) => {
|
||||
}, (rawResponseJSON) => {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
clearUnsavedChanges();
|
||||
window.location.href = los.getWorkOrderURL(workOrderId);
|
||||
}
|
||||
else {
|
||||
|
|
@ -65,9 +80,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
function doDelete() {
|
||||
cityssm.postJSON(los.urlPrefix + '/workOrders/doDeleteWorkOrder', {
|
||||
workOrderId
|
||||
}, (responseJSON) => {
|
||||
}, (rawResponseJSON) => {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
clearUnsavedChanges();
|
||||
window.location.href = los.urlPrefix + '/workOrders';
|
||||
}
|
||||
else {
|
||||
|
|
@ -89,28 +106,30 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
bulmaJS.alert({
|
||||
title: 'Outstanding Milestones',
|
||||
message: `You cannot close a work order with outstanding milestones.
|
||||
Either complete the outstanding milestones, or remove them from the work order.`,
|
||||
Either complete the outstanding milestones, or remove them from the work order.`,
|
||||
contextualColorName: 'warning'
|
||||
});
|
||||
/*
|
||||
// Disable closing work orders with open milestones
|
||||
bulmaJS.confirm({
|
||||
title: "Close Work Order with Outstanding Milestones",
|
||||
message:
|
||||
"Are you sure you want to close this work order with outstanding milestones?",
|
||||
contextualColorName: "danger",
|
||||
okButton: {
|
||||
text: "Yes, Close Work Order",
|
||||
callbackFunction: doClose
|
||||
}
|
||||
title: "Close Work Order with Outstanding Milestones",
|
||||
message:
|
||||
"Are you sure you want to close this work order with outstanding milestones?",
|
||||
contextualColorName: "danger",
|
||||
okButton: {
|
||||
text: "Yes, Close Work Order",
|
||||
callbackFunction: doClose
|
||||
}
|
||||
});
|
||||
*/
|
||||
}
|
||||
else {
|
||||
bulmaJS.confirm({
|
||||
title: 'Close Work Order',
|
||||
message: 'Are you sure you want to close this work order?',
|
||||
contextualColorName: 'info',
|
||||
message: los.hasUnsavedChanges()
|
||||
? 'Are you sure you want to close this work order with unsaved changes?'
|
||||
: 'Are you sure you want to close this work order?',
|
||||
contextualColorName: los.hasUnsavedChanges() ? 'warning' : 'info',
|
||||
okButton: {
|
||||
text: 'Yes, Close Work Order',
|
||||
callbackFunction: doClose
|
||||
|
|
@ -144,8 +163,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
/*
|
||||
* Milestones
|
||||
*/
|
||||
function processMilestoneResponse(responseJSON) {
|
||||
function processMilestoneResponse(rawResponseJSON) {
|
||||
var _a;
|
||||
const responseJSON = rawResponseJSON;
|
||||
if (responseJSON.success) {
|
||||
workOrderMilestones = responseJSON.workOrderMilestones;
|
||||
renderMilestones();
|
||||
|
|
|
|||
|
|
@ -28,6 +28,20 @@ declare const bulmaJS: BulmaJS
|
|||
)
|
||||
los.initializeUnlockFieldButtons(workOrderFormElement)
|
||||
|
||||
function setUnsavedChanges(): void {
|
||||
los.setUnsavedChanges()
|
||||
document
|
||||
.querySelector("button[type='submit'][form='form--workOrderEdit']")
|
||||
?.classList.remove('is-light')
|
||||
}
|
||||
|
||||
function clearUnsavedChanges(): void {
|
||||
los.clearUnsavedChanges()
|
||||
document
|
||||
.querySelector("button[type='submit'][form='form--workOrderEdit']")
|
||||
?.classList.add('is-light')
|
||||
}
|
||||
|
||||
workOrderFormElement.addEventListener('submit', (submitEvent) => {
|
||||
submitEvent.preventDefault()
|
||||
|
||||
|
|
@ -36,13 +50,15 @@ declare const bulmaJS: BulmaJS
|
|||
'/workOrders/' +
|
||||
(isCreate ? 'doCreateWorkOrder' : 'doUpdateWorkOrder'),
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean
|
||||
workOrderId?: number
|
||||
errorMessage?: string
|
||||
}) => {
|
||||
(rawResponseJSON) => {
|
||||
const responseJSON = rawResponseJSON as {
|
||||
success: boolean
|
||||
workOrderId?: number
|
||||
errorMessage?: string
|
||||
}
|
||||
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker()
|
||||
clearUnsavedChanges()
|
||||
|
||||
if (isCreate) {
|
||||
window.location.href = los.getWorkOrderURL(
|
||||
|
|
@ -66,11 +82,11 @@ declare const bulmaJS: BulmaJS
|
|||
)
|
||||
})
|
||||
|
||||
const inputElements: NodeListOf<HTMLInputElement | HTMLSelectElement> =
|
||||
workOrderFormElement.querySelectorAll('input, select')
|
||||
const inputElements: NodeListOf<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement> =
|
||||
workOrderFormElement.querySelectorAll('input, select, textarea')
|
||||
|
||||
for (const inputElement of inputElements) {
|
||||
inputElement.addEventListener('change', cityssm.enableNavBlocker)
|
||||
inputElement.addEventListener('change', setUnsavedChanges)
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -83,8 +99,14 @@ declare const bulmaJS: BulmaJS
|
|||
{
|
||||
workOrderId
|
||||
},
|
||||
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||
(rawResponseJSON) => {
|
||||
const responseJSON = rawResponseJSON as {
|
||||
success: boolean
|
||||
errorMessage?: string
|
||||
}
|
||||
|
||||
if (responseJSON.success) {
|
||||
clearUnsavedChanges()
|
||||
window.location.href = los.getWorkOrderURL(workOrderId)
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
|
|
@ -103,8 +125,14 @@ declare const bulmaJS: BulmaJS
|
|||
{
|
||||
workOrderId
|
||||
},
|
||||
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||
(rawResponseJSON) => {
|
||||
const responseJSON = rawResponseJSON as {
|
||||
success: boolean
|
||||
errorMessage?: string
|
||||
}
|
||||
|
||||
if (responseJSON.success) {
|
||||
clearUnsavedChanges()
|
||||
window.location.href = los.urlPrefix + '/workOrders'
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
|
|
@ -130,28 +158,30 @@ declare const bulmaJS: BulmaJS
|
|||
bulmaJS.alert({
|
||||
title: 'Outstanding Milestones',
|
||||
message: `You cannot close a work order with outstanding milestones.
|
||||
Either complete the outstanding milestones, or remove them from the work order.`,
|
||||
Either complete the outstanding milestones, or remove them from the work order.`,
|
||||
contextualColorName: 'warning'
|
||||
})
|
||||
|
||||
/*
|
||||
// Disable closing work orders with open milestones
|
||||
bulmaJS.confirm({
|
||||
title: "Close Work Order with Outstanding Milestones",
|
||||
message:
|
||||
"Are you sure you want to close this work order with outstanding milestones?",
|
||||
contextualColorName: "danger",
|
||||
okButton: {
|
||||
text: "Yes, Close Work Order",
|
||||
callbackFunction: doClose
|
||||
}
|
||||
title: "Close Work Order with Outstanding Milestones",
|
||||
message:
|
||||
"Are you sure you want to close this work order with outstanding milestones?",
|
||||
contextualColorName: "danger",
|
||||
okButton: {
|
||||
text: "Yes, Close Work Order",
|
||||
callbackFunction: doClose
|
||||
}
|
||||
});
|
||||
*/
|
||||
} else {
|
||||
bulmaJS.confirm({
|
||||
title: 'Close Work Order',
|
||||
message: 'Are you sure you want to close this work order?',
|
||||
contextualColorName: 'info',
|
||||
message: los.hasUnsavedChanges()
|
||||
? 'Are you sure you want to close this work order with unsaved changes?'
|
||||
: 'Are you sure you want to close this work order?',
|
||||
contextualColorName: los.hasUnsavedChanges() ? 'warning' : 'info',
|
||||
okButton: {
|
||||
text: 'Yes, Close Work Order',
|
||||
callbackFunction: doClose
|
||||
|
|
@ -194,11 +224,13 @@ declare const bulmaJS: BulmaJS
|
|||
* Milestones
|
||||
*/
|
||||
|
||||
function processMilestoneResponse(responseJSON: {
|
||||
success: boolean
|
||||
errorMessage?: string
|
||||
workOrderMilestones?: recordTypes.WorkOrderMilestone[]
|
||||
}): void {
|
||||
function processMilestoneResponse(rawResponseJSON: unknown): void {
|
||||
const responseJSON = rawResponseJSON as {
|
||||
success: boolean
|
||||
errorMessage?: string
|
||||
workOrderMilestones?: recordTypes.WorkOrderMilestone[]
|
||||
}
|
||||
|
||||
if (responseJSON.success) {
|
||||
workOrderMilestones = responseJSON.workOrderMilestones!
|
||||
renderMilestones()
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
"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"})})}}})})})();
|
||||
"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");function l(){var e;t.setUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--map']"))||void 0===e||e.classList.remove("is-light")}o.addEventListener("submit",function(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/maps/"+(s?"doCreateMap":"doUpdateMap"),o,e=>{var a;const o=e;o.success?(function(){var e;t.clearUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--map']"))||void 0===e||e.classList.add("is-light")}(),s?window.location.href=t.getMapURL(o.mapId,!0):bulmaJS.alert({message:t.escapedAliases.Map+" Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+t.escapedAliases.Map,message:null!==(a=o.errorMessage)&&void 0!==a?a:"",contextualColorName:"danger"})})});const r=o.querySelectorAll("input, select");for(const e of r)e.addEventListener("change",l);null===(e=document.querySelector("#button--deleteMap"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:"Delete "+t.escapedAliases.Map,message:`Are you sure you want to delete this ${t.escapedAliases.map} and all related ${t.escapedAliases.lots}?`,contextualColorName:"warning",okButton:{text:`Yes, Delete ${t.escapedAliases.Map}`,callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/maps/doDeleteMap",{mapId:a},e=>{var a;const s=e;s.success?window.location.href=t.getMapURL():bulmaJS.alert({title:"Error Deleting "+t.escapedAliases.Map,message:null!==(a=s.errorMessage)&&void 0!==a?a:"",contextualColorName:"danger"})})}}})})})();
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -68,7 +68,7 @@
|
|||
</div>
|
||||
<% } %>
|
||||
<div class="level-item">
|
||||
<button class="button is-primary" type="submit" form="form--lot">
|
||||
<button class="button is-light is-primary" type="submit" form="form--lot">
|
||||
<span class="icon is-small"><i class="fas fa-save" aria-hidden="true"></i></span>
|
||||
<span>
|
||||
<%= (isCreate ? "Create" : "Update") %>
|
||||
|
|
@ -80,7 +80,7 @@
|
|||
|
||||
</div>
|
||||
|
||||
<form id="form--lot">
|
||||
<form class="mb-5" id="form--lot">
|
||||
<input id="lot--lotId" name="lotId" type="hidden" value="<%= isCreate ? "" : lot.lotId %>" />
|
||||
|
||||
<div class="panel">
|
||||
|
|
@ -371,91 +371,91 @@
|
|||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<div class="panel-heading">
|
||||
<div class="level is-mobile">
|
||||
<div class="level-left">
|
||||
<div class="level-item">
|
||||
<h2 class="has-text-weight-bold is-size-5">
|
||||
<%= configFunctions.getProperty("aliases.occupancies") %>
|
||||
<span class="tag"><%= lot.lotOccupancies.length %></span>
|
||||
</h2>
|
||||
</div>
|
||||
<div class="panel-heading">
|
||||
<div class="level is-mobile">
|
||||
<div class="level-left">
|
||||
<div class="level-item">
|
||||
<h2 class="has-text-weight-bold is-size-5">
|
||||
<%= configFunctions.getProperty("aliases.occupancies") %>
|
||||
<span class="tag"><%= lot.lotOccupancies.length %></span>
|
||||
</h2>
|
||||
</div>
|
||||
<div class="level-right">
|
||||
<div class="level-item">
|
||||
<a class="button is-success is-small has-text-weight-normal" href="<%= urlPrefix %>/lotOccupancies/new?lotId=<%= lot.lotId %>">
|
||||
<span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span>
|
||||
<span>Create New <%= configFunctions.getProperty("aliases.occupancy") %></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="level-right">
|
||||
<div class="level-item">
|
||||
<a class="button is-success is-small has-text-weight-normal" href="<%= urlPrefix %>/lotOccupancies/new?lotId=<%= lot.lotId %>">
|
||||
<span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span>
|
||||
<span>Create New <%= configFunctions.getProperty("aliases.occupancy") %></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-block is-block">
|
||||
<% if (lot.lotOccupancies.length === 0) { %>
|
||||
<div class="message is-info">
|
||||
<p class="message-body">
|
||||
There are no <%= configFunctions.getProperty("aliases.occupancy").toLowerCase() %> records
|
||||
asscociated with this <%= configFunctions.getProperty("aliases.lot") %>.
|
||||
</p>
|
||||
</div>
|
||||
<% } else { %>
|
||||
<table class="table is-fullwidth is-striped is-hoverable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="has-width-10"> </th>
|
||||
<th><%= configFunctions.getProperty("aliases.occupancy") %> Type</th>
|
||||
<th><%= configFunctions.getProperty("aliases.occupancyStartDate") %></th>
|
||||
<th>End Date</th>
|
||||
<th><%= configFunctions.getProperty("aliases.occupants") %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% const currentDate = dateTimeFunctions.dateToInteger(new Date()); %>
|
||||
<% for (const lotOccupancy of lot.lotOccupancies) { %>
|
||||
<% const isActive = !(lotOccupancy.occupancyEndDate && lotOccupancy.occupancyEndDate < currentDate); %>
|
||||
<tr>
|
||||
<td class="has-text-centered">
|
||||
<% if (isActive) { %>
|
||||
<i class="fas fa-play" title="Current <%= configFunctions.getProperty("aliases.occupancy") %>"></i>
|
||||
<% } else { %>
|
||||
<i class="fas fa-stop" title="Previous <%= configFunctions.getProperty("aliases.occupancy") %>"></i>
|
||||
<% } %>
|
||||
</td>
|
||||
<td>
|
||||
<a class="has-text-weight-bold" href="<%= urlPrefix %>/lotOccupancies/<%= lotOccupancy.lotOccupancyId %>">
|
||||
<%= lotOccupancy.occupancyType %>
|
||||
</a><br />
|
||||
<span class="is-size-7">
|
||||
#<%= lotOccupancy.lotOccupancyId %>
|
||||
</span>
|
||||
</td>
|
||||
<td><%= lotOccupancy.occupancyStartDateString %></td>
|
||||
<td>
|
||||
<% if (lotOccupancy.occupancyEndDate) { %>
|
||||
<%= lotOccupancy.occupancyEndDateString %>
|
||||
<% } else { %>
|
||||
<span class="has-text-grey">(No End Date)</span>
|
||||
<% } %>
|
||||
</td>
|
||||
<td>
|
||||
<% if (lotOccupancy.lotOccupancyOccupants.length === 0) { %>
|
||||
<span class="has-text-grey">(No <%= configFunctions.getProperty("aliases.occupants") %>)</span>
|
||||
<% } else { %>
|
||||
<% for (const occupant of lotOccupancy.lotOccupancyOccupants) { %>
|
||||
<span class="has-tooltip-left" data-tooltip="<%= occupant.lotOccupantType %>">
|
||||
<i class="fas fa-fw fa-<%= occupant.fontAwesomeIconClass || 'user' %>" aria-hidden="true"></i>
|
||||
<%= occupant.occupantName + ' ' + occupant.occupantFamilyName %>
|
||||
</span><br />
|
||||
<% } %>
|
||||
<% } %>
|
||||
</td>
|
||||
</tr>
|
||||
<% } %>
|
||||
</tbody>
|
||||
</table>
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-block is-block">
|
||||
<% if (lot.lotOccupancies.length === 0) { %>
|
||||
<div class="message is-info">
|
||||
<p class="message-body">
|
||||
There are no <%= configFunctions.getProperty("aliases.occupancy").toLowerCase() %> records
|
||||
asscociated with this <%= configFunctions.getProperty("aliases.lot") %>.
|
||||
</p>
|
||||
</div>
|
||||
<% } else { %>
|
||||
<table class="table is-fullwidth is-striped is-hoverable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="has-width-10"> </th>
|
||||
<th><%= configFunctions.getProperty("aliases.occupancy") %> Type</th>
|
||||
<th><%= configFunctions.getProperty("aliases.occupancyStartDate") %></th>
|
||||
<th>End Date</th>
|
||||
<th><%= configFunctions.getProperty("aliases.occupants") %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% const currentDate = dateTimeFunctions.dateToInteger(new Date()); %>
|
||||
<% for (const lotOccupancy of lot.lotOccupancies) { %>
|
||||
<% const isActive = !(lotOccupancy.occupancyEndDate && lotOccupancy.occupancyEndDate < currentDate); %>
|
||||
<tr>
|
||||
<td class="has-text-centered">
|
||||
<% if (isActive) { %>
|
||||
<i class="fas fa-play" title="Current <%= configFunctions.getProperty("aliases.occupancy") %>"></i>
|
||||
<% } else { %>
|
||||
<i class="fas fa-stop" title="Previous <%= configFunctions.getProperty("aliases.occupancy") %>"></i>
|
||||
<% } %>
|
||||
</td>
|
||||
<td>
|
||||
<a class="has-text-weight-bold" href="<%= urlPrefix %>/lotOccupancies/<%= lotOccupancy.lotOccupancyId %>">
|
||||
<%= lotOccupancy.occupancyType %>
|
||||
</a><br />
|
||||
<span class="is-size-7">
|
||||
#<%= lotOccupancy.lotOccupancyId %>
|
||||
</span>
|
||||
</td>
|
||||
<td><%= lotOccupancy.occupancyStartDateString %></td>
|
||||
<td>
|
||||
<% if (lotOccupancy.occupancyEndDate) { %>
|
||||
<%= lotOccupancy.occupancyEndDateString %>
|
||||
<% } else { %>
|
||||
<span class="has-text-grey">(No End Date)</span>
|
||||
<% } %>
|
||||
</td>
|
||||
<td>
|
||||
<% if (lotOccupancy.lotOccupancyOccupants.length === 0) { %>
|
||||
<span class="has-text-grey">(No <%= configFunctions.getProperty("aliases.occupants") %>)</span>
|
||||
<% } else { %>
|
||||
<% for (const occupant of lotOccupancy.lotOccupancyOccupants) { %>
|
||||
<span class="has-tooltip-left" data-tooltip="<%= occupant.lotOccupantType %>">
|
||||
<i class="fas fa-fw fa-<%= occupant.fontAwesomeIconClass || 'user' %>" aria-hidden="true"></i>
|
||||
<%= occupant.occupantName + ' ' + occupant.occupantFamilyName %>
|
||||
</span><br />
|
||||
<% } %>
|
||||
<% } %>
|
||||
</td>
|
||||
</tr>
|
||||
<% } %>
|
||||
</tbody>
|
||||
</table>
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,42 +4,42 @@
|
|||
<ul>
|
||||
<li><a href="<%= urlPrefix %>/dashboard">Home</a></li>
|
||||
<li>
|
||||
<a href="<%= urlPrefix %>/lotOccupancies">
|
||||
<span class="icon is-small">
|
||||
<span class="fa-layers fa-fw" aria-hidden="true">
|
||||
<i class="fas fa-vector-square"></i>
|
||||
<i class="fas fa-user" data-fa-transform="shrink-10"></i>
|
||||
</span>
|
||||
</span>
|
||||
<span><%= configFunctions.getProperty("aliases.occupancies") %></span>
|
||||
</a>
|
||||
<a href="<%= urlPrefix %>/lotOccupancies">
|
||||
<span class="icon is-small">
|
||||
<span class="fa-layers fa-fw" aria-hidden="true">
|
||||
<i class="fas fa-vector-square"></i>
|
||||
<i class="fas fa-user" data-fa-transform="shrink-10"></i>
|
||||
</span>
|
||||
</span>
|
||||
<span><%= configFunctions.getProperty("aliases.occupancies") %></span>
|
||||
</a>
|
||||
</li>
|
||||
<% if (!isCreate) { %>
|
||||
<li>
|
||||
<a href="<%= urlPrefix %>/lotOccupancies/<%= lotOccupancy.lotOccupancyId %>" accesskey="v">
|
||||
<%= configFunctions.getProperty("aliases.occupancy") %> #<%= lotOccupancy.lotOccupancyId %>: <%= lotOccupancy.lotName || ("(No " + configFunctions.getProperty("aliases.lot") + ")") %>
|
||||
</a>
|
||||
<a href="<%= urlPrefix %>/lotOccupancies/<%= lotOccupancy.lotOccupancyId %>" accesskey="v">
|
||||
<%= configFunctions.getProperty("aliases.occupancy") %> #<%= lotOccupancy.lotOccupancyId %>: <%= lotOccupancy.lotName || ("(No " + configFunctions.getProperty("aliases.lot") + ")") %>
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
<li class="is-active">
|
||||
<a href="#" aria-current="page">
|
||||
<% if (isCreate) { %>
|
||||
Create a New <%= configFunctions.getProperty("aliases.occupancy") %> Record
|
||||
<% } else { %>
|
||||
Update <%= configFunctions.getProperty("aliases.occupancy") %>
|
||||
<% } %>
|
||||
</a>
|
||||
</li>
|
||||
<a href="#" aria-current="page">
|
||||
<% if (isCreate) { %>
|
||||
Create a New <%= configFunctions.getProperty("aliases.occupancy") %> Record
|
||||
<% } else { %>
|
||||
Update <%= configFunctions.getProperty("aliases.occupancy") %>
|
||||
<% } %>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<% if (isCreate) { %>
|
||||
<h1 class="title is-1">
|
||||
Create a New <%= configFunctions.getProperty("aliases.occupancy") %> Record
|
||||
Create a New <%= configFunctions.getProperty("aliases.occupancy") %> Record
|
||||
</h1>
|
||||
<% } else { %>
|
||||
<h1 class="title is-1">
|
||||
Update <%= configFunctions.getProperty("aliases.occupancy") %> #<%= lotOccupancy.lotOccupancyId %>
|
||||
Update <%= configFunctions.getProperty("aliases.occupancy") %> #<%= lotOccupancy.lotOccupancyId %>
|
||||
</h1>
|
||||
<% } %>
|
||||
|
||||
|
|
@ -118,13 +118,13 @@
|
|||
</div>
|
||||
<% } %>
|
||||
<div class="level-item">
|
||||
<button class="button is-success" type="submit" form="form--lotOccupancy">
|
||||
<button class="button is-primary is-light" type="submit" form="form--lotOccupancy">
|
||||
<span class="icon is-small"><i class="fas fa-save" aria-hidden="true"></i></span>
|
||||
<span>
|
||||
<%= (isCreate ? "Create" : "Update") %>
|
||||
<span class="is-hidden-touch">
|
||||
<%= configFunctions.getProperty("aliases.occupancy") %> Record
|
||||
</span>
|
||||
<%= (isCreate ? "Create" : "Update") %>
|
||||
<span class="is-hidden-touch">
|
||||
<%= configFunctions.getProperty("aliases.occupancy") %> Record
|
||||
</span>
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -4,36 +4,36 @@
|
|||
<ul>
|
||||
<li><a href="<%= urlPrefix %>/dashboard">Home</a></li>
|
||||
<li>
|
||||
<a href="<%= urlPrefix %>/maps">
|
||||
<span class="icon is-small"><i class="far fa-map" aria-hidden="true"></i></span>
|
||||
<span><%= configFunctions.getProperty("aliases.maps") %></span>
|
||||
</a>
|
||||
<a href="<%= urlPrefix %>/maps">
|
||||
<span class="icon is-small"><i class="far fa-map" aria-hidden="true"></i></span>
|
||||
<span><%= configFunctions.getProperty("aliases.maps") %></span>
|
||||
</a>
|
||||
</li>
|
||||
<% if (!isCreate) { %>
|
||||
<li>
|
||||
<a href="<%= urlPrefix %>/maps/<%= map.mapId %>" accesskey="v">
|
||||
<%= map.mapName || "(No Name)" %>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="<%= urlPrefix %>/maps/<%= map.mapId %>" accesskey="v">
|
||||
<%= map.mapName || "(No Name)" %>
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
<li class="is-active">
|
||||
<a href="#" aria-current="page">
|
||||
<% if (isCreate) { %>
|
||||
Create a New <%= configFunctions.getProperty("aliases.map") %>
|
||||
<% } else { %>
|
||||
Update
|
||||
<% } %>
|
||||
</a>
|
||||
<a href="#" aria-current="page">
|
||||
<% if (isCreate) { %>
|
||||
Create a New <%= configFunctions.getProperty("aliases.map") %>
|
||||
<% } else { %>
|
||||
Update
|
||||
<% } %>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<h1 class="title is-1">
|
||||
<% if (isCreate) { %>
|
||||
<% if (isCreate) { %>
|
||||
Create a New <%= configFunctions.getProperty("aliases.map") %>
|
||||
<% } else { %>
|
||||
<% } else { %>
|
||||
Update <%= configFunctions.getProperty("aliases.map") %>
|
||||
<% } %>
|
||||
<% } %>
|
||||
</h1>
|
||||
|
||||
<div class="level is-fixed-bottom is-mobile has-background-white has-shadow is-hidden-print">
|
||||
|
|
@ -48,27 +48,27 @@
|
|||
<% if (!isCreate) { %>
|
||||
<div class="level-item">
|
||||
<div class="dropdown is-right is-up">
|
||||
<div class="dropdown-trigger">
|
||||
<button class="button" type="button">
|
||||
<span>More Options</span>
|
||||
<span class="icon is-small">
|
||||
<i class="fas fa-angle-up" aria-hidden="true"></i>
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="dropdown-menu">
|
||||
<div class="dropdown-content">
|
||||
<a class="dropdown-item" id="button--deleteMap" href="#">
|
||||
<span class="icon is-small"><i class="fas fa-trash has-text-danger" aria-hidden="true"></i></span>
|
||||
<span>Delete <%= configFunctions.getProperty("aliases.map") %></span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="dropdown-trigger">
|
||||
<button class="button" type="button">
|
||||
<span>More Options</span>
|
||||
<span class="icon is-small">
|
||||
<i class="fas fa-angle-up" aria-hidden="true"></i>
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="dropdown-menu">
|
||||
<div class="dropdown-content">
|
||||
<a class="dropdown-item" id="button--deleteMap" href="#">
|
||||
<span class="icon is-small"><i class="fas fa-trash has-text-danger" aria-hidden="true"></i></span>
|
||||
<span>Delete <%= configFunctions.getProperty("aliases.map") %></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<div class="level-item">
|
||||
<button class="button is-primary" type="submit" form="form--map">
|
||||
<button class="button is-primary is-light" type="submit" form="form--map">
|
||||
<span class="icon is-small"><i class="fas fa-save" aria-hidden="true"></i></span>
|
||||
<span>
|
||||
<%= (isCreate ? "Create": "Update") %>
|
||||
|
|
|
|||
|
|
@ -5,26 +5,26 @@
|
|||
<li><a href="<%= urlPrefix %>/dashboard">Home</a></li>
|
||||
<li>
|
||||
<a href="<%= urlPrefix %>/workOrders">
|
||||
<span class="icon is-small"><i class="fas fa-hard-hat" aria-hidden="true"></i></span>
|
||||
<span>Work Orders</span>
|
||||
<span class="icon is-small"><i class="fas fa-hard-hat" aria-hidden="true"></i></span>
|
||||
<span>Work Orders</span>
|
||||
</a>
|
||||
</li>
|
||||
<% if (isCreate) { %>
|
||||
<li class="is-active">
|
||||
<a href="#" aria-current="page">
|
||||
Create a New Work Order
|
||||
</a>
|
||||
<a href="#" aria-current="page">
|
||||
Create a New Work Order
|
||||
</a>
|
||||
</li>
|
||||
<% } else { %>
|
||||
<li>
|
||||
<a href="<%= urlPrefix %>/workOrders/<%= workOrder.workOrderId %>" accesskey="v">
|
||||
Work Order #<%= workOrder.workOrderNumber || "(No Number)" %>
|
||||
</a>
|
||||
<a href="<%= urlPrefix %>/workOrders/<%= workOrder.workOrderId %>" accesskey="v">
|
||||
Work Order #<%= workOrder.workOrderNumber || "(No Number)" %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="is-active">
|
||||
<a href="#" aria-current="page">
|
||||
Update Work Order
|
||||
</a>
|
||||
<a href="#" aria-current="page">
|
||||
Update Work Order
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
<% if (isCreate) { %>
|
||||
<h1 class="title is-1">
|
||||
Create a New Work Order
|
||||
Create a New Work Order
|
||||
</h1>
|
||||
<% } else { %>
|
||||
<h1 class="title is-1">
|
||||
|
|
@ -111,12 +111,12 @@
|
|||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<button class="button is-success" type="submit" form="form--workOrderEdit">
|
||||
<span class="icon is-small"><i class="fas fa-save" aria-hidden="true"></i></span>
|
||||
<span>
|
||||
<%= (isCreate ? "Create" : "Update") %>
|
||||
<span class="is-hidden-touch">Work Order</span>
|
||||
</span>
|
||||
<button class="button is-primary is-light" type="submit" form="form--workOrderEdit">
|
||||
<span class="icon is-small"><i class="fas fa-save" aria-hidden="true"></i></span>
|
||||
<span>
|
||||
<%= (isCreate ? "Create" : "Update") %>
|
||||
<span class="is-hidden-touch">Work Order</span>
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -129,80 +129,80 @@
|
|||
<div class="panel">
|
||||
<div class="panel-block is-block">
|
||||
<div class="columns">
|
||||
<div class="column">
|
||||
<label class="label" for="workOrderEdit--workOrderNumber">Work Order Number</label>
|
||||
<div class="field has-addons">
|
||||
<div class="control is-expanded">
|
||||
<input class="input <%= (isCreate ? "" : " is-readonly") %>" id="workOrderEdit--workOrderNumber" name="workOrderNumber" type="text" value="<%= workOrder.workOrderNumber %>" maxlength="50" readonly accesskey="f" <%= (isCreate ? "" : " required") %> />
|
||||
</div>
|
||||
<div class="control">
|
||||
<button class="button is-unlock-field-button" data-tooltip="Unlock Field" type="button" aria-label="Unlock Field">
|
||||
<i class="fas fa-unlock" aria-hidden="true"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="column">
|
||||
<label class="label" for="workOrderEdit--workOrderNumber">Work Order Number</label>
|
||||
<div class="field has-addons">
|
||||
<div class="control is-expanded">
|
||||
<input class="input <%= (isCreate ? "" : " is-readonly") %>" id="workOrderEdit--workOrderNumber" name="workOrderNumber" type="text" value="<%= workOrder.workOrderNumber %>" maxlength="50" readonly accesskey="f" <%= (isCreate ? "" : " required") %> />
|
||||
</div>
|
||||
<div class="control">
|
||||
<button class="button is-unlock-field-button" data-tooltip="Unlock Field" type="button" aria-label="Unlock Field">
|
||||
<i class="fas fa-unlock" aria-hidden="true"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<% if (isCreate) { %>
|
||||
<p class="help">Leave work order number blank to autopopulate.</p>
|
||||
<% } %>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label class="label" for="workOrderEdit--workOrderTypeId">Work Order Type</label>
|
||||
<div class="control">
|
||||
<div class="select is-fullwidth">
|
||||
<select id="workOrderEdit--workOrderTypeId" name="workOrderTypeId" required <%= (isCreate ? " autofocus" : "") %>>
|
||||
<% if (isCreate && workOrderTypes.length > 1) { %>
|
||||
<option value="">(Select Type)</option>
|
||||
<% } %>
|
||||
<% for (const workOrderType of workOrderTypes) { %>
|
||||
<option value="<%= workOrderType.workOrderTypeId %>" <%= (workOrder.workOrderTypeId === workOrderType.workOrderTypeId ? " selected" : "") %>>
|
||||
<%= workOrderType.workOrderType %>
|
||||
</option>
|
||||
<% } %>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<% if (isCreate) { %>
|
||||
<p class="help">Leave work order number blank to autopopulate.</p>
|
||||
<% } %>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label class="label" for="workOrderEdit--workOrderTypeId">Work Order Type</label>
|
||||
<div class="control">
|
||||
<div class="select is-fullwidth">
|
||||
<select id="workOrderEdit--workOrderTypeId" name="workOrderTypeId" required <%= (isCreate ? " autofocus" : "") %>>
|
||||
<% if (isCreate && workOrderTypes.length > 1) { %>
|
||||
<option value="">(Select Type)</option>
|
||||
<% } %>
|
||||
<% for (const workOrderType of workOrderTypes) { %>
|
||||
<option value="<%= workOrderType.workOrderTypeId %>" <%= (workOrder.workOrderTypeId === workOrderType.workOrderTypeId ? " selected" : "") %>>
|
||||
<%= workOrderType.workOrderType %>
|
||||
</option>
|
||||
<% } %>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" for="workOrderEdit--workOrderDescription">Description</label>
|
||||
<div class="control">
|
||||
<textarea class="textarea" id="workOrderEdit--workOrderDescription" name="workOrderDescription"><%= workOrder.workOrderDescription %></textarea>
|
||||
</div>
|
||||
<label class="label" for="workOrderEdit--workOrderDescription">Description</label>
|
||||
<div class="control">
|
||||
<textarea class="textarea" id="workOrderEdit--workOrderDescription" name="workOrderDescription"><%= workOrder.workOrderDescription %></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="columns">
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label class="label" for="workOrderEdit--workOrderOpenDateString"><%= configFunctions.getProperty("aliases.workOrderOpenDate") %></label>
|
||||
<div class="control has-icons-left">
|
||||
<%
|
||||
const currentDateString = dateTimeFunctions.dateToString(new Date());
|
||||
%>
|
||||
<input class="input" id="workOrderEdit--workOrderOpenDateString" name="workOrderOpenDateString" type="date"
|
||||
value="<%= workOrder.workOrderOpenDateString %>"
|
||||
max="<%= workOrder.workOrderOpenDateString > currentDateString ? workOrder.workOrderOpenDateString : currentDateString %>"
|
||||
required />
|
||||
<span class="icon is-left">
|
||||
<i class="fas fa-calendar" aria-hidden="true"></i>
|
||||
</span>
|
||||
</div>
|
||||
<label class="label" for="workOrderEdit--workOrderOpenDateString"><%= configFunctions.getProperty("aliases.workOrderOpenDate") %></label>
|
||||
<div class="control has-icons-left">
|
||||
<%
|
||||
const currentDateString = dateTimeFunctions.dateToString(new Date());
|
||||
%>
|
||||
<input class="input" id="workOrderEdit--workOrderOpenDateString" name="workOrderOpenDateString" type="date"
|
||||
value="<%= workOrder.workOrderOpenDateString %>"
|
||||
max="<%= workOrder.workOrderOpenDateString > currentDateString ? workOrder.workOrderOpenDateString : currentDateString %>"
|
||||
required />
|
||||
<span class="icon is-left">
|
||||
<i class="fas fa-calendar" aria-hidden="true"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<label class="label" for="workOrderEdit--workOrderCloseDateString"><%= configFunctions.getProperty("aliases.workOrderCloseDate") %></label>
|
||||
<div class="field has-addons">
|
||||
<div class="control is-expanded">
|
||||
<input class="input" id="workOrderEdit--workOrderCloseDateString" name="workOrderCloseDateString" type="date" value="<%= workOrder.workOrderCloseDateString %>" disabled readonly />
|
||||
</div>
|
||||
<div class="control">
|
||||
<button class="button is-light is-success is-outlined" id="button--closeWorkOrder" type="button">
|
||||
<span class="icon is-small"><i class="fas fa-stop-circle" aria-hidden="true"></i></span>
|
||||
<span>
|
||||
Close
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="control is-expanded">
|
||||
<input class="input" id="workOrderEdit--workOrderCloseDateString" name="workOrderCloseDateString" type="date" value="<%= workOrder.workOrderCloseDateString %>" disabled readonly />
|
||||
</div>
|
||||
<div class="control">
|
||||
<button class="button is-light is-success is-outlined" id="button--closeWorkOrder" type="button">
|
||||
<span class="icon is-small"><i class="fas fa-stop-circle" aria-hidden="true"></i></span>
|
||||
<span>
|
||||
Close
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -215,43 +215,43 @@
|
|||
<h2 class="panel-heading">Related <%= configFunctions.getProperty("aliases.lots") %></h2>
|
||||
<div class="panel-block is-block">
|
||||
<%
|
||||
const tabToSelect = (workOrder.workOrderLotOccupancies.length > 0 || workOrder.workOrderLots.length === 0 ? "lotOccupancies" : "lots");
|
||||
const tabToSelect = (workOrder.workOrderLotOccupancies.length > 0 || workOrder.workOrderLots.length === 0 ? "lotOccupancies" : "lots");
|
||||
%>
|
||||
<div class="tabs is-boxed">
|
||||
<ul>
|
||||
<li class="<%= (tabToSelect === "lotOccupancies" ? "is-active" : "") %>">
|
||||
<a href="#relatedTab--lotOccupancies">
|
||||
<span><%= configFunctions.getProperty("aliases.occupancies") %></span>
|
||||
<span class="ml-2 tag"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="<%= (tabToSelect === "lots" ? "is-active" : "") %>">
|
||||
<a href="#relatedTab--lots">
|
||||
<span><%= configFunctions.getProperty("aliases.lots") %></span>
|
||||
<span class="ml-2 tag"></span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="<%= (tabToSelect === "lotOccupancies" ? "is-active" : "") %>">
|
||||
<a href="#relatedTab--lotOccupancies">
|
||||
<span><%= configFunctions.getProperty("aliases.occupancies") %></span>
|
||||
<span class="ml-2 tag"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="<%= (tabToSelect === "lots" ? "is-active" : "") %>">
|
||||
<a href="#relatedTab--lots">
|
||||
<span><%= configFunctions.getProperty("aliases.lots") %></span>
|
||||
<span class="ml-2 tag"></span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tab-container">
|
||||
<div class="<%= (tabToSelect === "lotOccupancies" ? "" : "is-hidden") %>" id="relatedTab--lotOccupancies">
|
||||
<div class="box has-background-light has-text-right p-3">
|
||||
<button class="button is-small is-success" id="button--addLotOccupancy" type="button">
|
||||
<span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span>
|
||||
<span>Add Related <%= configFunctions.getProperty("aliases.occupancy") %></span>
|
||||
</button>
|
||||
</div>
|
||||
<div id="container--lotOccupancies"></div>
|
||||
<div class="<%= (tabToSelect === "lotOccupancies" ? "" : "is-hidden") %>" id="relatedTab--lotOccupancies">
|
||||
<div class="box has-background-light has-text-right p-3">
|
||||
<button class="button is-small is-success" id="button--addLotOccupancy" type="button">
|
||||
<span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span>
|
||||
<span>Add Related <%= configFunctions.getProperty("aliases.occupancy") %></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="<%= (tabToSelect === "lots" ? "" : "is-hidden") %>" id="relatedTab--lots">
|
||||
<div class="box has-background-light has-text-right p-3">
|
||||
<button class="button is-small is-success" id="button--addLot" type="button">
|
||||
<span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span>
|
||||
<span>Add Related <%= configFunctions.getProperty("aliases.lot") %></span>
|
||||
</button>
|
||||
</div>
|
||||
<div id="container--lots"></div>
|
||||
<div id="container--lotOccupancies"></div>
|
||||
</div>
|
||||
<div class="<%= (tabToSelect === "lots" ? "" : "is-hidden") %>" id="relatedTab--lots">
|
||||
<div class="box has-background-light has-text-right p-3">
|
||||
<button class="button is-small is-success" id="button--addLot" type="button">
|
||||
<span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span>
|
||||
<span>Add Related <%= configFunctions.getProperty("aliases.lot") %></span>
|
||||
</button>
|
||||
</div>
|
||||
<div id="container--lots"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -262,19 +262,19 @@
|
|||
<div class="panel-heading">
|
||||
<div class="level is-mobile">
|
||||
<div class="level-left">
|
||||
<div class="level-item">
|
||||
<h2 class="has-text-weight-bold is-size-5">
|
||||
Comments
|
||||
</h2>
|
||||
</div>
|
||||
<div class="level-item">
|
||||
<h2 class="has-text-weight-bold is-size-5">
|
||||
Comments
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="level-right">
|
||||
<div class="level-item">
|
||||
<button class="button is-small is-success" id="workOrderComments--add" type="button">
|
||||
<span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span>
|
||||
<span>Add a Comment</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="level-item">
|
||||
<button class="button is-small is-success" id="workOrderComments--add" type="button">
|
||||
<span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span>
|
||||
<span>Add a Comment</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue