Initial comming of full program to main branch
This commit is contained in:
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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
@@ -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"><!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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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"> </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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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"> </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>
|
||||
@@ -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"> </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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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
@@ -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"><!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>
|
||||
@@ -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>
|
||||
@@ -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.
|
||||
That’s 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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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"> </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>
|
||||
Reference in New Issue
Block a user