Initial comming of full program to main branch

This commit is contained in:
James Richie
2026-02-14 07:57:18 -05:00
parent 2b18dcef82
commit 6195ca4709
1516 changed files with 432116 additions and 0 deletions
+83
View File
@@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add County</xsl:param>
<xsl:param name="PAGE-NAME">addCounty</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-building me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Counties.addCounty"/>
<input type="hidden" name="step" value="add"/>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="county_name">Name</label>
<input type="text" class="form-control form-control-sm" name="county_name" id="county_name" maxlength="100" autocomplete="off" autofocus="autofocus"/>
</div>
<div class="col-lg-5 mb-3">
<label class="form-label" for="subscription_area">Area</label>
<select class="form-control form-control-sm search-dropdown" name="subscription_area" id="subscription_area" size="1">
<xsl:apply-templates select="//Constants/Areas"/>
</select>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave">
<i class="bi bi-save me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnDelete">
<i class="bi bi-trash me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Areas dropdown -->
<xsl:template match="Constants/Areas">
<option value="">Choose...</option>
<xsl:for-each select="Area">
<xsl:sort select="."/>
<option value="{.}" data-tokens="{.}">
<xsl:value-of select="." />
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+56
View File
@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add Dropdown</xsl:param>
<xsl:param name="PAGE-NAME">addDropdown</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-caret-down-square me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
|
<xsl:value-of select="//dropdowntypes/record/dropdowntype_title"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Dropdowns.addDropdown"/>
<input type="hidden" name="step" value="add"/>
<input type="hidden" name="dropdowntype_serial" id="dropdowntype_serial" value="{//dropdowntypes/record/dropdowntype_serial}"/>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdown_value">Value</label>
<input type="text" class="form-control form-control-sm" name="dropdown_value" id="dropdown_value" maxlength="100" autocomplete="off" autofocus="autofocus"/>
</div>
</form>
<div class="buttons mt-4 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel"><i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave"><i class="bi bi-save me-2"/>Save</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+67
View File
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add Dropdown Type</xsl:param>
<xsl:param name="PAGE-NAME">addDropdowntype</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-caret-down-square me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Dropdowns.addDropdowntype"/>
<input type="hidden" name="step" value="add"/>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdowntype_name">Name</label>
<input type="text" class="form-control form-control-sm" name="dropdowntype_name" id="dropdowntype_name" maxlength="100" autocomplete="off" autofocus="autofocus"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdowntype_title">Title</label>
<input type="text" class="form-control form-control-sm" name="dropdowntype_title" id="dropdowntype_title" maxlength="100" autocomplete="off"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdowntype_table">Table</label>
<input type="text" class="form-control form-control-sm" name="dropdowntype_table" id="dropdowntype_table" maxlength="100" autocomplete="off"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdowntype_column">Column</label>
<input type="text" class="form-control form-control-sm" name="dropdowntype_column" id="dropdowntype_column" maxlength="100" autocomplete="off"/>
</div>
</form>
<div class="buttons mt-4 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel"><i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave"><i class="bi bi-save me-2"/>Save</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add Note</xsl:param>
<xsl:param name="PAGE-NAME">addNote</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-chat-dots me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Notes.addNote"/>
<input type="hidden" name="step" value="add"/>
<input type="hidden" name="note_type" value="{$NOTE_TYPE}"/>
<input type="hidden" name="note_reference" value="{$NOTE_REFERENCE}"/>
<div class="row">
<div class="col-lg-8 mb-3">
<label class="form-label" for="note_text">Note</label>
<textarea class="form-control form-control-sm" name="note_text" id="note_text" rows="8" autofocus="autofocus"/>
</div>
</div>
</form>
<div class="buttons mt-2 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnSave"><i class="bi bi-floppy me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel"><i class="bi bi-check-lg me-2"/>Cancel</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+85
View File
@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add Popover</xsl:param>
<xsl:param name="PAGE-NAME">addPopover</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<script src="js/ckeditor.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-chat-square-dots me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}" enctype="multipart/form-data">
<input type="hidden" name="action" value="Popovers.addPopover"/>
<input type="hidden" name="step" value="add"/>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="popover_name">Name</label>
<input type="text" class="form-control form-control-sm" name="popover_name" id="popover_name" maxlength="100" autocomplete="off" autofocus="autofocus"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="popover_title">Title</label>
<input type="text" class="form-control form-control-sm" name="popover_title" id="popover_title" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="popover_placeholder">Placeholder</label>
<input type="text" class="form-control form-control-sm" name="popover_placeholder" id="popover_placeholder" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-10 mb-3">
<label class="form-label" for="popover_text">Popover Text</label>
<textarea class="form-control form-control-sm" name="popover_text" id="popover_text"/>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel"><i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave"><i class="bi bi-save me-2"/>Save</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+289
View File
@@ -0,0 +1,289 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add RDI Record</xsl:param>
<xsl:param name="PAGE-NAME">addRDI</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-buildings me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="RDI.addRDI"/>
<input type="hidden" name="step" value="add"/>
<div class="row">
<div class="col-lg-3 mb-3">
<label class="form-label" for="rdi_permit_facts_id">Permit Facts ID</label>
<input type="text" class="form-control form-control-sm" name="rdi_permit_facts_id" id="rdi_permit_facts_id" maxlength="100" autocomplete="off" autofocus="yes"/>
</div>
<div class="col-lg-3 mb-3">
<label class="form-label" for="rdi_permit_number">Permit Number</label>
<input type="text" class="form-control form-control-sm" name="rdi_permit_number" id="rdi_permit_number" maxlength="100" autocomplete="off"/>
</div>
<div class="col-lg-3 mb-3">
<label class="form-label" for="rdi_entry_date">Entry Date</label>
<div class="input-group input-group-sm rdi_entry_date">
<input type="text" class="form-control form-control-sm date-mask" name="rdi_entry_date" id="rdi_entry_date"/>
<button class="btn btn-sm btn-outline-primary btnEntryDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
<i class="bi bi-calendar3"/>
</button>
</div>
</div>
<div class="col-lg-3 mb-3">
<label class="form-label" for="rdi_permit_date">Permit Date</label>
<div class="input-group input-group-sm rdi_permit_date">
<input type="text" class="form-control form-control-sm date-mask" name="rdi_permit_date" id="rdi_permit_date"/>
<button class="btn btn-sm btn-outline-primary btnPermitDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
<i class="bi bi-calendar3"/>
</button>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="rdi_sub_div_name">Subdivision</label>
<input type="text" class="form-control form-control-sm" name="rdi_sub_div_name" id="rdi_sub_div_name" maxlength="100" autocomplete="off"/>
</div>
<div class="col-lg-3 mb-3">
<label class="form-label" for="rdi_project_type">Project Type</label>
<select class="form-control form-control-sm search-dropdown" name="rdi_project_type" id="rdi_project_type" size="1">
<xsl:apply-templates select="//Constants/ProjectTypes"/>
</select>
</div>
<div class="col-lg-3 mb-3">
<label class="form-label" for="rdi_county">County</label>
<select class="form-control form-control-sm search-dropdown" name="rdi_county" id="rdi_county" size="1">
<xsl:apply-templates select="//counties"/>
</select>
</div>
</div>
<div class="row">
<div class="col-lg-8 mb-3">
<label class="form-label" for="rdi_company">Company</label>
<input type="text" class="form-control form-control-sm" name="rdi_company" id="rdi_company" autocomplete="off"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_phone">Phone</label>
<input type="text" class="form-control form-control-sm phone-mask" name="rdi_phone" id="rdi_phone" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="rdi_project_addr">Project Address</label>
<input type="text" class="form-control form-control-sm" name="rdi_project_addr" id="rdi_project_addr" maxlength="100" autocomplete="off"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_city">City</label>
<input type="text" class="form-control form-control-sm" name="rdi_city" id="rdi_city" maxlength="100" autocomplete="off"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_state">State</label>
<input type="text" class="form-control form-control-sm" name="rdi_state" id="rdi_state" maxlength="100" autocomplete="off"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_zip">ZIP Code</label>
<input type="text" class="form-control form-control-sm zip-mask" name="rdi_zip" id="rdi_zip" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="rdi_project_city">Project City</label>
<input type="text" class="form-control form-control-sm" name="rdi_project_city" id="rdi_project_city" maxlength="100" autocomplete="off"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_project_state">Project State</label>
<input type="text" class="form-control form-control-sm" name="rdi_project_state" id="rdi_project_state" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="rdi_value">Project Value</label>
<input type="text" class="form-control form-control-sm" name="rdi_value" id="rdi_value" maxlength="100" autocomplete="off"/>
</div>
<!-- Empty nodes included -->
<div class="col-lg-4 mb-3">
<label class="form-label" for="rdi_lot">Lot</label>
<input type="text" class="form-control form-control-sm" name="rdi_lot" id="rdi_lot" maxlength="100" autocomplete="off"/>
</div>
<div class="col-lg-4 mb-3">
<label class="form-label" for="rdi_dist_ll">District LL</label>
<input type="text" class="form-control form-control-sm" name="rdi_dist_ll" id="rdi_dist_ll" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="rdi_owner_name">Owner Name</label>
<input type="text" class="form-control form-control-sm" name="rdi_owner_name" id="rdi_owner_name" maxlength="100" autocomplete="off"/>
</div>
<div class="col-lg-5 mb-3">
<label class="form-label" for="rdi_owner_phone">Owner Phone</label>
<input type="text" class="form-control form-control-sm phone-mask" name="rdi_owner_phone" id="rdi_owner_phone" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="rdi_owner_address">Owner Address</label>
<input type="text" class="form-control form-control-sm" name="rdi_owner_address" id="rdi_owner_address" maxlength="100" autocomplete="off"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_owner_city">Owner City</label>
<input type="text" class="form-control form-control-sm" name="rdi_owner_city" id="rdi_owner_city" maxlength="100" autocomplete="off"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_owner_state">Owner State</label>
<input type="text" class="form-control form-control-sm" name="rdi_owner_state" id="rdi_owner_state" maxlength="100" autocomplete="off"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_owner_zip">Owner ZIP</label>
<input type="text" class="form-control form-control-sm zip-mask" name="rdi_owner_zip" id="rdi_owner_zip" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_size">Size</label>
<input type="text" class="form-control form-control-sm" name="rdi_size" id="rdi_size"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_units">Units</label>
<input type="text" class="form-control form-control-sm" name="rdi_units" id="rdi_units"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_building_type">Building Type</label>
<input type="text" class="form-control form-control-sm" name="rdi_building_type" id="rdi_building_type"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_work_type">Work Type</label>
<input type="text" class="form-control form-control-sm" name="rdi_work_type" id="rdi_work_type"/>
</div>
<div class="col-lg-1 mb-2">
<label class="form-label" for="rdi_ct1">CTL</label>
<input type="text" class="form-control form-control-sm" name="rdi_ct1" id="rdi_ct1"/>
</div>
</div>
<div class="row">
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_ytd_permits">YTD Permits</label>
<input type="text" class="form-control form-control-sm" name="rdi_ytd_permits" id="rdi_ytd_permits"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_ytd_value">YTD Value</label>
<input type="text" class="form-control form-control-sm" name="rdi_ytd_value" id="rdi_ytd_value"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_12mth_prev_permits">12 Month Prev Permits</label>
<input type="text" class="form-control form-control-sm" name="rdi_12mth_prev_permits" id="rdi_12mth_prev_permits"/>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave">
<i class="bi bi-save me-2"/>Save</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Project Type dropdown -->
<xsl:template match="Constants/ProjectTypes">
<option value="">Choose...</option>
<xsl:for-each select="ProjectType">
<xsl:sort select="."/>
<option value="{.}" data-tokens="{.}">
<xsl:value-of select="." />
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for Counties dropdown -->
<xsl:template match="counties">
<option value="">Choose..</option>
<xsl:for-each select="record">
<option value="{county_name}" data-tokens="{county_name}">
<xsl:value-of select="county_name"/>
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+105
View File
@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add Report</xsl:param>
<xsl:param name="PAGE-NAME">addReport</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-printer me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Reports.addReport"/>
<input type="hidden" name="step" value="add"/>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="report_name">Name</label>
<input type="text" class="form-control form-control-sm" name="report_name" id="report_name" maxlength="100" autocomplete="off" autofocus="autofocus"/>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="report_class">Class</label>
<input type="text" class="form-control form-control-sm" name="report_class" id="report_class" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="report_type">Type</label>
<select class="form-select form-select-sm" name="report_type" id="report_type" size="1">
<xsl:apply-templates select="//Constants/ReportTypes"/>
</select>
</div>
</div>
<div class="row">
<div class="col-lg-8 mb-3">
<label class="form-label" for="report_description">Description</label>
<input type="text" class="form-control form-control-sm" name="report_description" id="report_description" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-8 mb-3">
<label class="form-label" for="report_target">Target</label>
<input type="text" class="form-control form-control-sm" name="report_target" id="report_target" maxlength="50" autocomplete="off"/>
</div>
</div>
</form>
<div class="buttons mt-2 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel"><i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave"><i class="bi bi-save me-2"/>Save</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Type dropdown -->
<xsl:template match="Constants/ReportTypes">
<xsl:for-each select="ReportType">
<xsl:sort select="."/>
<option value="{.}">
<xsl:value-of select="." />
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+82
View File
@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add Status</xsl:param>
<xsl:param name="PAGE-NAME">addStatus</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-list-task me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Statuses.addStatus"/>
<input type="hidden" name="step" value="add"/>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="status_name">Name</label>
<input type="text" class="form-control form-control-sm" name="status_name" id="status_name" maxlength="100" autocomplete="off" autofocus="autofocus"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="status_classes">Classes</label>
<input type="text" class="form-control form-control-sm" name="status_classes" id="status_classes" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<label class="mb-1">Active Status</label>
<div class="col-auto mb-3">
<div class="form-check">
<input class="form-check-input" type="checkbox" name="status_active" id="status_active" checked="checked" value="true">
</input>
<label class="form-check-label" for="status_active">Active</label>
</div>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel"><i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave"><i class="bi bi-save me-2"/>Save</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+120
View File
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add Subscription</xsl:param>
<xsl:param name="PAGE-NAME">addSubscription</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-list-check me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Subscriptions.addSubscription"/>
<input type="hidden" name="step" value="add"/>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="subscription_title">Title</label>
<input type="text" class="form-control form-control-sm" name="subscription_title" id="subscription_title" maxlength="100" autocomplete="off" autofocus="yes"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="subscription_description">Description</label>
<input type="text" class="form-control form-control-sm" name="subscription_description" id="subscription_description" maxlength="128" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="subscription_projecttype">Project Type</label>
<select class="form-control form-control-sm search-dropdown" name="subscription_projecttype" id="subscription_projecttype" size="1">
<xsl:apply-templates select="//Constants/ProjectTypes"/>
</select>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="subscription_area">Area</label>
<select class="form-control form-control-sm search-dropdown" name="subscription_area" id="subscription_area" size="1">
<xsl:apply-templates select="//Constants/Areas"/>
</select>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnSave">
<i class="bi bi-floppy me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-check-lg me-2"/>Cancel</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Project Type dropdown -->
<xsl:template match="Constants/ProjectTypes">
<option value="">Choose...</option>
<xsl:for-each select="ProjectType">
<xsl:sort select="."/>
<option value="{.}" data-tokens="{.}">
<xsl:value-of select="." />
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for Areas dropdown -->
<xsl:template match="Constants/Areas">
<option value="">Choose...</option>
<xsl:for-each select="Area">
<xsl:sort select="."/>
<option value="{.}" data-tokens="{.}">
<xsl:value-of select="." />
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+95
View File
@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add Subscription to User</xsl:param>
<xsl:param name="PAGE-NAME">addSubscriptionToUser</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-list-check me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
|
<xsl:value-of select="//users/record/user_name"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Subscriptions.addSubscriptionToUser"/>
<input type="hidden" name="step" value="add"/>
<input type="hidden" name="user_serial" value="{//users/record/user_serial}"/>
<div class="row">
<div class="col-lg-8 mb-3">
<label class="form-label" for="subscription_serial">Subscription</label>
<select class="form-control form-control-sm search-dropdown" name="subscription_serial" id="subscription_serial" size="1">
<xsl:apply-templates select="//subscriptions"/>
</select>
</div>
<div class="col-lg-3 mb-3">
<label class="form-label" for="subscription_stop_date">Stop Date</label>
<div class="input-group input-group-sm subscription_stop_date">
<input type="text" class="form-control form-control-sm date-mask" name="subscription_stop_date" id="subscription_stop_date" value="{$TODAY_MMDDYYYY}"/>
<button class="btn btn-sm btn-outline-primary btnSubscriptionStopDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
<i class="bi bi-calendar3"/>
</button>
</div>
</div>
</div>
</form>
<div class="buttons mt-2 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnSave">
<i class="bi bi-save me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-x-lg me-2"/>Cancel</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Subscription dropdown -->
<xsl:template match="subscriptions">
<option value="">Choose..</option>
<xsl:for-each select="record">
<option value="{subscription_serial}" data-tokens="{subscription_serial}">
<xsl:value-of select="subscription_title"/>
-
<xsl:value-of select="subscription_description"/>
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+105
View File
@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add User</xsl:param>
<xsl:param name="PAGE-NAME">addUser</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-person-circle me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Users.addUser"/>
<input type="hidden" name="step" value="add"/>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="user_name">User Name</label>
<input type="text" class="form-control form-control-sm text-capitalize" name="user_name" id="user_name" maxlength="100" autocomplete="off" autofocus="autofocus" data-bs-toggle="popover" data-bs-content="{//popovers/record[popover_name = 'user_name']/popover_text}" data-bs-html="true" data-bs-custom-class="custom-popover" data-bs-offset="0,10"/>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="user_client_name">Client Name</label>
<input type="text" class="form-control form-control-sm" name="user_client_name" id="user_client_name" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="user_email">Email</label>
<input type="text" class="form-control form-control-sm" name="user_email" id="user_email" maxlength="128" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-3 mb-4">
<label class="form-label" for="user_role">Role</label>
<select class="form-control form-control-sm search-dropdown" name="user_role" id="user_role" size="1">
<xsl:apply-templates select="//Constants/UserRoles"/>
</select>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave">
<i class="bi bi-save me-2"/>Save</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Role dropdown -->
<xsl:template match="Constants/UserRoles">
<option value="">Choose...</option>
<xsl:for-each select="UserRole">
<xsl:sort select="."/>
<option value="{.}" data-tokens="{.}">
<xsl:value-of select="." />
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+67
View File
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Change Password</xsl:param>
<xsl:param name="PAGE-NAME">changePassword</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-lock me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Users.changePassword"/>
<input type="hidden" name="step" value="change"/>
<div class="row">
<div class="col-lg-3 mb-3">
<label class="form-label" for="user_new_password">New Password</label>
<input type="password" class="form-control form-control-sm autosave" name="user_new_password" id="user_new_password" maxlength="128" autocomplete="off" autofocus="autofocus"/>
</div>
</div>
<div class="row">
<div class="col-lg-3 mb-3">
<label class="form-label" for="user_verify_password">Verify Password</label>
<input type="password" class="form-control form-control-sm autosave" name="user_verify_password" id="user_verify_password" maxlength="128" autocomplete="off" autofocus="autofocus"/>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnSave">
<i class="bi bi-save me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-box-arrow-left me-2"/>Cancel</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+107
View File
@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Choose Export</xsl:param>
<xsl:param name="PAGE-NAME">chooseExport</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="fa-regular fa-circle-user me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Export.chooseExport"/>
<input type="hidden" name="step" value="run"/>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="export_processdate">Process Date</label>
<div class="input-group input-group-sm process_date">
<input type="text" class="form-control form-control-sm date-mask" name="export_processdate" id="export_processdate" autocomplete="no" maxlength="10" autofocus="autofocus"/>
<button class="btn btn-sm btn-outline-primary btnProcessDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
<i class="fa-solid fa-calendar-days"/>
</button>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="export_accounting_period">Accounting Period</label>
<input type="text" class="form-control form-control-sm autosave accounting-period" name="export_accounting_period" id="export_accounting_period" maxlength="7" autocomplete="off"/>
</div>
</div>
<div class="col-lg-4 mb-3">
<label class="form-label" for="export_type">Export Type</label>
<select class="form-control form-control-sm search-dropdown" name="export_type" id="export_type" size="1">
<xsl:call-template name="dropdowns">
<xsl:with-param name="dropdown-name">export_type</xsl:with-param>
</xsl:call-template>
</select>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnRun">
<i class="fa-solid fa-file-export me-2"/>Run</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-check-lg me-2"/>Cancel</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Dropdowns -->
<xsl:template name="dropdowns">
<xsl:param name="dropdown-name"/>
<option value="">Choose...</option>
<xsl:for-each select="//dropdowns/record[dropdowntype_name = $dropdown-name]">
<option value="{dropdown_serial}" data-tokens="{dropdown_value}">
<xsl:if test="boolean(number(dropdown_default)) = true()">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
<xsl:value-of select="dropdown_value" />
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+41
View File
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="PAGE-NAME">consolidationAlert</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="card">
<div class="card-header bg-danger text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-exclamation-triangle me-2" aria-hidden="true"/>
RDI Consolidation Notice
</div>
<div class="card-body text-center">
<div class="alert alert-danger">
<p>You are about to mass update the RDI records table.
This process will remove all records from the RDI table.
</p>
</div>
<div class="buttons mt-2 mb-2">
<a role="button" class="btn btn-sm btn-primary me-2 btnRunConsolidation">
<i class="bi bi-box-arrow-right me-2"/>Run</a>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+56
View File
@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="PAGE-TITLE">Consolidation Results</xsl:param>
<xsl:param name="PAGE-NAME">consolidationResults</xsl:param>
<xsl:param name="CONSOLIDATION-ERROR"/>
<xsl:param name="RDI-RECORD-COUNT"/>
<xsl:param name="PROCESSED-RECORD-COUNT"/>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-check2-circle me-2" aria-hidden="true"/>
<xsl:copy-of select="$PAGE-TITLE"/>
</div>
<div class="card-body text-left">
<p>RDI Table Record Count: <xsl:value-of select="$RDI-RECORD-COUNT"/></p>
<p>Processed Records Count: <xsl:value-of select="$PROCESSED-RECORD-COUNT"/></p>
<xsl:choose>
<xsl:when test="$RDI-RECORD-COUNT != $PROCESSED-RECORD-COUNT">
<h3 class="text-danger">Consolidation Unsuccessful</h3>
<p>
<xsl:value-of select="CONSOLIDATION-ERROR"/>
</p>
</xsl:when>
<xsl:otherwise>
<h3 class="text-success">Consolidation Successful.</h3>
<p>You can now upload the new RDI files.</p>
</xsl:otherwise>
</xsl:choose>
<div class="buttons mt-2 mb-2">
<a role="button" class="btn btn-sm btn-primary me-2 btnImportCSVs">
<i class="bi bi-upload me-2"/>Import CSVs</a>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+352
View File
@@ -0,0 +1,352 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="APPLICATION_NAME"></xsl:param>
<xsl:param name="NAVIGATION_AREA_WIDTH">xxl</xsl:param>
<xsl:param name="CONTENT_AREA_WIDTH">xxl</xsl:param>
<!-- Main Template -->
<xsl:template match="/">
<xsl:text disable-output-escaping="yes">&lt;!DOCTYPE html></xsl:text>
<html lang="en" data-bs-theme="{$THEME}">
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>
<xsl:value-of select="$APPLICATION_NAME"/>
</title>
<link rel="icon" type="image/x-icon" href="images/server.svg"/>
<link href="css/themes/Spacelab/bootstrap.min.css?version={$VERSION}" rel="stylesheet" media="screen"/>
<link href="css/bootstrap-icons.min.css?version={$VERSION}" rel="stylesheet" media="screen"/>
<link href="css/base.css?version={$VERSION}" rel="stylesheet" media="screen" />
<link href="css/bootstrap-datepicker.min.css?version={$VERSION}" rel="stylesheet" media="screen" />
<link href="css/bootstrap-select.min.css?version={$VERSION}" rel="stylesheet" media="screen" />
<script src="js/jquery-3.2.0.min.js?version={$VERSION}"/>
<script src="js/bootstrap.bundle.min.js?version={$VERSION}"/>
<script src="js/base.js?version={$VERSION}"/>
<script src="js/content.js?version={$VERSION}"/>
<script src="js/bootstrap-datepicker.min.js?version={$VERSION}"/>
<script src="js/jquery.inputmask.min.js?version={$VERSION}"/>
<script src="js/bootstrap-select.min.js?version={$VERSION}"/>
<script src="js/dinero.min.js?version={$VERSION}"/>
<script src="js/autologout.js?version={$VERSION}"/>
</head>
<body>
<xsl:if test="$THEME = 'Spacelab'">
<xsl:attribute name="class">bg-light bg-opacity-50</xsl:attribute>
</xsl:if>
<script type="text/javascript">
var msie = /msie\s|trident/i.test(window.navigator.userAgent);
if (msie) {
window.location.href = "html/unsupported.html";
}
</script>
<input type="hidden" id="APPLICATION_MNEMONIC" value="{$APPLICATION_MNEMONIC}"/>
<nav class="navbar navbar-expand-lg fixed-top bg-primary navbar-dark">
<div class="container-xxl">
<a class="navbar-brand ms-1 me-0" href="./" aria-label="Home" data-bs-toggle="tooltip" data-bs-title="Home" data-bs-custom-class="custom-tooltip" data-bs-placement="right" data-bs-offset="0,5">
<i class="bi bi-house me-2"></i>
<xsl:value-of select="$APPLICATION_NAME"/>
</a>
<button type="button" class="navbar-toggler p-0" data-bs-toggle="collapse" data-bs-target="#navbar-main" aria-controls="navbar-main" aria-expanded="false" aria-label="Toggle Navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse" id="navbar-main">
<ul class="navbar-nav mx-auto">
<li class="nav-item">
<a class="nav-link user-subscriptions" href="javascript:void(0);">
<i class="bi bi-list-check me-1" aria-hidden="true"/>
SUBSCRIPTIONS
</a>
</li>
<!-- MANAGE/REPORTS/SETUP is only available to Administrators -->
<xsl:if test="$USER_ROLE = 'Administrator' or $USER_ROLE = 'System Administrator'">
<li class="nav-link disabled">
<xsl:text> | </xsl:text>
</li>
<li class="nav-item dropdown">
<a href="javascript:void(0);" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
<i class="bi bi-kanban me-1" aria-hidden="true"/>
MANAGE
</a>
<div class="dropdown-menu mt-2 pt-0 pb-0">
<a class="dropdown-item ps-2 manage-rdi" href="javascript:void(0);">
<i class="bi bi-buildings me-2"/>RDI Records</a>
<a class="dropdown-item ps-2 rdi-consolidation" href="javascript:void(0);">
<i class="bi bi-hammer me-2"/>RDI Consolidation</a>
<a class="dropdown-item ps-2 import-permit-csv" href="javascript:void(0);">
<i class="bi bi-upload me-2"/>Import CSV</a>
</div>
</li>
<li class="nav-link disabled">
<xsl:text> | </xsl:text>
</li>
<li class="nav-item">
<a class="nav-link select-report" href="javascript:void(0);">
<i class="bi bi-printer me-1" aria-hidden="true"/>
REPORTS
</a>
</li>
<li class="nav-link disabled">
<xsl:text> | </xsl:text>
</li>
<li class="nav-item">
<a class="nav-link run-developer-stub" href="javascript:void(0);">
<i class="bi bi-code me-1" aria-hidden="true"/>
DEV STUB
</a>
</li>
</xsl:if>
<li class="nav-link disabled">
<xsl:text> | </xsl:text>
</li>
<li class="nav-item">
<a class="nav-link start-support-ticket" href="javascript:void(0);">
<i class="bi bi-question-circle me-1" aria-hidden="true"/>
SUPPORT
</a>
</li>
</ul>
<ul class="navbar-nav user-dropdown ms-0">
<li class="nav-item dropdown">
<a href="javascript:void(0);" class="nav-link ps-2 dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false">
<span class="username me-1">
<span>
<i class="bi bi-person-circle me-2" aria-hidden="true"></i>
</span>
<xsl:value-of select="$USER_CLIENT_NAME"/>
</span>
</a>
<div class="dropdown-menu dropdown-menu-right mt-2 pt-0 pb-0">
<!-- <a class="dropdown-item ps-2 my-account" href="javascript:void(0);">
<i class="bi bi-person me-2"/>My Account</a>-->
<a class="dropdown-item ps-2 toggle-theme" href="javascript:void(0);">
<i class="bi bi-moon me-2"/>Toggle Dark/Light</a>
<xsl:if test="$USER_ROLE = 'Administrator' or $USER_ROLE = 'System Administrator'">
<div class="dropdown-divider mt-1 mb-1"/>
<a class="dropdown-item ps-2 setup-counties" href="javascript:void(0);">
<i class="bi bi-building me-2"/>Counties
</a>
<a class="dropdown-item ps-2 setup-dropdowntypes" href="javascript:void(0);">
<i class="bi bi-caret-down-square me-2"/>Dropdown Types
</a>
<a class="dropdown-item ps-2 setup-dropdowns" href="javascript:void(0);">
<i class="bi bi-caret-down me-2"/>Dropdowns
</a>
<a class="dropdown-item ps-2 setup-popovers" href="javascript:void(0);">
<i class="bi bi-chat-left-dots me-2"/>Popovers
</a>
<a class="dropdown-item ps-2 setup-reports" href="javascript:void(0);">
<i class="bi bi-printer me-2"/>Reports
</a>
<a class="dropdown-item ps-2 setup-statuses" href="javascript:void(0);">
<i class="bi bi-card-checklist me-2"/>Statuses
</a>
<a class="dropdown-item ps-2 setup-subscriptions" href="javascript:void(0);">
<i class="bi bi-list-check me-2"/>Subscriptions
</a>
<div class="dropdown-divider mt-1 mb-1"></div>
<a class="dropdown-item ps-2 setup-users" href="javascript:void(0);">
<i class="bi bi-person-circle me-2"/>Users
</a>
<a class="dropdown-item ps-2 view-journal" href="javascript:void(0);">
<i class="bi bi-journal me-2"/>Journal
</a>
<!-- <a class="dropdown-item ps-2 view-support-tickets" href="javascript:void(0);">
<i class="bi bi-question-circle me-2"/>Support Tickets
</a>-->
<div class="dropdown-divider mt-1 mb-1"/>
</xsl:if>
<a class="dropdown-item ps-2 sign-out" href="javascript:void(0);">
<i class="bi bi-box-arrow-left me-2"/>Sign Out</a>
</div>
</li>
</ul>
</div>
</div>
</nav>
<!-- Content Area -->
<div class="container-xxl content">
$$$-CONTENT-$$$
</div>
<!-- Footer -->
<footer id="footer">
<div class="col text-center mt-3 lh-1">
<div class="m-0 p-0">
<small class="text-muted pb-4">Copyright ©2026 DEC International, LLC | All Rights Reserved</small>
</div>
</div>
</footer>
<!-- Spinner Modal Dialog -->
<div class="modal" id="spinner-dialog" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1">
<div class="modal-dialog modal-sm modal-dialog-centered">
<div class="modal-content bg-transparent border-0">
<div class="modal-body text-center">
<div class="spinner-border text-white" style="width:5rem;height:5rem;" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
</div>
</div>
</div>
<!-- Confirm Modal Dialog -->
<div class="modal" id="confirm-dialog" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header bg-primary p-1 ps-3">
<h6 class="modal-title text-white"/>
</div>
<div class="modal-body mt-2"/>
<div class="buttons m-3 mt-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnConfirmDialogCancel" data-bs-dismiss="modal">
<i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnConfirmDialogConfirm">
<i class="bi-check-lg me-2"/>Confirm</button>
</div>
</div>
</div>
</div>
<!-- Continue Modal Dialog -->
<div class="modal" id="continue-dialog" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header bg-primary p-1 ps-3">
<h6 class="modal-title text-white"/>
</div>
<div class="modal-body mt-2"/>
<div class="buttons m-3 mt-2">
<button type="button" class="btn btn-sm btn-primary me-1 btnClose" data-bs-dismiss="modal">
<i class="bi bi-box-arrow-left me-2"/>Close</button>
</div>
</div>
</div>
</div>
<!-- Toast -->
<div class="toast-container position-fixed bottom-0 start-50 translate-middle-x p-2">
<div id="toast-message" class="toast bg-primary text-center" role="alert" aria-live="assertive" aria-atomic="true" data-bs-delay="3000">
<div class="toast-body fs-100 text-white"/>
</div>
</div>
<!-- Print Dialog -->
<div class="modal fade" id="print-dialog" tabindex="-1" role="dialog" data-bs-backdrop="static" data-bs-keyboard="false">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header bg-primary p-2 pl-2">
<h6 class="modal-title text-white">
View / Print
</h6>
</div>
<div class="modal-body">
<div id="print-report-container"/>
</div>
<div class="modal-footer">
<button type="button" class="btn page-link btn-sm mr-auto" data-dismiss="modal" data-toggle="tooltip" title="Close" data-placement="top">Close</button>
</div>
</div>
</div>
</div>
<!-- Common Submit Form -->
<form action="./" method="post" id="formSubmit"/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
+89
View File
@@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit County</xsl:param>
<xsl:param name="PAGE-NAME">editCounty</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-building me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Counties.editCounty"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="county_serial" id="county_serial" value="{//counties/record/county_serial}"/>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="county_name">Name</label>
<input type="text" class="form-control form-control-sm" name="county_name" id="county_name" maxlength="100" autocomplete="off" autofocus="autofocus" value="{//counties/record/county_name}"/>
</div>
<div class="col-lg-5 mb-3">
<label class="form-label" for="county_area">Area</label>
<select class="form-control form-control-sm search-dropdown" name="county_area" id="county_area" size="1">
<xsl:apply-templates select="//Constants/Areas"/>
</select>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave">
<i class="bi bi-save me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnDelete">
<i class="bi bi-trash me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Areas dropdown -->
<xsl:template match="Constants/Areas">
<option value="">Choose...</option>
<xsl:for-each select="Area">
<xsl:sort select="."/>
<option value="{.}" data-tokens="{.}">
<xsl:if test=". = //counties/record/county_area">
<xsl:attribute name="selected"/>
</xsl:if>
<xsl:value-of select="." />
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+60
View File
@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit Dropdown</xsl:param>
<xsl:param name="PAGE-NAME">editDropdown</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-caret-down-square me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
|
<xsl:value-of select="//dropdowns/record/dropdowntype_title"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Dropdowns.editDropdown"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="dropdowntype_serial" id="dropdowntype_serial" value="{//dropdowns/record/dropdowntype_serial}"/>
<input type="hidden" name="dropdown_serial" id="dropdown_serial" value="{//dropdowns/record/dropdown_serial}"/>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdown_value">Value</label>
<input type="text" class="form-control form-control-sm" name="dropdown_value" id="dropdown_value" maxlength="100" autocomplete="off" autofocus="autofocus" value="{//dropdowns/record/dropdown_value}"/>
</div>
</form>
<div class="buttons mt-4 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel"><i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave"><i class="bi bi-save me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnDelete"><i class="bi bi-trash3 me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+72
View File
@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit Dropdown Type</xsl:param>
<xsl:param name="PAGE-NAME">editDropdowntype</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-caret-down-square me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Dropdowns.editDropdowntype"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="dropdowntype_serial" id="dropdowntype_serial" value="{//dropdowntypes/record/dropdowntype_serial}"/>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdowntype_name">Name</label>
<input type="text" class="form-control form-control-sm" name="dropdowntype_name" id="dropdowntype_name" maxlength="100" autocomplete="off" autofocus="autofocus" value="{//dropdowntypes/record/dropdowntype_name}"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdowntype_title">Title</label>
<input type="text" class="form-control form-control-sm" name="dropdowntype_title" id="dropdowntype_title" maxlength="100" autocomplete="off" value="{//dropdowntypes/record/dropdowntype_title}"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdowntype_table">Table</label>
<input type="text" class="form-control form-control-sm" name="dropdowntype_table" id="dropdowntype_table" maxlength="100" autocomplete="off" value="{//dropdowntypes/record/dropdowntype_table}"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdowntype_column">Column</label>
<input type="text" class="form-control form-control-sm" name="dropdowntype_column" id="dropdowntype_column" maxlength="100" autocomplete="off" value="{//dropdowntypes/record/dropdowntype_column}"/>
</div>
</form>
<div class="buttons mt-4 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel"><i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave"><i class="bi bi-save me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnDelete"><i class="bi bi-trash3 me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+64
View File
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit Note</xsl:param>
<xsl:param name="PAGE-NAME">editNote</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-chat-dots me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Notes.editNote"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="note_serial" value="{//notes/record/note_serial}"/>
<div class="row">
<div class="col-lg-8 mb-3">
<label class="form-label" for="note_text">Note</label>
<textarea class="form-control form-control-sm pre-wrap" name="note_text" id="note_text" rows="8" autofocus="autofocus">
<xsl:value-of select="//notes/record/note_text"/>
</textarea>
</div>
</div>
</form>
<div class="buttons mt-2 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnSave">
<i class="bi bi-floppy me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-check-lg me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary ms-4 me-2 btnDelete">
<i class="bi bi-trash me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+91
View File
@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit Popover</xsl:param>
<xsl:param name="PAGE-NAME">editPopover</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<script src="js/ckeditor.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-chat-square-dots me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}" enctype="multipart/form-data">
<input type="hidden" name="action" value="Popovers.editPopover"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="popover_serial" id="popover_serial" value="{//popovers/record/popover_serial}"/>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="popover_name">Name</label>
<input type="text" class="form-control form-control-sm" name="popover_name" id="popover_name" maxlength="100" autocomplete="off" autofocus="autofocus" value="{//popovers/record/popover_name}"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="popover_title">Title</label>
<input type="text" class="form-control form-control-sm" name="popover_title" id="popover_title" maxlength="100" autocomplete="off" value="{//popovers/record/popover_title}"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="popover_placeholder">Placeholder</label>
<input type="text" class="form-control form-control-sm" name="popover_placeholder" id="popover_placeholder" maxlength="100" autocomplete="off" value="{//popovers/record/popover_placeholder}"/>
</div>
</div>
<div class="row">
<div class="col-lg-10 mb-3">
<label class="form-label" for="popover_text">Popover Text</label>
<textarea class="form-control form-control-sm" name="popover_text" id="popover_text">
<xsl:value-of select="//popovers/record/popover_text"/>
</textarea>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel"><i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave"><i class="bi bi-save me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnDelete"><i class="bi bi-trash3 me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+300
View File
@@ -0,0 +1,300 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit RDI Record</xsl:param>
<xsl:param name="PAGE-NAME">editRDI</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-buildings me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="RDI.editRDI"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="rdi_serial" id="rdi_serial" value="{//rdis/record/rdi_serial}"/>
<div class="row">
<div class="col-lg-3 mb-3">
<label class="form-label" for="rdi_permit_facts_id">Permit Facts ID</label>
<input type="text" class="form-control form-control-sm" name="rdi_permit_facts_id" id="rdi_permit_facts_id" maxlength="100" autocomplete="off" value="{//rdis/record/rdi_permit_facts_id}"/>
</div>
<div class="col-lg-3 mb-3">
<label class="form-label" for="rdi_permit_number">Permit Number</label>
<input type="text" class="form-control form-control-sm" name="rdi_permit_number" id="rdi_permit_number" maxlength="100" autocomplete="off" value="{//rdis/record/rdi_permit_number}"/>
</div>
<div class="col-lg-3 mb-3">
<label class="form-label" for="rdi_entry_date">Entry Date</label>
<div class="input-group input-group-sm rdi_entry_date">
<input type="text" class="form-control form-control-sm date-mask" name="rdi_entry_date" id="rdi_entry_date" maxlength="10" value="{//rdis/record/rdi_entry_date_verbose}"/>
<button class="btn btn-sm btn-outline-primary btnEntryDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
<i class="bi bi-calendar3"/>
</button>
</div>
</div>
<div class="col-lg-3 mb-3">
<label class="form-label" for="rdi_permit_date">Permit Date</label>
<div class="input-group input-group-sm rdi_permit_date">
<input type="text" class="form-control form-control-sm date-mask" name="rdi_permit_date" id="rdi_permit_date" maxlength="10" value="{//rdis/record/rdi_permit_date_verbose}"/>
<button class="btn btn-sm btn-outline-primary btnPermitDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
<i class="bi bi-calendar3"/>
</button>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="rdi_sub_div_name">Subdivision</label>
<input type="text" class="form-control form-control-sm" name="rdi_sub_div_name" id="rdi_sub_div_name" maxlength="100" autocomplete="off" value="{//rdis/record/rdi_sub_div_name}"/>
</div>
<div class="col-lg-3 mb-3">
<label class="form-label" for="rdi_project_type">Project Type</label>
<select class="form-control form-control-sm search-dropdown" name="rdi_project_type" id="rdi_project_type" size="1">
<xsl:apply-templates select="//Constants/ProjectTypes"/>
</select>
</div>
<div class="col-lg-3 mb-3">
<label class="form-label" for="rdi_county">County</label>
<select class="form-control form-control-sm search-dropdown" name="rdi_county" id="rdi_county" size="1">
<xsl:apply-templates select="//counties"/>
</select>
</div>
</div>
<div class="row">
<div class="col-lg-8 mb-3">
<label class="form-label" for="rdi_company">Company</label>
<input type="text" class="form-control form-control-sm" name="rdi_company" id="rdi_company" autocomplete="off" value="{//rdis/record/rdi_company}"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_phone">Phone</label>
<input type="text" class="form-control form-control-sm phone-mask" name="rdi_phone" id="rdi_phone" autocomplete="off" value="{//rdis/record/rdi_phone}"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="rdi_project_addr">Project Address</label>
<input type="text" class="form-control form-control-sm" name="rdi_project_addr" id="rdi_project_addr" maxlength="100" autocomplete="off" value="{//rdis/record/rdi_project_addr}"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_city">City</label>
<input type="text" class="form-control form-control-sm" name="rdi_city" id="rdi_city" maxlength="100" autocomplete="off" value="{//rdis/record/rdi_city}"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_state">State</label>
<input type="text" class="form-control form-control-sm" name="rdi_state" id="rdi_state" maxlength="100" autocomplete="off" value="{//rdis/record/rdi_state}"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_zip">ZIP Code</label>
<input type="text" class="form-control form-control-sm zip-mask" name="rdi_zip" id="rdi_zip" maxlength="100" autocomplete="off" value="{//rdis/record/rdi_zip}"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="rdi_project_city">Project City</label>
<input type="text" class="form-control form-control-sm" name="rdi_project_city" id="rdi_project_city" maxlength="100" autocomplete="off" value="{//rdis/record/rdi_project_city}"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_project_state">Project State</label>
<input type="text" class="form-control form-control-sm" name="rdi_project_state" id="rdi_project_state" maxlength="100" autocomplete="off" value="{//rdis/record/rdi_project_state}"/>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="rdi_value">Project Value</label>
<input type="text" class="form-control form-control-sm" name="rdi_value" id="rdi_value" maxlength="100" autocomplete="off" value="{//rdis/record/rdi_value_verbose}"/>
</div>
<!-- Empty nodes included -->
<div class="col-lg-4 mb-3">
<label class="form-label" for="rdi_lot">Lot</label>
<input type="text" class="form-control form-control-sm" name="rdi_lot" id="rdi_lot" maxlength="100" autocomplete="off" value="{//rdis/record/rdi_lot}"/>
</div>
<div class="col-lg-4 mb-3">
<label class="form-label" for="rdi_dist_ll">District LL</label>
<input type="text" class="form-control form-control-sm" name="rdi_dist_ll" id="rdi_dist_ll" maxlength="100" autocomplete="off" value="{//rdis/record/rdi_dist_ll}"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="rdi_owner_name">Owner Name</label>
<input type="text" class="form-control form-control-sm" name="rdi_owner_name" id="rdi_owner_name" maxlength="100" autocomplete="off" value="{//rdis/record/rdi_owner_name}"/>
</div>
<div class="col-lg-5 mb-3">
<label class="form-label" for="rdi_owner_phone">Owner Phone</label>
<input type="text" class="form-control form-control-sm phone-mask" name="rdi_owner_phone" id="rdi_owner_phone" maxlength="100" autocomplete="off" value="{//rdis/record/rdi_owner_phone}"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="rdi_owner_address">Owner Address</label>
<input type="text" class="form-control form-control-sm" name="rdi_owner_address" id="rdi_owner_address" maxlength="100" autocomplete="off" value="{//rdis/record/rdi_owner_address}"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_owner_city">Owner City</label>
<input type="text" class="form-control form-control-sm" name="rdi_owner_city" id="rdi_owner_city" maxlength="100" autocomplete="off" value="{//rdis/record/rdi_owner_city}"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_owner_state">Owner State</label>
<input type="text" class="form-control form-control-sm" name="rdi_owner_state" id="rdi_owner_state" maxlength="100" autocomplete="off" value="{//rdis/record/rdi_owner_state}"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_owner_zip">Owner ZIP</label>
<input type="text" class="form-control form-control-sm zip-mask" name="rdi_owner_zip" id="rdi_owner_zip" maxlength="100" autocomplete="off" value="{//rdis/record/rdi_owner_zip}"/>
</div>
</div>
<div class="row">
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_size">Size</label>
<input type="text" class="form-control form-control-sm" name="rdi_size" id="rdi_size" value="{//rdis/record/rdi_size}"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_units">Units</label>
<input type="text" class="form-control form-control-sm" name="rdi_units" id="rdi_units" value="{//rdis/record/rdi_units}"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_building_type">Building Type</label>
<input type="text" class="form-control form-control-sm" name="rdi_building_type" id="rdi_building_type" value="{//rdis/record/rdi_building_type}"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_work_type">Work Type</label>
<input type="text" class="form-control form-control-sm" name="rdi_work_type" id="rdi_work_type" value="{//rdis/record/rdi_work_type}"/>
</div>
<div class="col-lg-1 mb-2">
<label class="form-label" for="rdi_ct1">CTL</label>
<input type="text" class="form-control form-control-sm" name="rdi_ct1" id="rdi_ct1" value="{//rdis/record/rdi_ct1}"/>
</div>
</div>
<div class="row">
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_ytd_permits">YTD Permits</label>
<input type="text" class="form-control form-control-sm" name="rdi_ytd_permits" id="rdi_ytd_permits" value="{//rdis/record/rdi_ytd_permits}"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_ytd_value">YTD Value</label>
<input type="text" class="form-control form-control-sm" name="rdi_ytd_value" id="rdi_ytd_value" value="{//rdis/record/rdi_ytd_value}"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_12mth_prev_permits">12 Month Prev Permits</label>
<input type="text" class="form-control form-control-sm" name="rdi_12mth_prev_permits" id="rdi_12mth_prev_permits" value="{//rdis/record/rdi_12mth_prev_permits}"/>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave">
<i class="bi bi-save me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnDelete">
<i class="bi bi-trash me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Project Type dropdown -->
<xsl:template match="Constants/ProjectTypes">
<option value="">Choose...</option>
<xsl:for-each select="ProjectType">
<xsl:sort select="."/>
<option value="{.}" data-tokens="{.}">
<xsl:if test=". = //rdis/record/rdi_project_type">
<xsl:attribute name="selected"/>
</xsl:if>
<xsl:value-of select="." />
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for Counties dropdown -->
<xsl:template match="counties">
<option value="">Choose..</option>
<xsl:for-each select="record">
<option value="{county_serial}" data-tokens="{county_serial}">
<xsl:if test="county_serial = //rdis/record/rdi_county">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
<xsl:value-of select="county_name"/>
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+113
View File
@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit Report</xsl:param>
<xsl:param name="PAGE-NAME">editReport</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-printer me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Reports.editReport"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="report_serial" id="report_serial" value="{//reports/record/report_serial}"/>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="report_name">Name</label>
<input type="text" class="form-control form-control-sm" name="report_name" id="report_name" maxlength="100" autocomplete="off" autofocus="autofocus" value="{//reports/record/report_name}"/>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="report_class">Class</label>
<input type="text" class="form-control form-control-sm" name="report_class" id="report_class" maxlength="100" autocomplete="off" value="{//reports/record/report_class}"/>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="report_type">Type</label>
<select class="form-select form-select-sm" name="report_type" id="report_type" size="1">
<xsl:apply-templates select="//Constants/ReportTypes"/>
</select>
</div>
</div>
<div class="row">
<div class="col-lg-8 mb-3">
<label class="form-label" for="report_description">Description</label>
<input type="text" class="form-control form-control-sm" name="report_description" id="report_description" maxlength="100" autocomplete="off" value="{//reports/record/report_description}"/>
</div>
</div>
<div class="row">
<div class="col-lg-8 mb-3">
<label class="form-label" for="report_target">Target</label>
<input type="text" class="form-control form-control-sm" name="report_target" id="report_target" maxlength="50" autocomplete="off" value="{//reports/record/report_target}"/>
</div>
</div>
</form>
<div class="buttons mt-2 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel"><i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave"><i class="bi bi-save me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnDelete"><i class="bi bi-trash3 me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Type dropdown -->
<xsl:template match="Constants/ReportTypes">
<xsl:for-each select="ReportType">
<xsl:sort select="."/>
<xsl:choose>
<xsl:when test=". = //reports/record/report_type">
<option value="{.}" SELECTED="SELECTED"><xsl:value-of select="." /></option>
</xsl:when>
<xsl:otherwise>
<option value="{.}"><xsl:value-of select="." /></option>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+107
View File
@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit Status</xsl:param>
<xsl:param name="PAGE-NAME">editStatus</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-list-task me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Statuses.editStatus"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="status_serial" id="status_serial" value="{//statuses/record/status_serial}"/>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="status_name">Name</label>
<input type="text" class="form-control form-control-sm" name="status_name" id="status_name" maxlength="100" autocomplete="off" autofocus="autofocus" value="{//statuses/record/status_name}"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="status_classes">Classes</label>
<input type="text" class="form-control form-control-sm" name="status_classes" id="status_classes" maxlength="100" autocomplete="off" value="{//statuses/record/status_classes}"/>
</div>
</div>
<div class="row">
<label class="mb-1">Active Status</label>
<div class="col-auto mb-3">
<div class="form-check">
<input class="form-check-input" type="checkbox" name="status_active" id="status_active" value="true">
<xsl:if test="boolean(number(//statuses/record/status_active)) = true()">
<xsl:attribute name="checked"/>
</xsl:if>
</input>
<label class="form-check-label" for="status_active">Active</label>
</div>
</div>
</div>
<div class="row">
<label class="mb-1">Default</label>
<div class="col-auto mb-3">
<div class="form-check">
<input class="form-check-input" type="checkbox" name="status_default" id="status_default" value="true">
<xsl:if test="boolean(number(//statuses/record/status_default)) = true()">
<xsl:attribute name="checked"/>
</xsl:if>
</input>
<label class="form-check-label" for="status_default">Default</label>
</div>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel"><i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave"><i class="bi bi-save me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnDelete"><i class="bi bi-trash me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+130
View File
@@ -0,0 +1,130 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit Subscription</xsl:param>
<xsl:param name="PAGE-NAME">editSubscription</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-list-check me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Subscriptions.editSubscription"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="subscription_serial" id="subscription_serial" value="{//subscriptions/record/subscription_serial}"/>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="subscription_title">Title</label>
<input type="text" class="form-control form-control-sm" name="subscription_title" id="subscription_title" maxlength="100" autocomplete="off" autofocus="yes" value="{//subscriptions/record/subscription_title}"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="subscription_description">Description</label>
<input type="text" class="form-control form-control-sm" name="subscription_description" id="subscription_description" maxlength="128" autocomplete="off" value="{//subscriptions/record/subscription_description}"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="subscription_projecttype">Project Type</label>
<select class="form-control form-control-sm search-dropdown" name="subscription_projecttype" id="subscription_projecttype" size="1">
<xsl:apply-templates select="//Constants/ProjectTypes"/>
</select>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="subscription_area">Area</label>
<select class="form-control form-control-sm search-dropdown" name="subscription_area" id="subscription_area" size="1">
<xsl:apply-templates select="//Constants/Areas"/>
</select>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave">
<i class="bi bi-save me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnDelete">
<i class="bi bi-trash me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Project Type dropdown -->
<xsl:template match="Constants/ProjectTypes">
<option value="">Choose...</option>
<xsl:for-each select="ProjectType">
<xsl:sort select="."/>
<option value="{.}" data-tokens="{.}">
<xsl:if test=". = //subscriptions/record/subscription_projecttype">
<xsl:attribute name="selected"/>
</xsl:if>
<xsl:value-of select="." />
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for Areas dropdown -->
<xsl:template match="Constants/Areas">
<option value="">Choose...</option>
<xsl:for-each select="Area">
<xsl:sort select="."/>
<option value="{.}" data-tokens="{.}">
<xsl:if test=". = //subscriptions/record/subscription_area">
<xsl:attribute name="selected"/>
</xsl:if>
<xsl:value-of select="." />
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+140
View File
@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit User</xsl:param>
<xsl:param name="PAGE-NAME">editUser</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-person-circle me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
|
<xsl:value-of select="//users/record/user_name"/>
|
<xsl:value-of select="//users/record/user_client_name"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Users.editUser"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="user_serial" id="user_serial" value="{//users/record/user_serial}"/>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="user_name">Name</label>
<input type="text" class="form-control form-control-sm autosave" name="user_name" id="user_name" maxlength="100" autocomplete="off" autofocus="autofocus" value="{//users/record/user_name}"/>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="user_email">Email</label>
<input type="text" class="form-control form-control-sm autosave" name="user_email" id="user_email" maxlength="128" autocomplete="off" value="{//users/record/user_email}"/>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="user_client_name">Client Name</label>
<input type="text" class="form-control form-control-sm" name="user_client_name" id="user_client_name" maxlength="128" autocomplete="off" value="{//users/record/user_client_name}"/>
</div>
</div>
<div class="row">
<div class="col-lg-3 mb-4">
<label class="form-label" for="user_role">Role</label>
<select class="form-control form-control-sm search-dropdown" name="user_role" id="user_role" size="1">
<xsl:apply-templates select="//Constants/UserRoles"/>
</select>
</div>
</div>
<div class="row">
<label class="mb-1" for="user_active">Active Status</label>
<div class="col-auto mb-3">
<div class="form-check">
<input class="form-check-input" type="checkbox" name="user_active" id="user_active" value="true">
<xsl:if test="boolean(number(//users/record/user_active)) = true()">
<xsl:attribute name="checked"/>
</xsl:if>
</input>
<label class="form-check-label" for="user_active">Active</label>
</div>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave">
<i class="bi bi-save me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnDelete">
<i class="bi bi-trash me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Role dropdown -->
<xsl:template match="Constants/UserRoles">
<option value="">Choose...</option>
<xsl:for-each select="UserRole">
<xsl:sort select="."/>
<option value="{.}" data-tokens="{.}">
<xsl:if test=". = //users/record/user_role">
<xsl:attribute name="selected"/>
</xsl:if>
<xsl:value-of select="." />
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+100
View File
@@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit Users Subscription</xsl:param>
<xsl:param name="PAGE-NAME">editUsersSubscription</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-list-check me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
|
<xsl:value-of select="//users/record/user_name"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Subscriptions.editUsersSubscription"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="usersubscription_serial" value="{//usersubscription/record/usersubscription_serial}"/>
<div class="row">
<div class="col-lg-8 mb-3">
<label class="form-label" for="subscription_serial">Subscription</label>
<select class="form-control form-control-sm search-dropdown" name="subscription_serial" id="subscription_serial" size="1">
<xsl:apply-templates select="//subscriptions"/>
</select>
</div>
<div class="col-lg-3 mb-3">
<label class="form-label" for="subscription_stop_date">Stop Date</label>
<div class="input-group input-group-sm subscription_stop_date">
<input type="text" class="form-control form-control-sm date-mask" name="subscription_stop_date" id="subscription_stop_date" value="{//usersubscription/record/usersubscription_stop_date_verbose}"/>
<button class="btn btn-sm btn-outline-primary btnSubscriptionStopDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
<i class="bi bi-calendar3"/>
</button>
</div>
</div>
</div>
</form>
<div class="buttons mt-2 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnSave">
<i class="bi bi-save me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-x-lg me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary ms-4 me-2 btnDelete">
<i class="bi bi-trash me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Subscription dropdown -->
<xsl:template match="subscriptions">
<option value="">Choose..</option>
<xsl:for-each select="record">
<option value="{subscription_serial}" data-tokens="{subscription_serial}">
<xsl:if test="subscription_serial = //usersubscription/record/usersubscription_subscription_serial">
<xsl:attribute name="selected"/>
</xsl:if>
<xsl:value-of select="subscription_title"/>
-
<xsl:value-of select="subscription_description"/>
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+41
View File
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<xsl:param name="USER-TEMP-PASSWORD"/>
<xsl:template match="/">
<style type="text/css">
.text {
font-family: Calibri ,Arial, Helvetica, sans-serif;
font-size: 14px;
}
</style>
<p class="text">
Dear <xsl:value-of select="//user/record/user_client_name"/>,
</p>
<p class="text">Thank you for being a customer of DEC International. Below are your account credentials.</p>
<p class="text">Username: <xsl:value-of select="//user/record/user_name"/></p>
<p class="text">Password: <xsl:value-of select="$USER-TEMP-PASSWORD"/></p>
<p class="text">You login in at the following web address: <a href="https://ahr.realestatedatainc.com" target="_blank">Atlanta Housing Report</a></p>
<p class="text">Thank you,</p>
<p class="text">DEC-International Support</p>
<br/>
<br/>
<br/> <!-- Line Breaks before email Disclaimer -->
</xsl:template>
</xsl:stylesheet>
+53
View File
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<xsl:param name="USER-TEMP-PASSWORD"/>
<xsl:template match="/">
<style type="text/css">
.text {
font-family: Calibri ,Arial, Helvetica, sans-serif;
font-size: 14px;
}
th {
font-weight: bold;
text-decoration: underline;
text-align: left;
padding-right: 10px;
padding-bottom: 5px;
}
td {
padding-right: 10px;
padding-bottom: 0px;
}
</style>
<p class="text">
Dear <xsl:value-of select="//users/record/user_name"/>,
</p>
<p class="text">Your password has been reset. Below are your account credentials.</p>
<p class="text">Password: <xsl:value-of select="$USER-TEMP-PASSWORD"/></p>
<p class="text">Click <a href="https://dev.onesourceits.com/decapps/atlhousingreport/main.php" target="_blank">here</a> to Login.</p>
<p class="text">Thank you,</p>
<p class="text">DEC-International Support</p>
<br/>
<br/>
<br/> <!-- Line Breaks before email Disclaimer -->
</xsl:template>
</xsl:stylesheet>
+94
View File
@@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<xsl:template match="/">
<style type="text/css">
.text {
font-family: Calibri, Arial, Helvetica, sans-serif;
font-size: 14px;
color: #212529;
}
.label {
font-weight: bold;
padding-right: 10px;
white-space: nowrap;
}
.table {
border-collapse: collapse;
margin-top: 10px;
}
.table td {
padding: 6px 4px;
vertical-align: top;
}
</style>
<p class="text">Support Team,</p>
<p class="text">
A new support ticket has been submitted. The details are outlined below:
</p>
<table class="table text">
<tr>
<td class="label">Ticket Creator:</td>
<td>
<xsl:value-of select="//supporttickets/record/supportticket_creator"/>
</td>
</tr>
<tr>
<td class="label">Date Submitted:</td>
<td>
<xsl:value-of select="//supporttickets/record/supportticket_created_verbose"/>
</td>
</tr>
<tr>
<td class="label">Category:</td>
<td>
<xsl:value-of select="//supporttickets/record/supportticket_category_verbose"/>
<xsl:if test="normalize-space(//supporttickets/record/supportticket_category_other)">
<xsl:text> - </xsl:text>
<xsl:value-of select="//supporttickets/record/supportticket_category_other"/>
</xsl:if>
</td>
</tr>
<tr>
<td class="label">Subject:</td>
<td>
<xsl:value-of select="//supporttickets/record/supportticket_subject"/>
</td>
</tr>
<tr>
<td class="label">Message:</td>
<td>
<xsl:value-of select="//supporttickets/record/supportticket_message" disable-output-escaping="yes"/>/>
</td>
</tr>
</table>
<p class="text" style="margin-top: 15px;">
You can log in to the Support Center at the following address to view and respond to this ticket:
<br/>
<a href="https://ahr.realestatedatainc.com" target="_blank">
https://ahr.realestatedatainc.com
</a>
</p>
<p class="text">
Thank you,<br/>
<strong>DEC-International Support</strong>
</p>
<br/><br/><br/>
</xsl:template>
</xsl:stylesheet>
+71
View File
@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="APPLICATION_NAME"></xsl:param>
<xsl:param name="FILE_NAME"></xsl:param>
<xsl:param name="LINE_NUMBER"></xsl:param>
<xsl:param name="ERROR_MESSAGE"></xsl:param>
<xsl:param name="ERROR_NUMBER"></xsl:param>
<xsl:template match="/">
<div class="error" id="error_page">
<div class="card">
<div class="card-header bg-danger text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-exclamation-triangle me-2" aria-hidden="true"/>
Issue
</div>
<div class="card-body text-left">
<p>
Oops...
</p>
<p>
An unexpected issue has occurred and our
<b>Support Team</b> has been automatically notified.
</p>
<p>
We are sorry for any inconvenience and appreciate your
patience while we correct the problem.
</p>
<xsl:if test="$ENVIRONMENT = 'Development'">
<div class="alert alert-danger">
<b>Application: </b>
<xsl:copy-of select="$APPLICATION_NAME"/>
<br/>
<b>File: </b>
<xsl:copy-of select="$FILE_NAME"/>
<br/>
<b>Line: </b>
<xsl:copy-of select="$LINE_NUMBER"/>
<br/>
<b>Message: </b>
<xsl:value-of select="$ERROR_MESSAGE" disable-output-escaping="yes"/>
</div>
</xsl:if>
<div class="buttons mt-2 mb-2">
<a role="button" class="btn btn-sm btn-primary me-2 btnContinue" onclick="window.close();"><i class="bi bi-box-arrow-right me-2"/>Continue</a>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+21
View File
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<div class="home pt-5">
<div class="col text-center">
<i class="bi bi-house-fill text-primary me-2 fa-2x"/>
<span class="text-primary fw-bold" style="font-size: 2rem;">
Atlanta Housing Report
</span>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+218
View File
@@ -0,0 +1,218 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">RDI Records</xsl:param>
<xsl:param name="PAGE-NAME">manageRDI</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//rdis/@count"/>
<xsl:variable name="PAGINATION_START" select="//rdis/@start"/>
<xsl:variable name="PAGINATION_END" select="//rdis/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//rdis/@page"/>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-tools me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
<xsl:if test="$PAGINATION_COUNT > 0">
<xsl:text> | Showing </xsl:text>
<xsl:value-of select="format-number($PAGINATION_START, '###,##0')"/>
<xsl:text> to </xsl:text>
<xsl:value-of select="format-number($PAGINATION_END, '###,##0')"/>
<xsl:text> of </xsl:text>
<xsl:value-of select="format-number($PAGINATION_COUNT, '###,##0')"/>
</xsl:if>
</div>
<div class="card-body">
<div class="row align-items-center mt-2 mb-2">
<div class="col-lg-4 mb-2">
<div class="input-group input-group-sm">
<input type="text" class="form-control autosave" name="find_rdi" id="find_rdi" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_rdi']/popover_placeholder}" autofocus="autofocus"/>
<button type="button" class="btn btn-primary fw-bold btnFind" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'find_rdi']/popover_text}" data-bs-html="true" data-bs-custom-class="custom-tooltip">
<i class="bi bi-search"/>
</button>
<button type="button" class="btn btn-primary fw-bold btnClearFind" data-bs-toggle="tooltip" data-bs-title="Clear Find" data-bs-custom-class="custom-tooltip">
<i class="bi bi-arrow-clockwise"/>
</button>
</div>
</div>
<div class="col-auto mb-2">
<div class="input-group input-group-sm" data-bs-toggle="tooltip" data-bs-title="Show Per Page" data-bs-custom-class="custom-tooltip">
<div class="input-group-text">
<i class="bi bi-list-ol"/>
</div>
<select class="form-select" name="rdis_per_page" id="rdis_per_page">
<option value="20">20</option>
<option value="40">40</option>
<option value="60">60</option>
<option value="80">80</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<!-- Action Buttons -->
<div class="buttons mt-1 mb-1">
<xsl:if test="not($USER_ROLE = 'Guest')">
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 btnAdd">
<i class="bi bi-plus-lg me-2"/>Add</button>
</xsl:if>
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 btnDone">
<i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 btnRefresh">
<i class="bi bi-arrow-clockwise me-2"/>Refresh</button>
<xsl:if test="count(//rdis/record) > 0">
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 btnSelectAll" >
<i class="bi bi-check2-square me-2"/>Select All</button>
</xsl:if>
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 btnDeselectAll d-none">
<i class="bi bi-square me-2"/>Deselect All</button>
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 btnPrintSelected d-none">
<i class="bi bi-printer me-2"/>Print Selected</button>
<div class="btn-group ms-2 mb-2" role="group">
<xsl:if test="$PAGINATION_PAGE > 1">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="first" data-bs-toggle="tooltip" data-bs-title="First Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-bar-left me-1"/>First</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="previous" data-bs-toggle="tooltip" data-bs-title="Previous Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-left me-1"/>Previous</button>
</xsl:if>
<xsl:if test="$PAGINATION_COUNT > $PAGINATION_END">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="next" data-bs-toggle="tooltip" data-bs-title="Next Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-right me-1"/>Next</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="last" data-bs-toggle="tooltip" data-bs-title="Last Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-bar-right me-1"/>Last</button>
</xsl:if>
</div>
</div>
<hr class="mt-2 mb-2"/>
<xsl:choose>
<xsl:when test="count(//rdis/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 mb-1">
<xsl:text>There are no RDI Records to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-responsive">
<table class="table table-sm table-striped table-hover base-table" id="rdis-table">
<thead class="sticky-header" data-theme="{$THEME}">
<th class="text-center">Select</th>
<th class="sortable text-nowrap" data-order-by="rdi_permit_number">Permit Number</th>
<th class="sortable text-nowrap" data-order-by="rdi_project_addr">Project Address</th>
<th class="sortable text-nowrap" data-order-by="rdi_sub_div_name">Subdivision Name</th>
<th class="sortable text-nowrap" data-order-by="rdi_project_type">Project Type</th>
<th class="sortable text-nowrap" data-order-by="rdi_company">Company</th>
<th class="sortable text-nowrap" data-order-by="rdi_permit_date">Permit Date</th>
<th class="sortable text-nowrap" data-order-by="rdi_entry_date">Entry Date</th>
</thead>
<tbody>
<xsl:apply-templates select="//rdis"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
<!-- Form to Print Selected RDI -->
<form style="display:inline;" id="PrintRDIForm" method="post" action="" target="PrintTab">
<input type="hidden" name="action" value="print"/>
<input type="hidden" name="report" value="Print_Selected_RDIs"/>
<input type="hidden" name="selected_rdis" value=""/>
</form>
</xsl:template>
<!-- Template for RDI tows -->
<xsl:template match="rdis/record">
<tr class="hoverable rdi-row text-nowrap" data-rdi-serial="{rdi_serial}">
<td class="checkbox text-center selection-checkboxes selection-area">
<input type="checkbox" class="selection-checkbox selection-area" name="selected[]" value="{rdi_serial}">
</input>
<span class="selection-area user-select-none">&#160;</span>
</td>
<td class="rdi_permit_number">
<xsl:value-of select="rdi_permit_number"/>
</td>
<td class="rdi_project_addr text-nowrap">
<xsl:value-of select="rdi_project_addr"/>
</td>
<td class="rdi_sub_div_name text-nowrap">
<xsl:value-of select="rdi_sub_div_name"/>
</td>
<td class="rdi_project_type text-nowrap">
<xsl:value-of select="rdi_project_type"/>
</td>
<td class="rdi_company">
<xsl:value-of select="rdi_company"/>
</td>
<td class="rdi_permit_date">
<xsl:value-of select="rdi_permit_date_verbose"/>
</td>
<td class="rdi_entry_date">
<xsl:value-of select="rdi_entry_date_verbose"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+46
View File
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">2.0</xsl:param>
<xsl:param name="MESSAGE"></xsl:param>
<xsl:param name="PAGE-NAME">notice</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="notice" id="notice_page">
<div class="card">
<div class="card-header bg-warning text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-info-circle me-2" aria-hidden="true"/>
System Message
</div>
<div class="card-body text-left">
<div class="alert alert-warning">
<b>Message: </b>
<xsl:value-of select="$MESSAGE" disable-output-escaping="yes"/>
</div>
<div class="buttons mt-2 mb-2">
<a role="button" class="btn btn-sm btn-primary me-2 btnContinue">
<i class="bi bi-box-arrow-right me-2"/>Continue</a>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+113
View File
@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<xsl:template match="/">
<!-- Permit Record Modal Dialog (Bootstrap 5) -->
<div class="modal fade" id="permit-details-dialog" tabindex="-1" aria-labelledby="permit-details-title" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-scrollable">
<div class="modal-content">
<div class="modal-header bg-primary">
<h5 class="modal-title text-white" id="permit-details-title">
<xsl:value-of select="//permit/record/rdi_sub_div_name"/>
<xsl:text> - </xsl:text>
<xsl:value-of select="concat(//permit/record/rdi_project_addr, ' ', //permit/record/rdi_project_city, ' ', //permit/record/rdi_project_state)"/>
</h5>
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="row g-3">
<div class="col-md-4">
<label class="form-label">Permit Number</label>
<p class="mb-0">
<xsl:value-of select="//permit/record/rdi_permit_number"/>
</p>
</div>
<div class="col-md-4">
<label class="form-label">Permit Date</label>
<p class="mb-0">
<xsl:value-of select="//permit/record/rdi_permit_date_verbose"/>
</p>
</div>
<div class="col-md-4">
<label class="form-label">Entry Date</label>
<p class="mb-0">
<xsl:value-of select="//permit/record/rdi_entry_date_verbose"/>
</p>
</div>
</div>
<hr class="my-3"/>
<div class="row g-3">
<div class="col-md-6">
<label class="form-label">Project Address</label>
<p class="mb-0">
<xsl:value-of select="concat(//permit/record/rdi_project_addr, ' ', //permit/record/rdi_project_city, ', ', //permit/record/rdi_project_state, ' ', //permit/record/rdi_zip)"/>
</p>
</div>
<div class="col-md-6">
<label class="form-label">Owner Address</label>
<p class="mb-0">
<xsl:value-of select="concat(//permit/record/rdi_owner_address, ' ', //permit/record/rdi_owner_city, ', ', //permit/record/rdi_owner_state, ' ', //permit/record/rdi_owner_zip)"/>
</p>
</div>
</div>
<hr class="my-3"/>
<div class="row g-3">
<div class="col-md-6">
<label class="form-label">Company</label>
<p class="mb-0">
<xsl:value-of select="//permit/record/rdi_company"/>
</p>
</div>
<div class="col-md-6">
<label class="form-label">Project Name</label>
<p class="mb-0">
<xsl:value-of select="//permit/record/rdi_sub_div_name"/>
</p>
</div>
</div>
<hr class="my-3"/>
<div class="row g-3">
<div class="col-md-6">
<label class="form-label">County</label>
<p class="mb-0">
<xsl:value-of select="//permit/record/rdi_county"/>
</p>
</div>
<div class="col-md-6">
<label class="form-label">Owner Name</label>
<p class="mb-0">
<xsl:value-of select="//permit/record/rdi_owner_name"/>
</p>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-sm btn-primary me-auto" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+412
View File
@@ -0,0 +1,412 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Search </xsl:param>
<xsl:param name="PAGE-NAME">searchPermitsByBuilder</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//rdis/@count"/>
<xsl:variable name="PAGINATION_START" select="//rdis/@start"/>
<xsl:variable name="PAGINATION_END" select="//rdis/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//rdis/@page"/>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-search me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
<xsl:value-of select="//subscriptions/record/subscription_title"/>
|
<xsl:value-of select="//subscriptions/record/subscription_description"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="PermitsByBuilder.searchPermits"/>
<input type="hidden" name="subscription_serial" value="{//subscriptions/record/subscription_serial}"/>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="rdi_company">Builder/Company</label>
<input type="text" class="form-control form-control-sm" name="rdi_company" id="rdi_company" maxlength="120" autocomplete="off" autofocus="autofocus"/>
</div>
<div class="col-lg-1 mb-3">
<label class="form-label" for="rdi_and_or">And/Or</label>
<select class="form-select form-select-sm" name="rdi_and_or" id="rdi_and_or" size="1">
<option value="and">And</option>
<option value="or">Or</option>
</select>
</div>
</div>
<div class="row">
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_entry_start_date">Entry Start Date</label>
<div class="input-group input-group-sm rdi_entry_start_date">
<input type="text" class="form-control form-control-sm date-mask" name="rdi_entry_start_date" id="rdi_entry_start_date" autocomplete="off" value=""/>
<button class="btn btn-sm btn-outline-primary btnEntryStartDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
<i class="bi bi-calendar3"/>
</button>
</div>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_entry_end_date">Entry End Date</label>
<div class="input-group input-group-sm rdi_entry_end_date">
<input type="text" class="form-control form-control-sm date-mask" name="rdi_entry_end_date" id="rdi_entry_end_date" autocomplete="off" value=""/>
<button class="btn btn-sm btn-outline-primary btnEntryEndDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
<i class="bi bi-calendar3"/>
</button>
</div>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_permit_start_date">Permit Start Date</label>
<div class="input-group input-group-sm rdi_permit_start_date">
<input type="text" class="form-control form-control-sm date-mask" name="rdi_permit_start_date" id="rdi_permit_start_date" autocomplete="off" value=""/>
<button class="btn btn-sm btn-outline-primary btnPermitStartDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
<i class="bi bi-calendar3"/>
</button>
</div>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_permit_end_date">Permit End Date</label>
<div class="input-group input-group-sm rdi_permit_end_date">
<input type="text" class="form-control form-control-sm date-mask" name="rdi_permit_end_date" id="rdi_permit_end_date" autocomplete="off"/>
<button class="btn btn-sm btn-outline-primary btnPermitEndDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
<i class="bi bi-calendar3"/>
</button>
</div>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSearch">
<i class="bi bi-search me-2"/>Search</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnReset">
<i class="bi bi-arrow-repeat me-2"/>Reset Search</button>
<div id="search-form-error" class="search-form-error fs-5 text-danger fw-bold fst-italic mt-3 mb-1 d-none">
</div>
</div>
</div>
</div>
<xsl:choose>
<xsl:when test="count(//rdis/record) > 0">
<div class="card mt-3">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-tools me-2"/>
Results
<xsl:if test="$PAGINATION_COUNT > 0">
<xsl:text> | Showing </xsl:text>
<xsl:value-of select="format-number($PAGINATION_START, '###,##0')"/>
<xsl:text> to </xsl:text>
<xsl:value-of select="format-number($PAGINATION_END, '###,##0')"/>
<xsl:text> of </xsl:text>
<xsl:value-of select="format-number($PAGINATION_COUNT, '###,##0')"/>
</xsl:if>
</div>
<div class="card-body">
<div class="row align-items-center mt-2 mb-2">
<div class="col-lg-4 mb-2">
<div class="input-group input-group-sm">
<input type="text" class="form-control autosave" name="filter" id="filter" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'filter_permits']/popover_placeholder}"/>
<button type="button" class="btn btn-primary fw-bold btnClearFilter" data-bs-toggle="tooltip" data-bs-title="Clear Filter" data-bs-custom-class="custom-tooltip">
<i class="bi bi-arrow-clockwise"/>
</button>
</div>
</div>
<div class="col-auto mb-2">
<div class="input-group input-group-sm" data-bs-toggle="tooltip" data-bs-title="Show Per Page" data-bs-custom-class="custom-tooltip">
<div class="input-group-text">
<i class="bi bi-list-ol"/>
</div>
<select class="form-select" name="rdis_per_page" id="rdis_per_page">
<option value="20">20</option>
<option value="40">40</option>
<option value="60">60</option>
<option value="80">80</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<!-- Action Buttons -->
<div class="buttons mt-1 mb-1">
<xsl:if test="count(//rdis/record) > 0">
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 btnSelectAll">
<i class="bi bi-check2-square me-2"/>Select All</button>
</xsl:if>
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 btnDeselectAll d-none">
<i class="bi bi-square me-2"/>Deselect All</button>
<div class="btn-group">
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 dropdown-toggle btnExportSelected d-none" data-bs-toggle="dropdown" aria-expanded="false">
<i class="bi bi-download me-2"/>Export Selected
</button>
<ul class="dropdown-menu">
<li>
<button class="dropdown-item btnExportCSV">
<i class="bi bi-filetype-csv me-2"/>CSV File</button>
</li>
<li>
<button class="dropdown-item btnExportExcel">
<i class="bi bi-filetype-xlsx me-2"/>Excel Spreadsheet</button>
</li>
<li>
<button class="dropdown-item btnPrintSelected">
<i class="bi bi-printer me-2"/>PDF</button>
</li>
</ul>
</div>
<div class="btn-group">
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 dropdown-toggle btnExportAll" data-bs-toggle="dropdown" aria-expanded="false">
<i class="bi bi-download me-2"/>Export All
</button>
<ul class="dropdown-menu">
<li>
<button class="dropdown-item btnExportAllCSV">
<i class="bi bi-filetype-csv me-2"/>CSV</button>
</li>
<li>
<button class="dropdown-item btnExportAllExcel">
<i class="bi bi-filetype-xlsx me-2"/>Excel Spreadsheet</button>
</li>
<li>
<button class="dropdown-item btnExportAllPDF">
<i class="bi bi-filetype-pdf me-1"></i>PDF</button>
</li>
</ul>
</div>
<div class="btn-group ms-2 mb-2" role="group">
<xsl:if test="$PAGINATION_PAGE > 1">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="first" data-bs-toggle="tooltip" data-bs-title="First Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-bar-left me-1"/>First</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="previous" data-bs-toggle="tooltip" data-bs-title="Previous Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-left me-1"/>Previous</button>
</xsl:if>
<xsl:if test="$PAGINATION_COUNT > $PAGINATION_END">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="next" data-bs-toggle="tooltip" data-bs-title="Next Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-right me-1"/>Next</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="last" data-bs-toggle="tooltip" data-bs-title="Last Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-bar-right me-1"/>Last</button>
</xsl:if>
</div>
</div>
<hr class="mt-2 mb-2"/>
<xsl:choose>
<xsl:when test="count(//rdis/record) = 0">
<div class="filter-error fs-5 text-danger fw-bold fst-italic mt-3 mb-1">
<xsl:text>There are no Permits to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="filter-error fs-5 text-danger fw-bold fst-italic mt-3 mb-1 d-none">
<xsl:text>There are no Permits to view...</xsl:text>
</div>
<div class="table-responsive scrollable">
<table class="table table-sm table-striped table-hover base-table" id="rdis-table">
<thead class="sticky-header" data-theme="{$THEME}">
<th class="text-center" >Select</th>
<th class="sortable text-nowrap" data-order-by="rdi_company" >Company</th>
<th class="sortable text-nowrap" data-order-by="rdi_permit_count">Permits</th>
<th class="sortable text-nowrap" data-order-by="rdi_value" >Value</th>
<th class="sortable text-nowrap text-center" data-order-by="rdi_project_type">Current <br />Year YTD</th>
<th class="sortable text-nowrap text-center" data-order-by="rdi_company" >Current<br /> YTD Value</th>
<th class="text-nowrap text-center" >Last <br /> 12 Months</th>
<th class="sortable text-nowrap" data-order-by="rdi_address" >Address</th>
<th class="text-nowrap" >Phone</th>
</thead>
<tbody>
<xsl:apply-templates select="//rdis"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</xsl:when>
<xsl:otherwise>
<div class="card mt-3">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-tools me-2"/>
Results
</div>
<div class="card-body">
<div class="fs-5 text-danger fw-bold fst-italic mb-1">
<xsl:text>There are no Permits to view...</xsl:text>
</div>
</div>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
<!-- Permit Information Modal Dialog -->
<div class="modal" id="permit-info-dialog" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header bg-primary p-1 ps-3">
<h6 class="modal-title text-white"/>
</div>
<div class="modal-body mt-2"/>
<div class="buttons m-3 mt-2">
<button type="button" class="btn btn-sm btn-primary me-1 btnClose" data-bs-dismiss="modal">
<i class="bi bi-box-arrow-left me-2"/>Close</button>
</div>
</div>
</div>
</div>
<!-- Form to Print All RDI -->
<form style="display:inline;" id="PrintAllPermitsByBuilderPDFForm" method="post" action="" target="PrintTab">
<input type="hidden" name="action" value="print"/>
<input type="hidden" name="report" value="Print_All_PermitsByBuilder"/>
<input type="hidden" name="subscription_serial" value="{{//subscriptions/record/subscription_serial}}"/>
</form>
<!-- Form to Print Selected Permits -->
<form style="display:inline;" id="PrintSelectedPermitsByBuilderForm" method="post" action="" target="PrintTab">
<input type="hidden" name="action" value="print"/>
<input type="hidden" name="report" value="Print_Selected_PermitsByBuilder"/>
<input type="hidden" name="selected_permits" value=""/>
<input type="hidden" name="subscription_serial" value="{{//subscriptions/record/subscription_serial}}"/>
</form>
</xsl:template>
<!-- Template for RDI rows -->
<xsl:template match="rdis/record">
<tr class="hoverable rdi-row text-nowrap" data-rdi-serial="{rdi_serial}">
<td class="checkbox text-center selection-checkboxes selection-area">
<input type="checkbox" class="selection-checkbox selection-area" name="selected[]" value="{rdi_serial}">
</input>
<span class="selection-area user-select-none">&#160;</span>
</td>
<td class="rdi_company filterable">
<xsl:value-of select="rdi_company"/>
</td>
<td class="rdi_permit_count text-nowrap filterable">
<xsl:value-of select="rdi_permit_count"/>
</td>
<td class="rdi_value text-nowrap filterable">
<xsl:value-of select="concat('$', format-number(rdi_value_verbose, '###,###'))"/>
</td>
<td class="rdi_ytd_permits text-nowrap filterable text-center">
<xsl:value-of select="rdi_ytd_permits"/>
</td>
<td class="rdi_ytd_value filterable text-center">
<xsl:value-of select="concat('$', format-number(rdi_ytd_value, '###,###'))"/>
</td>
<td class="rdi_12mth_prev_permits filterable text-center">
<xsl:value-of select="rdi_12mth_prev_permits"/>
<xsl:choose>
<xsl:when test="permits_trend = 'up'">
<i class="bi bi-arrow-up text-success"></i>
</xsl:when>
<xsl:when test="permits_trend = 'down'">
<i class="bi bi-arrow-down text-danger"></i>
</xsl:when>
<xsl:otherwise>
<i class="text-warning me-2"> =</i>
</xsl:otherwise>
</xsl:choose>
</td>
<td class="rdi_entry_date filterable">
<xsl:value-of select="concat(rdi_address, ' ', rdi_city, ', ', rdi_state, ' ', rdi_zip)"/>
</td>
<td class="rdi_phone filterable">
<xsl:value-of select="rdi_phone_verbose"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+457
View File
@@ -0,0 +1,457 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Search </xsl:param>
<xsl:param name="PAGE-NAME">searchPermitsBySubdivision</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//rdis/@count"/>
<xsl:variable name="PAGINATION_START" select="//rdis/@start"/>
<xsl:variable name="PAGINATION_END" select="//rdis/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//rdis/@page"/>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<script src="js/bootstrap-autocomplete.min.js?version={$VERSION}"/>
<link href="css/{$PAGE-NAME}.css" rel="stylesheet" media="screen"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-search me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
<xsl:value-of select="//subscriptions/record/subscription_title"/>
|
<xsl:value-of select="//subscriptions/record/subscription_description"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="PermitsBySubdivision.searchPermits"/>
<input type="hidden" name="subscription_serial" value="{//subscriptions/record/subscription_serial}"/>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="rdi_county">County</label>
<select class="form-control form-control-sm multiple-dropdown" multiple="multiple" name="rdi_county" id="rdi_county" size="1">
<xsl:apply-templates select="//counties"/>
</select>
</div>
<div class="col-lg-1 mb-3">
<label class="form-label" for="rdi_and_or">And/Or</label>
<select class="form-select form-select-sm" name="rdi_and_or" id="rdi_and_or" size="1">
<option value="and">And</option>
<option value="or">Or</option>
</select>
</div>
</div>
<div class="row">
<div class="col-lg-3 mb-3">
<label class="form-label" for="rdi_company">Company/Builder</label>
<input type="text" class="form-control form-control-sm" name="rdi_company" id="rdi_company" maxlength="120" autocomplete="off" autofocus="autofocus"/>
</div>
<div class="col-lg-3 mb-3">
<label class="form-label" for="rdi_sub_div_name">Subdivision</label>
<input type="text" class="form-control form-control-sm subdivision-autocomplete" autocomplete="chrome-off" name="rdi_sub_div_name" id="rdi_sub_div_name" maxlength="100"/>
</div>
<div class="col-lg-3 mb-3">
<label class="form-label" for="rdi_project_city">City</label>
<input type="text" class="form-control form-control-sm city-autocomplete" autocomplete="chrome-off" name="rdi_project_city" id="rdi_project_city" maxlength="100"/>
</div>
<div class="col-lg-3 mb-3">
<label class="form-label" for="rdi_project_addr">Street Name</label>
<input type="text" class="form-control form-control-sm street-autocomplete" autocomplete="chrome-off" name="rdi_project_addr" id="rdi_project_addr" maxlength="100"/>
</div>
</div>
<div class="row">
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_entry_start_date">Entry Start Date</label>
<div class="input-group input-group-sm rdi_entry_start_date">
<input type="text" class="form-control form-control-sm date-mask" name="rdi_entry_start_date" id="rdi_entry_start_date" autocomplete="off" value=""/>
<button class="btn btn-sm btn-outline-primary btnEntryStartDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
<i class="bi bi-calendar3"/>
</button>
</div>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_entry_end_date">Entry End Date</label>
<div class="input-group input-group-sm rdi_entry_end_date">
<input type="text" class="form-control form-control-sm date-mask" name="rdi_entry_end_date" id="rdi_entry_end_date" autocomplete="off" value=""/>
<button class="btn btn-sm btn-outline-primary btnEntryEndDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
<i class="bi bi-calendar3"/>
</button>
</div>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_permit_start_date">Permit Start Date</label>
<div class="input-group input-group-sm rdi_permit_start_date">
<input type="text" class="form-control form-control-sm date-mask" name="rdi_permit_start_date" id="rdi_permit_start_date" autocomplete="off" value=""/>
<button class="btn btn-sm btn-outline-primary btnPermitStartDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
<i class="bi bi-calendar3"/>
</button>
</div>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="rdi_permit_end_date">Permit End Date</label>
<div class="input-group input-group-sm rdi_permit_end_date">
<input type="text" class="form-control form-control-sm date-mask" name="rdi_permit_end_date" id="rdi_permit_end_date" autocomplete="off"/>
<button class="btn btn-sm btn-outline-primary btnPermitEndDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
<i class="bi bi-calendar3"/>
</button>
</div>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSearch">
<i class="bi bi-search me-2"/>Search</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnReset">
<i class="bi bi-arrow-repeat me-2"/>Reset</button>
<div id="search-form-error" class="search-form-error fs-5 text-danger fw-bold fst-italic mt-3 mb-1 d-none">
</div>
</div>
</div>
</div>
<xsl:choose>
<xsl:when test="count(//rdis/record) > 0">
<div class="card mt-3">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-tools me-2"/>
Results
<xsl:if test="$PAGINATION_COUNT > 0">
<xsl:text> | Showing </xsl:text>
<xsl:value-of select="format-number($PAGINATION_START, '###,##0')"/>
<xsl:text> to </xsl:text>
<xsl:value-of select="format-number($PAGINATION_END, '###,##0')"/>
<xsl:text> of </xsl:text>
<xsl:value-of select="format-number($PAGINATION_COUNT, '###,##0')"/>
</xsl:if>
</div>
<div class="card-body">
<div class="row align-items-center mt-2 mb-2">
<div class="col-lg-4 mb-2">
<div class="input-group input-group-sm">
<input type="text" class="form-control autosave" name="filter" id="filter" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'filter_permits']/popover_placeholder}"/>
<button type="button" class="btn btn-primary fw-bold btnClearFilter" data-bs-toggle="tooltip" data-bs-title="Clear Filter" data-bs-custom-class="custom-tooltip">
<i class="bi bi-arrow-clockwise"/>
</button>
</div>
</div>
<div class="col-auto mb-2">
<div class="input-group input-group-sm" data-bs-toggle="tooltip" data-bs-title="Show Per Page" data-bs-custom-class="custom-tooltip">
<div class="input-group-text">
<i class="bi bi-list-ol"/>
</div>
<select class="form-select" name="rdis_per_page" id="rdis_per_page">
<option value="20">20</option>
<option value="40">40</option>
<option value="60">60</option>
<option value="80">80</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<!-- Action Buttons -->
<div class="buttons mt-1 mb-1">
<xsl:if test="count(//rdis/record) > 0">
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 btnSelectAll">
<i class="bi bi-check2-square me-2"/>Select All</button>
</xsl:if>
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 btnDeselectAll d-none">
<i class="bi bi-square me-2"/>Deselect All</button>
<div class="btn-group">
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 dropdown-toggle btnExportSelected d-none" data-bs-toggle="dropdown" aria-expanded="false">
<i class="bi bi-download me-2"/>Export Selected
</button>
<ul class="dropdown-menu">
<li>
<button class="dropdown-item btnExportCSV">
<i class="bi bi-filetype-csv me-2"/>CSV File</button>
</li>
<li>
<button class="dropdown-item btnExportSelectedExcel">
<i class="bi bi-filetype-xlsx me-2"/>Excel Spreadsheet</button>
</li>
<li>
<button class="dropdown-item btnPrintSelected">
<i class="bi bi-printer me-2"/>PDF</button>
</li>
</ul>
</div>
<div class="btn-group">
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 dropdown-toggle btnExportAll" data-bs-toggle="dropdown" aria-expanded="false">
<i class="bi bi-download me-2"/>Export All
</button>
<ul class="dropdown-menu">
<li>
<button class="dropdown-item btnExportAllCSV">
<i class="bi bi-filetype-csv me-2"/>CSV</button>
</li>
<li>
<button class="dropdown-item btnExportAllExcel">
<i class="bi bi-filetype-xlsx me-2"/>Excel Spreadsheet</button>
</li>
<li>
<button class="dropdown-item btnExportAllPDF">
<i class="bi bi-filetype-pdf me-1"></i>PDF</button>
</li>
</ul>
</div>
<div class="btn-group ms-2 mb-2" role="group">
<xsl:if test="$PAGINATION_PAGE > 1">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="first" data-bs-toggle="tooltip" data-bs-title="First Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-bar-left me-1"/>First</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="previous" data-bs-toggle="tooltip" data-bs-title="Previous Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-left me-1"/>Previous</button>
</xsl:if>
<xsl:if test="$PAGINATION_COUNT > $PAGINATION_END">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="next" data-bs-toggle="tooltip" data-bs-title="Next Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-right me-1"/>Next</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="last" data-bs-toggle="tooltip" data-bs-title="Last Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-bar-right me-1"/>Last</button>
</xsl:if>
</div>
</div>
<hr class="mt-2 mb-2"/>
<xsl:choose>
<xsl:when test="count(//rdis/record) = 0">
</xsl:when>
<xsl:otherwise>
<div class="filter-error fs-5 text-danger fw-bold fst-italic mt-3 mb-1 d-none">
<xsl:text>There are no Permits to view...</xsl:text>
</div>
<div class="table-responsive scrollable">
<table class="table table-sm table-striped table-hover base-table" id="rdis-table">
<thead class="sticky-header" data-theme="{$THEME}">
<th class="text-center">Select</th>
<th class="sortable text-nowrap" data-order-by="rdi_county" >County</th>
<th class="sortable text-nowrap" data-order-by="rdi_sub_div_name">Subdivison/Project Name</th>
<th class="sortable text-nowrap" data-order-by="rdi_project_addr">Address</th>
<th class="text-nowrap" data-order-by="rdi_project_city">City</th>
<th class="text-nowrap" data-order-by="rdi_state" >State</th>
<th class="text-nowrap" data-order-by="rdi_zip" >Zip</th>
<th class="text-nowrap" >Builder</th>
<th class="sortable text-nowrap" data-order-by="rdi_permit_date" >Permit Date</th>
<th class="text-nowrap" >Sq. Ft. </th>
<th class="text-nowrap" >Value</th>
</thead>
<tbody>
<xsl:apply-templates select="//rdis"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</xsl:when>
<xsl:otherwise>
<div class="card mt-3">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-tools me-2"/>
Results
</div>
<div class="card-body">
<div class="fs-5 text-danger fw-bold fst-italic mb-1">
<xsl:text>There are no Permits to view...</xsl:text>
</div>
</div>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
<!-- Permit Information Modal Dialog -->
<div class="modal" id="permit-info-dialog" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header bg-primary p-1 ps-3">
<h6 class="modal-title text-white"/>
</div>
<div class="modal-body mt-2"/>
<div class="buttons m-3 mt-2">
<button type="button" class="btn btn-sm btn-primary me-1 btnClose" data-bs-dismiss="modal">
<i class="bi bi-box-arrow-left me-2"/>Close</button>
</div>
</div>
</div>
</div>
<!-- Form to Print All Permits -->
<form style="display:inline;" id="PrintAllPermitsBySubdivisionPDFForm" method="post" action="" target="PrintTab">
<input type="hidden" name="action" value="print"/>
<input type="hidden" name="report" value="Print_All_PermitsBySubdivision"/>
<input type="hidden" name="subscription_serial" value="{{//subscriptions/record/subscription_serial}}"/>
</form>
<!-- Form to Print Selected Permits -->
<form style="display:inline;" id="PrintSelectedPermitsBySubdivisionForm" method="post" action="" target="PrintTab">
<input type="hidden" name="action" value="print"/>
<input type="hidden" name="report" value="Print_Selected_PermitsBySubdivision"/>
<input type="hidden" name="selected_permits" value=""/>
<input type="hidden" name="subscription_serial" value="{{//subscriptions/record/subscription_serial}}"/>
</form>
</xsl:template>
<!-- Template for RDI rows -->
<xsl:template match="rdis/record">
<tr class="hoverable rdi-row text-nowrap" data-rdi-serial="{rdi_serial}">
<td class="checkbox text-center selection-checkboxes selection-area">
<input type="checkbox" class="selection-checkbox selection-area" name="selected[]" value="{rdi_serial}">
</input>
<span class="selection-area user-select-none">&#160;</span>
</td>
<td class="rdi_county filterable">
<xsl:value-of select="rdi_county_name_verbose"/>
</td>
<td class="rdi_sub_div_name text-nowrap filterable">
<xsl:value-of select="rdi_sub_div_name"/>
</td>
<td class="rdi_address text-nowrap filterable">
<xsl:value-of select="rdi_project_addr"/>
</td>
<td class="rdi_address text-nowrap">
<xsl:value-of select="rdi_project_city"/>
</td>
<td class="rdi_address text-nowrap">
<xsl:value-of select="rdi_state"/>
</td>
<td class="rdi_address text-nowrap">
<xsl:value-of select="rdi_zip"/>
</td>
<td class="rdi_company filterable">
<xsl:value-of select="rdi_company"/>
</td>
<td class="rdi_permit_date filterable">
<xsl:value-of select="rdi_permit_date_verbose"/>
</td>
<td class="rdi_value filterable">
<xsl:value-of select="rdi_size_verbose"/>
</td>
<td class="rdi_value filterable">
<xsl:value-of select="rdi_value_verbose"/>
</td>
</tr>
</xsl:template>
<!-- Template for Counties dropdown -->
<xsl:template match="counties">
<xsl:for-each select="record">
<option value="{county_serial}" data-tokens="{county_serial}">
<!-- <xsl:if test="//searchhistory/record/searchhistory_parameters/permitfact_county/id = subscriptioncounty_county">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>-->
<xsl:value-of select="county_name"/>
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+172
View File
@@ -0,0 +1,172 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Reports</xsl:param>
<xsl:param name="PAGE-NAME">selectReport</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//reports/@count"/>
<xsl:variable name="PAGINATION_START" select="//reports/@start"/>
<xsl:variable name="PAGINATION_END" select="//reports/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//reports/@page"/>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-printer me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
<xsl:if test="$PAGINATION_COUNT > 0">
<xsl:text> | Showing </xsl:text>
<xsl:value-of select="format-number($PAGINATION_START, '###,##0')"/>
<xsl:text> to </xsl:text>
<xsl:value-of select="format-number($PAGINATION_END, '###,##0')"/>
<xsl:text> of </xsl:text>
<xsl:value-of select="format-number($PAGINATION_COUNT, '###,##0')"/>
</xsl:if>
</div>
<div class="card-body">
<div class="row align-items-center mt-2 mb-3">
<div class="col-sm-4">
<div class="input-group input-group-sm">
<input type="text" class="form-control autosave" name="select_report" id="select_report" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'select_report']/popover_placeholder}" autofocus="autofocus"/>
<button type="button" class="btn btn-primary fw-bold btnFind" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'select_report']/popover_text}" data-bs-html="true" data-bs-custom-class="custom-tooltip"><i class="bi bi-search"/></button>
<button type="button" class="btn btn-primary fw-bold btnClearFind" data-bs-toggle="tooltip" data-bs-title="Clear Find" data-bs-custom-class="custom-tooltip"><i class="bi bi-arrow-clockwise"/></button>
</div>
</div>
<div class="col-auto">
<div class="input-group input-group-sm" data-bs-toggle="tooltip" data-bs-title="Show Per Page" data-bs-custom-class="custom-tooltip">
<div class="input-group-text"><i class="bi bi-list-ol"/></div>
<select class="form-select autosave" name="reports_per_page" id="reports_per_page">
<option value="20">20</option>
<option value="40">40</option>
<option value="60">60</option>
<option value="80">80</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<div class="buttons mt-3 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnDone"><i class="bi bi-box-arrow-left me-2"/>Done</button>
<div class="btn-group ms-2" role="group">
<xsl:if test="$PAGINATION_PAGE > 1">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="first" data-bs-toggle="tooltip" data-bs-title="First Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-bar-left me-1"/>First</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="previous" data-bs-toggle="tooltip" data-bs-title="Previous Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-left me-1"/>Previous</button>
</xsl:if>
<xsl:if test="$PAGINATION_COUNT > $PAGINATION_END">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="next" data-bs-toggle="tooltip" data-bs-title="Next Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-right me-1"/>Next</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="last" data-bs-toggle="tooltip" data-bs-title="Last Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-bar-right me-1"/>Last</button>
</xsl:if>
</div>
</div>
<hr class="mt-3 mb-2"/>
<xsl:choose>
<xsl:when test="count(//reports/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 mb-1">
<xsl:text>There are no Reports to select...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive">
<table class="table table-sm table-striped table-hover base-table table-auto" id="reports-table">
<thead class="sticky-header" data-theme="{$THEME}">
<th>Type</th>
<th>Name</th>
<th>Description</th>
</thead>
<tbody>
<xsl:apply-templates select="//reports"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
<!-- Form to Print a Report -->
<form style="display:inline;" id="PrintForm" method="post" action="" target="PrintTab">
<input type="hidden" name="action" value="print"/>
<input type="hidden" name="report" value=""/>
</form>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="reports/record">
<tr class="text-nowrap hoverable report-row" data-report-serial="{report_serial}" data-report-class="{report_class}" data-report-type="{report_type}" data-report-target="{report_target}">
<td class="report_type text-center fs-100" style="width: 10%;">
<xsl:choose>
<xsl:when test="report_type = 'Download'">
<i class="bi bi-cloud-download" data-bs-toggle="tooltip" data-bs-title="Download" data-bs-placement="right" data-bs-custom-class="custom-tooltip"/>
</xsl:when>
<xsl:when test="report_type = 'Email'">
<i class="bi bi-send" data-bs-toggle="tooltip" data-bs-title="Email" data-bs-placement="right" data-bs-custom-class="custom-tooltip"/>
</xsl:when>
<xsl:when test="report_type = 'Graph'">
<i class="bi bi-bar-chard" data-bs-toggle="tooltip" data-bs-title="Graph" data-bs-placement="right" data-bs-custom-class="custom-tooltip"/>
</xsl:when>
<xsl:when test="report_type = 'Report'">
<i class="bi bi-printer" data-bs-toggle="tooltip" data-bs-title="Report" data-bs-placement="right" data-bs-custom-class="custom-tooltip"/>
</xsl:when>
<xsl:when test="report_type = 'Upload'">
<i class="bi bi-cloud-upload" data-bs-toggle="tooltip" data-bs-title="Upload" data-bs-placement="right" data-bs-custom-class="custom-tooltip"/>
</xsl:when>
</xsl:choose>
</td>
<td class="report_name"><xsl:value-of select="report_name"/></td>
<td class="report_description"><xsl:value-of select="report_description"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
+154
View File
@@ -0,0 +1,154 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Counties</xsl:param>
<xsl:param name="PAGE-NAME">setupCounties</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//counties/@count"/>
<xsl:variable name="PAGINATION_START" select="//counties/@start"/>
<xsl:variable name="PAGINATION_END" select="//counties/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//counties/@page"/>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-building me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
<xsl:if test="$PAGINATION_COUNT > 0">
<xsl:text> | </xsl:text>
<xsl:value-of select="format-number($PAGINATION_START, '###,##0')"/>
<xsl:text> to </xsl:text>
<xsl:value-of select="format-number($PAGINATION_END, '###,##0')"/>
<xsl:text> of </xsl:text>
<xsl:value-of select="format-number($PAGINATION_COUNT, '###,##0')"/>
</xsl:if>
</div>
<div class="card-body">
<div class="row align-items-center mt-2 mb-3">
<div class="col-sm-4">
<div class="input-group input-group-sm">
<input type="text" class="form-control autosave" name="find_county" id="find_county" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_county']/popover_placeholder}" autofocus="autofocus"/>
<button type="button" class="btn btn-primary fw-bold btnFind" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'find_county']/popover_text}" data-bs-html="true" data-bs-custom-class="custom-tooltip">
<i class="bi bi-search"/>
</button>
<button type="button" class="btn btn-primary fw-bold btnClearFind" data-bs-toggle="tooltip" data-bs-title="Clear Find" data-bs-custom-class="custom-tooltip">
<i class="bi bi-arrow-clockwise"/>
</button>
</div>
</div>
<div class="col-auto">
<div class="input-group input-group-sm" data-bs-toggle="tooltip" data-bs-title="Show Per Page" data-bs-custom-class="custom-tooltip">
<div class="input-group-text">
<i class="bi bi-list-ol"/>
</div>
<select class="form-select autosave" name="counties_per_page" id="counties_per_page">
<option value="20">20</option>
<option value="40">40</option>
<option value="60">60</option>
<option value="80">80</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<div class="buttons mt-4 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnDone">
<i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnAdd">
<i class="bi bi-plus-lg me-2"/>Add</button>
<div class="btn-group ms-2" role="group">
<xsl:if test="$PAGINATION_PAGE > 1">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="first" data-bs-toggle="tooltip" data-bs-title="First Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-bar-left me-1"/>First</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="previous" data-bs-toggle="tooltip" data-bs-title="Previous Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-left me-1"/>Previous</button>
</xsl:if>
<xsl:if test="$PAGINATION_COUNT > $PAGINATION_END">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="next" data-bs-toggle="tooltip" data-bs-title="Next Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-right me-1"/>Next</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="last" data-bs-toggle="tooltip" data-bs-title="Last Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-bar-right me-1"/>Last</button>
</xsl:if>
</div>
</div>
<hr class="mt-3 mb-2"/>
<xsl:choose>
<xsl:when test="count(//counties/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 mb-1">
<xsl:text>There are no Counties to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive">
<table class="table table-sm table-striped table-hover base-table table-auto" id="counties-table">
<thead class="sticky-header" data-theme="{$THEME}">
<th>Name</th>
<th>Area</th>
</thead>
<tbody>
<xsl:apply-templates select="//counties"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="counties/record">
<tr class="hoverable county-row" data-county-serial="{county_serial}" data-county-name="{county_name}">
<td class="county_name">
<xsl:value-of select="county_name"/>
</td>
<td class="county_area">
<xsl:value-of select="county_area"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+152
View File
@@ -0,0 +1,152 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Dropdowns</xsl:param>
<xsl:param name="PAGE-NAME">setupDropdowns</xsl:param>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-caret-down-square me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body ps-1 pe-1">
<div class="buttons ms-2 mt-1">
<button type="button" class="btn btn-sm btn-primary me-2 btnDone"><i class="bi bi-box-arrow-left me-2"/>Done</button>
</div>
<hr class="mt-3 mb-3"/>
<xsl:choose>
<xsl:when test="count(//dropdowntypes/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic m-2">
<xsl:text>There are no Dropdowns defined...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div id="dropdown-accordion">
<xsl:apply-templates select="//dropdowntypes"/>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Create Dropdown Accordions -->
<xsl:template match="dropdowntypes/record">
<xsl:variable name="DROPDOWNTYPE_SERIAL" select="dropdowntype_serial"/>
<div class="card dropdowntype-card border-0">
<div class="card-header collapsed dropdowntype-card-header text-truncate border-0 bg-transparent p-0 ps-2" role="button" data-bs-toggle="collapse" data-bs-target="#C-{position()}" aria-expanded="false" aria-controls="C-{position()}">
<i class="bi bi-caret-right-fill caret-toggle me-2"/>
<xsl:value-of select="dropdowntype_title"/>
</div>
<div id="C-{position()}" class="collapse" data-bs-parent="#dropdown-accordion">
<div class="card-body border mt-2 mb-2 pt-1 ms-3 me-3">
<xsl:choose>
<xsl:when test="count(//dropdowns/record[dropdown_dropdowntype = $DROPDOWNTYPE_SERIAL]) = 0">
<div class="fs-6 text-danger fw-bold fst-italic m-2 ms-0">
<xsl:text>There are no Dropdowns defined...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-responsive table-wrapper scrollable mt-2">
<table class="table table-sm table-striped table-hover base-table table-auto dropdown-table" id="dropdown-{position()}-table">
<thead>
<th class="text-center pe-3">Default</th>
<th class="text-center pe-3">Active</th>
<th>Value</th>
</thead>
<tbody>
<xsl:for-each select="//dropdowns/record[dropdown_dropdowntype = $DROPDOWNTYPE_SERIAL]">
<tr class="text-nowrap hoverable dropdown-row" data-dropdown-serial="{dropdown_serial}" data-dropdown-value="{dropdown_value}" data-dropdown-dropdowntype="{dropdown_dropdowntype}">
<td class="checkbox text-center dropdown_default pe-3">
<input class="form-check-input fs-6 dropdown_default align-middle mb-1" type="checkbox" name="dropdown_default" value="true">
<xsl:if test="boolean(number(dropdown_default)) = true()">
<xsl:attribute name="checked"/>
</xsl:if>
</input>
</td>
<td class="checkbox text-center dropdown_active pe-3">
<input class="form-check-input fs-6 dropdown_active align-middle mb-1" type="checkbox" name="dropdown_active" data-dropdown-serial="{dropdown_serial}" value="true">
<xsl:if test="boolean(number(dropdown_active)) = true()">
<xsl:attribute name="checked"/>
</xsl:if>
</input>
</td>
<td class="dropdown_value align-middle"><xsl:value-of select="dropdown_value"/></td>
</tr>
</xsl:for-each>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
<div class="buttons ms-0 mt-3">
<button type="button" class="btn btn-sm btn-primary me-2 btnAdd" data-dropdowntype-serial="{dropdowntype_serial}"><i class="bi bi-plus-lg me-1"/>Add</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+142
View File
@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Dropdown Types</xsl:param>
<xsl:param name="PAGE-NAME">setupDropdowntypes</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//dropdowntypes/@count"/>
<xsl:variable name="PAGINATION_START" select="//dropdowntypes/@start"/>
<xsl:variable name="PAGINATION_END" select="//dropdowntypes/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//dropdowntypes/@page"/>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-caret-down-square me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
<xsl:if test="$PAGINATION_COUNT > 0">
<xsl:text> | Showing </xsl:text>
<xsl:value-of select="format-number($PAGINATION_START, '###,##0')"/>
<xsl:text> to </xsl:text>
<xsl:value-of select="format-number($PAGINATION_END, '###,##0')"/>
<xsl:text> of </xsl:text>
<xsl:value-of select="format-number($PAGINATION_COUNT, '###,##0')"/>
</xsl:if>
</div>
<div class="card-body">
<div class="row align-items-center mt-2 mb-3">
<div class="col-lg-4">
<div class="input-group input-group-sm">
<input type="text" class="form-control autosave" name="find_dropdowntype" id="find_dropdowntype" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_dropdowntype']/popover_placeholder}" autofocus="autofocus"/>
<button type="button" class="btn btn-primary fw-bold btnFind" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'find_dropdowntype']/popover_text}" data-bs-html="true" data-bs-custom-class="custom-tooltip"><i class="bi bi-search"/></button>
<button type="button" class="btn btn-primary fw-bold btnClearFind" data-bs-toggle="tooltip" data-bs-title="Clear Find" data-bs-custom-class="custom-tooltip"><i class="bi bi-arrow-clockwise"/></button>
</div>
</div>
<div class="col-auto">
<div class="input-group input-group-sm" data-bs-toggle="tooltip" data-bs-title="Show Per Page" data-bs-custom-class="custom-tooltip">
<div class="input-group-text"><i class="bi bi-list-ol"/></div>
<select class="form-select autosave" name="dropdowntypes_per_page" id="dropdowntypes_per_page">
<option value="20">20</option>
<option value="40">40</option>
<option value="60">60</option>
<option value="80">80</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<div class="buttons mt-1 mb-1">
<button type="button" class="btn btn-sm btn-primary me-2 btnDone"><i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnAdd"><i class="bi bi-plus-lg me-2"/>Add</button>
<div class="btn-group ms-2" role="group">
<xsl:if test="$PAGINATION_PAGE > 1">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="first" data-bs-toggle="tooltip" data-bs-title="First Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-bar-left me-1"/>First</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="previous" data-bs-toggle="tooltip" data-bs-title="Previous Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-left me-1"/>Previous</button>
</xsl:if>
<xsl:if test="$PAGINATION_COUNT > $PAGINATION_END">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="next" data-bs-toggle="tooltip" data-bs-title="Next Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-right me-1"/>Next</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="last" data-bs-toggle="tooltip" data-bs-title="Last Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-bar-right me-1"/>Last</button>
</xsl:if>
</div>
</div>
<hr class="mt-3 mb-2"/>
<xsl:choose>
<xsl:when test="count(//dropdowntypes/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 mb-1">
<xsl:text>There are no Dropdown Types to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive">
<table class="table table-sm table-striped table-hover base-table table-auto" id="dropdowntypes-table">
<thead>
<th>Name</th>
<th>Title</th>
<th>Table</th>
<th>Column</th>
</thead>
<tbody>
<xsl:apply-templates select="//dropdowntypes"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="dropdowntypes/record">
<tr class="text-nowrap hoverable dropdowntype-row" data-dropdowntype-serial="{dropdowntype_serial}" data-dropdowntype-name="{dropdowntype_name}">
<td class="dropdowntype_name"><xsl:value-of select="dropdowntype_name"/></td>
<td class="dropdowntype_title"><xsl:value-of select="dropdowntype_title"/></td>
<td class="dropdowntype_table"><xsl:value-of select="dropdowntype_table"/></td>
<td class="dropdowntype_column"><xsl:value-of select="dropdowntype_column"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
+142
View File
@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Popovers</xsl:param>
<xsl:param name="PAGE-NAME">setupPopovers</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//popovers/@count"/>
<xsl:variable name="PAGINATION_START" select="//popovers/@start"/>
<xsl:variable name="PAGINATION_END" select="//popovers/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//popovers/@page"/>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-chat-square-dots me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
<xsl:if test="$PAGINATION_COUNT > 0">
<xsl:text> | Showing </xsl:text>
<xsl:value-of select="format-number($PAGINATION_START, '###,##0')"/>
<xsl:text> to </xsl:text>
<xsl:value-of select="format-number($PAGINATION_END, '###,##0')"/>
<xsl:text> of </xsl:text>
<xsl:value-of select="format-number($PAGINATION_COUNT, '###,##0')"/>
</xsl:if>
</div>
<div class="card-body">
<div class="row align-items-center mt-2 mb-3">
<div class="col-lg-4">
<div class="input-group input-group-sm">
<input type="text" class="form-control autosave" name="find_popover" id="find_popover" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_popover']/popover_placeholder}" autofocus="autofocus"/>
<button type="button" class="btn btn-primary fw-bold btnFind" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'find_popover']/popover_text}" data-bs-html="true" data-bs-custom-class="custom-tooltip"><i class="bi bi-search"/></button>
<button type="button" class="btn btn-primary fw-bold btnClearFind" data-bs-toggle="tooltip" data-bs-title="Clear Find" data-bs-custom-class="custom-tooltip"><i class="bi bi-arrow-clockwise"/></button>
</div>
</div>
<div class="col-auto">
<div class="input-group input-group-sm" data-bs-toggle="tooltip" data-bs-title="Show Per Page" data-bs-custom-class="custom-tooltip">
<div class="input-group-text"><i class="bi bi-list-ol"/></div>
<select class="form-select autosave" name="popovers_per_page" id="popovers_per_page">
<option value="20">20</option>
<option value="40">40</option>
<option value="60">60</option>
<option value="80">80</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<!-- Action Buttons -->
<div class="buttons mt-3 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnDone"><i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnAdd"><i class="bi bi-plus-lg me-2"/>Add</button>
<div class="btn-group ms-2" role="group">
<xsl:if test="$PAGINATION_PAGE > 1">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="first" data-bs-toggle="tooltip" data-bs-title="First Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-bar-left me-1"/>First</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="previous" data-bs-toggle="tooltip" data-bs-title="Previous Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-left me-1"/>Previous</button>
</xsl:if>
<xsl:if test="$PAGINATION_COUNT > $PAGINATION_END">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="next" data-bs-toggle="tooltip" data-bs-title="Next Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-right me-1"/>Next</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="last" data-bs-toggle="tooltip" data-bs-title="Last Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-bar-right me-1"/>Last</button>
</xsl:if>
</div>
</div>
<hr class="mt-3 mb-2"/>
<xsl:choose>
<xsl:when test="count(//popovers/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 mb-1">
<xsl:text>There are no Popovers to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive">
<table class="table table-sm table-striped table-hover base-table table-auto" id="popovers-table">
<thead>
<th>Name</th>
<th>Title</th>
<th>Placeholder</th>
</thead>
<tbody>
<xsl:apply-templates select="//popovers"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="popovers/record">
<tr class="hoverable popover-row" data-popover-serial="{popover_serial}" data-popover-name="{popover_name}">
<td class="popover_name"><xsl:value-of select="popover_name"/></td>
<td class="popover_title"><xsl:value-of select="popover_title"/></td>
<td class="popover_placeholder"><xsl:value-of select="popover_placeholder"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
+149
View File
@@ -0,0 +1,149 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Reports</xsl:param>
<xsl:param name="PAGE-NAME">setupReports</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//reports/@count"/>
<xsl:variable name="PAGINATION_START" select="//reports/@start"/>
<xsl:variable name="PAGINATION_END" select="//reports/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//reports/@page"/>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-printer me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
<xsl:if test="$PAGINATION_COUNT > 0">
<xsl:text> | Showing </xsl:text>
<xsl:value-of select="format-number($PAGINATION_START, '###,##0')"/>
<xsl:text> to </xsl:text>
<xsl:value-of select="format-number($PAGINATION_END, '###,##0')"/>
<xsl:text> of </xsl:text>
<xsl:value-of select="format-number($PAGINATION_COUNT, '###,##0')"/>
</xsl:if>
</div>
<div class="card-body">
<div class="row align-items-center mt-2 mb-3">
<div class="col-sm-4">
<div class="input-group input-group-sm">
<input type="text" class="form-control autosave" name="find_report" id="find_report" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_report']/popover_placeholder}" autofocus="autofocus"/>
<button type="button" class="btn btn-primary fw-bold btnFind" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'find_report']/popover_text}" data-bs-html="true" data-bs-custom-class="custom-tooltip"><i class="bi bi-search"/></button>
<button type="button" class="btn btn-primary fw-bold btnClearFind" data-bs-toggle="tooltip" data-bs-title="Clear Find" data-bs-custom-class="custom-tooltip"><i class="bi bi-arrow-clockwise"/></button>
</div>
</div>
<div class="col-auto">
<div class="input-group input-group-sm" data-bs-toggle="tooltip" data-bs-title="Show Per Page" data-bs-custom-class="custom-tooltip">
<div class="input-group-text"><i class="bi bi-list-ol"/></div>
<select class="form-select autosave" name="reports_per_page" id="reports_per_page">
<option value="20">20</option>
<option value="40">40</option>
<option value="60">60</option>
<option value="80">80</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<div class="buttons mt-3 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnDone"><i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnAdd"><i class="bi bi-plus-lg me-2"/>Add</button>
<div class="btn-group ms-2" role="group">
<xsl:if test="$PAGINATION_PAGE > 1">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="first" data-bs-toggle="tooltip" data-bs-title="First Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-bar-left me-1"/>First</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="previous" data-bs-toggle="tooltip" data-bs-title="Previous Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-left me-1"/>Previous</button>
</xsl:if>
<xsl:if test="$PAGINATION_COUNT > $PAGINATION_END">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="next" data-bs-toggle="tooltip" data-bs-title="Next Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-right me-1"/>Next</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="last" data-bs-toggle="tooltip" data-bs-title="Last Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-bar-right me-1"/>Last</button>
</xsl:if>
</div>
</div>
<hr class="mt-3 mb-2"/>
<xsl:choose>
<xsl:when test="count(//reports/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 mb-1">
<xsl:text>There are no Reports to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive">
<table class="table table-sm table-striped table-hover base-table table-auto" id="reports-table">
<thead class="sticky-header" data-theme="{$THEME}">
<th>Class</th>
<th>Type</th>
<th>Name</th>
<th>Description</th>
<th>Target</th>
</thead>
<tbody>
<xsl:apply-templates select="//reports"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="reports/record">
<tr class="text-nowrap hoverable report-row" data-report-serial="{report_serial}">
<td class="report_class"><xsl:value-of select="report_class"/></td>
<td class="report_type"><xsl:value-of select="report_type"/></td>
<td class="report_name"><xsl:value-of select="report_name"/></td>
<td class="report_description"><xsl:value-of select="report_description"/></td>
<td class="report_target"><xsl:value-of select="report_target"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
+150
View File
@@ -0,0 +1,150 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Statuses</xsl:param>
<xsl:param name="PAGE-NAME">setupStatuses</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//statuses/@count"/>
<xsl:variable name="PAGINATION_START" select="//statuses/@start"/>
<xsl:variable name="PAGINATION_END" select="//statuses/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//statuses/@page"/>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-list-task me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
<xsl:if test="$PAGINATION_COUNT > 0">
<xsl:text> | </xsl:text>
<xsl:value-of select="format-number($PAGINATION_START, '###,##0')"/>
<xsl:text> to </xsl:text>
<xsl:value-of select="format-number($PAGINATION_END, '###,##0')"/>
<xsl:text> of </xsl:text>
<xsl:value-of select="format-number($PAGINATION_COUNT, '###,##0')"/>
</xsl:if>
</div>
<div class="card-body">
<div class="row align-items-center mt-2 mb-3">
<div class="col-sm-4">
<div class="input-group input-group-sm">
<input type="text" class="form-control autosave" name="find_status" id="find_status" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_status']/popover_placeholder}" autofocus="autofocus"/>
<button type="button" class="btn btn-primary fw-bold btnFind" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'find_status']/popover_text}" data-bs-html="true" data-bs-custom-class="custom-tooltip"><i class="bi bi-search"/></button>
<button type="button" class="btn btn-primary fw-bold btnClearFind" data-bs-toggle="tooltip" data-bs-title="Clear Find" data-bs-custom-class="custom-tooltip"><i class="bi bi-arrow-clockwise"/></button>
</div>
</div>
<div class="col-auto">
<div class="input-group input-group-sm" data-bs-toggle="tooltip" data-bs-title="Show Per Page" data-bs-custom-class="custom-tooltip">
<div class="input-group-text"><i class="bi bi-list-ol"/></div>
<select class="form-select autosave" name="statuses_per_page" id="statuses_per_page">
<option value="20">20</option>
<option value="40">40</option>
<option value="60">60</option>
<option value="80">80</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<div class="buttons mt-4 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnDone"><i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnAdd"><i class="bi bi-plus-lg me-2"/>Add</button>
<div class="btn-group ms-2" role="group">
<xsl:if test="$PAGINATION_PAGE > 1">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="first" data-bs-toggle="tooltip" data-bs-title="First Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-bar-left me-1"/>First</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="previous" data-bs-toggle="tooltip" data-bs-title="Previous Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-left me-1"/>Previous</button>
</xsl:if>
<xsl:if test="$PAGINATION_COUNT > $PAGINATION_END">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="next" data-bs-toggle="tooltip" data-bs-title="Next Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-right me-1"/>Next</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="last" data-bs-toggle="tooltip" data-bs-title="Last Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-bar-right me-1"/>Last</button>
</xsl:if>
</div>
</div>
<hr class="mt-3 mb-2"/>
<xsl:choose>
<xsl:when test="count(//statuses/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 mb-1">
<xsl:text>There are no Statuses to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive">
<table class="table table-sm table-striped table-hover base-table table-auto" id="statuses-table">
<thead class="sticky-header" data-theme="{$THEME}">
<th>Name</th>
<th>Classes</th>
<th class="text-center">Active</th>
<th class="text-center">Default</th>
</thead>
<tbody>
<xsl:apply-templates select="//statuses"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="statuses/record">
<tr class="hoverable status-row" data-status-serial="{status_serial}" data-status-name="{status_name}">
<td class="status_name"><xsl:value-of select="status_name"/></td>
<td class="status_classes"><xsl:value-of select="status_classes"/></td>
<td class="status_active text-center">
<xsl:if test="boolean(number(status_active)) = true()">
<i class="bi bi-check-lg text-success"/>
</xsl:if>
</td>
<td class="status_default text-center">
<xsl:if test="boolean(number(status_default)) = true()">
<i class="bi bi-x-lg text-success"/>
</xsl:if>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+162
View File
@@ -0,0 +1,162 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Subscriptions</xsl:param>
<xsl:param name="PAGE-NAME">setupSubscriptions</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//subscriptions/@count"/>
<xsl:variable name="PAGINATION_START" select="//subscriptions/@start"/>
<xsl:variable name="PAGINATION_END" select="//subscriptions/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//subscriptions/@page"/>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-list me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
<xsl:if test="$PAGINATION_COUNT > 0">
<xsl:text> | Showing </xsl:text>
<xsl:value-of select="format-number($PAGINATION_START, '###,##0')"/>
<xsl:text> to </xsl:text>
<xsl:value-of select="format-number($PAGINATION_END, '###,##0')"/>
<xsl:text> of </xsl:text>
<xsl:value-of select="format-number($PAGINATION_COUNT, '###,##0')"/>
</xsl:if>
</div>
<div class="card-body">
<div class="row align-items-center mt-2 mb-3">
<div class="col-lg-4">
<div class="input-group input-group-sm">
<input type="text" class="form-control autosave" name="find_subscription" id="find_subscription" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_subscription']/popover_placeholder}" autofocus="autofocus"/>
<button type="button" class="btn btn-primary fw-bold btnFind" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'find_subscription']/popover_text}" data-bs-html="true" data-bs-custom-class="custom-tooltip">
<i class="bi bi-search"/>
</button>
<button type="button" class="btn btn-primary fw-bold btnClearFind" data-bs-toggle="tooltip" data-bs-title="Clear Find" data-bs-custom-class="custom-tooltip">
<i class="bi bi-arrow-clockwise"/>
</button>
</div>
</div>
<div class="col-auto">
<div class="input-group input-group-sm" data-bs-toggle="tooltip" data-bs-title="Show Per Page" data-bs-custom-class="custom-tooltip">
<div class="input-group-text">
<i class="bi bi-list-ol"/>
</div>
<select class="form-select autosave" name="subscriptions_per_page" id="subscriptions_per_page">
<option value="20">20</option>
<option value="40">40</option>
<option value="60">60</option>
<option value="80">80</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<div class="buttons mt-1 mb-1">
<button type="button" class="btn btn-sm btn-primary me-2 btnDone">
<i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnAdd">
<i class="bi bi-plus-lg me-2"/>Add</button>
<div class="btn-group ms-2" role="group">
<xsl:if test="$PAGINATION_PAGE > 1">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="first" data-bs-toggle="tooltip" data-bs-title="First Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-bar-left me-1"/>First</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="previous" data-bs-toggle="tooltip" data-bs-title="Previous Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-left me-1"/>Previous</button>
</xsl:if>
<xsl:if test="$PAGINATION_COUNT > $PAGINATION_END">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="next" data-bs-toggle="tooltip" data-bs-title="Next Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-right me-1"/>Next</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="last" data-bs-toggle="tooltip" data-bs-title="Last Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-bar-right me-1"/>Last</button>
</xsl:if>
</div>
</div>
<hr class="mt-3 mb-2"/>
<xsl:choose>
<xsl:when test="count(//subscriptions/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 mb-1">
<xsl:text>There are no Subscriptions to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive">
<table class="table table-sm table-striped table-hover base-table table-auto" id="subscriptions-table">
<thead>
<th>Title</th>
<th>Description</th>
<th>Project Type</th>
<th>Area</th>
</thead>
<tbody>
<xsl:apply-templates select="//subscriptions"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="subscriptions/record">
<tr class="text-nowrap hoverable subscription-row" data-subscription-serial="{subscription_serial}" data-subscription-name="{subscription_name}">
<td class="subscription_title">
<xsl:value-of select="subscription_title"/>
</td>
<td class="subscription_description">
<xsl:value-of select="subscription_description"/>
</td>
<td class="subscription_projecttype">
<xsl:value-of select="subscription_projecttype"/>
</td>
<td class="subscription_area">
<xsl:value-of select="subscription_area"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+179
View File
@@ -0,0 +1,179 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Users</xsl:param>
<xsl:param name="PAGE-NAME">setupUsers</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//users/@count"/>
<xsl:variable name="PAGINATION_START" select="//users/@start"/>
<xsl:variable name="PAGINATION_END" select="//users/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//users/@page"/>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-person-circle me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
<xsl:if test="$PAGINATION_COUNT > 0">
<xsl:text> | Showing </xsl:text>
<xsl:value-of select="format-number($PAGINATION_START, '###,##0')"/>
<xsl:text> to </xsl:text>
<xsl:value-of select="format-number($PAGINATION_END, '###,##0')"/>
<xsl:text> of </xsl:text>
<xsl:value-of select="format-number($PAGINATION_COUNT, '###,##0')"/>
</xsl:if>
</div>
<div class="card-body">
<div class="row align-items-center mt-2 mb-3">
<div class="col-sm-4">
<div class="input-group input-group-sm">
<input type="text" class="form-control autosave" name="find_user" id="find_user" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_user']/popover_placeholder}" autofocus="autofocus"/>
<button type="button" class="btn btn-primary fw-bold btnFind" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'find_user']/popover_text}" data-bs-html="true" data-bs-custom-class="custom-tooltip">
<i class="bi bi-search"/>
</button>
<button type="button" class="btn btn-primary fw-bold btnClearFind" data-bs-toggle="tooltip" data-bs-title="Clear Find" data-bs-custom-class="custom-tooltip">
<i class="bi bi-arrow-clockwise"/>
</button>
</div>
</div>
<div class="col-auto">
<div class="input-group input-group-sm" data-bs-toggle="tooltip" data-bs-title="Show Per Page" data-bs-custom-class="custom-tooltip">
<div class="input-group-text">
<i class="bi bi-list-ol"/>
</div>
<select class="form-select autosave" name="users_per_page" id="users_per_page">
<option value="20">20</option>
<option value="40">40</option>
<option value="60">60</option>
<option value="80">80</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<!-- Action Buttons -->
<div class="buttons mt-1 mb-1">
<button type="button" class="btn btn-sm btn-primary me-2 btnDone">
<i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnAdd">
<i class="bi bi-plus-lg me-2"/>Add</button>
<div class="btn-group ms-2" role="group">
<xsl:if test="$PAGINATION_PAGE > 1">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="first" data-bs-toggle="tooltip" data-bs-title="First Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-bar-left me-1"/>First</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="previous" data-bs-toggle="tooltip" data-bs-title="Previous Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-left me-1"/>Previous</button>
</xsl:if>
<xsl:if test="$PAGINATION_COUNT > $PAGINATION_END">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="next" data-bs-toggle="tooltip" data-bs-title="Next Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-right me-1"/>Next</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="last" data-bs-toggle="tooltip" data-bs-title="Last Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-bar-right me-1"/>Last</button>
</xsl:if>
</div>
</div>
<hr class="mt-3 mb-2"/>
<xsl:choose>
<xsl:when test="count(//users/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 mb-1">
<xsl:text>There are no Users to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive">
<table class="table table-sm table-striped table-hover base-table table-auto" id="users-table">
<thead class="sticky-header" data-theme="{$THEME}">
<th>Username</th>
<th>Client Name</th>
<th>Email</th>
<th>Role</th>
<th class="text-center">Active</th>
<th class="text-center">Last Login</th>
</thead>
<tbody>
<xsl:apply-templates select="//users"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="users/record">
<tr class="text-nowrap hoverable user-row" data-user-serial="{user_serial}" data-user-name="{user_name}">
<td class="user_name">
<xsl:value-of select="user_name"/>
</td>
<td class="user_client_name">
<xsl:value-of select="user_client_name"/>
</td>
<td class="user_email">
<xsl:value-of select="user_email"/>
</td>
<td class="user_role">
<xsl:value-of select="user_role"/>
</td>
<td class="user_active text-center">
<xsl:choose>
<xsl:when test="boolean(number(user_active)) = true()">
<i class="bi bi-check-lg text-success"/>
</xsl:when>
<xsl:otherwise>
<i class="bi bi-x-lg text-danger"/>
</xsl:otherwise>
</xsl:choose>
</td>
<td class="user_login text-center">
<xsl:value-of select="user_login_verbose"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+100
View File
@@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="PAGE_TITLE">Georgia Housing Report Sign In</xsl:param>
<xsl:param name="FORM_NAME">signIn</xsl:param>
<xsl:param name="BTN_SUBMIT"/>
<xsl:param name="INVALID_SIGNIN"/>
<xsl:template match="/">
<xsl:text disable-output-escaping="yes">&lt;!DOCTYPE html></xsl:text>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>
<xsl:value-of select="$APPLICATION_NAME"/>
</title>
<link href="css/themes/Spacelab/bootstrap.min.css?version={$VERSION}" rel="stylesheet" media="screen"/>
<link href="css/bootstrap-icons.min.css?version={$VERSION}" rel="stylesheet" media="screen"/>
<link href="css/signIn.css?version={$VERSION}" rel="stylesheet" media="screen"/>
<script src="js/jquery-3.2.0.min.js?version={$VERSION}"/>
<script src="js/bootstrap.bundle.min.js?version={$VERSION}"/>
<script src="js/signIn.js?version={$VERSION}"/>
</head>
<body>
<div class="container">
<div class="card">
<div class="card-header bg-primary text-white text-center h6 p-2">
<xsl:copy-of select="$PAGE_TITLE"/>
</div>
<form action="{$BTN_SUBMIT}" name="{$FORM_NAME}" method="post" id="{$FORM_NAME}">
<input type="hidden" name="action" value="Users.login"/>
<input type="hidden" name="step" value="authenticate"/>
<xsl:if test="$INVALID_SIGNIN = 'TRUE'">
<div class="alert alert-danger">
<xsl:text>Invalid Sign In</xsl:text>
</div>
</xsl:if>
<div class="form-group">
<div class="input-group">
<span class="input-group-text">
<i class="bi bi-person-fill" aria-hidden="true"></i>
</span>
<input type="text" id="user_name" name="user_name" class="form-control form-control-sm" placeholder="Username" maxlength="128" autofocus="autofocus" autocomplete="no"/>
</div>
</div>
<div class="form-group">
<div class="input-group">
<span class="input-group-text">
<i class="bi bi-lock-fill" aria-hidden="true"></i>
</span>
<input id="user_password" name="user_password" type="password" class="form-control form-control-sm" placeholder="Password" maxlength="128"/>
</div>
</div>
</form>
<div class="d-grid gap-2 col-11 mx-auto pb-3">
<button class="btn btn-primary btn-sm btnSignIn">Sign In</button>
<!--<a href="main.php?action=resetpassword" class="btn btn-secondary btn-sm btnForgot">Forgot Password</a>-->
</div>
</div>
</div>
<!-- Footer -->
<footer id="footer">
<div class="col text-center mt-3">
<small class="text-muted pb-0">Authorized Access is Prohibitted</small>
</div>
</footer>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
+111
View File
@@ -0,0 +1,111 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">New Support Ticket</xsl:param>
<xsl:param name="PAGE-NAME">startSupportTicket</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<script src="js/ckeditor.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-question-circle me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
for
<xsl:value-of select="//users/record/user_client_name"/>
/
<xsl:value-of select="//users/record/user_name"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="SupportTickets.startSupportTicket"/>
<input type="hidden" name="step" value="send"/>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="supportticket_subject">Subject</label>
<input type="text" class="form-control form-control-sm" name="supportticket_subject" id="supportticket_subject" maxlength="100" autocomplete="off" autofocus="autofocus"/>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="supportticket_category">Category</label>
<select class="form-control form-control-sm" name="supportticket_category" id="supportticket_category" size="1">
<xsl:call-template name="dropdowns">
<xsl:with-param name="dropdown-name" select="'supportticket_catagories'"/>
</xsl:call-template>
</select>
</div>
</div>
<div class="row other_catagory d-none">
<div class="col-lg-5 mb-3">
<label class="form-label" for="supportticket_category_other">
Other Category
</label>
<input type="text" class="form-control form-control-sm" name="supportticket_category_other" id="supportticket_category_other" maxlength="100" autocomplete="off" />
</div>
</div>
<div class="row">
<div class="col-lg-10 mb-3">
<label class="form-label" for="supportticket_message">Message</label>
<textarea class="form-control form-control-sm" name="supportticket_message" id="supportticket_message"></textarea>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSubmit">
<i class="bi bi-save me-2"/>Submit</button>
</div>
<div id="ticketSending" class="d-none mt-2">
<span class="spinner-border spinner-border-sm me-2" role="status" aria-hidden="true"></span>
Sending ticket…
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Dropdowns -->
<xsl:template name="dropdowns">
<xsl:param name="dropdown-name"/>
<option value="">Choose...</option>
<xsl:for-each select="/XML/dropdowns/record[dropdowntype_name = $dropdown-name]">
<option value="{dropdown_serial}" data-tokens="{dropdown_value}">
<xsl:value-of select="dropdown_value"/>
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+346
View File
@@ -0,0 +1,346 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Support Ticket Summary</xsl:param>
<xsl:param name="PAGE-NAME">supportTicketSummary</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<!-- iMessage-ish chat CSS -->
<style type="text/css">
.ticket-chat {
background: #f5f5f7;
border: 1px solid rgba(0,0,0,.1);
border-radius: 1rem;
overflow: hidden;
}
.ticket-chat-header {
background: #fff;
border-bottom: 1px solid rgba(0,0,0,.08);
}
.ticket-chat-body {
height: 520px;
overflow-y: auto;
padding: 1rem;
}
.msg-row {
display: flex;
gap: .5rem;
margin-bottom: .75rem;
align-items: flex-end;
}
.msg-row.incoming { justify-content: flex-start; }
.msg-row.outgoing { justify-content: flex-end; }
.msg-avatar {
width: 34px;
height: 34px;
border-radius: 50%;
object-fit: cover;
flex: 0 0 34px;
}
.msg {
max-width: 78%;
display: flex;
flex-direction: column;
gap: .25rem;
}
.bubble {
padding: .6rem .75rem;
border-radius: 1.1rem;
line-height: 1.25rem;
word-wrap: break-word;
box-shadow: 0 1px 0 rgba(0,0,0,.04);
}
.incoming .bubble {
background: #fff;
color: #111;
border-bottom-left-radius: .45rem;
}
.outgoing .bubble {
background: #0d6efd;
color: #fff;
border-bottom-right-radius: .45rem;
}
.msg-meta {
font-size: .75rem;
color: #6c757d;
}
.outgoing .msg-meta { text-align: right; }
.chat-divider {
display: flex;
align-items: center;
gap: .75rem;
margin: 1.25rem 0;
color: #6c757d;
font-size: .75rem;
}
.chat-divider:before,
.chat-divider:after {
content: "";
flex: 1;
height: 1px;
background: rgba(0,0,0,.10);
}
</style>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-person me-2" aria-hidden="true"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body pb-0">
<!-- Details -->
<div class="card card-header rounded p-0 ms-0 me-0 mb-3">
<div class="card-body p-2">
<div class="row fs-875 lh-sm">
<div class="col-lg-6">
<div class="row">
<div class="col-3 fw-bold">Category:</div>
<div class="col-9">
<xsl:value-of select="//supporttickets/record/supportticket_catagory_verbose"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">Subject:</div>
<div class="col-9">
<xsl:value-of select="//supporttickets/record/supportticket_subject"/>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="row">
<div class="col-3 fw-bold">Created:</div>
<div class="col-9">
<xsl:value-of select="//supporttickets/record/supportticket_created"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">Created By:</div>
<div class="col-9">
<xsl:value-of select="//supporttickets/record/supportticket_creator"/>
|
<xsl:value-of select="//user/record/user_client_name"/>
</div>
</div>
<div class="row align-items-baseline mt-1">
<div class="col-3 fw-bold">Status:</div>
<div class="col-3">
<select class="form-select form-select-sm" name="supportticketactive" id="supportticketactive" size="1">
</select>
</div>
</div>
</div>
</div>
</div>
</div>
<hr class="mb-2"/>
<!-- Action Buttons -->
<div class="buttons mt-1 mb-1">
<button type="button" class="btn btn-sm btn-primary me-1 mb-1 btnDone">
<i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-1 mb-1 btnPrint">
<i class="bi bi-printer me-2"/>Print</button>
</div>
<hr class="mt-1 mb-3"/>
<!-- Tabs -->
<div class="row">
<div class="col-12">
<div class="nav nav-tabs" id="nav-tabs" role="tablist">
<a class="nav-item nav-link active" id="tab-Conversation" data-bs-toggle="tab" href="#pane-Conversation" role="tab" data-tab="Conversation" aria-controls="st-Conversation">
<i class="bi bi-pen me-1"/>Conversation</a>
</div>
</div>
</div>
<!-- Tab Content -->
<div class="tab-content mb-3" id="tab-content">
<!-- Conversation -->
<div class="tab-pane show active" id="pane-Conversation" role="tabpanel" aria-labelledby="tab-Conversation">
<div class="card mb-0 mt-3">
<div class="card-body pt-2 pb-2">
<xsl:choose>
<!-- NOTE: you had count(//supporttickets/record) here.
Thats the ticket itself, not the conversation.
This checks conversation messages. Change node if needed. -->
<xsl:when test="count(//supportticketcomments/record) = 0">
<div class="col fs-6 text-danger fw-bold fst-italic mt-1 mb-1">
<xsl:text>There are no Conversation....</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<!-- Chat container -->
<div class="ticket-chat">
<!-- Optional header inside tab -->
<div class="ticket-chat-header px-3 py-2">
<div class="d-flex align-items-center justify-content-between">
<div class="d-flex align-items-center gap-2">
<i class="bi bi-chat-dots text-primary fs-5"></i>
<div>
<div class="fw-semibold">Conversation</div>
<div class="small text-muted">
<xsl:value-of select="//supporttickets/record/supportticket_subject"/>
</div>
</div>
</div>
<span class="badge bg-primary-subtle text-primary border border-primary-subtle">
Ticket
</span>
</div>
</div>
<!-- Transcript -->
<div class="ticket-chat-body">
<div class="chat-divider">Messages</div>
<!-- Loop messages (oldest -> newest). Adjust sort fields as needed -->
<xsl:for-each select="//supportticketcomments/record">
<xsl:sort select="comment_created" data-type="text" order="ascending"/>
<!-- Determine incoming/outgoing -->
<xsl:variable name="isOutgoing">
<xsl:choose>
<xsl:when test="comment_creator_type = 'STAFF'">1</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<!-- OUTGOING (you/support) -->
<xsl:when test="$isOutgoing = 1">
<div class="msg-row outgoing">
<div class="msg">
<div class="bubble">
<xsl:value-of select="comment_message"/>
</div>
<div class="msg-meta">
<xsl:text>You • </xsl:text>
<xsl:value-of select="comment_created_verbose"/>
</div>
</div>
</div>
</xsl:when>
<!-- INCOMING (customer) -->
<xsl:otherwise>
<div class="msg-row incoming">
<!-- You can swap this to a real avatar field if you store it -->
<img class="msg-avatar" src="assets/img/person/person-f-7.webp" alt="Customer"/>
<div class="msg">
<div class="bubble">
<xsl:value-of select="comment_message"/>
</div>
<div class="msg-meta">
<xsl:value-of select="comment_creator_name"/>
<xsl:text></xsl:text>
<xsl:value-of select="comment_created_verbose"/>
</div>
</div>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</div>
</div>
</xsl:otherwise>
</xsl:choose>
<div class="buttons mt-2 mb-1">
<button type="button" class="btn btn-sm btn-primary mt-2 me-1 mb-1 btnAddComment">
<i class="bi bi-plus-lg me-2"/>Add Comment</button>
</div>
</div>
</div>
</div> <!-- Conversation -->
</div> <!-- Tab Content -->
</div>
</div>
</div>
<!-- Form to Print the Support Ticket Summary -->
<form style="display:inline;" id="PrintSupportTicketSummaryForm" method="post" action="" target="PrintTab">
<input type="hidden" name="action" value="print"/>
<input type="hidden" name="report" value="Print_SupportTicketSummary"/>
<input type="hidden" name="supportticketserial" value=""/>
</form>
</xsl:template>
<!-- Template for Dropdowns -->
<xsl:template name="dropdowns">
<xsl:param name="dropdown-name"/>
<xsl:param name="current-value"/>
<option value="">Choose...</option>
<xsl:for-each select="//dropdowns/record[dropdowntype_name = $dropdown-name]">
<option value="{dropdown_serial}" data-tokens="{dropdown_value}">
<xsl:if test="dropdown_serial = $current-value">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
<xsl:value-of select="dropdown_value"/>
</option>
</xsl:for-each>
</xsl:template>
<!-- Existing template kept as-is -->
<xsl:template match="supportticketsubscriptions/record">
<tr class="supportticketsubscription-row hoverable" data-supportticketsubscription-serial="{supportticketsubscription_serial}">
<td class="subscription_title">
<xsl:value-of select="concat(subscription_title, '-', subscription_description)"/>
</td>
<td class="supportticketsubscription_stop_date_verbose">
<xsl:value-of select="supportticketsubscription_stop_date_verbose"/>
</td>
<xsl:choose>
<xsl:when test="supportticketsubscription_status = 'EXPIRED'">
<td class="supportticketsubscription_status">
<span class="badge rounded-pill text-bg-danger">
<xsl:value-of select="supportticketsubscription_status"/>
</span>
</td>
</xsl:when>
<xsl:otherwise>
<td class="supportticketsubscription_status">
<span class="badge text-bg-success">
<xsl:value-of select="supportticketsubscription_status"/>
</span>
</td>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:template>
</xsl:stylesheet>
+60
View File
@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Upload CSV File</xsl:param>
<xsl:param name="PAGE-NAME">uploadCSVFile</xsl:param>
<xsl:template match="/">
<!--<link href="css/dropzone.min.css?version={$VERSION}" rel="stylesheet" media="screen"/>-->
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<!--<script src="js/dropzone.min.js?version={$VERSION}"/>-->
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-filetype-csv me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}" enctype="multipart/form-data">
<input type="hidden" name="action" value="Import.uploadCSVFile"/>
<input type="hidden" name="step" value="upload"/>
<div class="row">
<div class="col-6 mt-3 mb-4">
<input type="file" class="form-control file-input" name="csvfile" id="csvfile" accept=".csv"/>
</div>
</div>
</form>
<div class="buttons mt-2 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnUpload" disabled="disabled">
<i class="bi bi-cloud-arrow-up me-2"/>Upload</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-box-arrow-left me-2"/>Cancel</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+39
View File
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="PAGE-NAME">consolidationAlert</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-exclamation-triangle me-2" aria-hidden="true"/>
Upload Message
</div>
<div class="card-body text-center">
<p>
We got here.
</p>
<div class="buttons mt-2 mb-2">
<a role="button" class="btn btn-sm btn-primary me-2 btnDone">
<i class="bi bi-box-arrow-right me-2"/>Done</a>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+105
View File
@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">My Subscriptions</xsl:param>
<xsl:param name="PAGE-NAME">userSubscriptions</xsl:param>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-list-check me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<xsl:choose>
<xsl:when test="count(//usersubscriptions/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-2 mb-2">
<xsl:text>There are no Active Subscriptions to view... Please Contact Support</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive">
<table class="table table-sm table-striped table-hover base-table table-auto" id="usersubscription-table">
<thead class="sticky-header" data-theme="{$THEME}">
<th class="text-nowrap">Name</th>
<th class="text-nowrap">Expiration Date</th>
<th class="text-nowrap">Status</th>
</thead>
<tbody>
<xsl:apply-templates select="//usersubscriptions"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="usersubscriptions/record">
<tr class="hoverable usersubscription-row" data-subscription-serial="{subscription_serial}">
<td class="subscription_title">
<xsl:value-of select="concat(subscription_title, '-', subscription_description)"/>
</td>
<td class="usersubscription_stop_date_verbose" data-usersubscription-stop-date="{usersubscription_stop_date}">
<xsl:value-of select="usersubscription_stop_date_verbose"/>
</td>
<td class="usersubscription_status">
<xsl:choose>
<xsl:when test="usersubscription_status = 'EXPIRED'">
<span class="badge rounded-pill text-bg-danger">
<xsl:value-of select="usersubscription_status"/>
</span>
</xsl:when>
<xsl:otherwise>
<span class="badge text-bg-success">
<xsl:value-of select="usersubscription_status"/>
</span>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+420
View File
@@ -0,0 +1,420 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">User Summary</xsl:param>
<xsl:param name="PAGE-NAME">userSummary</xsl:param>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-person me-2" aria-hidden="true"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body pb-0">
<!-- Details -->
<div class="card card-header rounded p-0 ms-0 me-0 mb-3">
<div class="card-body p-2">
<div class="row fs-875 lh-sm">
<div class="col-lg-6">
<div class="row">
<div class="col-3 fw-bold">
Name
</div>
<div class="col-9">
<xsl:value-of select="//users/record/user_name"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Main Email:
</div>
<div class="col-9">
<xsl:value-of select="//users/record/user_email"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
User Name:
</div>
<div class="col-9">
<xsl:value-of select="//users/record/user_client_name"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Role:
</div>
<div class="col-9">
<xsl:value-of select="//users/record/user_role"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Change Password?:
</div>
<div class="col-9">
<xsl:choose>
<xsl:when test="boolean(number(//users/record/user_change_password)) = true()">
<span class="badge bg-success">Yes</span>
</xsl:when>
<xsl:otherwise>
<span class="badge bg-danger">No</span>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="row">
<div class="col-3 fw-bold">
Created:
</div>
<div class="col-9">
<xsl:value-of select="//users/record/user_created_verbose"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Created By:
</div>
<div class="col-9">
<xsl:value-of select="//users/record/user_creator"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Changed:
</div>
<div class="col-9">
<xsl:value-of select="//users/record/user_changed_verbose"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Changed By:
</div>
<div class="col-9">
<xsl:value-of select="//users/record/user_changed_user"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Last Login:
</div>
<div class="col-9">
<xsl:value-of select="//users/record/user_login_verbose"/>
</div>
</div>
<div class="row align-items-baseline mt-1">
<div class="col-3 fw-bold">
Active Status:
</div>
<div class="col-3">
<select class="form-select form-select-sm" name="user_active" id="user_active" size="1">
<xsl:choose>
<xsl:when test="//users/record/user_active = 1">
<option value="1" selected="yes">Active</option>
<option value="0">Inactive</option>
</xsl:when>
<xsl:otherwise>
<option value="1">Active</option>
<option value="0" selected="yes">Inactive</option>
</xsl:otherwise>
</xsl:choose>
</select>
</div>
</div>
</div>
</div>
</div>
</div>
<hr class="mb-2"/>
<!-- Action Buttons -->
<div class="buttons mt-1 mb-1">
<button type="button" class="btn btn-sm btn-primary me-1 mb-1 btnDone">
<i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-1 mb-1 btnEdit">
<i class="bi bi-pencil me-2"/>Edit</button>
<button type="button" class="btn btn-sm btn-primary me-1 mb-1 btnPrint">
<i class="bi bi-printer me-2"/>Print</button>
<button type="button" class="btn btn-sm btn-primary me-1 mb-1 btnResetPassword">
<i class="bi bi-unlock me-2"/>Reset Password</button>
</div>
<hr class="mt-1 mb-3"/>
<!-- Tabs -->
<div class="row">
<div class="col-12">
<div class="nav nav-tabs" id="nav-tabs" role="tablist">
<a class="nav-item nav-link active" id="tab-Subscriptions" data-bs-toggle="tab" href="#pane-Subscriptions" role="tab" data-tab="Subscriptions" aria-controls="st-Subscriptions">
<i class="bi bi-list-check me-1"/>Subscriptions</a>
<a class="nav-item nav-link" id="tab-Notes" data-bs-toggle="tab" href="#pane-Notes" role="tab" data-tab="Notes" aria-controls="st-Notes">
<i class="bi bi-chat-dots me-1"/>Notes</a>
</div>
</div>
</div>
<!-- Tab Content -->
<div class="tab-content mb-3" id="tab-content">
<!-- Subscriptions -->
<div class="tab-pane show active" id="pane-Subscriptions" role="tabpanel" aria-labelledby="tab-Subscriptions">
<div class="card mb-0 mt-3">
<div class="card-body pt-2 pb-2">
<xsl:choose>
<xsl:when test="count(//usersubscriptions/record) = 0">
<div class="col fs-6 text-danger fw-bold fst-italic mt-1 mb-1">
<xsl:text>There are no Subscriptions....</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-responsive scrollable-30">
<table class="table table-sm table-striped base-table table-auto" id="usersubscriptions-table">
<thead class="sticky-header">
<th>Description</th>
<th>End Date</th>
<th>Status</th>
</thead>
<tbody>
<xsl:apply-templates select="//usersubscriptions"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
<div class="buttons mt-2 mb-1">
<button type="button" class="btn btn-sm btn-primary mt-2 me-1 mb-1 btnAddSubscription">
<i class="bi bi-plus me-2"/>Add Subscription</button>
</div>
</div>
</div>
</div> <!-- Subscriptions -->
<!-- Notes -->
<div class="tab-pane" id="pane-Notes" role="tabpanel" aria-labelledby="tab-Notes">
<div class="card mb-0 mt-3">
<div class="card-body pt-2 pb-2">
<xsl:choose>
<xsl:when test="count(//notes/record) = 0">
<div class="col fs-6 text-danger fw-bold fst-italic mt-1 mb-1">
<xsl:text>There are no Notes...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-responsive scrollable-30">
<table class="table table-sm table-striped base-table table-auto" id="notes-table">
<thead class="sticky-header">
<th>Date</th>
<th>User</th>
<th>Type</th>
<th>Note</th>
</thead>
<tbody>
<xsl:apply-templates select="//notes" />
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
<div class="buttons mt-2 mb-1">
<button type="button" class="btn btn-sm btn-primary mt-2 me-1 mb-1 btnAddNote">
<i class="bi bi-plus me-2"/>Add Note</button>
</div>
</div>
</div>
</div> <!-- Notes -->
</div> <!-- Tab Content -->
</div>
</div>
</div>
<!-- Form to Print the User Summary -->
<form style="display:inline;" id="PrintUserSummaryForm" method="post" action="" target="PrintTab">
<input type="hidden" name="action" value="print"/>
<input type="hidden" name="report" value="Print_UserSummary"/>
<input type="hidden" name="user_serial" value=""/>
</form>
</xsl:template>
<!-- Template for Dropdowns -->
<xsl:template name="dropdowns">
<xsl:param name="dropdown-name"/>
<xsl:param name="current-value"/>
<option value="">Choose...</option>
<xsl:for-each select="//dropdowns/record[dropdowntype_name = $dropdown-name]">
<option value="{dropdown_serial}" data-tokens="{dropdown_value}">
<xsl:if test="dropdown_serial = $current-value">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
<xsl:value-of select="dropdown_value" />
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for Notes Tab -->
<xsl:template match="notes/record">
<tr class="hoverable note-row" data-note-serial="{note_serial}">
<td class="note_timestamp text-nowrap">
<xsl:value-of select="note_timestamp_verbose"/>
</td>
<td class="note_origin text-nowrap">
<xsl:value-of select="note_origin"/>
</td>
<td class="note_type text-nowrap">
<xsl:value-of select="note_type"/>
</td>
<td class="note_text pre-wrap">
<xsl:value-of select="note_text"/>
</td>
</tr>
</xsl:template>
<!-- Template for Users Subscriptions Tab -->
<xsl:template match="usersubscriptions/record">
<tr class="usersubscription-row hoverable" data-usersubscription-serial="{usersubscription_serial}">
<td class="subscription_title">
<xsl:value-of select="concat(subscription_title, '-', subscription_description)"/>
</td>
<td class="usersubscription_stop_date_verbose">
<xsl:value-of select="usersubscription_stop_date_verbose"/>
</td>
<xsl:choose>
<xsl:when test="usersubscription_status = 'EXPIRED'">
<td class="usersubscription_status">
<span class="badge rounded-pill text-bg-danger">
<xsl:value-of select="usersubscription_status"/>
</span>
</td>
</xsl:when>
<xsl:otherwise>
<td class="usersubscription_status">
<span class="badge text-bg-success">
<xsl:value-of select="usersubscription_status"/>
</span>
</td>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:template>
</xsl:stylesheet>
+143
View File
@@ -0,0 +1,143 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Journal</xsl:param>
<xsl:param name="PAGE-NAME">viewJournal</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//journal/@count"/>
<xsl:variable name="PAGINATION_START" select="//journal/@start"/>
<xsl:variable name="PAGINATION_END" select="//journal/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//journal/@page"/>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-2 border-bottom-0">
<i class="bi bi-book me-2" aria-hidden="true"/>
<xsl:value-of select="$PAGE-TITLE"/>
<xsl:if test="$PAGINATION_COUNT > 0">
<xsl:text> | Showing </xsl:text>
<xsl:value-of select="format-number($PAGINATION_START, '###,##0')"/>
<xsl:text> to </xsl:text>
<xsl:value-of select="format-number($PAGINATION_END, '###,##0')"/>
<xsl:text> of </xsl:text>
<xsl:value-of select="format-number($PAGINATION_COUNT, '###,##0')"/>
</xsl:if>
</div>
<div class="card-body">
<div class="row align-items-center mt-2 mb-3">
<div class="col-sm-4">
<div class="input-group input-group-sm">
<input type="text" class="form-control autosave" name="find_journal" id="find_journal" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_journal']/popover_placeholder}" autofocus="autofocus"/>
<button type="button" class="btn btn-primary fw-bold btnFind" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'find_journal']/popover_text}" data-bs-html="true" data-bs-custom-class="custom-tooltip"><i class="bi bi-search"/></button>
<button type="button" class="btn btn-primary fw-bold btnClearFind" data-bs-toggle="tooltip" data-bs-title="Clear Find" data-bs-custom-class="custom-tooltip"><i class="bi bi-arrow-clockwise"/></button>
</div>
</div>
<div class="col-auto">
<div class="input-group input-group-sm" data-bs-toggle="tooltip" data-bs-title="Show Per Page" data-bs-custom-class="custom-tooltip">
<div class="input-group-text"><i class="bi bi-list-ol"/></div>
<select class="form-select autosave" name="journals_per_page" id="journals_per_page">
<option value="20">20</option>
<option value="40">40</option>
<option value="60">60</option>
<option value="80">80</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<div class="buttons mt-1 mb-1">
<button type="button" class="btn btn-sm btn-primary me-2 btnDone"><i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnRefresh"><i class="bi bi-arrow-clockwise me-2"/>Refresh</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnClear"><i class="bi bi-trash3 me-2"/>Clear</button>
<div class="btn-group ms-2" role="group">
<xsl:if test="$PAGINATION_PAGE > 1">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="first" data-bs-toggle="tooltip" data-bs-title="First Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-bar-left me-1"/>First</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="previous" data-bs-toggle="tooltip" data-bs-title="Previous Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-left me-1"/>Previous</button>
</xsl:if>
<xsl:if test="$PAGINATION_COUNT > $PAGINATION_END">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="next" data-bs-toggle="tooltip" data-bs-title="Next Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-right me-1"/>Next</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="last" data-bs-toggle="tooltip" data-bs-title="Last Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-bar-right me-1"/>Last</button>
</xsl:if>
</div>
</div>
<hr class="mt-3 mb-2"/>
<xsl:choose>
<xsl:when test="count(//journal/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 mb-1">
<xsl:text>There are no Journal Entries to View...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-responsive table-wrapper">
<table class="table table-sm table-striped base-table table-auto" id="journal-table">
<thead>
<th>Timestamp</th>
<th>Message</th>
<th>Origin</th>
<th>IP</th>
</thead>
<tbody>
<xsl:apply-templates select="//journal/record"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template to build table rows -->
<xsl:template match="journal/record">
<tr class="journal-row text-nowrap">
<td class="journal_timestamp"><xsl:value-of select="journal_timestamp_verbose"/></td>
<td class="journal_entry" ><xsl:value-of select="journal_entry"/></td>
<td class="journal_origin" ><xsl:value-of select="journal_origin" /></td>
<td class="journal_ip" ><xsl:value-of select="journal_ip" /></td>
</tr>
</xsl:template>
</xsl:stylesheet>
+213
View File
@@ -0,0 +1,213 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Support Tickets</xsl:param>
<xsl:param name="PAGE-NAME">viewSupportTickets</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//supporttickets/@count"/>
<xsl:variable name="PAGINATION_START" select="//supporttickets/@start"/>
<xsl:variable name="PAGINATION_END" select="//supporttickets/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//supporttickets/@page"/>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-tools me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
<xsl:if test="$PAGINATION_COUNT > 0">
<xsl:text> | Showing </xsl:text>
<xsl:value-of select="format-number($PAGINATION_START, '###,##0')"/>
<xsl:text> to </xsl:text>
<xsl:value-of select="format-number($PAGINATION_END, '###,##0')"/>
<xsl:text> of </xsl:text>
<xsl:value-of select="format-number($PAGINATION_COUNT, '###,##0')"/>
</xsl:if>
</div>
<div class="card-body">
<div class="row align-items-center mt-2 mb-2">
<div class="col-lg-4 mb-2">
<div class="input-group input-group-sm">
<input type="text" class="form-control autosave" name="find_supportticket" id="find_supportticket" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_supportticket']/popover_placeholder}" autofocus="autofocus"/>
<button type="button" class="btn btn-primary fw-bold btnFind" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'find_supportticket']/popover_text}" data-bs-html="true" data-bs-custom-class="custom-tooltip">
<i class="bi bi-search"/>
</button>
<button type="button" class="btn btn-primary fw-bold btnClearFind" data-bs-toggle="tooltip" data-bs-title="Clear Find" data-bs-custom-class="custom-tooltip">
<i class="bi bi-arrow-clockwise"/>
</button>
</div>
</div>
<div class="col-auto mb-2">
<div class="input-group input-group-sm" data-bs-toggle="tooltip" data-bs-title="Show Per Page" data-bs-custom-class="custom-tooltip">
<div class="input-group-text">
<i class="bi bi-list-ol"/>
</div>
<select class="form-select" name="supporttickets_per_page" id="supporttickets_per_page">
<option value="20">20</option>
<option value="40">40</option>
<option value="60">60</option>
<option value="80">80</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<!-- Action Buttons -->
<div class="buttons mt-1 mb-1">
<xsl:if test="not($USER_ROLE = 'Guest')">
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 btnAdd">
<i class="bi bi-plus-lg me-2"/>Add</button>
</xsl:if>
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 btnDone">
<i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 btnRefresh">
<i class="bi bi-arrow-clockwise me-2"/>Refresh</button>
<xsl:if test="count(//supporttickets/record) > 0">
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 btnSelectAll" >
<i class="bi bi-check2-square me-2"/>Select All</button>
</xsl:if>
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 btnDeselectAll d-none">
<i class="bi bi-square me-2"/>Deselect All</button>
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 btnPrintSelected d-none">
<i class="bi bi-printer me-2"/>Print Selected</button>
<div class="btn-group ms-2 mb-2" role="group">
<xsl:if test="$PAGINATION_PAGE > 1">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="first" data-bs-toggle="tooltip" data-bs-title="First Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-bar-left me-1"/>First</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="previous" data-bs-toggle="tooltip" data-bs-title="Previous Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-left me-1"/>Previous</button>
</xsl:if>
<xsl:if test="$PAGINATION_COUNT > $PAGINATION_END">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="next" data-bs-toggle="tooltip" data-bs-title="Next Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-right me-1"/>Next</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="last" data-bs-toggle="tooltip" data-bs-title="Last Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-bar-right me-1"/>Last</button>
</xsl:if>
</div>
</div>
<hr class="mt-2 mb-2"/>
<xsl:choose>
<xsl:when test="count(//supporttickets/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 mb-1">
<xsl:text>There are no Support Tickets to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-responsive">
<table class="table table-sm table-striped table-hover base-table" id="supporttickets-table">
<thead class="sticky-header" data-theme="{$THEME}">
<th class="text-center">Select</th>
<th class="sortable text-nowrap" data-order-by="supportticket_creator" >Customer</th>
<th class="sortable text-nowrap" data-order-by="supportticket_subject" >Subject</th>
<th class="sortable text-nowrap" data-order-by="supportticket_catagory_verbose">Catagory</th>
<th class="sortable text-nowrap" data-order-by="supportticket_message" >Message</th>
<th class="sortable text-nowrap" data-order-by="supportticket_created_verbose" >Submitted</th>
<th class="sortable text-nowrap" data-order-by="supportticket_status" >Status</th>
</thead>
<tbody>
<xsl:apply-templates select="//supporttickets"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
<!-- Form to Print Selected Tickets -->
<form style="display:inline;" id="PrintSupportTicketForm" method="post" action="" target="PrintTab">
<input type="hidden" name="action" value="print"/>
<input type="hidden" name="report" value="Print_Selected_SupportTickets"/>
<input type="hidden" name="selected_supporttickets" value=""/>
</form>
</xsl:template>
<!-- Template for RDI tows -->
<xsl:template match="supporttickets/record">
<tr class="hoverable supportticket-row text-nowrap" data-supportticket-serial="{supportticket_serial}">
<td class="checkbox text-center selection-checkboxes selection-area">
<input type="checkbox" class="selection-checkbox selection-area" name="selected[]" value="{supportticket_serial}">
</input>
<span class="selection-area user-select-none">&#160;</span>
</td>
<td class="supportticket_creator">
<xsl:value-of select="supportticket_creator"/>
</td>
<td class="supportticket_subject text-nowrap">
<xsl:value-of select="supportticket_subject"/>
</td>
<td class="supportticket_catagory_verbose text-nowrap">
<xsl:value-of select="supportticket_catagory_verbose"/>
</td>
<td class="supportticket_message">
<xsl:value-of select="supportticket_message_raw"/>
</td>
<td class="supportticket_created_verbose">
<xsl:value-of select="supportticket_created_verbose"/>
</td>
<td class="supportticket_status">
<xsl:value-of select="supoortticket_status_verbose"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>