link together sections

pull/11/head
Dan Gowans 2025-04-22 10:44:14 -04:00
parent 688e55857d
commit 6d964eb93a
11 changed files with 731 additions and 546 deletions

View File

@ -1,2 +1,4 @@
import type { Request, Response } from 'express';
export default function handler(_request: Request, response: Response): Promise<void>;
export default function handler(request: Request<unknown, unknown, unknown, {
tab?: string;
}>, response: Response): Promise<void>;

View File

@ -1,13 +1,15 @@
import { dateToString } from '@cityssm/utils-datetime';
import getCemeteries from '../../database/getCemeteries.js';
import { getBurialSiteStatuses, getBurialSiteTypes } from '../../helpers/functions.cache.js';
export default async function handler(_request, response) {
export default async function handler(request, response) {
const rightNow = new Date();
const reportTab = request.query.tab ?? 'workOrders';
const cemeteries = await getCemeteries();
const burialSiteTypes = await getBurialSiteTypes();
const burialSiteStatuses = await getBurialSiteStatuses();
response.render('report-search', {
headTitle: 'Reports',
reportTab,
burialSiteStatuses,
burialSiteTypes,
cemeteries,

View File

@ -9,17 +9,20 @@ import {
} from '../../helpers/functions.cache.js'
export default async function handler(
_request: Request,
request: Request<unknown, unknown, unknown, { tab?: string }>,
response: Response
): Promise<void> {
const rightNow = new Date()
const reportTab = request.query.tab ?? 'workOrders'
const cemeteries = await getCemeteries()
const burialSiteTypes = await getBurialSiteTypes()
const burialSiteStatuses = await getBurialSiteStatuses()
response.render('report-search', {
headTitle: 'Reports',
reportTab,
burialSiteStatuses,
burialSiteTypes,

View File

@ -0,0 +1,56 @@
<aside class="menu">
<h2 class="menu-label is-hidden-touch">
Cemeteries
</h2>
<ul class="menu-list">
<li>
<a class="<%= (headTitle === "Cemetery Search" ? "is-active" : "") %>"
href="<%= urlPrefix %>/cemeteries"
aria-label="Cemetery Search">
<div class="columns is-mobile is-1">
<div class="column is-narrow">
<span class="icon"><i class="far fa-fw fa-map" aria-hidden="true"></i></span>
</div>
<div class="column is-hidden-touch">Cemetery Search</div>
</div>
</a>
</li>
<li>
<a class="<%= (headTitle === "Burial Site Search" ? "is-active" : "") %>"
href="<%= urlPrefix %>/burialSites"
aria-label="Burial Site Search">
<div class="columns is-mobile is-1">
<div class="column is-narrow">
<span class="icon"><i class="fas fa-fw fa-vector-square" aria-hidden="true"></i></span>
</div>
<div class="column is-hidden-touch">Burial Site Search</div>
</div>
</a>
</li>
</ul>
<h2 class="menu-label is-hidden-touch">
Reports
</h2>
<ul class="menu-list">
<li>
<a href="<%= urlPrefix %>/reports/?tab=cemeteries" aria-label="Cemetery Reports">
<div class="columns is-mobile is-1">
<div class="column is-narrow">
<span class="icon"><i class="fas fa-fw fa-file" aria-hidden="true"></i></span>
</div>
<div class="column is-hidden-touch">Cemetery Reports</div>
</div>
</a>
</li>
<li>
<a href="https://cityssm.github.io/sunrise-cms/docs/cemeteries.html" aria-label="Help Documentation" rel="noopener noreferrer" target="_blank">
<div class="columns is-mobile is-1">
<div class="column is-narrow">
<span class="icon"><i class="fas fa-fw fa-circle-question" aria-hidden="true"></i></span>
</div>
<div class="column is-hidden-touch">Help</div>
</div>
</a>
</li>
</ul>
</aside>

View File

@ -0,0 +1,56 @@
<aside class="menu">
<h2 class="menu-label is-hidden-touch">
Contracts
</h2>
<ul class="menu-list">
<li>
<a class="<%= (headTitle === "Contract Search" ? "is-active" : "") %>"
href="<%= urlPrefix %>/contracts"
aria-label="Contract Search">
<div class="columns is-mobile is-1">
<div class="column is-narrow">
<span class="icon"><i class="fas fa-fw fa-file-contract" aria-hidden="true"></i></span>
</div>
<div class="column is-hidden-touch">Contract Search</div>
</div>
</a>
</li>
<li>
<a class="<%= (headTitle === "Funeral Home Search" ? "is-active" : "") %>"
href="<%= urlPrefix %>/funeralHomes"
aria-label="Contract Search">
<div class="columns is-mobile is-1">
<div class="column is-narrow">
<span class="icon"><i class="fas fa-fw fa-place-of-worship" aria-hidden="true"></i></span>
</div>
<div class="column is-hidden-touch">Funeral Home Search</div>
</div>
</a>
</li>
</ul>
<h2 class="menu-label is-hidden-touch">
Reports
</h2>
<ul class="menu-list">
<li>
<a href="<%= urlPrefix %>/reports/?tab=contracts" aria-label="Contract Reports">
<div class="columns is-mobile is-1">
<div class="column is-narrow">
<span class="icon"><i class="fas fa-fw fa-file" aria-hidden="true"></i></span>
</div>
<div class="column is-hidden-touch">Contract Reports</div>
</div>
</a>
</li>
<li>
<a href="https://cityssm.github.io/sunrise-cms/docs/contracts.html" aria-label="Help Documentation" rel="noopener noreferrer" target="_blank">
<div class="columns is-mobile is-1">
<div class="column is-narrow">
<span class="icon"><i class="fas fa-fw fa-circle-question" aria-hidden="true"></i></span>
</div>
<div class="column is-hidden-touch">Help</div>
</div>
</a>
</li>
</ul>
</aside>

View File

@ -9,7 +9,7 @@
aria-label="Work Order Search">
<div class="columns is-mobile is-1">
<div class="column is-narrow">
<span class="icon"><i class="fas fa-fw fa-search" aria-hidden="true"></i></span>
<span class="icon"><i class="fas fa-fw fa-hard-hat" aria-hidden="true"></i></span>
</div>
<div class="column is-hidden-touch">Work Order Search</div>
</div>
@ -45,4 +45,29 @@
</a>
</li>
</ul>
<h2 class="menu-label is-hidden-touch">
Reports
</h2>
<ul class="menu-list">
<li>
<a href="<%= urlPrefix %>/reports/?tab=workOrders" aria-label="Work Order Reports">
<div class="columns is-mobile is-1">
<div class="column is-narrow">
<span class="icon"><i class="fas fa-fw fa-file" aria-hidden="true"></i></span>
</div>
<div class="column is-hidden-touch">Work Order Reports</div>
</div>
</a>
</li>
<li>
<a href="https://cityssm.github.io/sunrise-cms/docs/workOrders.html" aria-label="Help Documentation" rel="noopener noreferrer" target="_blank">
<div class="columns is-mobile is-1">
<div class="column is-narrow">
<span class="icon"><i class="fas fa-fw fa-circle-question" aria-hidden="true"></i></span>
</div>
<div class="column is-hidden-touch">Help</div>
</div>
</a>
</li>
</ul>
</aside>

View File

@ -1,6 +1,11 @@
<%- include('_header'); -%>
<nav class="breadcrumb">
<div class="columns is-mobile">
<div class="column is-2-desktop is-narrow-touch is-hidden-print">
<%- include('_menu-cemeteries'); -%>
</div>
<div class="column">
<nav class="breadcrumb">
<ul>
<li><a href="<%= urlPrefix %>/dashboard">Home</a></li>
<li class="is-active">
@ -10,13 +15,13 @@
</a>
</li>
</ul>
</nav>
</nav>
<h1 class="title is-1">
<h1 class="title is-1">
Find a Burial Site
</h1>
</h1>
<% if (user.userProperties.canUpdate) { %>
<% if (user.userProperties.canUpdate) { %>
<div class="fixed-container is-fixed-bottom-right mx-4 my-4 has-text-right is-hidden-print">
<a class="button is-circle is-primary has-tooltip-left"
data-tooltip="Create a New Burial Site"
@ -26,9 +31,9 @@
<span class="sr-only">Create a New Burial Site</span>
</a>
</div>
<% } %>
<% } %>
<div class="box">
<div class="box">
<form id="form--searchFilters">
<input id="searchFilter--limit" name="limit" type="hidden" value="100" />
<input id="searchFilter--offset" name="offset" type="hidden" value="0" />
@ -117,9 +122,11 @@
</div>
</div>
</form>
</div>
</div>
<div id="container--searchResults"></div>
<div id="container--searchResults"></div>
</div>
</div>
<%- include('_footerA'); -%>

View File

@ -1,6 +1,11 @@
<%- include('_header'); -%>
<nav class="breadcrumb">
<div class="columns is-mobile">
<div class="column is-2-desktop is-narrow-touch is-hidden-print">
<%- include('_menu-cemeteries'); -%>
</div>
<div class="column">
<nav class="breadcrumb">
<ul>
<li><a href="<%= urlPrefix %>/dashboard">Home</a></li>
<li class="is-active">
@ -10,9 +15,9 @@
</a>
</li>
</ul>
</nav>
</nav>
<div class="columns is-vcentered">
<div class="columns is-vcentered">
<div class="column">
<h1 class="title is-1">
Find a Cemetery
@ -24,10 +29,10 @@
<span>Export</span>
</a>
</div>
</div>
</div>
<% if (user.userProperties.canUpdate) { %>
<div class="fixed-container is-fixed-bottom-right mx-4 my-4 has-text-right is-hidden-print">
<% if (user.userProperties.canUpdate) { %>
<div class="fixed-container is-fixed-bottom-right mx-4 my-4 has-text-right is-hidden-print">
<a class="button is-circle is-primary has-tooltip-left"
data-tooltip="Create a New Cemetery"
href="<%= urlPrefix %>/cemeteries/new"
@ -35,10 +40,10 @@
<i class="fas fa-plus" aria-hidden="true"></i>
<span class="sr-only">Create a New Cemetery</span>
</a>
</div>
<% } %>
</div>
<% } %>
<div class="box">
<div class="box">
<form id="form--searchFilters">
<div class="field">
<div class="control has-icons-left">
@ -51,9 +56,11 @@
</div>
</div>
</form>
</div>
</div>
<div id="container--searchResults"></div>
<div id="container--searchResults"></div>
</div>
</div>
<%- include('_footerA'); -%>

View File

@ -1,6 +1,12 @@
<%- include('_header'); -%>
<nav class="breadcrumb">
<div class="columns is-mobile">
<div class="column is-2-desktop is-narrow-touch is-hidden-print">
<%- include('_menu-contracts'); -%>
</div>
<div class="column">
<nav class="breadcrumb">
<ul>
<li><a href="<%= urlPrefix %>/dashboard">Home</a></li>
<li class="is-active">
@ -12,13 +18,13 @@
</a>
</li>
</ul>
</nav>
</nav>
<h1 class="title is-1">
<h1 class="title is-1">
Find a Contract
</h1>
</h1>
<% if (user.userProperties.canUpdate) { %>
<% if (user.userProperties.canUpdate) { %>
<div class="fixed-container is-fixed-bottom-right mx-4 my-4 has-text-right is-hidden-print">
<a class="button is-circle is-primary has-tooltip-left"
data-tooltip="Create a New Contract"
@ -28,9 +34,9 @@
<span class="sr-only">Create a New Contract</span>
</a>
</div>
<% } %>
<% } %>
<div class="box">
<div class="box">
<form id="form--searchFilters">
<input id="searchFilter--limit" name="limit" type="hidden" value="100" />
<input id="searchFilter--offset" name="offset" type="hidden" value="0" />
@ -166,9 +172,11 @@
</div>
</form>
</div>
</div>
<div id="container--searchResults"></div>
<div id="container--searchResults"></div>
</div>
</div>
<%- include('_footerA'); -%>

View File

@ -1,6 +1,11 @@
<%- include('_header'); -%>
<nav class="breadcrumb">
<div class="columns is-mobile">
<div class="column is-2-desktop is-narrow-touch is-hidden-print">
<%- include('_menu-contracts'); -%>
</div>
<div class="column">
<nav class="breadcrumb">
<ul>
<li><a href="<%= urlPrefix %>/dashboard">Home</a></li>
<li class="is-active">
@ -10,9 +15,9 @@
</a>
</li>
</ul>
</nav>
</nav>
<div class="columns is-vcentered">
<div class="columns is-vcentered">
<div class="column">
<h1 class="title is-1">
Find a Funeral Home
@ -24,9 +29,9 @@
<span>Export</span>
</a>
</div>
</div>
</div>
<% if (user.userProperties.canUpdate) { %>
<% if (user.userProperties.canUpdate) { %>
<div class="fixed-container is-fixed-bottom-right mx-4 my-4 has-text-right is-hidden-print">
<a class="button is-circle is-primary has-tooltip-left"
data-tooltip="Create a New Funeral Home"
@ -36,9 +41,9 @@
<span class="sr-only">Create a New Funeral Home</span>
</a>
</div>
<% } %>
<% } %>
<div class="box">
<div class="box">
<form id="form--searchFilters">
<div class="field">
<div class="control has-icons-left">
@ -51,9 +56,11 @@
</div>
</div>
</form>
</div>
</div>
<div id="container--searchResults"></div>
<div id="container--searchResults"></div>
</div>
</div>
<%- include('_footerA'); -%>

View File

@ -8,29 +8,33 @@
</h2>
<ul class="menu-list">
<li>
<a class="is-active" href="#tab--workOrders" aria-label="Work Orders">
<a class="<%= reportTab === 'workOrders' ? 'is-active' : '' %>" href="#tab--workOrders" aria-label="Work Orders">
<div class="columns is-mobile is-1">
<div class="column is-narrow">
<span class="icon"><i class="fas fa-fw fa-hard-hat" aria-hidden="true"></i></span>
<span class="is-hidden-touch">Work Orders</span>
</div>
<div class="column is-hidden-touch">Work Orders</div>
</div>
</a>
</li>
<li>
<a href="#tab--contracts" aria-label="Contracts">
<span class="icon">
<i class="fas fa-file-contract" aria-hidden="true"></i>
</span>
<span class="is-hidden-touch">Contracts</span>
<a class="<%= reportTab === 'contracts' ? 'is-active' : '' %>" href="#tab--contracts" aria-label="Contracts">
<div class="columns is-mobile is-1">
<div class="column is-narrow">
<span class="icon"><i class="fas fa-fw fa-file-contract" aria-hidden="true"></i></span>
</div>
<div class="column is-hidden-touch">Contracts</div>
</div>
</a>
</li>
<li>
<a href="#tab--burialSites" aria-label="Burial Sites">
<span class="icon"><i class="fas fa-fw fa-vector-square" aria-hidden="true"></i></span>
<span class="is-hidden-touch">Burial Sites</span>
</a>
</li>
<li>
<a href="#tab--cemeteries" aria-label="Cemeteries">
<a class="<%= reportTab === 'cemeteries' ? 'is-active' : '' %>" href="#tab--cemeteries" aria-label="Cemeteries and Burial Sites">
<div class="columns is-mobile is-1">
<div class="column is-narrow">
<span class="icon"><i class="far fa-fw fa-map" aria-hidden="true"></i></span>
<span class="is-hidden-touch">Cemeteries</span>
</div>
<div class="column is-hidden-touch">Cemeteries and Burial Sites</div>
</div>
</a>
</li>
</ul>
@ -39,15 +43,23 @@
</h2>
<ul class="menu-list">
<li>
<a href="#tab--dataTableExports" aria-label="Data Tables">
<a class="<%= reportTab === 'dataTableExports' ? 'is-active' : '' %>" href="#tab--dataTableExports" aria-label="Data Tables">
<div class="columns is-mobile is-1">
<div class="column is-narrow">
<span class="icon"><i class="fas fa-fw fa-table" aria-hidden="true"></i></span>
<span class="is-hidden-touch">Data Tables</span>
</div>
<div class="column is-hidden-touch">Data Tables</div>
</div>
</a>
</li>
<li>
<a href="#tab--configTableExports" aria-label="Config Tables">
<a class="<%= reportTab === 'configTableExports' ? 'is-active' : '' %>" href="#tab--configTableExports" aria-label="Config Tables">
<div class="columns is-mobile is-1">
<div class="column is-narrow">
<span class="icon"><i class="fas fa-fw fa-table" aria-hidden="true"></i></span>
<span class="is-hidden-touch">Config Tables</span>
</div>
<div class="column is-hidden-touch">Config Tables</div>
</div>
</a>
</li>
</ul>
@ -67,7 +79,7 @@
</nav>
<div class="tabs-container">
<div id="tab--workOrders">
<div class="<%= reportTab === 'workOrders' ? '' : 'is-hidden' %>" id="tab--workOrders">
<h1 class="title is-1">Work Order Reports</h1>
<div class="columns">
<div class="column">
@ -110,7 +122,7 @@
</div>
</div>
<div class="is-hidden" id="tab--contracts">
<div class="<%= reportTab === 'contracts' ? '' : 'is-hidden' %>" id="tab--contracts">
<h1 class="title is-1">Contract Reports</h1>
<div class="panel">
@ -178,8 +190,27 @@
</form>
</div>
</div>
<div class="is-hidden" id="tab--burialSites">
<h1 class="title is-1">Burial Site Reports</h1>
<div class="<%= reportTab === 'cemeteries' ? '' : 'is-hidden' %>" id="tab--cemeteries">
<h1 class="title is-1">Cemetery Reports</h1>
<div class="panel">
<a class="panel-block align-items-flex-start" href="<%= urlPrefix %>/reports/cemeteries-formatted" download>
<div class="has-text-centered my-2 ml-2 mr-3">
<span class="icon has-text-info">
<i class="fas fa-2x fa-file" aria-hidden="true"></i>
</span><br />
<span class="tag is-info">CSV</span>
</div>
<div>
<h2 class="title is-5 mb-0">Full Cemetery List</h2>
<p>
All active cemeteries.
</p>
</div>
</a>
</div>
<h2 class="title is-3">Burial Site Reports</h2>
<div class="panel">
<form class="panel-block align-items-flex-start" method="get" action="<%= urlPrefix %>/reports/burialSites-byCemeteryId">
@ -288,27 +319,8 @@
</form>
</div>
</div>
<div class="is-hidden" id="tab--cemeteries">
<h1 class="title is-1">Cemetery Reports</h1>
<div class="panel">
<a class="panel-block align-items-flex-start" href="<%= urlPrefix %>/reports/cemeteries-formatted" download>
<div class="has-text-centered my-2 ml-2 mr-3">
<span class="icon has-text-info">
<i class="fas fa-2x fa-file" aria-hidden="true"></i>
</span><br />
<span class="tag is-info">CSV</span>
</div>
<div>
<h2 class="title is-5 mb-0">Full Cemetery List</h2>
<p>
All active cemeteries.
</p>
</div>
</a>
</div>
</div>
<div class="is-hidden" id="tab--dataTableExports">
<div class="<%= reportTab === 'dataTableExports' ? '' : 'is-hidden' %>" id="tab--dataTableExports">
<h1 class="title is-1">Data Table Exports</h1>
<div class="message is-info">
<p class="message-body">
@ -497,7 +509,7 @@
</div>
</div>
</div>
<div class="is-hidden" id="tab--configTableExports">
<div class="<%= reportTab === 'configTableExports' ? '' : 'is-hidden' %>" id="tab--configTableExports">
<h1 class="title is-1">Config Table Exports</h1>
<div class="message is-info">
<p class="message-body">