fix broken ical export

deepsource-autofix-76c6eb20
Dan Gowans 2024-06-28 14:19:25 -04:00
parent e45cd6b931
commit 69cba312f9
2 changed files with 24 additions and 18 deletions

View File

@ -76,7 +76,7 @@ function buildEventDescriptionHTML_occupancies(request, milestone) {
</td> </td>
<td>`; <td>`;
for (const occupant of occupancy.lotOccupancyOccupants ?? []) { for (const occupant of occupancy.lotOccupancyOccupants ?? []) {
descriptionHTML += `${escapeHTML(occupant.lotOccupantType)}: ${escapeHTML(occupant.occupantName ?? '')} ${escapeHTML(occupant.occupantFamilyName ?? '')}<br />`; descriptionHTML += `${escapeHTML(occupant.lotOccupantType ?? '')}: ${escapeHTML(occupant.occupantName ?? '')} ${escapeHTML(occupant.occupantFamilyName ?? '')}<br />`;
} }
descriptionHTML += '</td></tr>'; descriptionHTML += '</td></tr>';
} }
@ -155,7 +155,7 @@ function buildEventDescriptionHTML(request, milestone) {
function buildEventCategoryList(milestone) { function buildEventCategoryList(milestone) {
const categories = []; const categories = [];
if (milestone.workOrderMilestoneTypeId) { if (milestone.workOrderMilestoneTypeId) {
categories.push(milestone.workOrderMilestoneType, milestone.workOrderType ?? ''); categories.push(milestone.workOrderMilestoneType ?? '', milestone.workOrderType ?? '');
} }
if (milestone.workOrderMilestoneCompletionDate) { if (milestone.workOrderMilestoneCompletionDate) {
categories.push('Completed'); categories.push('Completed');
@ -200,7 +200,7 @@ export default async function handler(request, response) {
}); });
if (request.query.workOrderId && workOrderMilestones.length > 0) { if (request.query.workOrderId && workOrderMilestones.length > 0) {
calendar.name(`Work Order #${workOrderMilestones[0].workOrderNumber}`); calendar.name(`Work Order #${workOrderMilestones[0].workOrderNumber}`);
calendar.url(`${urlRoot}/workOrders/${workOrderMilestones[0].workOrderId.toString()}`); calendar.url(`${urlRoot}/workOrders/${workOrderMilestones[0].workOrderId?.toString()}`);
} }
calendar.prodId({ calendar.prodId({
company: calendarCompany, company: calendarCompany,
@ -221,9 +221,9 @@ export default async function handler(request, response) {
// Create event // Create event
const eventData = { const eventData = {
start: milestoneDate, start: milestoneDate,
created: new Date(milestone.recordCreate_timeMillis), created: new Date(milestone.recordCreate_timeMillis ?? 0),
stamp: new Date(milestone.recordCreate_timeMillis), stamp: new Date(milestone.recordCreate_timeMillis ?? 0),
lastModified: new Date(Math.max(milestone.recordUpdate_timeMillis, milestone.workOrderRecordUpdate_timeMillis)), lastModified: new Date(Math.max(milestone.recordUpdate_timeMillis ?? 0, milestone.workOrderRecordUpdate_timeMillis ?? 0)),
allDay: !milestone.workOrderMilestoneTime, allDay: !milestone.workOrderMilestoneTime,
summary, summary,
url: workOrderUrl url: workOrderUrl
@ -275,10 +275,12 @@ export default async function handler(request, response) {
} }
else { else {
calendarEvent.organizer({ calendarEvent.organizer({
name: milestone.recordCreate_userName, name: milestone.recordCreate_userName ?? '',
email: getConfigProperty('settings.workOrders.calendarEmailAddress') email: getConfigProperty('settings.workOrders.calendarEmailAddress')
}); });
} }
} }
calendar.serve(response); response.setHeader('Content-Disposition', `inline; filename=calendar.ics`);
response.setHeader('Content-Type', 'text/calendar; charset=utf-8');
response.send(calendar.toString());
} }

View File

@ -115,7 +115,7 @@ function buildEventDescriptionHTML_occupancies(
for (const occupant of occupancy.lotOccupancyOccupants ?? []) { for (const occupant of occupancy.lotOccupancyOccupants ?? []) {
descriptionHTML += `${escapeHTML( descriptionHTML += `${escapeHTML(
occupant.lotOccupantType! occupant.lotOccupantType ?? ''
)}: ${escapeHTML(occupant.occupantName ?? '')} ${escapeHTML( )}: ${escapeHTML(occupant.occupantName ?? '')} ${escapeHTML(
occupant.occupantFamilyName ?? '' occupant.occupantFamilyName ?? ''
)}<br />` )}<br />`
@ -196,7 +196,7 @@ function buildEventDescriptionHTML_prints(
if (printConfig) { if (printConfig) {
descriptionHTML += `<p> descriptionHTML += `<p>
${escapeHTML(printConfig.title)}<br /> ${escapeHTML(printConfig.title)}<br />
${urlRoot}/print/${printName}/?workOrderId=${milestone.workOrderId!.toString()} ${urlRoot}/print/${printName}/?workOrderId=${milestone.workOrderId.toString()}
</p>` </p>`
} }
} }
@ -229,7 +229,7 @@ function buildEventCategoryList(milestone: WorkOrderMilestone): string[] {
if (milestone.workOrderMilestoneTypeId) { if (milestone.workOrderMilestoneTypeId) {
categories.push( categories.push(
milestone.workOrderMilestoneType!, milestone.workOrderMilestoneType ?? '',
milestone.workOrderType ?? '' milestone.workOrderType ?? ''
) )
} }
@ -292,7 +292,7 @@ export default async function handler(
if (request.query.workOrderId && workOrderMilestones.length > 0) { if (request.query.workOrderId && workOrderMilestones.length > 0) {
calendar.name(`Work Order #${workOrderMilestones[0].workOrderNumber}`) calendar.name(`Work Order #${workOrderMilestones[0].workOrderNumber}`)
calendar.url( calendar.url(
`${urlRoot}/workOrders/${workOrderMilestones[0].workOrderId!.toString()}` `${urlRoot}/workOrders/${workOrderMilestones[0].workOrderId?.toString()}`
) )
} }
@ -330,12 +330,12 @@ export default async function handler(
// Create event // Create event
const eventData: ICalEventData = { const eventData: ICalEventData = {
start: milestoneDate, start: milestoneDate,
created: new Date(milestone.recordCreate_timeMillis!), created: new Date(milestone.recordCreate_timeMillis ?? 0),
stamp: new Date(milestone.recordCreate_timeMillis!), stamp: new Date(milestone.recordCreate_timeMillis ?? 0),
lastModified: new Date( lastModified: new Date(
Math.max( Math.max(
milestone.recordUpdate_timeMillis!, milestone.recordUpdate_timeMillis ?? 0,
milestone.workOrderRecordUpdate_timeMillis! milestone.workOrderRecordUpdate_timeMillis ?? 0
) )
), ),
allDay: !milestone.workOrderMilestoneTime, allDay: !milestone.workOrderMilestoneTime,
@ -403,11 +403,15 @@ export default async function handler(
} }
} else { } else {
calendarEvent.organizer({ calendarEvent.organizer({
name: milestone.recordCreate_userName!, name: milestone.recordCreate_userName ?? '',
email: getConfigProperty('settings.workOrders.calendarEmailAddress') email: getConfigProperty('settings.workOrders.calendarEmailAddress')
}) })
} }
} }
calendar.serve(response) response.setHeader('Content-Disposition', `inline; filename=calendar.ics`)
response.setHeader('Content-Type', 'text/calendar; charset=utf-8')
response.send(calendar.toString())
} }