allow milestones with no set date
parent
539ab54e85
commit
f7b8874b0d
|
|
@ -195,6 +195,7 @@ export async function handler(request, response) {
|
|||
};
|
||||
if (request.query.workOrderId) {
|
||||
workOrderMilestoneFilters.workOrderId = request.query.workOrderId;
|
||||
workOrderMilestoneFilters.workOrderMilestoneDateFilter = 'notBlank';
|
||||
}
|
||||
else {
|
||||
workOrderMilestoneFilters.workOrderMilestoneDateFilter = 'recent';
|
||||
|
|
|
|||
|
|
@ -294,6 +294,7 @@ export async function handler(
|
|||
|
||||
if (request.query.workOrderId) {
|
||||
workOrderMilestoneFilters.workOrderId = request.query.workOrderId as string
|
||||
workOrderMilestoneFilters.workOrderMilestoneDateFilter = 'notBlank'
|
||||
} else {
|
||||
workOrderMilestoneFilters.workOrderMilestoneDateFilter = 'recent'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ const createStatements = [
|
|||
`create table if not exists WorkOrderComments (workOrderCommentId integer not null primary key autoincrement, workOrderId integer not null, workOrderCommentDate integer not null check (workOrderCommentDate > 0), workOrderCommentTime integer not null check (workOrderCommentTime >= 0), workOrderComment text not null, ${recordColumns}, foreign key (workOrderId) references WorkOrders (workOrderId))`,
|
||||
'create index if not exists idx_workordercomments_datetime on WorkOrderComments (workOrderId, workOrderCommentDate, workOrderCommentTime)',
|
||||
`create table if not exists WorkOrderMilestoneTypes (workOrderMilestoneTypeId integer not null primary key autoincrement, workOrderMilestoneType varchar(100) not null, orderNumber smallint not null default 0, ${recordColumns})`,
|
||||
`create table if not exists WorkOrderMilestones (workOrderMilestoneId integer not null primary key autoincrement, workOrderId integer not null, workOrderMilestoneTypeId integer, workOrderMilestoneDate integer not null check (workOrderMilestoneDate > 0), workOrderMilestoneTime integer not null check (workOrderMilestoneTime >= 0), workOrderMilestoneDescription text not null, workOrderMilestoneCompletionDate integer check (workOrderMilestoneCompletionDate > 0), workOrderMilestoneCompletionTime integer check (workOrderMilestoneCompletionTime >= 0), ${recordColumns}, foreign key (workOrderId) references WorkOrders (workOrderId), foreign key (workOrderMilestoneTypeId) references WorkOrderMilestoneTypes (workOrderMilestoneTypeId))`
|
||||
`create table if not exists WorkOrderMilestones (workOrderMilestoneId integer not null primary key autoincrement, workOrderId integer not null, workOrderMilestoneTypeId integer, workOrderMilestoneDate integer not null check (workOrderMilestoneDate >= 0), workOrderMilestoneTime integer not null check (workOrderMilestoneTime >= 0), workOrderMilestoneDescription text not null, workOrderMilestoneCompletionDate integer check (workOrderMilestoneCompletionDate > 0), workOrderMilestoneCompletionTime integer check (workOrderMilestoneCompletionTime >= 0), ${recordColumns}, foreign key (workOrderId) references WorkOrders (workOrderId), foreign key (workOrderMilestoneTypeId) references WorkOrderMilestoneTypes (workOrderMilestoneTypeId))`
|
||||
];
|
||||
export function initializeDatabase() {
|
||||
const lotOccupancyDB = sqlite(databasePath);
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ const createStatements = [
|
|||
`create table if not exists WorkOrderComments (workOrderCommentId integer not null primary key autoincrement, workOrderId integer not null, workOrderCommentDate integer not null check (workOrderCommentDate > 0), workOrderCommentTime integer not null check (workOrderCommentTime >= 0), workOrderComment text not null, ${recordColumns}, foreign key (workOrderId) references WorkOrders (workOrderId))`,
|
||||
'create index if not exists idx_workordercomments_datetime on WorkOrderComments (workOrderId, workOrderCommentDate, workOrderCommentTime)',
|
||||
`create table if not exists WorkOrderMilestoneTypes (workOrderMilestoneTypeId integer not null primary key autoincrement, workOrderMilestoneType varchar(100) not null, orderNumber smallint not null default 0, ${recordColumns})`,
|
||||
`create table if not exists WorkOrderMilestones (workOrderMilestoneId integer not null primary key autoincrement, workOrderId integer not null, workOrderMilestoneTypeId integer, workOrderMilestoneDate integer not null check (workOrderMilestoneDate > 0), workOrderMilestoneTime integer not null check (workOrderMilestoneTime >= 0), workOrderMilestoneDescription text not null, workOrderMilestoneCompletionDate integer check (workOrderMilestoneCompletionDate > 0), workOrderMilestoneCompletionTime integer check (workOrderMilestoneCompletionTime >= 0), ${recordColumns}, foreign key (workOrderId) references WorkOrders (workOrderId), foreign key (workOrderMilestoneTypeId) references WorkOrderMilestoneTypes (workOrderMilestoneTypeId))`
|
||||
`create table if not exists WorkOrderMilestones (workOrderMilestoneId integer not null primary key autoincrement, workOrderId integer not null, workOrderMilestoneTypeId integer, workOrderMilestoneDate integer not null check (workOrderMilestoneDate >= 0), workOrderMilestoneTime integer not null check (workOrderMilestoneTime >= 0), workOrderMilestoneDescription text not null, workOrderMilestoneCompletionDate integer check (workOrderMilestoneCompletionDate > 0), workOrderMilestoneCompletionTime integer check (workOrderMilestoneCompletionTime >= 0), ${recordColumns}, foreign key (workOrderId) references WorkOrders (workOrderId), foreign key (workOrderMilestoneTypeId) references WorkOrderMilestoneTypes (workOrderMilestoneTypeId))`
|
||||
]
|
||||
|
||||
export function initializeDatabase(): boolean {
|
||||
|
|
|
|||
|
|
@ -12,7 +12,9 @@ export async function addWorkOrderMilestone(milestoneForm, requestSession) {
|
|||
recordCreate_userName, recordCreate_timeMillis,
|
||||
recordUpdate_userName, recordUpdate_timeMillis)
|
||||
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
||||
.run(milestoneForm.workOrderId, milestoneForm.workOrderMilestoneTypeId ?? undefined, dateStringToInteger(milestoneForm.workOrderMilestoneDateString), milestoneForm.workOrderMilestoneTimeString
|
||||
.run(milestoneForm.workOrderId, milestoneForm.workOrderMilestoneTypeId ?? undefined, milestoneForm.workOrderMilestoneDateString === ''
|
||||
? 0
|
||||
: dateStringToInteger(milestoneForm.workOrderMilestoneDateString), milestoneForm.workOrderMilestoneTimeString
|
||||
? timeStringToInteger(milestoneForm.workOrderMilestoneTimeString)
|
||||
: 0, milestoneForm.workOrderMilestoneDescription, milestoneForm.workOrderMilestoneCompletionDateString
|
||||
? dateStringToInteger(milestoneForm.workOrderMilestoneCompletionDateString)
|
||||
|
|
|
|||
|
|
@ -41,7 +41,9 @@ export async function addWorkOrderMilestone(
|
|||
.run(
|
||||
milestoneForm.workOrderId,
|
||||
milestoneForm.workOrderMilestoneTypeId ?? undefined,
|
||||
dateStringToInteger(milestoneForm.workOrderMilestoneDateString),
|
||||
milestoneForm.workOrderMilestoneDateString === ''
|
||||
? 0
|
||||
: dateStringToInteger(milestoneForm.workOrderMilestoneDateString),
|
||||
milestoneForm.workOrderMilestoneTimeString
|
||||
? timeStringToInteger(milestoneForm.workOrderMilestoneTimeString)
|
||||
: 0,
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import type { PoolConnection } from 'better-sqlite-pool';
|
|||
import type * as recordTypes from '../../types/recordTypes';
|
||||
export interface WorkOrderMilestoneFilters {
|
||||
workOrderId?: number | string;
|
||||
workOrderMilestoneDateFilter?: 'upcomingMissed' | 'recent' | 'date';
|
||||
workOrderMilestoneDateFilter?: 'upcomingMissed' | 'recent' | 'date' | 'blank' | 'notBlank';
|
||||
workOrderMilestoneDateString?: string;
|
||||
workOrderTypeIds?: string;
|
||||
workOrderMilestoneTypeIds?: string;
|
||||
|
|
|
|||
|
|
@ -33,6 +33,14 @@ function buildWhereClause(filters) {
|
|||
sqlParameters.push(recentBeforeDateNumber, recentAfterDateNumber);
|
||||
break;
|
||||
}
|
||||
case 'blank': {
|
||||
sqlWhereClause += ' and m.workOrderMilestoneDate = 0';
|
||||
break;
|
||||
}
|
||||
case 'notBlank': {
|
||||
sqlWhereClause += ' and m.workOrderMilestoneDate > 0';
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ((filters.workOrderMilestoneDateString ?? '') !== '') {
|
||||
sqlWhereClause += ' and m.workOrderMilestoneDate = ?';
|
||||
|
|
@ -64,16 +72,16 @@ export async function getWorkOrderMilestones(filters, options, connectedDatabase
|
|||
switch (options.orderBy) {
|
||||
case 'completion': {
|
||||
orderByClause = ` order by
|
||||
m.workOrderMilestoneCompletionDate, m.workOrderMilestoneCompletionTime,
|
||||
m.workOrderMilestoneDate,
|
||||
case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end,
|
||||
t.orderNumber, m.workOrderMilestoneId`;
|
||||
m.workOrderMilestoneCompletionDate, m.workOrderMilestoneCompletionTime,
|
||||
m.workOrderMilestoneDate,
|
||||
case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end,
|
||||
t.orderNumber, m.workOrderMilestoneId`;
|
||||
break;
|
||||
}
|
||||
case 'date': {
|
||||
orderByClause = ` order by m.workOrderMilestoneDate,
|
||||
case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end,
|
||||
t.orderNumber, m.workOrderId, m.workOrderMilestoneId`;
|
||||
case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end,
|
||||
t.orderNumber, m.workOrderId, m.workOrderMilestoneId`;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import type * as recordTypes from '../../types/recordTypes'
|
|||
|
||||
export interface WorkOrderMilestoneFilters {
|
||||
workOrderId?: number | string
|
||||
workOrderMilestoneDateFilter?: 'upcomingMissed' | 'recent' | 'date'
|
||||
workOrderMilestoneDateFilter?: 'upcomingMissed' | 'recent' | 'date' | 'blank' | 'notBlank'
|
||||
workOrderMilestoneDateString?: string
|
||||
workOrderTypeIds?: string
|
||||
workOrderMilestoneTypeIds?: string
|
||||
|
|
@ -81,6 +81,16 @@ function buildWhereClause(filters: WorkOrderMilestoneFilters): {
|
|||
sqlParameters.push(recentBeforeDateNumber, recentAfterDateNumber)
|
||||
break
|
||||
}
|
||||
|
||||
case 'blank': {
|
||||
sqlWhereClause += ' and m.workOrderMilestoneDate = 0'
|
||||
break
|
||||
}
|
||||
|
||||
case 'notBlank': {
|
||||
sqlWhereClause += ' and m.workOrderMilestoneDate > 0'
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if ((filters.workOrderMilestoneDateString ?? '') !== '') {
|
||||
|
|
@ -133,17 +143,17 @@ export async function getWorkOrderMilestones(
|
|||
switch (options.orderBy) {
|
||||
case 'completion': {
|
||||
orderByClause = ` order by
|
||||
m.workOrderMilestoneCompletionDate, m.workOrderMilestoneCompletionTime,
|
||||
m.workOrderMilestoneDate,
|
||||
case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end,
|
||||
t.orderNumber, m.workOrderMilestoneId`
|
||||
m.workOrderMilestoneCompletionDate, m.workOrderMilestoneCompletionTime,
|
||||
m.workOrderMilestoneDate,
|
||||
case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end,
|
||||
t.orderNumber, m.workOrderMilestoneId`
|
||||
break
|
||||
}
|
||||
|
||||
case 'date': {
|
||||
orderByClause = ` order by m.workOrderMilestoneDate,
|
||||
case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end,
|
||||
t.orderNumber, m.workOrderId, m.workOrderMilestoneId`
|
||||
case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end,
|
||||
t.orderNumber, m.workOrderId, m.workOrderMilestoneId`
|
||||
break
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,9 @@ export async function updateWorkOrderMilestone(milestoneForm, requestSession) {
|
|||
where workOrderMilestoneId = ?`)
|
||||
.run(milestoneForm.workOrderMilestoneTypeId === ''
|
||||
? undefined
|
||||
: milestoneForm.workOrderMilestoneTypeId, dateStringToInteger(milestoneForm.workOrderMilestoneDateString), (milestoneForm.workOrderMilestoneTimeString ?? '') === ''
|
||||
: milestoneForm.workOrderMilestoneTypeId, milestoneForm.workOrderMilestoneDateString === ''
|
||||
? 0
|
||||
: dateStringToInteger(milestoneForm.workOrderMilestoneDateString), (milestoneForm.workOrderMilestoneTimeString ?? '') === ''
|
||||
? 0
|
||||
: timeStringToInteger(milestoneForm.workOrderMilestoneTimeString), milestoneForm.workOrderMilestoneDescription, requestSession.user.userName, rightNow.getTime(), milestoneForm.workOrderMilestoneId);
|
||||
database.release();
|
||||
|
|
|
|||
|
|
@ -38,7 +38,9 @@ export async function updateWorkOrderMilestone(
|
|||
milestoneForm.workOrderMilestoneTypeId === ''
|
||||
? undefined
|
||||
: milestoneForm.workOrderMilestoneTypeId,
|
||||
dateStringToInteger(milestoneForm.workOrderMilestoneDateString),
|
||||
milestoneForm.workOrderMilestoneDateString === ''
|
||||
? 0
|
||||
: dateStringToInteger(milestoneForm.workOrderMilestoneDateString),
|
||||
(milestoneForm.workOrderMilestoneTimeString ?? '') === ''
|
||||
? 0
|
||||
: timeStringToInteger(milestoneForm.workOrderMilestoneTimeString!),
|
||||
|
|
|
|||
|
|
@ -929,7 +929,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
bulmaJS.confirm({
|
||||
title: 'Complete Milestone',
|
||||
message: 'Are you sure you want to complete this milestone?' +
|
||||
(workOrderMilestone.workOrderMilestoneDateString > currentDateString
|
||||
(workOrderMilestone.workOrderMilestoneDateString !== '' &&
|
||||
workOrderMilestone.workOrderMilestoneDateString > currentDateString
|
||||
? '<br /><strong>Note that this milestone is expected to be completed in the future.</strong>'
|
||||
: ''),
|
||||
messageIsHtml: true,
|
||||
|
|
@ -1077,7 +1078,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
cityssm.escapeHTML((_a = milestone.workOrderMilestoneType) !== null && _a !== void 0 ? _a : '') +
|
||||
'</strong><br />'
|
||||
: '') +
|
||||
milestone.workOrderMilestoneDateString +
|
||||
(milestone.workOrderMilestoneDate === 0
|
||||
? '<span class="has-text-grey">(No Set Date)</span>'
|
||||
: milestone.workOrderMilestoneDateString) +
|
||||
(milestone.workOrderMilestoneTime
|
||||
? ' ' + milestone.workOrderMilestoneTimeString
|
||||
: '') +
|
||||
|
|
@ -1150,7 +1153,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
});
|
||||
}
|
||||
if (addModalElement.querySelector('#milestoneAdd--workOrderMilestoneDateString').value < currentDateString) {
|
||||
const milestoneDateString = addModalElement.querySelector('#milestoneAdd--workOrderMilestoneDateString').value;
|
||||
if (milestoneDateString !== '' &&
|
||||
milestoneDateString < currentDateString) {
|
||||
bulmaJS.confirm({
|
||||
title: 'Milestone Date in the Past',
|
||||
message: 'Are you sure you want to create a milestone with a date in the past?',
|
||||
|
|
|
|||
|
|
@ -174,7 +174,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
bulmaJS.confirm({
|
||||
title: 'Complete Milestone',
|
||||
message: 'Are you sure you want to complete this milestone?' +
|
||||
(workOrderMilestone.workOrderMilestoneDateString > currentDateString
|
||||
(workOrderMilestone.workOrderMilestoneDateString !== '' &&
|
||||
workOrderMilestone.workOrderMilestoneDateString > currentDateString
|
||||
? '<br /><strong>Note that this milestone is expected to be completed in the future.</strong>'
|
||||
: ''),
|
||||
messageIsHtml: true,
|
||||
|
|
@ -322,7 +323,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
cityssm.escapeHTML((_a = milestone.workOrderMilestoneType) !== null && _a !== void 0 ? _a : '') +
|
||||
'</strong><br />'
|
||||
: '') +
|
||||
milestone.workOrderMilestoneDateString +
|
||||
(milestone.workOrderMilestoneDate === 0
|
||||
? '<span class="has-text-grey">(No Set Date)</span>'
|
||||
: milestone.workOrderMilestoneDateString) +
|
||||
(milestone.workOrderMilestoneTime
|
||||
? ' ' + milestone.workOrderMilestoneTimeString
|
||||
: '') +
|
||||
|
|
@ -395,7 +398,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
});
|
||||
}
|
||||
if (addModalElement.querySelector('#milestoneAdd--workOrderMilestoneDateString').value < currentDateString) {
|
||||
const milestoneDateString = addModalElement.querySelector('#milestoneAdd--workOrderMilestoneDateString').value;
|
||||
if (milestoneDateString !== '' &&
|
||||
milestoneDateString < currentDateString) {
|
||||
bulmaJS.confirm({
|
||||
title: 'Milestone Date in the Past',
|
||||
message: 'Are you sure you want to create a milestone with a date in the past?',
|
||||
|
|
|
|||
|
|
@ -244,7 +244,8 @@ declare const bulmaJS: BulmaJS
|
|||
title: 'Complete Milestone',
|
||||
message:
|
||||
'Are you sure you want to complete this milestone?' +
|
||||
(workOrderMilestone.workOrderMilestoneDateString! > currentDateString
|
||||
(workOrderMilestone.workOrderMilestoneDateString !== '' &&
|
||||
workOrderMilestone.workOrderMilestoneDateString! > currentDateString
|
||||
? '<br /><strong>Note that this milestone is expected to be completed in the future.</strong>'
|
||||
: ''),
|
||||
messageIsHtml: true,
|
||||
|
|
@ -481,7 +482,9 @@ declare const bulmaJS: BulmaJS
|
|||
cityssm.escapeHTML(milestone.workOrderMilestoneType ?? '') +
|
||||
'</strong><br />'
|
||||
: '') +
|
||||
milestone.workOrderMilestoneDateString +
|
||||
(milestone.workOrderMilestoneDate === 0
|
||||
? '<span class="has-text-grey">(No Set Date)</span>'
|
||||
: milestone.workOrderMilestoneDateString) +
|
||||
(milestone.workOrderMilestoneTime
|
||||
? ' ' + milestone.workOrderMilestoneTimeString
|
||||
: '') +
|
||||
|
|
@ -579,12 +582,15 @@ declare const bulmaJS: BulmaJS
|
|||
)
|
||||
}
|
||||
|
||||
const milestoneDateString = (
|
||||
addModalElement.querySelector(
|
||||
'#milestoneAdd--workOrderMilestoneDateString'
|
||||
) as HTMLInputElement
|
||||
).value
|
||||
|
||||
if (
|
||||
(
|
||||
addModalElement.querySelector(
|
||||
'#milestoneAdd--workOrderMilestoneDateString'
|
||||
) as HTMLInputElement
|
||||
).value < currentDateString
|
||||
milestoneDateString !== '' &&
|
||||
milestoneDateString < currentDateString
|
||||
) {
|
||||
bulmaJS.confirm({
|
||||
title: 'Milestone Date in the Past',
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
milestoneCalendarContainerElement.innerHTML = '';
|
||||
const currentDate = cityssm.dateToString(new Date());
|
||||
let currentPanelElement;
|
||||
let currentPanelDateString = '';
|
||||
let currentPanelDateString = 'x';
|
||||
for (const milestone of workOrderMilestones) {
|
||||
if (currentPanelDateString !== milestone.workOrderMilestoneDateString) {
|
||||
if (currentPanelElement) {
|
||||
|
|
@ -26,12 +26,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
currentPanelElement = document.createElement('div');
|
||||
currentPanelElement.className = 'panel';
|
||||
currentPanelElement.innerHTML = `<h2 class="panel-heading">${milestone.workOrderMilestoneDateString}</h2>`;
|
||||
currentPanelElement.innerHTML = `<h2 class="panel-heading">
|
||||
${milestone.workOrderMilestoneDate === 0
|
||||
? 'No Set Date'
|
||||
: milestone.workOrderMilestoneDateString}
|
||||
</h2>`;
|
||||
currentPanelDateString = milestone.workOrderMilestoneDateString;
|
||||
}
|
||||
const panelBlockElement = document.createElement('div');
|
||||
panelBlockElement.className = 'panel-block is-block';
|
||||
if (!milestone.workOrderMilestoneCompletionDate &&
|
||||
milestone.workOrderMilestoneDateString !== '' &&
|
||||
milestone.workOrderMilestoneDateString < currentDate) {
|
||||
panelBlockElement.classList.add('has-background-warning-light');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ declare const cityssm: cityssmGlobal
|
|||
const currentDate = cityssm.dateToString(new Date())
|
||||
|
||||
let currentPanelElement: HTMLElement | undefined
|
||||
let currentPanelDateString = ''
|
||||
let currentPanelDateString = 'x'
|
||||
|
||||
for (const milestone of workOrderMilestones) {
|
||||
if (currentPanelDateString !== milestone.workOrderMilestoneDateString) {
|
||||
|
|
@ -52,7 +52,13 @@ declare const cityssm: cityssmGlobal
|
|||
currentPanelElement = document.createElement('div')
|
||||
currentPanelElement.className = 'panel'
|
||||
|
||||
currentPanelElement.innerHTML = `<h2 class="panel-heading">${milestone.workOrderMilestoneDateString!}</h2>`
|
||||
currentPanelElement.innerHTML = `<h2 class="panel-heading">
|
||||
${
|
||||
milestone.workOrderMilestoneDate === 0
|
||||
? 'No Set Date'
|
||||
: milestone.workOrderMilestoneDateString!
|
||||
}
|
||||
</h2>`
|
||||
|
||||
currentPanelDateString = milestone.workOrderMilestoneDateString!
|
||||
}
|
||||
|
|
@ -63,6 +69,7 @@ declare const cityssm: cityssmGlobal
|
|||
|
||||
if (
|
||||
!milestone.workOrderMilestoneCompletionDate &&
|
||||
milestone.workOrderMilestoneDateString !== '' &&
|
||||
milestone.workOrderMilestoneDateString! < currentDate
|
||||
) {
|
||||
panelBlockElement.classList.add('has-background-warning-light')
|
||||
|
|
|
|||
|
|
@ -47,7 +47,6 @@
|
|||
id="milestoneAdd--workOrderMilestoneDateString"
|
||||
name="workOrderMilestoneDateString"
|
||||
type="date"
|
||||
required
|
||||
/>
|
||||
<span class="icon is-left">
|
||||
<i class="fas fa-calendar" aria-hidden="true"></i>
|
||||
|
|
|
|||
|
|
@ -53,7 +53,6 @@
|
|||
id="milestoneEdit--workOrderMilestoneDateString"
|
||||
name="workOrderMilestoneDateString"
|
||||
type="date"
|
||||
required
|
||||
/>
|
||||
<span class="icon is-left">
|
||||
<i class="fas fa-calendar" aria-hidden="true"></i>
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,s=document.querySelector("#form--searchFilters"),r=s.querySelector("#searchFilter--workOrderMilestoneDateFilter"),a=s.querySelector("#searchFilter--workOrderMilestoneDateString"),t=document.querySelector("#container--milestoneCalendar");function i(r){r&&r.preventDefault(),t.innerHTML=e.getLoadingParagraphHTML("Loading Milestones..."),cityssm.postJSON(e.urlPrefix+"/workOrders/doGetWorkOrderMilestones",s,s=>{!function(s){var r,a,i,o,n,l,c,d;if(0===s.length)return void(t.innerHTML='<div class="message is-info">\n <p class="message-body">There are no milestones that meet the search criteria.</p>\n </div>');t.innerHTML="";const p=cityssm.dateToString(new Date);let m,u="";for(const M of s){u!==M.workOrderMilestoneDateString&&(m&&t.append(m),(m=document.createElement("div")).className="panel",m.innerHTML=`<h2 class="panel-heading">${M.workOrderMilestoneDateString}</h2>`,u=M.workOrderMilestoneDateString);const s=document.createElement("div");s.className="panel-block is-block",!M.workOrderMilestoneCompletionDate&&M.workOrderMilestoneDateString<p&&s.classList.add("has-background-warning-light");let v="";for(const s of M.workOrderLots)v+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(null!==(r=s.mapName)&&void 0!==r?r:"")+'"><i class="fas fa-vector-square" aria-label="'+e.escapedAliases.Lot+'"></i> '+cityssm.escapeHTML(null!==(a=s.lotName)&&void 0!==a?a:"")+"</span><br />";for(const s of M.workOrderLotOccupancies)for(const r of s.lotOccupancyOccupants)v+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(null!==(i=r.lotOccupantType)&&void 0!==i?i:"")+'"><i class="fas fa-user" aria-label="'+e.escapedAliases.Occupancy+'"></i> '+cityssm.escapeHTML(null!==(o=r.occupantName)&&void 0!==o?o:"")+" "+cityssm.escapeHTML(null!==(n=r.occupantFamilyName)&&void 0!==n?n:"")+"</span><br />";s.innerHTML='<div class="columns"><div class="column is-narrow"><span class="icon is-small">'+(M.workOrderMilestoneCompletionDate?'<i class="fas fa-check" aria-label="Completed"></i>':'<i class="far fa-square has-text-grey" aria-label="Incomplete"></i>')+'</span></div><div class="column">'+(0===M.workOrderMilestoneTime?"":M.workOrderMilestoneTimeString+"<br />")+(M.workOrderMilestoneTypeId?"<strong>"+cityssm.escapeHTML(M.workOrderMilestoneType)+"</strong><br />":"")+'<span class="is-size-7">'+cityssm.escapeHTML(M.workOrderMilestoneDescription)+'</span></div><div class="column"><i class="fas fa-circle" style="color:'+e.getRandomColor(null!==(l=M.workOrderNumber)&&void 0!==l?l:"")+'" aria-hidden="true"></i> <a class="has-text-weight-bold" href="'+e.getWorkOrderURL(M.workOrderId)+'">'+cityssm.escapeHTML(null!==(c=M.workOrderNumber)&&void 0!==c?c:"")+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(null!==(d=M.workOrderDescription)&&void 0!==d?d:"")+'</span></div><div class="column is-size-7">'+v+"</div></div>",m.append(s)}t.append(m)}(s.workOrderMilestones)})}r.addEventListener("change",()=>{a.closest("fieldset").disabled="date"!==r.value,i()}),e.initializeDatePickers(s),a.addEventListener("change",i),s.addEventListener("submit",i),i()})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,s=document.querySelector("#form--searchFilters"),r=s.querySelector("#searchFilter--workOrderMilestoneDateFilter"),a=s.querySelector("#searchFilter--workOrderMilestoneDateString"),t=document.querySelector("#container--milestoneCalendar");function i(r){r&&r.preventDefault(),t.innerHTML=e.getLoadingParagraphHTML("Loading Milestones..."),cityssm.postJSON(e.urlPrefix+"/workOrders/doGetWorkOrderMilestones",s,s=>{!function(s){var r,a,i,o,n,l,c,d;if(0===s.length)return void(t.innerHTML='<div class="message is-info">\n <p class="message-body">There are no milestones that meet the search criteria.</p>\n </div>');t.innerHTML="";const p=cityssm.dateToString(new Date);let m,u="x";for(const M of s){u!==M.workOrderMilestoneDateString&&(m&&t.append(m),(m=document.createElement("div")).className="panel",m.innerHTML=`<h2 class="panel-heading">\n ${0===M.workOrderMilestoneDate?"No Set Date":M.workOrderMilestoneDateString}\n </h2>`,u=M.workOrderMilestoneDateString);const s=document.createElement("div");s.className="panel-block is-block",!M.workOrderMilestoneCompletionDate&&""!==M.workOrderMilestoneDateString&&M.workOrderMilestoneDateString<p&&s.classList.add("has-background-warning-light");let O="";for(const s of M.workOrderLots)O+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(null!==(r=s.mapName)&&void 0!==r?r:"")+'"><i class="fas fa-vector-square" aria-label="'+e.escapedAliases.Lot+'"></i> '+cityssm.escapeHTML(null!==(a=s.lotName)&&void 0!==a?a:"")+"</span><br />";for(const s of M.workOrderLotOccupancies)for(const r of s.lotOccupancyOccupants)O+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(null!==(i=r.lotOccupantType)&&void 0!==i?i:"")+'"><i class="fas fa-user" aria-label="'+e.escapedAliases.Occupancy+'"></i> '+cityssm.escapeHTML(null!==(o=r.occupantName)&&void 0!==o?o:"")+" "+cityssm.escapeHTML(null!==(n=r.occupantFamilyName)&&void 0!==n?n:"")+"</span><br />";s.innerHTML='<div class="columns"><div class="column is-narrow"><span class="icon is-small">'+(M.workOrderMilestoneCompletionDate?'<i class="fas fa-check" aria-label="Completed"></i>':'<i class="far fa-square has-text-grey" aria-label="Incomplete"></i>')+'</span></div><div class="column">'+(0===M.workOrderMilestoneTime?"":M.workOrderMilestoneTimeString+"<br />")+(M.workOrderMilestoneTypeId?"<strong>"+cityssm.escapeHTML(M.workOrderMilestoneType)+"</strong><br />":"")+'<span class="is-size-7">'+cityssm.escapeHTML(M.workOrderMilestoneDescription)+'</span></div><div class="column"><i class="fas fa-circle" style="color:'+e.getRandomColor(null!==(l=M.workOrderNumber)&&void 0!==l?l:"")+'" aria-hidden="true"></i> <a class="has-text-weight-bold" href="'+e.getWorkOrderURL(M.workOrderId)+'">'+cityssm.escapeHTML(null!==(c=M.workOrderNumber)&&void 0!==c?c:"")+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(null!==(d=M.workOrderDescription)&&void 0!==d?d:"")+'</span></div><div class="column is-size-7">'+O+"</div></div>",m.append(s)}t.append(m)}(s.workOrderMilestones)})}r.addEventListener("change",()=>{a.closest("fieldset").disabled="date"!==r.value,i()}),e.initializeDatePickers(s),a.addEventListener("change",i),s.addEventListener("submit",i),i()})();
|
||||
|
|
@ -11,24 +11,24 @@
|
|||
<h2 class="mb-0"><%= configFunctions.getProperty("aliases.lots") %></h2>
|
||||
|
||||
<table class="data-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%= configFunctions.getProperty("aliases.lot") %></th>
|
||||
<th><%= configFunctions.getProperty("aliases.map") %></th>
|
||||
<th><%= configFunctions.getProperty("aliases.lot") %> Type</th>
|
||||
<th>Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% for (const lot of workOrder.workOrderLots) { %>
|
||||
<tr>
|
||||
<td><%= lot.lotName %></td>
|
||||
<td><%= lot.mapName %></td>
|
||||
<td><%= lot.lotType %></td>
|
||||
<td><%= lot.lotStatus %></td>
|
||||
</tr>
|
||||
<% } %>
|
||||
</tbody>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%= configFunctions.getProperty("aliases.lot") %></th>
|
||||
<th><%= configFunctions.getProperty("aliases.map") %></th>
|
||||
<th><%= configFunctions.getProperty("aliases.lot") %> Type</th>
|
||||
<th>Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% for (const lot of workOrder.workOrderLots) { %>
|
||||
<tr>
|
||||
<td><%= lot.lotName %></td>
|
||||
<td><%= lot.mapName %></td>
|
||||
<td><%= lot.lotType %></td>
|
||||
<td><%= lot.lotStatus %></td>
|
||||
</tr>
|
||||
<% } %>
|
||||
</tbody>
|
||||
</table>
|
||||
<% } %>
|
||||
|
||||
|
|
@ -37,13 +37,13 @@
|
|||
|
||||
<table class="data-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%= configFunctions.getProperty("aliases.occupancy") %> Type</th>
|
||||
<th><%= configFunctions.getProperty("aliases.lot") %></th>
|
||||
<th><%= configFunctions.getProperty("aliases.occupancyStartDate") %></th>
|
||||
<th>End Date</th>
|
||||
<th><%= configFunctions.getProperty("aliases.occupants") %></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><%= configFunctions.getProperty("aliases.occupancy") %> Type</th>
|
||||
<th><%= configFunctions.getProperty("aliases.lot") %></th>
|
||||
<th><%= configFunctions.getProperty("aliases.occupancyStartDate") %></th>
|
||||
<th>End Date</th>
|
||||
<th><%= configFunctions.getProperty("aliases.occupants") %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% for (const occupancy of workOrder.workOrderLotOccupancies) { %>
|
||||
|
|
@ -94,7 +94,11 @@
|
|||
<%= milestone.workOrderMilestoneDescription %>
|
||||
</td>
|
||||
<td>
|
||||
<%= milestone.workOrderMilestoneDateString %>
|
||||
<% if (milestone.workOrderMilestoneDate === 0) { %>
|
||||
(No Set Date)
|
||||
<% } else { %>
|
||||
<%= milestone.workOrderMilestoneDateString %>
|
||||
<% } %>
|
||||
<% if (milestone.workOrderMilestoneTime) { %>
|
||||
<%= milestone.workOrderMilestoneTimeString %>
|
||||
<% } %>
|
||||
|
|
|
|||
|
|
@ -321,32 +321,36 @@
|
|||
</div>
|
||||
</div>
|
||||
<% for (const milestone of workOrder.workOrderMilestones) { %>
|
||||
<div class="panel-block is-block">
|
||||
<div class="columns is-mobile">
|
||||
<div class="column is-narrow">
|
||||
<% if (milestone.workOrderMilestoneCompletionDate) { %>
|
||||
<span class="icon is-small" data-tooltip="Completed <%= milestone.workOrderMilestoneCompletionDateString %>">
|
||||
<i class="fas fa-check" aria-label="Completed <%= milestone.workOrderMilestoneCompletionDateString %>"></i>
|
||||
</span>
|
||||
<% } else { %>
|
||||
<span class="icon is-small">
|
||||
<i class="far fa-square has-text-grey" aria-label="Incomplete"></i>
|
||||
</span>
|
||||
<% } %>
|
||||
</div>
|
||||
<div class="column">
|
||||
<% if (milestone.workOrderMilestoneTypeId) { %>
|
||||
<strong><%= milestone.workOrderMilestoneType %></strong><br />
|
||||
<% } %>
|
||||
<%= milestone.workOrderMilestoneDateString %>
|
||||
<% if (milestone.workOrderMilestoneTime !== 0) { %>
|
||||
<%= milestone.workOrderMilestoneTimeString %>
|
||||
<% } %>
|
||||
<br />
|
||||
<span class="is-size-7"><%= milestone.workOrderMilestoneDescription %></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-block is-block">
|
||||
<div class="columns is-mobile">
|
||||
<div class="column is-narrow">
|
||||
<% if (milestone.workOrderMilestoneCompletionDate) { %>
|
||||
<span class="icon is-small" data-tooltip="Completed <%= milestone.workOrderMilestoneCompletionDateString %>">
|
||||
<i class="fas fa-check" aria-label="Completed <%= milestone.workOrderMilestoneCompletionDateString %>"></i>
|
||||
</span>
|
||||
<% } else { %>
|
||||
<span class="icon is-small">
|
||||
<i class="far fa-square has-text-grey" aria-label="Incomplete"></i>
|
||||
</span>
|
||||
<% } %>
|
||||
</div>
|
||||
<div class="column">
|
||||
<% if (milestone.workOrderMilestoneTypeId) { %>
|
||||
<strong><%= milestone.workOrderMilestoneType %></strong><br />
|
||||
<% } %>
|
||||
<% if (milestone.workOrderMilestoneDate === 0) { %>
|
||||
<span class="has-text-grey">(No Set Date)</span>
|
||||
<% } else { %>
|
||||
<%= milestone.workOrderMilestoneDateString %>
|
||||
<% } %>
|
||||
<% if (milestone.workOrderMilestoneTime !== 0) { %>
|
||||
<%= milestone.workOrderMilestoneTimeString %>
|
||||
<% } %>
|
||||
<br />
|
||||
<span class="is-size-7"><%= milestone.workOrderMilestoneDescription %></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue