first commit

This commit is contained in:
2026-07-03 15:46:56 -04:00
commit bf8532aa1e
1545 changed files with 450330 additions and 0 deletions
+78
View File
@@ -0,0 +1,78 @@
<?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 Code</xsl:param>
<xsl:param name="PAGE-NAME">addCountyCode</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-plus-lg 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="CountyCodes.addCountyCode"/>
<input type="hidden" name="step" value="add"/>
<div class="col-lg-2 mb-3">
<label class="form-label" for="countycode_code">Code</label>
<input type="text" class="form-control form-control-sm" name="countycode_code" id="countycode_code" maxlength="3" autocomplete="off" autofocus="autofocus"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="countycode_name">Name</label>
<input type="text" class="form-control form-control-sm" name="countycode_name" id="countycode_name" maxlength="120" autocomplete="off"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="countycode_state">State</label>
<select class="form-control form-control-sm" name="countycode_state" id="countycode_state" size="1">
<xsl:call-template name="states"/>
</select>
</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>
<!-- Template for States dropdown -->
<xsl:template name="states">
<option value="">Choose...</option>
<xsl:for-each select="//Constants/States/State">
<option value="{@abbreviation}">
<xsl:value-of select="."/>
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add History Code</xsl:param>
<xsl:param name="PAGE-NAME">addHistoryCode</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-plus-lg 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="HistoryCodes.addHistoryCode"/>
<input type="hidden" name="step" value="add"/>
<div class="col-lg-6 mb-3">
<label class="form-label" for="historycode_code">Code</label>
<input type="text" class="form-control form-control-sm" name="historycode_code" id="historycode_code" maxlength="1" autocomplete="off" autofocus="autofocus"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="historycode_description">Description</label>
<input type="text" class="form-control form-control-sm" name="historycode_description" id="historycode_description" maxlength="120" autocomplete="off"/>
</div>
</form>
<div class="buttons mt-4 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave">
<i class="bi bi-save me-2"/>Save</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add Political Party</xsl:param>
<xsl:param name="PAGE-NAME">addPoliticalParty</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-plus-lg 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="PoliticalParties.addPoliticalParty"/>
<input type="hidden" name="step" value="add"/>
<div class="col-lg-6 mb-3">
<label class="form-label" for="politicalparty_code">Code</label>
<input type="text" class="form-control form-control-sm" name="politicalparty_code" id="politicalparty_code" maxlength="3" autocomplete="off" autofocus="autofocus"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="politicalparty_name">Name</label>
<input type="text" class="form-control form-control-sm" name="politicalparty_name" id="politicalparty_name" maxlength="120" autocomplete="off"/>
</div>
</form>
<div class="buttons mt-4 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave">
<i class="bi bi-save me-2"/>Save</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add Race Code</xsl:param>
<xsl:param name="PAGE-NAME">addRaceCode</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-plus-lg 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="RaceCodes.addRaceCode"/>
<input type="hidden" name="step" value="add"/>
<div class="col-lg-6 mb-3">
<label class="form-label" for="racecode_code">Code</label>
<input type="text" class="form-control form-control-sm" name="racecode_code" id="racecode_code" maxlength="1" autocomplete="off" autofocus="autofocus"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="racecode_description">Description</label>
<input type="text" class="form-control form-control-sm" name="racecode_description" id="racecode_description" maxlength="120" 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>
+106
View File
@@ -0,0 +1,106 @@
<?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_service_level">Service Level</label>
<select class="form-control form-control-sm search-dropdown" name="subscription_service_level" id="subscription_service_level" size="1">
<xsl:call-template name="dropdowns">
<xsl:with-param name="dropdown-name">service_levels</xsl:with-param>
</xsl:call-template>
</select>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="subscription_market">Market</label>
<select class="form-control form-control-sm search-dropdown" name="subscription_market" id="subscription_market" size="1">
<xsl:call-template name="dropdowns">
<xsl:with-param name="dropdown-name">markets</xsl:with-param>
</xsl:call-template>
</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 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>
+129
View File
@@ -0,0 +1,129 @@
<?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"/>
|
<xsl:value-of select="//users/record/user_id"/>
</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-5 mb-3">
<label class="form-label" for="subscription_serial">Subscription Title</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>
<div class="row">
<div class="col-lg-3 mb-3">
<label class="form-label" for="subscription_start_date">Start Date</label>
<div class="input-group input-group-sm subscription_start_date">
<input type="text" class="form-control form-control-sm date-mask" name="subscription_start_date" id="subscription_start_date" value="{$TODAY_MMDDYYYY}"/>
<button class="btn btn-sm btn-outline-primary btnSubscriptionStartDateCalendar" 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="subscription_end_date">End Date</label>
<div class="input-group input-group-sm subscription_end_date">
<input type="text" class="form-control form-control-sm date-mask" name="subscription_end_date" id="subscription_end_date" value="{$TODAY_MMDDYYYY}"/>
<button class="btn btn-sm btn-outline-primary btnSubscriptionEndDateCalendar" 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 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 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>
<!-- 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_full_title"/>
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+100
View File
@@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!--<meta http-equiv="refresh" content="60"></meta>-->
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Budgets Months</xsl:param>
<xsl:param name="PAGE-NAME">viewBudgetMonths</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-calendar3 me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<!-- Action Buttons -->
<div class="buttons mt-2 mb-2">
<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>
</div>
<hr class="mt-3 mb-2"/>
<xsl:choose>
<xsl:when test="count(//budgetmonths/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 ">
<xsl:text>There are no Budget Months to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive scrollable">
<table class="table table-sm table-striped table-hover base-table" id="budgetmonth-table">
<thead class="sticky-header" data-theme="{$THEME}">
<!--<th class="text-nowrap">Month</th>-->
</thead>
<tbody>
<xsl:apply-templates select="//budgetmonths"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="budgetmonths/record">
<tr class="hoverable budgetmonth-row" data-budgetmonth-serial="{budgetmonth_serial}">
<td class="budget_month">
<xsl:value-of select="budgetmonth_month_verbose"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+107
View File
@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Choose Export</xsl:param>
<xsl:param name="PAGE-NAME">chooseExport</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="fa-regular fa-circle-user me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Export.chooseExport"/>
<input type="hidden" name="step" value="run"/>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="export_processdate">Process Date</label>
<div class="input-group input-group-sm process_date">
<input type="text" class="form-control form-control-sm date-mask" name="export_processdate" id="export_processdate" autocomplete="no" maxlength="10" autofocus="autofocus"/>
<button class="btn btn-sm btn-outline-primary btnProcessDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
<i class="fa-solid fa-calendar-days"/>
</button>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="export_accounting_period">Accounting Period</label>
<input type="text" class="form-control form-control-sm autosave accounting-period" name="export_accounting_period" id="export_accounting_period" maxlength="7" autocomplete="off"/>
</div>
</div>
<div class="col-lg-4 mb-3">
<label class="form-label" for="export_type">Export Type</label>
<select class="form-control form-control-sm search-dropdown" name="export_type" id="export_type" size="1">
<xsl:call-template name="dropdowns">
<xsl:with-param name="dropdown-name">export_type</xsl:with-param>
</xsl:call-template>
</select>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnRun">
<i class="fa-solid fa-file-export me-2"/>Run</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-check-lg me-2"/>Cancel</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Dropdowns -->
<xsl:template name="dropdowns">
<xsl:param name="dropdown-name"/>
<option value="">Choose...</option>
<xsl:for-each select="//dropdowns/record[dropdowntype_name = $dropdown-name]">
<option value="{dropdown_serial}" data-tokens="{dropdown_value}">
<xsl:if test="boolean(number(dropdown_default)) = true()">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
<xsl:value-of select="dropdown_value" />
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+112
View File
@@ -0,0 +1,112 @@
<?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 Code</xsl:param>
<xsl:param name="PAGE-NAME">editCountyCode</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-plus-lg 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="CountyCodes.editCountyCode"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="countycode_serial" value="{//countycodes/record/countycode_serial}"/>
<div class="col-lg-6 mb-3">
<label class="form-label" for="countycode_code">Code</label>
<input type="text" class="form-control form-control-sm" name="countycode_code" id="countycode_code" maxlength="3" autocomplete="off" autofocus="autofocus"
value="{//countycodes/record/countycode_code}"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="countycode_name">Name</label>
<input type="text" class="form-control form-control-sm" name="countycode_name" id="countycode_name" maxlength="120" autocomplete="off"
value="{//countycodes/record/countycode_name}"/>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="countycode_state">State</label>
<select class="form-control form-control-sm" name="countycode_state" id="countycode_state" size="1">
<xsl:call-template name="states">
<xsl:with-param name="current-value">
<xsl:value-of select="//countycodes/record/countycode_state"/>
</xsl:with-param>
</xsl:call-template>
</select>
</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="countycode_active" id="countycode_active" value="true">
<xsl:if test="boolean(number(//countycodes/record/countycode_active)) = true()">
<xsl:attribute name="checked"/>
</xsl:if>
</input>
<label class="form-check-label" for="countycode_active">Active</label>
</div>
</div>
</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-trash me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for States dropdown -->
<xsl:template name="states">
<xsl:param name="current-value"/>
<option value="">Choose...</option>
<xsl:for-each select="//Constants/States/State">
<option value="{@abbreviation}">
<xsl:if test="@abbreviation = $current-value">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
<xsl:value-of select="."/>
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+84
View File
@@ -0,0 +1,84 @@
<?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 History Code</xsl:param>
<xsl:param name="PAGE-NAME">editHistoryCode</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-plus-lg 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="HistoryCodes.editHistoryCode"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="historycode_serial" value="{//historycodes/record/historycode_serial}"/>
<div class="col-lg-6 mb-3">
<label class="form-label" for="historycode_code">Code</label>
<input type="text" class="form-control form-control-sm" name="historycode_code" id="historycode_code" maxlength="1" autocomplete="off" autofocus="autofocus"
value="{//historycodes/record/historycode_code}"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="historycode_description">Description</label>
<input type="text" class="form-control form-control-sm" name="historycode_description" id="historycode_description" maxlength="120" autocomplete="off"
value="{//historycodes/record/historycode_description}"/>
</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="historycode_active" id="historycode_active" value="true">
<xsl:if test="boolean(number(//historycodes/record/historycode_active)) = true()">
<xsl:attribute name="checked"/>
</xsl:if>
</input>
<label class="form-check-label" for="historycode_active">Active</label>
</div>
</div>
</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-trash me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+84
View File
@@ -0,0 +1,84 @@
<?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 Political Party</xsl:param>
<xsl:param name="PAGE-NAME">editPoliticalParty</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-plus-lg 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="PoliticalParties.editPoliticalParty"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="politicalparty_serial" value="{//politicalparties/record/politicalparty_serial}"/>
<div class="col-lg-6 mb-3">
<label class="form-label" for="politicalparty_code">Code</label>
<input type="text" class="form-control form-control-sm" name="politicalparty_code" id="politicalparty_code" maxlength="3" autocomplete="off" autofocus="autofocus"
value="{//politicalparties/record/politicalparty_code}"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="politicalparty_name">Name</label>
<input type="text" class="form-control form-control-sm" name="politicalparty_name" id="politicalparty_name" maxlength="120" autocomplete="off"
value="{//politicalparties/record/politicalparty_name}"/>
</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="politicalparty_active" id="politicalparty_active" value="true">
<xsl:if test="boolean(number(//politicalparties/record/politicalparty_active)) = true()">
<xsl:attribute name="checked"/>
</xsl:if>
</input>
<label class="form-check-label" for="politicalparty_active">Active</label>
</div>
</div>
</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-trash me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+84
View File
@@ -0,0 +1,84 @@
<?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 Race Code</xsl:param>
<xsl:param name="PAGE-NAME">editRaceCode</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-plus-lg 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="RaceCodes.editRaceCode"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="racecode_serial" value="{//racecodes/record/racecode_serial}"/>
<div class="col-lg-6 mb-3">
<label class="form-label" for="racecode_code">Code</label>
<input type="text" class="form-control form-control-sm" name="racecode_code" id="racecode_code" maxlength="1" autocomplete="off" autofocus="autofocus"
value="{//racecodes/record/racecode_code}"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="racecode_description">Description</label>
<input type="text" class="form-control form-control-sm" name="racecode_description" id="racecode_description" maxlength="120" autocomplete="off"
value="{//racecodes/record/racecode_description}"/>
</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="racecode_active" id="racecode_active" value="true">
<xsl:if test="boolean(number(//racecodes/record/racecode_active)) = true()">
<xsl:attribute name="checked"/>
</xsl:if>
</input>
<label class="form-check-label" for="racecode_active">Active</label>
</div>
</div>
</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-trash me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+116
View File
@@ -0,0 +1,116 @@
<?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_service_level">Service Level</label>
<select class="form-control form-control-sm search-dropdown" name="subscription_service_level" id="subscription_service_level" size="1">
<xsl:call-template name="dropdowns">
<xsl:with-param name="dropdown-name">service_levels</xsl:with-param>
<xsl:with-param name="current-value">
<xsl:value-of select="//subscriptions/record/subscription_service_level"/>
</xsl:with-param>
</xsl:call-template>
</select>
</div>
</div>
<div class="row">
<div class="col-lg-5 mb-3">
<label class="form-label" for="subscription_market">Market</label>
<select class="form-control form-control-sm search-dropdown" name="subscription_market" id="subscription_market" size="1">
<xsl:call-template name="dropdowns">
<xsl:with-param name="dropdown-name">markets</xsl:with-param>
<xsl:with-param name="current-value">
<xsl:value-of select="//subscriptions/record/subscription_market"/>
</xsl:with-param>
</xsl:call-template>
</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 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>
</xsl:stylesheet>
+140
View File
@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit User</xsl:param>
<xsl:param name="PAGE-NAME">editUser</xsl:param>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-person-circle me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
|
<xsl:value-of select="//users/record/user_name"/>
|
<xsl:value-of select="//users/record/user_client_name"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Users.editUser"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="user_serial" id="user_serial" value="{//users/record/user_serial}"/>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="user_name">Name</label>
<input type="text" class="form-control form-control-sm autosave" name="user_name" id="user_name" maxlength="100" autocomplete="off" autofocus="autofocus" value="{//users/record/user_name}"/>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="user_email">Email</label>
<input type="text" class="form-control form-control-sm autosave" name="user_email" id="user_email" maxlength="128" autocomplete="off" value="{//users/record/user_email}"/>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="user_client_name">Client Name</label>
<input type="text" class="form-control form-control-sm" name="user_client_name" id="user_client_name" maxlength="128" autocomplete="off" value="{//users/record/user_client_name}"/>
</div>
</div>
<div class="row">
<div class="col-lg-3 mb-4">
<label class="form-label" for="user_role">Role</label>
<select class="form-control form-control-sm search-dropdown" name="user_role" id="user_role" size="1">
<xsl:apply-templates select="//Constants/UserRoles"/>
</select>
</div>
</div>
<div class="row">
<label class="mb-1" for="user_active">Active Status</label>
<div class="col-auto mb-3">
<div class="form-check">
<input class="form-check-input" type="checkbox" name="user_active" id="user_active" value="true">
<xsl:if test="boolean(number(//users/record/user_active)) = true()">
<xsl:attribute name="checked"/>
</xsl:if>
</input>
<label class="form-check-label" for="user_active">Active</label>
</div>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave">
<i class="bi bi-save me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnDelete">
<i class="bi bi-trash me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Role dropdown -->
<xsl:template match="Constants/UserRoles">
<option value="">Choose...</option>
<xsl:for-each select="UserRole">
<xsl:sort select="."/>
<option value="{.}" data-tokens="{.}">
<xsl:if test=". = //users/record/user_role">
<xsl:attribute name="selected"/>
</xsl:if>
<xsl:value-of select="." />
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+131
View File
@@ -0,0 +1,131 @@
<?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"/>
|
<xsl:value-of select="//users/record/user_id"/>
</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="user_serial" value="{//users/record/user_serial}"/>
<input type="hidden" name="usersubscription_serial" value="{//usersubscription/record/usersubscription_serial}" />
<div class="row">
<div class="col-lg-5">
<label class="form-label" for="subscription_serial">Subscription Title</label>
<p>
<xsl:value-of select="//usersubscription/record/subscription_full_title"/>
</p>
</div>
</div>
<div class="row">
<div class="col-lg-3 mb-3">
<label class="form-label" for="subscription_start_date">Start Date</label>
<div class="input-group input-group-sm subscription_start_date">
<input type="text" class="form-control form-control-sm date-mask" name="subscription_start_date" id="subscription_start_date" value="{//usersubscription/record/usersubscription_start_date_verbose}"/>
<button class="btn btn-sm btn-outline-primary btnSubscriptionStartDateCalendar" 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="subscription_end_date">End Date</label>
<div class="input-group input-group-sm subscription_end_date">
<input type="text" class="form-control form-control-sm date-mask" name="subscription_end_date" id="subscription_end_date" value="{//usersubscription/record/usersubscription_end_date_verbose}"/>
<button class="btn btn-sm btn-outline-primary btnSubscriptionEndDateCalendar" 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 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-box-arrow-left 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>
<!-- 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_full_title"/>
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+173
View File
@@ -0,0 +1,173 @@
<?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">Voters</xsl:param>
<xsl:param name="PAGE-NAME">manageVoters</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//voters/@count"/>
<xsl:variable name="PAGINATION_START" select="//voters/@start"/>
<xsl:variable name="PAGINATION_END" select="//voters/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//voters/@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-people 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_voter" id="find_voter" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_voter']/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_voter']/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="voters_per_page" id="voters_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-1 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(//voters/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 ">
<xsl:text>There are no Voters to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive scrollable">
<table class="table table-sm table-striped table-hover base-table table-auto" id="voters-table">
<thead class="sticky-header" data-theme="{$THEME}">
<th class="text-nowrap">Voter ID</th>
<th class="text-nowrap">Last Name</th>
<th class="text-nowrap">First Name</th>
<th class="text-nowrap">Address</th>
<th class="text-nowrap">Party</th>
</thead>
<tbody>
<xsl:apply-templates select="//voters"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="voters/record">
<tr class="hoverable voters-row" data-voter-serial="{voter_serial}">
<td class="voter_id">
<xsl:value-of select="voter_id"/>
</td>
<td class="voter_name_first">
<xsl:value-of select="voter_name_first"/>
</td>
<td class="voter_name_last">
<xsl:value-of select="voter_name_last"/>
</td>
<td class="voter_address">
<xsl:value-of select="concat(voter_residence_address_1, ' ', voter_residence_city, ', ', voter_residence_state, ' ', voter_residence_zip)"/>
</td>
<td class="voter_party_affiliation">
<xsl:value-of select="voter_party_affiliation_verbose"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+687
View File
@@ -0,0 +1,687 @@
<?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="PAGE-TITLE">Search Licenses</xsl:param>
<xsl:param name="PAGE-NAME">searchLicenses</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//licenses/@count"/>
<xsl:variable name="PAGINATION_START" select="//licenses/@start"/>
<xsl:variable name="PAGINATION_END" select="//licenses/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//licenses/@page"/>
<xsl:template match="/">
<script src="js/system/bootstrap-autocomplete.min.js?version={$VERSION}"/>
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="row g-4">
<div class="col-lg-3">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 d-flex align-items-center">
<i class="bi bi-search 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="FWCLicenses.searchLicenses"/>
<input type="hidden" name="step" value="search"/>
<div class="row">
<div class="col-lg-12 mb-3">
<label class="form-label" for="license_search_type">License Search Type</label>
<select class="form-control form-control-sm" name="license_search_type" id="license_search_type" size="1" autofocus="autofocus">
<option value="">Choose...</option>
<xsl:call-template name="dropdowns">
<xsl:with-param name="dropdown-name" select="'license_search_type'"/>
<xsl:with-param name="selected-path" select="'license_search_type'"/>
</xsl:call-template>
</select>
</div>
</div>
<div class="d-none" id="recreational_search">
<div class="row">
<div class="col-lg-6 mb-3">
<label class="form-label" for="license_last_name">Last Name</label>
<input type="text" class="form-control form-control-sm" name="license_last_name" id="license_last_name" maxlength="100" autocomplete="off"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="license_first_name">First Name</label>
<input type="text" class="form-control form-control-sm" name="license_first_name" id="license_first_name" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-6 mb-3">
<label class="form-label" for="license_county">County</label>
<select class="form-control form-control-sm multiple-dropdown" multiple="multiple" name="license_county[]" id="license_county" size="1">
<xsl:call-template name="dropdowns">
<xsl:with-param name="dropdown-name" select="'florida_counties'"/>
<xsl:with-param name="selected-path" select="'florida_counties'"/>
</xsl:call-template>
</select>
</div>
</div>
<div class="row">
<div class="col-lg-12 mb-3">
<label class="form-label" for="license_type">License Type</label>
<select class="form-control form-control-sm multiple-dropdown" multiple="multiple" name="license_type[]" id="license_type" size="1">
<xsl:call-template name="dropdowns">
<xsl:with-param name="dropdown-name" select="'license_types'"/>
<xsl:with-param name="selected-path" select="'license_types'"/>
</xsl:call-template>
<!--<xsl:apply-templates select="//licensetypes"/>-->
</select>
</div>
</div>
<div class="row">
<div class="col-lg-6 mb-3">
<label class="form-label" for="license_start_date">Start Date</label>
<div class="input-group input-group-sm license_start_date">
<input type="text" class="form-control form-control-sm date-mask" name="license_start_date" id="license_start_date" autocomplete="off" value=""/>
<button class="btn btn-sm btn-outline-primary btnLicenseStartDateCalendar" type="button" tabindex="-1">
<i class="bi bi-calendar3"></i>
</button>
</div>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="license_expire_date">Expire Date</label>
<div class="input-group input-group-sm license_expire_date">
<input type="text" class="form-control form-control-sm date-mask" name="license_expire_date" id="license_expire_date" autocomplete="off" value=""/>
<button class="btn btn-sm btn-outline-primary btnLicenseExpireDateCalendar" type="button" tabindex="-1">
<i class="bi bi-calendar3"></i>
</button>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 mb-3">
<label class="form-label" for="license_gender">Gender</label>
<select class="form-control form-control-sm multiple-dropdown" multiple="multiple" name="license_gender[]" id="license_gender" size="1">
<xsl:apply-templates select="//Constants/Genders"/>
</select>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="license_ethnicity">Ethnicity</label>
<select class="form-control form-control-sm multiple-dropdown" multiple="multiple" name="license_ethnicity[]" id="license_ethnicity" size="1">
<xsl:call-template name="dropdowns">
<xsl:with-param name="dropdown-name" select="'ethnicities'"/>
<xsl:with-param name="selected-path" select="'ethnicities'"/>
</xsl:call-template>
</select>
</div>
</div>
</div>
<div class="d-none" id="commercial_search">
<div class="row">
<div class="col-lg-12 mb-3">
<label class="form-label" for="commercial_license_company_or_last_name">Company/Last Name</label>
<input type="text" class="form-control form-control-sm" name="commercial_license_company_or_last_name" id="commercial_license_company_or_last_name" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-6 mb-3">
<label class="form-label" for="license_code">License Codes</label>
<select class="form-control form-control-sm multiple-dropdown" multiple="multiple" name="license_code[]" id="license_code" size="1">
<xsl:apply-templates select="//licensecodes"/>
</select>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="commercial_license_number">License Number</label>
<input type="text" class="form-control form-control-sm licensenumber-autocomplete" name="commercial_license_number" id="commercial_license_number" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-6 mb-3">
<label class="form-label" for="license_county">County</label>
<select class="form-control form-control-sm multiple-dropdown" multiple="multiple" name="license_county[]" id="license_county" size="1">
<xsl:call-template name="dropdowns">
<xsl:with-param name="dropdown-name" select="'florida_counties'"/>
<xsl:with-param name="selected-path" select="'florida_counties'"/>
</xsl:call-template>
</select>
</div>
</div>
<div class="row">
<div class="col-md-12 mb-3">
<label class="form-label">Tag Quantity</label>
<div class="input-group input-group-sm">
<span class="input-group-text">From: </span>
<input type="text" class="form-control form-control-sm me-2 numeric-mask" name="commercial_license_total_tag_qty_from" id="commercial_license_total_tag_qty_from" maxlength="6"/>
<span class="input-group-text">To: </span>
<input type="text" class="form-control form-control-sm numeric-mask" name="commercial_license_total_tag_qty_to" id="commercial_license_total_tag_qty_to" maxlength="6"/>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 mb-3">
<label class="form-label">Begin Date Range</label>
<div class="input-group input-group-sm begin_date">
<span class="input-group-text">From:</span>
<input type="text" class="form-control form-control-sm date-mask" name="commercial_license_begin_date_from" id="commercial_license_begin_date_from" autocomplete="off" maxlength="10"/>
<button class="btn btn-outline-primary btnBeginDateFromCalendar" type="button" data-target="#commercial_license_begin_date_from" data-bs-toggle="tooltip" data-bs-title="Calendar" tabindex="-1">
<i class="bi bi-calendar3"></i>
</button>
<span class="input-group-text ms-2">To:</span>
<input type="text" class="form-control form-control-sm date-mask" name="commercial_license_begin_date_to" id="commercial_license_begin_date_to" autocomplete="off" maxlength="10"/>
<button class="btn btn-outline-primary btnBeginDateToCalendar" type="button" data-target="#commercial_license_begin_date_to" data-bs-toggle="tooltip" data-bs-title="Calendar" tabindex="-1">
<i class="bi bi-calendar3"></i>
</button>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 mb-3">
<label class="form-label">Expire Date Range</label>
<div class="input-group input-group-sm expire_date">
<span class="input-group-text">From:</span>
<input type="text" class="form-control form-control-sm date-mask" name="commercial_license_expire_date_from" id="commercial_license_expire_date_from" autocomplete="off" maxlength="10"/>
<button class="btn btn-outline-primary btnExpireDateFromCalendar" type="button" data-target="commercial_license_expire_date_from" data-bs-toggle="tooltip" data-bs-title="Calendar" tabindex="-1">
<i class="bi bi-calendar3"></i>
</button>
<span class="input-group-text ms-2">To:</span>
<input type="text" class="form-control form-control-sm date-mask" name="commercial_license_expire_date_to" id="commercial_license_expire_date_to" autocomplete="off" maxlength="10"/>
<button class="btn btn-outline-primary btnExpireDateToCalendar" type="button" data-target="#commercial_license_expire_date_to" data-bs-toggle="tooltip" data-bs-title="Calendar" tabindex="-1">
<i class="bi bi-calendar3"></i>
</button>
</div>
</div>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnHome">
<i class="bi bi-house me-2"/>Home</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-clockwise 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> <!-- Search Card -->
</div>
<!-- Results Card -->
<div class="col-lg-9">
<xsl:choose>
<xsl:when test="count(//licenses/record) > 0">
<div class="card">
<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_licenses']/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="licenses_per_page" id="licenses_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(//licenses/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(//licenses/record) = 0">
<div class="filter-error fs-5 text-danger fw-bold fst-italic mb-1">
<xsl:text>There are no Licenses to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="filter-error fs-5 text-danger fw-bold fst-italic mb-1 d-none">
<xsl:text>There are no Licenses to view...</xsl:text>
</div>
<div class="table-responsive scrollable">
<table class="table table-sm table-striped table-hover base-table" id="licenses-table">
<xsl:choose>
<xsl:when test="//licenses/@type = 'commercial'">
<thead class="sticky-header" data-theme="{$THEME}">
<th class="text-center" >Select</th>
<th class="text-nowrap sortable" data-order-by="license_last_name" >Company/Last Name</th>
<th class="text-nowrap sortable" data-order-by="license_type" >License Code</th>
<th class="text-nowrap sortable" data-order-by="commercial_license_number" >License Number</th>
<th class="text-nowrap sortable" data-order-by="license_county" >County</th>
<th class="text-nowrap sortable text-end" data-order-by="commercial_license_total_tag_qty">Tag Qty</th>
<th class="text-nowrap sortable" data-order-by="license_start_date" >Begin Date</th>
<th class="text-nowrap sortable" data-order-by="license_expire_date" >Expire Date</th>
</thead>
</xsl:when>
<xsl:otherwise>
<thead class="sticky-header" data-theme="{$THEME}">
<th class="text-center" >Select</th>
<th class="text-nowrap sortable" data-order-by="license_first_name" >First Name</th>
<th class="text-nowrap sortable" data-order-by="license_last_name" >Last Name</th>
<th class="text-nowrap sortable" data-order-by="license_county" >County</th>
<th class="text-nowrap sortable" data-order-by="license_city" >City</th>
<th class="text-nowrap sortable" data-order-by="license_type" >Type</th>
<th class="text-nowrap sortable text-center" data-order-by="license_gender" >Gender</th>
<th class="text-nowrap sortable" data-order-by="license_ethnicity" >Ethnicity</th>
<th class="text-nowrap sortable" data-order-by="license_start_date" >Start Date</th>
<th class="text-nowrap sortable" data-order-by="license_expire_date">Expire Date</th>
</thead>
</xsl:otherwise>
</xsl:choose>
<tbody>
<xsl:apply-templates select="//licenses/record"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</xsl:when>
<xsl:otherwise>
<div class="card">
<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 Licenses to view...</xsl:text>
</div>
</div>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Dropdowns -->
<xsl:template name="dropdowns">
<xsl:param name="dropdown-name"/>
<!-- the node name inside searchhistory_parameters that holds <id> list -->
<xsl:param name="selected-path"/>
<!-- Grab the selected ids once -->
<xsl:variable name="selectedIds" select="/XML/searchhistory/record/searchhistory_parameters/*[name()=$selected-path]/id"/>
<xsl:for-each select="/XML/dropdowns/record[dropdowntype_name = $dropdown-name]">
<option value="{dropdown_serial}" data-tokens="{dropdown_value}">
<xsl:if test="$selectedIds = dropdown_serial">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
<xsl:value-of select="dropdown_value"/>
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for Gender dropdown -->
<xsl:template match="Constants/Genders">
<xsl:for-each select="Gender">
<xsl:sort select="."/>
<option value="{@abbreviation}" data-tokens="{@abbreviation}">
<xsl:value-of select="." />
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for License Types dropdown -->
<xsl:template match="licensetypes">
<xsl:for-each select="record">
<option value="{license_type}" data-tokens="{license_type}">
<xsl:value-of select="license_type"/>
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for Cities dropdown -->
<xsl:template match="cities">
<xsl:for-each select="record">
<option value="{city_name}" data-tokens="{city_name}">
<xsl:value-of select="city_name"/>
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for Commercial License Codes dropdown -->
<xsl:template match="licensecodes">
<xsl:for-each select="record">
<option value="{license_code}" data-tokens="{license_code}">
<xsl:value-of select="concat(license_code, ' - ', license_description)"/>
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for Recreational License rows -->
<xsl:template match="licenses/record">
<xsl:choose>
<xsl:when test="../@type = 'commercial'">
<xsl:call-template name="commercial-license-row"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="recreational-license-row"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="recreational-license-row">
<tr class="hoverable license-row text-nowrap" data-license-serial="{license_serial}">
<td class="checkbox text-center selection-checkboxes selection-area">
<input type="checkbox" class="selection-checkbox selection-area" name="selected[]" value="{license_serial}">
</input>
<span class="selection-area user-select-none">&#160;</span>
</td>
<td class="license_first_name filterable">
<xsl:value-of select="license_first_name"/>
</td>
<td class="license_last_name text-nowrap filterable">
<xsl:value-of select="license_last_name"/>
</td>
<td class="license_county text-nowrap filterable">
<xsl:value-of select="license_county"/>
</td>
<td class="license_city text-nowrap filterable">
<xsl:value-of select="license_city"/>
</td>
<td class="license_type filterable">
<xsl:value-of select="license_type"/>
</td>
<td class="license_gender text-center">
<xsl:value-of select="license_gender"/>
</td>
<td class="license_ethnicity filterable">
<xsl:value-of select="license_ethnicity"/>
</td>
<td class="license_start_date filterable">
<xsl:value-of select="license_start_date_verbose"/>
</td>
<td class="license_expire_date filterable">
<xsl:value-of select="license_expire_date_verbose"/>
</td>
</tr>
</xsl:template>
<!-- Template for Commercial License rows -->
<xsl:template name="commercial-license-row">
<tr class="hoverable license-row text-nowrap" data-license-serial="{license_serial}">
<td class="checkbox text-center selection-checkboxes selection-area">
<input type="checkbox" class="selection-checkbox selection-area" name="selected[]" value="{license_serial}">
</input>
<span class="selection-area user-select-none">&#160;</span>
</td>
<td class="license_last_name text-nowrap filterable">
<xsl:value-of select="license_last_name"/>
</td>
<td class="license_type filterable">
<xsl:value-of select="license_type"/>
</td>
<td class="commercial_license_number filterable">
<xsl:value-of select="commercial_license_number"/>
</td>
<td class="license_county text-nowrap filterable">
<xsl:value-of select="license_county"/>
</td>
<td class="commercial_license_total_tag_qty text-end filterable">
<xsl:value-of select="commercial_license_total_tag_qty"/>
</td>
<td class="license_start_date filterable">
<xsl:value-of select="license_start_date_verbose"/>
</td>
<td class="license_expire_date filterable">
<xsl:value-of select="license_expire_date_verbose"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+589
View File
@@ -0,0 +1,589 @@
<?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="PAGE-TITLE">Search Permit Facts</xsl:param>
<xsl:param name="PAGE-NAME">searchPermitFacts</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//permitfacts/@count"/>
<xsl:variable name="PAGINATION_START" select="//permitfacts/@start"/>
<xsl:variable name="PAGINATION_END" select="//permitfacts/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//permitfacts/@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 d-flex align-items-center">
<i class="bi bi-search me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
|
<xsl:value-of select="//subscriptions/record/subscription_full_title"/>
<span class="ms-auto">
Available Records: <xsl:value-of select="format-number(//userstotalavailablerecords/record/count, '#,##0')" />
</span>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="PermitFacts.searchPermitFacts"/>
<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="permitfact_company">Permit Holder</label>
<input type="text" class="form-control form-control-sm" name="permitfact_company" id="permitfact_company" maxlength="100" autocomplete="off" autofocus="autofocus"
value="{//searchhistory/record/searchhistory_parameters/permitfact_company}"/>
</div>
<div class="col-lg-4 mb-3">
<label class="form-label" for="permitfact_project_name">Project Name</label>
<input type="text" class="form-control form-control-sm" name="permitfact_project_name" id="permitfact_project_name" maxlength="100" autocomplete="off"
value="{//searchhistory/record/searchhistory_parameters/permitfact_project_name}"/>
</div>
<div class="col-lg-4 mb-3">
<label class="form-label" for="permitfact_project_zip">Zip Code</label>
<input type="text" class="form-control form-control-sm zip-mask" name="permitfact_project_zip" id="permitfact_project_zip" maxlength="20"
value="{//searchhistory/record/searchhistory_parameters/permitfact_project_zip}"/>
</div>
</div>
<div class="row">
<div class="col-lg-2 mb-3">
<label class="form-label" for="permitfact_project_city">City</label>
<select class="form-control form-control-sm multiple-dropdown" multiple="multiple" name="permitfact_project_city[]" id="permitfact_project_city" size="1">
<xsl:apply-templates select="//subscriptioncities"/>
</select>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="permitfact_county">County</label>
<select class="form-control form-control-sm multiple-dropdown" multiple="multiple" name="permitfact_county[]" id="permitfact_county" size="1">
<xsl:apply-templates select="//subscriptioncounties"/>
</select>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="permitfact_project_type">Project Type</label>
<select class="form-control form-control-sm multiple-dropdown" multiple="multiple" name="permitfact_project_type[]" id="permitfact_project_type" size="1">
<xsl:call-template name="dropdowns">
<xsl:with-param name="dropdown-name" select="'project_types'"/>
<xsl:with-param name="selected-path" select="'permitfact_project_type'"/>
</xsl:call-template>
</select>
</div>
<div class="col-lg-2 mb-3">
<label class="form-label" for="permitfact_work_type">Work Type</label>
<select class="form-control form-control-sm multiple-dropdown" multiple="multiple" name="permitfact_work_type[]" id="permitfact_work_type" size="1">
<xsl:call-template name="dropdowns">
<xsl:with-param name="dropdown-name" select="'work_types'"/>
<xsl:with-param name="selected-path" select="'permitfact_work_type'"/>
</xsl:call-template>
</select>
</div>
<div class="col-lg-3 mb-3">
<label class="form-label" for="permitfact_building_type">Building Type</label>
<select class="form-control form-control-sm multiple-dropdown" multiple="multiple" name="permitfact_building_type[]" id="permitfact_building_type" size="1">
<xsl:call-template name="dropdowns">
<xsl:with-param name="dropdown-name" select="'building_type'"/>
<xsl:with-param name="selected-path" select="'permitfact_building_type'"/>
</xsl:call-template>
</select>
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label class="form-label">Square Footage</label>
<div class="input-group input-group-sm">
<span class="input-group-text">From: </span>
<input type="text" class="form-control form-control-sm me-2 sqft-mask" name="permitfact_size_from" id="permitfact_size_from" maxlength="7" value="{//searchhistory/record/searchhistory_parameters/permitfact_size_from}"/>
<span class="input-group-text">To: </span>
<input type="text" class="form-control form-control-sm sqft-mask" name="permitfact_size_to" id="permitfact_size_to" maxlength="7" value="{//searchhistory/record/searchhistory_parameters/permitfact_size_to}"/>
</div>
</div>
<div class="col-md-6 mb-3">
<label class="form-label">Value Range</label>
<div class="input-group input-group-sm">
<span class="input-group-text">From: </span>
<input type="text" class="form-control form-control-sm me-2 money-mask" name="permitfact_value_from" id="permitfact_value_from" maxlength="18" value="{//searchhistory/record/searchhistory_parameters/permitfact_value_from}"/>
<span class="input-group-text">To: </span>
<input type="text" class="form-control form-control-sm money-mask" name="permitfact_value_to" id="permitfact_value_to" maxlength="18" value="{//searchhistory/record/searchhistory_parameters/permitfact_value_to}"/>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label class="form-label">Permit Issue Date Range</label>
<div class="input-group input-group-sm permit_date">
<span class="input-group-text">From:</span>
<input type="text" class="form-control form-control-sm date-mask" name="permitfact_permit_date_from" id="permitfact_permit_date_from" autocomplete="off" maxlength="10"
value="{//searchhistory/record/searchhistory_parameters/permitfact_permit_date_from}"/>
<button class="btn btn-outline-primary btnPermitDateFromCalendar" type="button" data-target="#permitfact_permit_date_from" data-bs-toggle="tooltip" data-bs-title="Calendar" tabindex="-1">
<i class="bi bi-calendar3"></i>
</button>
<span class="input-group-text ms-2">To:</span>
<input type="text" class="form-control form-control-sm date-mask" name="permitfact_permit_date_to" id="permitfact_permit_date_to" autocomplete="off" maxlength="10"
value="{//searchhistory/record/searchhistory_parameters/permitfact_permit_date_to}"/>
<button class="btn btn-outline-primary btnPermitDateToCalendar" type="button" data-target="#permitfact_permit_date_to" data-bs-toggle="tooltip" data-bs-title="Calendar" tabindex="-1">
<i class="bi bi-calendar3"></i>
</button>
</div>
</div>
<div class="col-md-6 mb-3">
<label class="form-label">Entry Date Range</label>
<div class="input-group input-group-sm entry_date">
<span class="input-group-text">From:</span>
<input type="text" class="form-control form-control-sm date-mask" name="permitfact_entry_date_from" id="permitfact_entry_date_from" autocomplete="off" maxlength="10"
value="{//searchhistory/record/searchhistory_parameters/permitfact_entry_date_from}"/>
<button class="btn btn-outline-primary btnEntryDateFromCalendar" type="button" data-target="#permitfact_entry_date_from" data-bs-toggle="tooltip" data-bs-title="Calendar" tabindex="-1">
<i class="bi bi-calendar3"></i>
</button>
<span class="input-group-text ms-2">To:</span>
<input type="text" class="form-control form-control-sm date-mask" name="permitfact_entry_date_to" id="permitfact_entry_date_to" autocomplete="off" maxlength="10"
value="{//searchhistory/record/searchhistory_parameters/permitfact_entry_date_to}"/>
<button class="btn btn-outline-primary btnEntryDateToCalendar" type="button" data-target="#permitfact_entry_date_to" data-bs-toggle="tooltip" data-bs-title="Calendar" tabindex="-1">
<i class="bi bi-calendar3"></i>
</button>
</div>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnHome">
<i class="bi bi-house me-2"/>Home</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-clockwise me-2"/>Reset Search</button>
</div>
</div>
</div> <!-- Search Card -->
<!-- Results Card -->
<div class="card mt-4">
<div class="card-header bg-primary text-white p-1 ps-3 d-flex align-items-center">
<i class="bi bi-card-list me-2"/>
Results
<span class="ms-auto">
<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')"/>
Records
</xsl:if>
</span>
</div>
<div class="card-body">
<xsl:if test="count(//permitfacts/record) > 0">
<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="filter" id="filter" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'filter_permitfacts']/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">
<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="permitfacts_per_page" id="permitfacts_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-2 print_page_buttons">
<div class="btn-group">
<button type="button" class="btn btn-sm btn-primary me-2 dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
<i class="bi bi-printer me-2"/>Print
</button>
<ul class="dropdown-menu">
<li>
<button class="dropdown-item btnPrintSearchResultsPDF" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'print_search_results']/popover_text}"
data-bs-html="true" data-bs-custom-class="custom-tooltip">
<xsl:if test="$PAGINATION_COUNT > 2500">
<xsl:attribute name="disabled">disabled</xsl:attribute>
</xsl:if>
<i class="bi bi-filetype-pdf text-danger me-2"/>Search Results - PDF</button>
</li>
<li>
<button class="dropdown-item" onclick="window.print()">
<i class="bi bi-display me-2"/>Screen</button>
</li>
<div class="dropdown-divider mt-1 mb-1"/>
<button class="dropdown-item btnPrintAllRecordsPDF" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'print_all_records']/popover_text}"
data-bs-html="true" data-bs-custom-class="custom-tooltip">
<i class="bi bi-filetype-pdf text-danger me-2"/>All Records - PDF</button>
</ul>
</div>
<div class="btn-group">
<button type="button" class="btn btn-sm btn-primary me-2 dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
<i class="bi bi-download me-2"/>Export
</button>
<ul class="dropdown-menu">
<li>
<button class="dropdown-item btnExportCSV" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'export_search_results_csv']/popover_text}"
data-bs-html="true" data-bs-custom-class="custom-tooltip">
<xsl:if test="$PAGINATION_COUNT > 2500">
<xsl:attribute name="disabled">disabled</xsl:attribute>
</xsl:if>
<i class="bi bi-filetype-csv me-2 text-info"/> Searched Results - CSV</button>
</li>
<li>
<button class="dropdown-item btnExportExcel" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'export_search_results_excel']/popover_text}"
data-bs-html="true" data-bs-custom-class="custom-tooltip">
<xsl:if test="$PAGINATION_COUNT > 2500">
<xsl:attribute name="disabled">disabled</xsl:attribute>
</xsl:if>
<i class="bi bi-filetype-xlsx me-2 text-success"/>Searched Results - Excel</button>
</li>
<div class="dropdown-divider mt-1 mb-1"/>
<button class="dropdown-item btnExportAllRecordsCSV" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'export_all_records_csv']/popover_text}"
data-bs-html="true" data-bs-custom-class="custom-tooltip">
<i class="bi bi-filetype-csv me-2 text-info"/> All Records - CSV</button>
<button class="dropdown-item btnExportAllRecordsExcel" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'export_all_records_excel']/popover_text}"
data-bs-html="true" data-bs-custom-class="custom-tooltip">
<i class="bi bi-filetype-xlsx me-2 text-success"/>All Records - Excel</button>
</ul>
</div>
<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>
</xsl:if>
<xsl:choose>
<xsl:when test="count(//permitfacts/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mb-1">
<xsl:text>There are no Permit Facts to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="scrollable-40">
<div class="fs-5 text-danger fw-bold fst-italic mt-2 mb-1 filter-error d-none">
<xsl:text>There are no Permit Facts to view...</xsl:text>
</div>
<xsl:apply-templates select="//permitfacts"/>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Dropdowns -->
<xsl:template name="dropdowns">
<xsl:param name="dropdown-name"/>
<!-- the node name inside searchhistory_parameters that holds <id> list -->
<xsl:param name="selected-path"/>
<!-- Grab the selected ids once -->
<xsl:variable name="selectedIds" select="/XML/searchhistory/record/searchhistory_parameters/*[name()=$selected-path]/id"/>
<xsl:for-each select="/XML/dropdowns/record[dropdowntype_name = $dropdown-name]">
<option value="{dropdown_serial}" data-tokens="{dropdown_value}">
<xsl:if test="$selectedIds = dropdown_serial">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
<xsl:value-of select="dropdown_value"/>
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for Cities dropdown -->
<xsl:template match="subscriptioncities">
<xsl:for-each select="record">
<option value="{subscriptioncity_city}" data-tokens="{subscriptioncities_city_name_verbose}">
<xsl:if test="//searchhistory/record/searchhistory_parameters/permitfact_project_city/id = subscriptioncity_city">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
<xsl:value-of select="subscriptioncities_city_name_verbose" />
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for Counties dropdown -->
<xsl:template match="subscriptioncounties">
<xsl:for-each select="record">
<option value="{subscriptioncounty_county}" data-tokens="{subscriptioncounty_county}">
<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="subscriptioncounties_county_name_verbose" />
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for Permit Fact Cards -->
<xsl:template match="//permitfacts/record">
<div class="card mt-3 permitfact-card filterable">
<!-- Header -->
<div class="card-header bg-primary text-white d-flex align-items-start justify-content-between">
<div>
<div class="fw-semibold">
Project Name:
<xsl:value-of select="permitfact_project_name"/>
</div>
<div class="small">
<xsl:value-of select="permitfact_project_address"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="project_city_verbose"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="permitfact_project_zip"/>
<xsl:text></xsl:text>
<xsl:value-of select="permitfact_county_name_verbose"/>
</div>
</div>
<!-- far-right number -->
<div class="text-end ms-3">
<div class="small">Record #</div>
<div class="fw-bold">
<xsl:value-of select="permitfact_legacy_id"/>
</div>
</div>
</div>
<!-- Body -->
<div class="card-body">
<div class="row g-3">
<div class="col-md-3">
<div class="text-muted small">Permit Number</div>
<div class="fw-semibold">
<xsl:value-of select="permitfact_permit_number"/>
</div>
</div>
<div class="col-md-3">
<div class="text-muted small">Permit Date</div>
<div class="fw-semibold">
<xsl:value-of select="permitfact_permit_date_verbose"/>
</div>
</div>
<div class="col-md-3">
<div class="text-muted small">District</div>
<div class="fw-semibold">
<xsl:choose>
<xsl:when test="normalize-space(permitfact_dist_ll) != ''">
<xsl:value-of select="permitfact_dist_ll"/>
</xsl:when>
<xsl:otherwise>N/A</xsl:otherwise>
</xsl:choose>
</div>
</div>
<div class="col-md-3">
<div class="text-muted small">Lot / Block</div>
<div class="fw-semibold">
<xsl:choose>
<xsl:when test="normalize-space(permitfact_lot_block) != ''">
<xsl:value-of select="permitfact_lot_block"/>
</xsl:when>
<xsl:otherwise>N/A</xsl:otherwise>
</xsl:choose>
</div>
</div>
<div class="col-md-3">
<div class="text-muted small">Value</div>
<div class="fw-semibold">$<xsl:value-of select="format-number(permitfact_value, '#,##0.00')"/></div>
</div>
<div class="col-md-3">
<div class="text-muted small">Size (sq ft)</div>
<div class="fw-semibold">
<xsl:value-of select="format-number(permitfact_size, '#,##0')" />
</div>
</div>
<div class="col-md-3">
<div class="text-muted small">Work Type</div>
<div class="fw-semibold">
<xsl:value-of select="permitfact_work_type_verbose"/>
</div>
</div>
<div class="col-md-3">
<div class="text-muted small">Project Type</div>
<div class="fw-semibold">
<xsl:value-of select="permitfact_project_type_verbose"/>
</div>
</div>
<div class="col-md-3">
<div class="text-muted small">Building Type</div>
<div class="fw-semibold">
<xsl:value-of select="permitfact_building_type_verbose"/>
</div>
</div>
<div class="col-md-9">
<div class="text-muted small">Company</div>
<div class="fw-semibold">
<xsl:value-of select="permitfact_company"/>
</div>
</div>
<div class="col-md-10">
<div class="text-muted small">Company Address</div>
<div class="fw-semibold">
<xsl:value-of select="permitfact_address"/>
<xsl:text> </xsl:text>
<xsl:value-of select="permitfact_city_verbose"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="permitfact_state"/>
<xsl:text> </xsl:text>
<xsl:value-of select="permitfact_zip"/>
</div>
</div>
<div class="col-md-2">
<div class="text-muted small">Phone</div>
<div class="fw-semibold">
<xsl:choose>
<xsl:when test="string-length(permitfact_phone) = 10">
<xsl:value-of
select="concat('(', substring(permitfact_phone, 1, 3), ') ', substring(permitfact_phone, 4, 3), '-', substring(permitfact_phone, 7, 4))"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="permitfact_phone"/>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
<div class="col-md-4">
<div class="text-muted small">Owner Name</div>
<div class="fw-semibold">
<xsl:value-of select="permitfact_owner_name"/>
</div>
</div>
<div class="col-md-4">
<div class="text-muted small">Owner Phone</div>
<div class="fw-semibold">
<xsl:choose>
<xsl:when test="string-length(permitfact_owner_phone) = 10">
<xsl:value-of
select="concat('(', substring(permitfact_owner_phone, 1, 3), ') ', substring(permitfact_owner_phone, 4, 3), '-', substring(permitfact_owner_phone, 7, 4))"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="permitfact_owner_phone"/>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+500
View File
@@ -0,0 +1,500 @@
<?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="PAGE-TITLE">Search Recreational Licenses</xsl:param>
<xsl:param name="PAGE-NAME">searchRecreationalLicenses</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//licenses/@count"/>
<xsl:variable name="PAGINATION_START" select="//licenses/@start"/>
<xsl:variable name="PAGINATION_END" select="//licenses/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//licenses/@page"/>
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="row g-4">
<div class="col-lg-3">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 d-flex align-items-center">
<i class="bi bi-search 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="FWCLicenses.searchRecreationalLicenses"/>
<input type="hidden" name="step" value="search"/>
<div class="row">
<div class="col-lg-6 mb-3">
<label class="form-label" for="license_last_name">Last Name</label>
<input type="text" class="form-control form-control-sm" name="license_last_name" id="license_last_name" maxlength="100" autocomplete="off"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="license_first_name">First Name</label>
<input type="text" class="form-control form-control-sm" name="license_first_name" id="license_first_name" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-6 mb-3">
<label class="form-label" for="license_county">County</label>
<select class="form-control form-control-sm multiple-dropdown" multiple="multiple" name="license_county[]" id="license_county" size="1">
<xsl:call-template name="dropdowns">
<xsl:with-param name="dropdown-name" select="'florida_counties'"/>
<xsl:with-param name="selected-path" select="'florida_counties'"/>
</xsl:call-template>
</select>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="license_city">City</label>
<input type="text" class="form-control form-control-sm" name="license_city" id="license_city" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-12 mb-3">
<label class="form-label" for="license_type">License Type</label>
<select class="form-control form-control-sm multiple-dropdown" multiple="multiple" name="license_type[]" id="license_type" size="1">
<xsl:call-template name="dropdowns">
<xsl:with-param name="dropdown-name" select="'license_types'"/>
<xsl:with-param name="selected-path" select="'license_types'"/>
</xsl:call-template>
</select>
</div>
</div>
<div class="row">
<div class="col-lg-6 mb-3">
<label class="form-label" for="license_start_date">Start Date</label>
<div class="input-group input-group-sm license_start_date">
<input type="text" class="form-control form-control-sm date-mask" name="license_start_date" id="license_start_date" autocomplete="off" value=""/>
<button class="btn btn-sm btn-outline-primary btnLicenseStartDateCalendar" type="button" tabindex="-1">
<i class="bi bi-calendar3"></i>
</button>
</div>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="license_expire_date">Expire Date</label>
<div class="input-group input-group-sm license_expire_date">
<input type="text" class="form-control form-control-sm date-mask" name="license_expire_date" id="license_expire_date" autocomplete="off" value=""/>
<button class="btn btn-sm btn-outline-primary btnLicenseExpireDateCalendar" type="button" tabindex="-1">
<i class="bi bi-calendar3"></i>
</button>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 mb-3">
<label class="form-label" for="license_gender">Gender</label>
<select class="form-control form-control-sm multiple-dropdown" multiple="multiple" name="license_gender[]" id="license_gender" size="1">
<xsl:apply-templates select="//Constants/Genders"/>
</select>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="license_ethnicity">Ethnicity</label>
<select class="form-control form-control-sm multiple-dropdown" multiple="multiple" name="license_ethnicity[]" id="license_ethnicity" size="1">
<xsl:call-template name="dropdowns">
<xsl:with-param name="dropdown-name" select="'ethnicities'"/>
<xsl:with-param name="selected-path" select="'ethnicities'"/>
</xsl:call-template>
</select>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnHome">
<i class="bi bi-house me-2"/>Home</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-clockwise 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> <!-- Search Card -->
</div>
<!-- Results Card -->
<div class="col-lg-9">
<xsl:choose>
<xsl:when test="count(//licenses/record) > 0">
<div class="card">
<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_licenses']/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="licenses_per_page" id="licenses_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(//licenses/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 Full
</button>
<ul class="dropdown-menu">
<li>
<button class="dropdown-item btnExportSearchResultsCSV">
<i class="bi bi-filetype-csv me-2"/>CSV</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(//licenses/record) = 0">
<div class="filter-error fs-5 text-danger fw-bold fst-italic mb-1">
<xsl:text>There are no Licenses to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="filter-error fs-5 text-danger fw-bold fst-italic mb-1 d-none">
<xsl:text>There are no Licenses to view...</xsl:text>
</div>
<div class="table-responsive scrollable">
<table class="table table-sm table-striped table-hover base-table" id="licenses-table">
<thead class="sticky-header" data-theme="{$THEME}">
<th class="text-center" >Select</th>
<th class="text-nowrap sortable" data-order-by="license_first_name" >First Name</th>
<th class="text-nowrap sortable" data-order-by="license_last_name" >Last Name</th>
<th class="text-nowrap sortable" data-order-by="license_county" >County</th>
<th class="text-nowrap sortable" data-order-by="license_city" >City</th>
<th class="text-nowrap sortable" data-order-by="license_type" >Type</th>
<th class="text-nowrap sortable text-center" data-order-by="license_gender" >Gender</th>
<th class="text-nowrap sortable" data-order-by="license_ethnicity" >Ethnicity</th>
<th class="text-nowrap sortable" data-order-by="license_start_date" >Start Date</th>
<th class="text-nowrap sortable" data-order-by="license_expire_date">Expire Date</th>
</thead>
<tbody>
<xsl:apply-templates select="//licenses/record"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</xsl:when>
<xsl:otherwise>
<div class="card">
<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 Licenses to view...</xsl:text>
</div>
</div>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Dropdowns -->
<xsl:template name="dropdowns">
<xsl:param name="dropdown-name"/>
<!-- the node name inside searchhistory_parameters that holds <id> list -->
<xsl:param name="selected-path"/>
<!-- Grab the selected ids once -->
<xsl:variable name="selectedIds" select="/XML/searchhistory/record/searchhistory_parameters/*[name()=$selected-path]/id"/>
<xsl:for-each select="/XML/dropdowns/record[dropdowntype_name = $dropdown-name]">
<option value="{dropdown_serial}" data-tokens="{dropdown_value}">
<xsl:if test="$selectedIds = dropdown_serial">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
<xsl:value-of select="dropdown_value"/>
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for Gender dropdown -->
<xsl:template match="Constants/Genders">
<xsl:for-each select="Gender">
<xsl:sort select="."/>
<option value="{@abbreviation}" data-tokens="{@abbreviation}">
<xsl:value-of select="." />
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for License Types dropdown -->
<xsl:template match="licensetypes">
<xsl:for-each select="record">
<option value="{license_type}" data-tokens="{license_type}">
<xsl:value-of select="license_type"/>
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for Cities dropdown -->
<xsl:template match="cities">
<xsl:for-each select="record">
<option value="{city_name}" data-tokens="{city_name}">
<xsl:value-of select="city_name"/>
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for Commercial License Codes dropdown -->
<xsl:template match="licensecodes">
<xsl:for-each select="record">
<option value="{license_code}" data-tokens="{license_code}">
<xsl:value-of select="concat(license_code, ' - ', license_description)"/>
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for Recreational License rows -->
<xsl:template match="licenses/record">
<xsl:choose>
<xsl:when test="../@type = 'commercial'">
<xsl:call-template name="commercial-license-row"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="recreational-license-row"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="recreational-license-row">
<tr class="hoverable license-row text-nowrap" data-license-serial="{license_serial}">
<td class="checkbox text-center selection-checkboxes selection-area">
<input type="checkbox" class="selection-checkbox selection-area" name="selected[]" value="{license_serial}">
</input>
<span class="selection-area user-select-none">&#160;</span>
</td>
<td class="license_first_name filterable">
<xsl:value-of select="license_first_name"/>
</td>
<td class="license_last_name text-nowrap filterable">
<xsl:value-of select="license_last_name"/>
</td>
<td class="license_county text-nowrap filterable">
<xsl:value-of select="license_county"/>
</td>
<td class="license_city text-nowrap filterable">
<xsl:value-of select="license_city"/>
</td>
<td class="license_type filterable">
<xsl:value-of select="license_type"/>
</td>
<td class="license_gender text-center">
<xsl:value-of select="license_gender"/>
</td>
<td class="license_ethnicity filterable">
<xsl:value-of select="license_ethnicity"/>
</td>
<td class="license_start_date filterable">
<xsl:value-of select="license_start_date_verbose"/>
</td>
<td class="license_expire_date filterable">
<xsl:value-of select="license_expire_date_verbose"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+158
View File
@@ -0,0 +1,158 @@
<?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">BudgetDetails</xsl:param>
<xsl:param name="PAGE-NAME">setupBudgetDetails</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 BudgetDetails 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>Service Level</th>
<th>Market</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_service_level">
<xsl:value-of select="subscription_service_level_verbose"/>
</td>
<td class="subscription_market">
<xsl:value-of select="subscription_market_verbose"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+176
View File
@@ -0,0 +1,176 @@
<?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">County Codes</xsl:param>
<xsl:param name="PAGE-NAME">setupCountyCodes</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//countycodes/@count"/>
<xsl:variable name="PAGINATION_START" select="//countycodes/@start"/>
<xsl:variable name="PAGINATION_END" select="//countycodes/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//countycodes/@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-map me-2"></i>
<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_countycode" id="find_countycode" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_countycode']/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_countycode']/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="countycodes_per_page" id="countycodes_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-1 mb-1 btnAdd">
<i class="bi bi-plus-lg me-2"/>Add</button>
<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>
<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(//countycodes/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 ">
<xsl:text>There are no County Codes to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive scrollable">
<table class="table table-sm table-striped table-hover base-table table-auto" id="countycodes-table">
<thead class="sticky-header" data-theme="{$THEME}">
<th class="text-nowrap">Code</th>
<th class="text-nowrap">Name</th>
<th class="text-nowrap">State</th>
<th class="text-nowrap">Active</th>
</thead>
<tbody>
<xsl:apply-templates select="//countycodes"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="countycodes/record">
<tr class="hoverable countycodes-row" data-countycode-serial="{countycode_serial}">
<td class="countycode_code">
<xsl:value-of select="countycode_code"/>
</td>
<td class="countycode_name">
<xsl:value-of select="countycode_name"/>
</td>
<td class="countycode_state">
<xsl:value-of select="countycode_state"/>
</td>
<td class="countycode_active text-center">
<xsl:if test="boolean(number(countycode_active)) = true()">
<i class="bi bi-check-lg text-success"/>
</xsl:if>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+171
View File
@@ -0,0 +1,171 @@
<?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">History Codes</xsl:param>
<xsl:param name="PAGE-NAME">setupHistoryCodes</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//historycodes/@count"/>
<xsl:variable name="PAGINATION_START" select="//historycodes/@start"/>
<xsl:variable name="PAGINATION_END" select="//historycodes/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//historycodes/@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-grid-3x3-gap me-2"></i>
<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_historycode" id="find_historycode" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_historycode']/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_historycode']/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="historycodes_per_page" id="historycodes_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-1 mb-1 btnAdd">
<i class="bi bi-plus-lg me-2"/>Add</button>
<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>
<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(//historycodes/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 ">
<xsl:text>There are no History Codes to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive scrollable">
<table class="table table-sm table-striped table-hover base-table table-auto" id="historycodes-table">
<thead class="sticky-header" data-theme="{$THEME}">
<th class="text-nowrap">Code</th>
<th class="text-nowrap">Description</th>
<th class="text-nowrap">Active</th>
</thead>
<tbody>
<xsl:apply-templates select="//historycodes"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="historycodes/record">
<tr class="hoverable historycodes-row" data-historycode-serial="{historycode_serial}">
<td class="historycode_code">
<xsl:value-of select="historycode_code"/>
</td>
<td class="historycode_description">
<xsl:value-of select="historycode_description"/>
</td>
<td class="historycode_active text-center">
<xsl:if test="boolean(number(historycode_active)) = true()">
<i class="bi bi-check-lg text-success"/>
</xsl:if>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+171
View File
@@ -0,0 +1,171 @@
<?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">Political Parties</xsl:param>
<xsl:param name="PAGE-NAME">setupPoliticalParties</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//politicalparties/@count"/>
<xsl:variable name="PAGINATION_START" select="//politicalparties/@start"/>
<xsl:variable name="PAGINATION_END" select="//politicalparties/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//politicalparties/@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-bank me-2"></i>
<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_politicalparty" id="find_politicalparty" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_politicalparty']/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_politicalparty']/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="politicalparties_per_page" id="politicalparties_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-1 mb-1 btnAdd">
<i class="bi bi-plus-lg me-2"/>Add</button>
<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>
<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(//politicalparties/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 ">
<xsl:text>There are no Race Codes to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive scrollable">
<table class="table table-sm table-striped table-hover base-table table-auto" id="politicalparties-table">
<thead class="sticky-header" data-theme="{$THEME}">
<th class="text-nowrap">Code</th>
<th class="text-nowrap">Name</th>
<th class="text-nowrap">Active</th>
</thead>
<tbody>
<xsl:apply-templates select="//politicalparties"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="politicalparties/record">
<tr class="hoverable politicalparties-row" data-politicalparty-serial="{politicalparty_serial}">
<td class="politicalparty_code">
<xsl:value-of select="politicalparty_code"/>
</td>
<td class="politicalparty_name">
<xsl:value-of select="politicalparty_name"/>
</td>
<td class="politicalparty_active text-center">
<xsl:if test="boolean(number(politicalparty_active)) = true()">
<i class="bi bi-check-lg text-success"/>
</xsl:if>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+171
View File
@@ -0,0 +1,171 @@
<?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">Race Codes</xsl:param>
<xsl:param name="PAGE-NAME">setupRaceCodes</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//racecodes/@count"/>
<xsl:variable name="PAGINATION_START" select="//racecodes/@start"/>
<xsl:variable name="PAGINATION_END" select="//racecodes/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//racecodes/@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-person-standing me-2"></i>
<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_racecode" id="find_racecode" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_racecode']/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_racecode']/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="racecodes_per_page" id="racecodes_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-1 mb-1 btnAdd">
<i class="bi bi-plus-lg me-2"/>Add</button>
<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>
<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(//racecodes/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 ">
<xsl:text>There are no Race Codes to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive scrollable">
<table class="table table-sm table-striped table-hover base-table table-auto" id="racecodes-table">
<thead class="sticky-header" data-theme="{$THEME}">
<th class="text-nowrap">Code</th>
<th class="text-nowrap">Description</th>
<th class="text-nowrap">Active</th>
</thead>
<tbody>
<xsl:apply-templates select="//racecodes"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="racecodes/record">
<tr class="hoverable racecodes-row" data-racecode-serial="{racecode_serial}">
<td class="racecode_code">
<xsl:value-of select="racecode_code"/>
</td>
<td class="racecode_description">
<xsl:value-of select="racecode_description"/>
</td>
<td class="racecode_active text-center">
<xsl:if test="boolean(number(racecode_active)) = true()">
<i class="bi bi-check-lg text-success"/>
</xsl:if>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+158
View File
@@ -0,0 +1,158 @@
<?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>Service Level</th>
<th>Market</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_service_level">
<xsl:value-of select="subscription_service_level_verbose"/>
</td>
<td class="subscription_market">
<xsl:value-of select="subscription_market_verbose"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+409
View File
@@ -0,0 +1,409 @@
<?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">Subscription Summary</xsl:param>
<xsl:param name="PAGE-NAME">subscriptionSummary</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 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">
Title:
</div>
<div class="col-9">
<xsl:value-of select="//subscriptions/record/subscription_title"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Service Level:
</div>
<div class="col-9">
<xsl:value-of select="//subscriptions/record/subscription_service_level_verbose"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Market:
</div>
<div class="col-9">
<xsl:value-of select="//subscriptions/record/subscription_market_verbose"/>
</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="//subscriptions/record/subscription_created_verbose"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Created By:
</div>
<div class="col-9">
<xsl:value-of select="//subscriptions/record/subscription_creator"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Changed:
</div>
<div class="col-9">
<xsl:value-of select="//subscriptions/record/subscription_changed_verbose"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Changed By:
</div>
<div class="col-9">
<xsl:value-of select="//subscriptions/record/subscription_changed_subscription"/>
</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="subscription_active" id="subscription_active" size="1">
<xsl:choose>
<xsl:when test="//subscriptions/record/subscription_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>
</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-Counties" data-bs-toggle="tab" href="#pane-Counties" role="tab" data-tab="Counties" aria-controls="st-Counties">
<i class="bi bi-list-check me-1"/>Counties</a>
<a class="nav-item nav-link" id="tab-Cities" data-bs-toggle="tab" href="#pane-Cities" role="tab" data-tab="Cities" aria-controls="st-Cities">
<i class="bi bi-list-check me-1"/>Cities</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">
<!-- Counties -->
<div class="tab-pane show active" id="pane-Counties" role="tabpanel" aria-labelledby="tab-SCounties">
<div class="card mb-0 mt-3">
<div class="card-body pt-2 pb-2">
<xsl:choose>
<xsl:when test="count(//subscriptioncounties/record) = 0">
<div class="col fs-6 text-danger fw-bold fst-italic mt-1 mb-1">
<xsl:text>There are no Counties...</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="subscriptioncounties-table">
<thead class="sticky-header">
<th>Name</th>
</thead>
<tbody>
<xsl:apply-templates select="//subscriptioncounties"/>
</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 btnAddCountyToSubscription">
<i class="bi bi-plus-lg me-2"/>Add County</button>
</div>
</div>
</div>
</div> <!-- Counties -->
<!-- Cities -->
<div class="tab-pane" id="pane-Cities" role="tabpanel" aria-labelledby="tab-Cities">
<div class="card mb-0 mt-3">
<div class="card-body pt-2 pb-2">
<xsl:choose>
<xsl:when test="count(//subscriptioncities/record) = 0">
<div class="col fs-6 text-danger fw-bold fst-italic mt-1 mb-1">
<xsl:text>There are no Cities...</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="subscriptioncities-table">
<thead class="sticky-header">
<th>Name</th>
</thead>
<tbody>
<xsl:apply-templates select="//subscriptioncities"/>
</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 btnAddCityToSubscription">
<i class="bi bi-plus-lg me-2"/>Add City</button>
</div>
</div>
</div>
</div> <!-- Cities -->
<!-- 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>Subscription</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-lg me-2"/>Add Note</button>
</div>
</div>
</div>
</div> <!-- Notes -->
</div> <!-- Tab Content -->
</div>
</div>
</div>
</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 Counties Tab -->
<xsl:template match="subscriptioncounties/record">
<tr class="subscriptioncounty-row hoverable" data-subscriptioncounty-serial="{subscriptioncounty_serial}">
<td class="subscriptioncounties_county_name_verbose">
<xsl:value-of select="subscriptioncounties_county_name_verbose"/>
</td>
</tr>
</xsl:template>
<!-- Template for Cities Tab -->
<xsl:template match="subscriptioncities/record">
<tr class="subscriptioncity-row hoverable" data-subscriptioncity-serial="{subscriptioncity_serial}">
<td class="subscriptioncity_city_name">
<xsl:value-of select="subscriptioncities_city_name_verbose"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+56
View File
@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add Dropdown</xsl:param>
<xsl:param name="PAGE-NAME">addDropdown</xsl:param>
<xsl:template match="/">
<script src="js/system/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-caret-down-square me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
|
<xsl:value-of select="//dropdowntypes/record/dropdowntype_title"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Dropdowns.addDropdown"/>
<input type="hidden" name="step" value="add"/>
<input type="hidden" name="dropdowntype_serial" id="dropdowntype_serial" value="{//dropdowntypes/record/dropdowntype_serial}"/>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdown_value">Value</label>
<input type="text" class="form-control form-control-sm" name="dropdown_value" id="dropdown_value" maxlength="100" autocomplete="off" autofocus="autofocus"/>
</div>
</form>
<div class="buttons mt-4 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel"><i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave"><i class="bi bi-save me-2"/>Save</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+67
View File
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add Dropdown Type</xsl:param>
<xsl:param name="PAGE-NAME">addDropdowntype</xsl:param>
<xsl:template match="/">
<script src="js/system/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-caret-down-square me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Dropdowns.addDropdowntype"/>
<input type="hidden" name="step" value="add"/>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdowntype_name">Name</label>
<input type="text" class="form-control form-control-sm" name="dropdowntype_name" id="dropdowntype_name" maxlength="100" autocomplete="off" autofocus="autofocus"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdowntype_title">Title</label>
<input type="text" class="form-control form-control-sm" name="dropdowntype_title" id="dropdowntype_title" maxlength="100" autocomplete="off"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdowntype_table">Table</label>
<input type="text" class="form-control form-control-sm" name="dropdowntype_table" id="dropdowntype_table" maxlength="100" autocomplete="off"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdowntype_column">Column</label>
<input type="text" class="form-control form-control-sm" name="dropdowntype_column" id="dropdowntype_column" maxlength="100" autocomplete="off"/>
</div>
</form>
<div class="buttons mt-4 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel"><i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave"><i class="bi bi-save me-2"/>Save</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add Note</xsl:param>
<xsl:param name="PAGE-NAME">addNote</xsl:param>
<xsl:template match="/">
<script src="js/system/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-chat-dots me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Notes.addNote"/>
<input type="hidden" name="step" value="add"/>
<input type="hidden" name="note_type" value="{$NOTE_TYPE}"/>
<input type="hidden" name="note_reference" value="{$NOTE_REFERENCE}"/>
<div class="row">
<div class="col-lg-8 mb-3">
<label class="form-label" for="note_text">Note</label>
<textarea class="form-control form-control-sm" name="note_text" id="note_text" rows="8" autofocus="autofocus"/>
</div>
</div>
</form>
<div class="buttons mt-2 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnSave"><i class="bi bi-floppy me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel"><i class="bi bi-check-lg me-2"/>Cancel</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+85
View File
@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add Popover</xsl:param>
<xsl:param name="PAGE-NAME">addPopover</xsl:param>
<xsl:template match="/">
<script src="js/system/{$PAGE-NAME}.js?version={$VERSION}"/>
<script src="js/system/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>
+105
View File
@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add Report</xsl:param>
<xsl:param name="PAGE-NAME">addReport</xsl:param>
<xsl:template match="/">
<script src="js/system/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-printer me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Reports.addReport"/>
<input type="hidden" name="step" value="add"/>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="report_name">Name</label>
<input type="text" class="form-control form-control-sm" name="report_name" id="report_name" maxlength="100" autocomplete="off" autofocus="autofocus"/>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="report_class">Class</label>
<input type="text" class="form-control form-control-sm" name="report_class" id="report_class" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="report_type">Type</label>
<select class="form-select form-select-sm" name="report_type" id="report_type" size="1">
<xsl:apply-templates select="//Constants/ReportTypes"/>
</select>
</div>
</div>
<div class="row">
<div class="col-lg-8 mb-3">
<label class="form-label" for="report_description">Description</label>
<input type="text" class="form-control form-control-sm" name="report_description" id="report_description" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-8 mb-3">
<label class="form-label" for="report_target">Target</label>
<input type="text" class="form-control form-control-sm" name="report_target" id="report_target" maxlength="50" autocomplete="off"/>
</div>
</div>
</form>
<div class="buttons mt-2 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel"><i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave"><i class="bi bi-save me-2"/>Save</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Type dropdown -->
<xsl:template match="Constants/ReportTypes">
<xsl:for-each select="ReportType">
<xsl:sort select="."/>
<option value="{.}">
<xsl:value-of select="." />
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+82
View File
@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add Status</xsl:param>
<xsl:param name="PAGE-NAME">addStatus</xsl:param>
<xsl:template match="/">
<script src="js/system/{$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>
+105
View File
@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Add User</xsl:param>
<xsl:param name="PAGE-NAME">addUser</xsl:param>
<xsl:template match="/">
<script src="js/system/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-person-circle me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Users.addUser"/>
<input type="hidden" name="step" value="add"/>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="user_name">User Name</label>
<input type="text" class="form-control form-control-sm text-capitalize" name="user_name" id="user_name" maxlength="100" autocomplete="off" autofocus="autofocus" data-bs-toggle="popover" data-bs-content="{//popovers/record[popover_name = 'user_name']/popover_text}" data-bs-html="true" data-bs-custom-class="custom-popover" data-bs-offset="0,10"/>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="user_client_name">Client Name</label>
<input type="text" class="form-control form-control-sm" name="user_client_name" id="user_client_name" maxlength="100" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="user_email">Email</label>
<input type="text" class="form-control form-control-sm" name="user_email" id="user_email" maxlength="128" autocomplete="off"/>
</div>
</div>
<div class="row">
<div class="col-lg-3 mb-4">
<label class="form-label" for="user_role">Role</label>
<select class="form-control form-control-sm search-dropdown" name="user_role" id="user_role" size="1">
<xsl:apply-templates select="//Constants/UserRoles"/>
</select>
</div>
</div>
</form>
<div class="buttons mt-1 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave">
<i class="bi bi-save me-2"/>Save</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Role dropdown -->
<xsl:template match="Constants/UserRoles">
<option value="">Choose...</option>
<xsl:for-each select="UserRole">
<xsl:sort select="."/>
<option value="{.}" data-tokens="{.}">
<xsl:value-of select="." />
</option>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+67
View File
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Change Password</xsl:param>
<xsl:param name="PAGE-NAME">changePassword</xsl:param>
<xsl:template match="/">
<script src="js/system/{$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>
+390
View File
@@ -0,0 +1,390 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="APPLICATION_NAME"></xsl:param>
<xsl:param name="NAVIGATION_AREA_WIDTH">xxl</xsl:param>
<xsl:param name="CONTENT_AREA_WIDTH">xxl</xsl:param>
<!-- Main Template -->
<xsl:template match="/">
<xsl:text disable-output-escaping="yes">&lt;!DOCTYPE html></xsl:text>
<html lang="en" data-bs-theme="{$THEME}">
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>
<xsl:value-of select="$APPLICATION_NAME"/>
</title>
<link rel="icon" type="image/x-icon" href="images/server.svg"/>
<link href="css/themes/Sandstone/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/system/jquery-3.2.0.min.js?version={$VERSION}"/>
<script src="js/system/bootstrap.bundle.min.js?version={$VERSION}"/>
<script src="js/system/base.js?version={$VERSION}"/>
<script src="js/system/content.js?version={$VERSION}"/>
<script src="js/system/bootstrap-datepicker.min.js?version={$VERSION}"/>
<script src="js/system/jquery.inputmask.min.js?version={$VERSION}"/>
<script src="js/system/bootstrap-select.min.js?version={$VERSION}"/>
<script src="js/system/dinero.min.js?version={$VERSION}"/>
<!--<script src="js/system/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-fluid">
<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-check-circle 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 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-search me-1" aria-hidden="true"/>
SEARCH
</a>
<div class="dropdown-menu mt-2 pt-0 pb-0">
<a class="dropdown-item ps-2 search-voters" href="javascript:void(0);">
<i class="bi bi-person-check me-2"/>
Voters
</a>
<a class="dropdown-item ps-2 search-recreational-licenses" href="javascript:void(0);">
<i class="bi bi-feather me-2"></i>
Recreational Licenses
</a>
<a class="dropdown-item ps-2 search-commercial-licenses" href="javascript:void(0);">
<i class="bi bi-feather me-2"></i>
Commercial Licenses
</a>
</div>
</li>
<!-- 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-wrench me-1" aria-hidden="true"/>
MANAGE
</a>
<div class="dropdown-menu mt-2 pt-0 pb-0">
<a class="dropdown-item ps-2 manage-voter-records" href="javascript:void(0);">
<i class="bi bi-map me-2"/>
Voters
</a>
<a class="dropdown-item ps-2 manage-voter-history-records" href="javascript:void(0);">
<i class="bi bi-grid-3x3-gap me-2"></i>
Voter History
</a>
</div>
</li>
<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-tools me-1" aria-hidden="true"/>
SETUP
</a>
<div class="dropdown-menu mt-2 pt-0 pb-0">
<a class="dropdown-item ps-2 setup-county-codes" href="javascript:void(0);">
<i class="bi bi-map me-2"/>
County Codes
</a>
<a class="dropdown-item ps-2 setup-history-codes" href="javascript:void(0);">
<i class="bi bi-grid-3x3-gap me-2"></i>
History Codes
</a>
<a class="dropdown-item ps-2 setup-political-parties" href="javascript:void(0);">
<i class="bi bi-bank me-2"/>
Political Parties
</a>
<a class="dropdown-item ps-2 setup-race-codes" href="javascript:void(0);">
<i class="bi bi-person-standing me-2"/>
Race Codes
</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-slash me-1" aria-hidden="true"/>
DEVELOPER
</a>
</li>
</xsl:if>
</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_NAME"/>
</span>
</a>
<div class="dropdown-menu dropdown-menu-end mt-2 pt-0 pb-0">
<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-dropdowntypes" href="javascript:void(0);">
<i class="bi bi-caret-down-square me-2"></i>Dropdown Types
</a>
<a class="dropdown-item ps-2 setup-dropdowns" href="javascript:void(0);">
<i class="bi bi-caret-down me-2"></i>Dropdowns
</a>
<div class="dropdown-divider mt-1 mb-1"></div>
<a class="dropdown-item ps-2 view-journal" href="javascript:void(0);">
<i class="bi bi-journal me-2"></i>Journal
</a>
<a class="dropdown-item ps-2 setup-popovers" href="javascript:void(0);">
<i class="bi bi-chat-left-dots me-2"></i>Popovers
</a>
<a class="dropdown-item ps-2 setup-reports" href="javascript:void(0);">
<i class="bi bi-printer me-2"></i>Reports
</a>
<!-- <a class="dropdown-item ps-2 setup-subscriptions" href="javascript:void(0);">
<i class="bi bi-list-check me-2"></i>Subscriptions
</a>-->
<a class="dropdown-item ps-2 setup-users" href="javascript:void(0);">
<i class="bi bi-person-circle me-2"></i>Users
</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-fluid 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 ©<span>
<xsl:value-of select="$COPYRIGHT"/>
</span> OneSource IT Solutions 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>
+60
View File
@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit Dropdown</xsl:param>
<xsl:param name="PAGE-NAME">editDropdown</xsl:param>
<xsl:template match="/">
<script src="js/system/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-caret-down-square me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
|
<xsl:value-of select="//dropdowns/record/dropdowntype_title"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Dropdowns.editDropdown"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="dropdowntype_serial" id="dropdowntype_serial" value="{//dropdowns/record/dropdowntype_serial}"/>
<input type="hidden" name="dropdown_serial" id="dropdown_serial" value="{//dropdowns/record/dropdown_serial}"/>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdown_value">Value</label>
<input type="text" class="form-control form-control-sm" name="dropdown_value" id="dropdown_value" maxlength="100" autocomplete="off" autofocus="autofocus" value="{//dropdowns/record/dropdown_value}"/>
</div>
</form>
<div class="buttons mt-4 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel"><i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave"><i class="bi bi-save me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnDelete"><i class="bi bi-trash3 me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+72
View File
@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit Dropdown Type</xsl:param>
<xsl:param name="PAGE-NAME">editDropdowntype</xsl:param>
<xsl:template match="/">
<script src="js/system/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-caret-down-square me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Dropdowns.editDropdowntype"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="dropdowntype_serial" id="dropdowntype_serial" value="{//dropdowntypes/record/dropdowntype_serial}"/>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdowntype_name">Name</label>
<input type="text" class="form-control form-control-sm" name="dropdowntype_name" id="dropdowntype_name" maxlength="100" autocomplete="off" autofocus="autofocus" value="{//dropdowntypes/record/dropdowntype_name}"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdowntype_title">Title</label>
<input type="text" class="form-control form-control-sm" name="dropdowntype_title" id="dropdowntype_title" maxlength="100" autocomplete="off" value="{//dropdowntypes/record/dropdowntype_title}"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdowntype_table">Table</label>
<input type="text" class="form-control form-control-sm" name="dropdowntype_table" id="dropdowntype_table" maxlength="100" autocomplete="off" value="{//dropdowntypes/record/dropdowntype_table}"/>
</div>
<div class="col-lg-6 mb-3">
<label class="form-label" for="dropdowntype_column">Column</label>
<input type="text" class="form-control form-control-sm" name="dropdowntype_column" id="dropdowntype_column" maxlength="100" autocomplete="off" value="{//dropdowntypes/record/dropdowntype_column}"/>
</div>
</form>
<div class="buttons mt-4 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel"><i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave"><i class="bi bi-save me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnDelete"><i class="bi bi-trash3 me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+64
View File
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit Note</xsl:param>
<xsl:param name="PAGE-NAME">editNote</xsl:param>
<xsl:template match="/">
<script src="js/system/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-chat-dots me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Notes.editNote"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="note_serial" value="{//notes/record/note_serial}"/>
<div class="row">
<div class="col-lg-8 mb-3">
<label class="form-label" for="note_text">Note</label>
<textarea class="form-control form-control-sm pre-wrap" name="note_text" id="note_text" rows="8" autofocus="autofocus">
<xsl:value-of select="//notes/record/note_text"/>
</textarea>
</div>
</div>
</form>
<div class="buttons mt-2 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnSave">
<i class="bi bi-floppy me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel">
<i class="bi bi-check-lg me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary ms-4 me-2 btnDelete">
<i class="bi bi-trash me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+91
View File
@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit Popover</xsl:param>
<xsl:param name="PAGE-NAME">editPopover</xsl:param>
<xsl:template match="/">
<script src="js/system/{$PAGE-NAME}.js?version={$VERSION}"/>
<script src="js/system/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>
+113
View File
@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit Report</xsl:param>
<xsl:param name="PAGE-NAME">editReport</xsl:param>
<xsl:template match="/">
<script src="js/system/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-printer me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<form action="" name="{$PAGE-NAME}" method="post" id="{$PAGE-NAME}">
<input type="hidden" name="action" value="Reports.editReport"/>
<input type="hidden" name="step" value="update"/>
<input type="hidden" name="report_serial" id="report_serial" value="{//reports/record/report_serial}"/>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="report_name">Name</label>
<input type="text" class="form-control form-control-sm" name="report_name" id="report_name" maxlength="100" autocomplete="off" autofocus="autofocus" value="{//reports/record/report_name}"/>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="report_class">Class</label>
<input type="text" class="form-control form-control-sm" name="report_class" id="report_class" maxlength="100" autocomplete="off" value="{//reports/record/report_class}"/>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-3">
<label class="form-label" for="report_type">Type</label>
<select class="form-select form-select-sm" name="report_type" id="report_type" size="1">
<xsl:apply-templates select="//Constants/ReportTypes"/>
</select>
</div>
</div>
<div class="row">
<div class="col-lg-8 mb-3">
<label class="form-label" for="report_description">Description</label>
<input type="text" class="form-control form-control-sm" name="report_description" id="report_description" maxlength="100" autocomplete="off" value="{//reports/record/report_description}"/>
</div>
</div>
<div class="row">
<div class="col-lg-8 mb-3">
<label class="form-label" for="report_target">Target</label>
<input type="text" class="form-control form-control-sm" name="report_target" id="report_target" maxlength="50" autocomplete="off" value="{//reports/record/report_target}"/>
</div>
</div>
</form>
<div class="buttons mt-2 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnCancel"><i class="bi bi-box-arrow-left me-2"/>Cancel</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnSave"><i class="bi bi-save me-2"/>Save</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnDelete"><i class="bi bi-trash3 me-2"/>Delete</button>
</div>
</div>
</div>
</div>
</xsl:template>
<!-- Template for Type dropdown -->
<xsl:template match="Constants/ReportTypes">
<xsl:for-each select="ReportType">
<xsl:sort select="."/>
<xsl:choose>
<xsl:when test=". = //reports/record/report_type">
<option value="{.}" SELECTED="SELECTED"><xsl:value-of select="." /></option>
</xsl:when>
<xsl:otherwise>
<option value="{.}"><xsl:value-of select="." /></option>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+107
View File
@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit Status</xsl:param>
<xsl:param name="PAGE-NAME">editStatus</xsl:param>
<xsl:template match="/">
<script src="js/system/{$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>
+140
View File
@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Edit User</xsl:param>
<xsl:param name="PAGE-NAME">editUser</xsl:param>
<xsl:template match="/">
<script src="js/system/{$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>
+41
View File
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<xsl:param name="USER-TEMP-PASSWORD"/>
<xsl:template match="/">
<style type="text/css">
.text {
font-family: Calibri ,Arial, Helvetica, sans-serif;
font-size: 14px;
}
</style>
<p class="text">
Dear <xsl:value-of select="//user/record/user_client_name"/>,
</p>
<p class="text">Thank you for being a customer of DEC International. Below are your account credentials.</p>
<p class="text">Username: <xsl:value-of select="//user/record/user_name"/></p>
<p class="text">Password: <xsl:value-of select="$USER-TEMP-PASSWORD"/></p>
<p class="text">You login in at the following web address: <a href="https://ahr.realestatedatainc.com" target="_blank">Atlanta Housing Report</a></p>
<p class="text">Thank you,</p>
<p class="text">DEC-International Support</p>
<br/>
<br/>
<br/> <!-- Line Breaks before email Disclaimer -->
</xsl:template>
</xsl:stylesheet>
+71
View File
@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="APPLICATION_NAME"></xsl:param>
<xsl:param name="FILE_NAME"></xsl:param>
<xsl:param name="LINE_NUMBER"></xsl:param>
<xsl:param name="ERROR_MESSAGE"></xsl:param>
<xsl:param name="ERROR_NUMBER"></xsl:param>
<xsl:template match="/">
<div class="error" id="error_page">
<div class="card">
<div class="card-header bg-danger text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-exclamation-triangle me-2" aria-hidden="true"/>
Issue
</div>
<div class="card-body text-left">
<p>
Oops...
</p>
<p>
An unexpected issue has occurred and our
<b>Support Team</b> has been automatically notified.
</p>
<p>
We are sorry for any inconvenience and appreciate your
patience while we correct the problem.
</p>
<xsl:if test="$ENVIRONMENT = 'Development'">
<div class="alert alert-danger">
<b>Application: </b>
<xsl:copy-of select="$APPLICATION_NAME"/>
<br/>
<b>File: </b>
<xsl:copy-of select="$FILE_NAME"/>
<br/>
<b>Line: </b>
<xsl:copy-of select="$LINE_NUMBER"/>
<br/>
<b>Message: </b>
<xsl:value-of select="$ERROR_MESSAGE" disable-output-escaping="yes"/>
</div>
</xsl:if>
<div class="buttons mt-2 mb-2">
<a role="button" class="btn btn-sm btn-primary me-2 btnContinue"><i class="bi bi-box-arrow-right me-2"/>Continue</a>
</div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+20
View File
@@ -0,0 +1,20 @@
<?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">
<span class="text-primary" style="font-size: 3rem;">
VoterVue
</span>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+46
View File
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">2.0</xsl:param>
<xsl:param name="MESSAGE"></xsl:param>
<xsl:param name="PAGE-NAME">notice</xsl:param>
<xsl:template match="/">
<script src="js/system/{$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>
+172
View File
@@ -0,0 +1,172 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Reports</xsl:param>
<xsl:param name="PAGE-NAME">selectReport</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//reports/@count"/>
<xsl:variable name="PAGINATION_START" select="//reports/@start"/>
<xsl:variable name="PAGINATION_END" select="//reports/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//reports/@page"/>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/system/{$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>
+152
View File
@@ -0,0 +1,152 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Dropdowns</xsl:param>
<xsl:param name="PAGE-NAME">setupDropdowns</xsl:param>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/system/{$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>
+162
View File
@@ -0,0 +1,162 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">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/system/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-caret-down-square me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
<xsl:if test="$PAGINATION_COUNT > 0">
<xsl:text> | Showing </xsl:text>
<xsl:value-of select="format-number($PAGINATION_START, '###,##0')"/>
<xsl:text> to </xsl:text>
<xsl:value-of select="format-number($PAGINATION_END, '###,##0')"/>
<xsl:text> of </xsl:text>
<xsl:value-of select="format-number($PAGINATION_COUNT, '###,##0')"/>
</xsl:if>
</div>
<div class="card-body">
<div class="row align-items-center mt-2 mb-3">
<div class="col-lg-4">
<div class="input-group input-group-sm">
<input type="text" class="form-control autosave" name="find_dropdowntype" id="find_dropdowntype" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_dropdowntype']/popover_placeholder}" autofocus="autofocus"/>
<button type="button" class="btn btn-primary fw-bold btnFind" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'find_dropdowntype']/popover_text}" data-bs-html="true" data-bs-custom-class="custom-tooltip">
<i class="bi bi-search"/>
</button>
<button type="button" class="btn btn-primary fw-bold btnClearFind" data-bs-toggle="tooltip" data-bs-title="Clear Find" data-bs-custom-class="custom-tooltip">
<i class="bi bi-arrow-clockwise"/>
</button>
</div>
</div>
<div class="col-auto">
<div class="input-group input-group-sm" data-bs-toggle="tooltip" data-bs-title="Show Per Page" data-bs-custom-class="custom-tooltip">
<div class="input-group-text">
<i class="bi bi-list-ol"/>
</div>
<select class="form-select autosave" name="dropdowntypes_per_page" id="dropdowntypes_per_page">
<option value="20">20</option>
<option value="40">40</option>
<option value="60">60</option>
<option value="80">80</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<div class="buttons mt-1 mb-1">
<button type="button" class="btn btn-sm btn-primary me-2 btnDone">
<i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnAdd">
<i class="bi bi-plus-lg me-2"/>Add</button>
<div class="btn-group ms-2" role="group">
<xsl:if test="$PAGINATION_PAGE > 1">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="first" data-bs-toggle="tooltip" data-bs-title="First Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-bar-left me-1"/>First</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="previous" data-bs-toggle="tooltip" data-bs-title="Previous Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-left me-1"/>Previous</button>
</xsl:if>
<xsl:if test="$PAGINATION_COUNT > $PAGINATION_END">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="next" data-bs-toggle="tooltip" data-bs-title="Next Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-right me-1"/>Next</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="last" data-bs-toggle="tooltip" data-bs-title="Last Page" data-bs-custom-class="custom-tooltip">
<i class="bi bi-chevron-bar-right me-1"/>Last</button>
</xsl:if>
</div>
</div>
<hr class="mt-3 mb-2"/>
<xsl:choose>
<xsl:when test="count(//dropdowntypes/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 mb-1">
<xsl:text>There are no Dropdown Types to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive">
<table class="table table-sm table-striped table-hover base-table table-auto" id="dropdowntypes-table">
<thead>
<th>Name</th>
<th>Title</th>
<th>Table</th>
<th>Column</th>
</thead>
<tbody>
<xsl:apply-templates select="//dropdowntypes"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="dropdowntypes/record">
<tr class="text-nowrap hoverable dropdowntype-row" data-dropdowntype-serial="{dropdowntype_serial}" data-dropdowntype-name="{dropdowntype_name}">
<td class="dropdowntype_name">
<xsl:value-of select="dropdowntype_name"/>
</td>
<td class="dropdowntype_title">
<xsl:value-of select="dropdowntype_title"/>
</td>
<td class="dropdowntype_table">
<xsl:value-of select="dropdowntype_table"/>
</td>
<td class="dropdowntype_column">
<xsl:value-of select="dropdowntype_column"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+142
View File
@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Popovers</xsl:param>
<xsl:param name="PAGE-NAME">setupPopovers</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//popovers/@count"/>
<xsl:variable name="PAGINATION_START" select="//popovers/@start"/>
<xsl:variable name="PAGINATION_END" select="//popovers/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//popovers/@page"/>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/system/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-chat-square-dots me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
<xsl:if test="$PAGINATION_COUNT > 0">
<xsl:text> | Showing </xsl:text>
<xsl:value-of select="format-number($PAGINATION_START, '###,##0')"/>
<xsl:text> to </xsl:text>
<xsl:value-of select="format-number($PAGINATION_END, '###,##0')"/>
<xsl:text> of </xsl:text>
<xsl:value-of select="format-number($PAGINATION_COUNT, '###,##0')"/>
</xsl:if>
</div>
<div class="card-body">
<div class="row align-items-center mt-2 mb-3">
<div class="col-lg-4">
<div class="input-group input-group-sm">
<input type="text" class="form-control autosave" name="find_popover" id="find_popover" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_popover']/popover_placeholder}" autofocus="autofocus"/>
<button type="button" class="btn btn-primary fw-bold btnFind" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'find_popover']/popover_text}" data-bs-html="true" data-bs-custom-class="custom-tooltip"><i class="bi bi-search"/></button>
<button type="button" class="btn btn-primary fw-bold btnClearFind" data-bs-toggle="tooltip" data-bs-title="Clear Find" data-bs-custom-class="custom-tooltip"><i class="bi bi-arrow-clockwise"/></button>
</div>
</div>
<div class="col-auto">
<div class="input-group input-group-sm" data-bs-toggle="tooltip" data-bs-title="Show Per Page" data-bs-custom-class="custom-tooltip">
<div class="input-group-text"><i class="bi bi-list-ol"/></div>
<select class="form-select autosave" name="popovers_per_page" id="popovers_per_page">
<option value="20">20</option>
<option value="40">40</option>
<option value="60">60</option>
<option value="80">80</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<!-- Action Buttons -->
<div class="buttons mt-3 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnDone"><i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnAdd"><i class="bi bi-plus-lg me-2"/>Add</button>
<div class="btn-group ms-2" role="group">
<xsl:if test="$PAGINATION_PAGE > 1">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="first" data-bs-toggle="tooltip" data-bs-title="First Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-bar-left me-1"/>First</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="previous" data-bs-toggle="tooltip" data-bs-title="Previous Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-left me-1"/>Previous</button>
</xsl:if>
<xsl:if test="$PAGINATION_COUNT > $PAGINATION_END">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="next" data-bs-toggle="tooltip" data-bs-title="Next Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-right me-1"/>Next</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="last" data-bs-toggle="tooltip" data-bs-title="Last Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-bar-right me-1"/>Last</button>
</xsl:if>
</div>
</div>
<hr class="mt-3 mb-2"/>
<xsl:choose>
<xsl:when test="count(//popovers/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 mb-1">
<xsl:text>There are no Popovers to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive">
<table class="table table-sm table-striped table-hover base-table table-auto" id="popovers-table">
<thead>
<th>Name</th>
<th>Title</th>
<th>Placeholder</th>
</thead>
<tbody>
<xsl:apply-templates select="//popovers"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="popovers/record">
<tr class="hoverable popover-row" data-popover-serial="{popover_serial}" data-popover-name="{popover_name}">
<td class="popover_name"><xsl:value-of select="popover_name"/></td>
<td class="popover_title"><xsl:value-of select="popover_title"/></td>
<td class="popover_placeholder"><xsl:value-of select="popover_placeholder"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
+149
View File
@@ -0,0 +1,149 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Reports</xsl:param>
<xsl:param name="PAGE-NAME">setupReports</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//reports/@count"/>
<xsl:variable name="PAGINATION_START" select="//reports/@start"/>
<xsl:variable name="PAGINATION_END" select="//reports/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//reports/@page"/>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/system/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3 border-bottom-0">
<i class="bi bi-printer me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
<xsl:if test="$PAGINATION_COUNT > 0">
<xsl:text> | Showing </xsl:text>
<xsl:value-of select="format-number($PAGINATION_START, '###,##0')"/>
<xsl:text> to </xsl:text>
<xsl:value-of select="format-number($PAGINATION_END, '###,##0')"/>
<xsl:text> of </xsl:text>
<xsl:value-of select="format-number($PAGINATION_COUNT, '###,##0')"/>
</xsl:if>
</div>
<div class="card-body">
<div class="row align-items-center mt-2 mb-3">
<div class="col-sm-4">
<div class="input-group input-group-sm">
<input type="text" class="form-control autosave" name="find_report" id="find_report" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_report']/popover_placeholder}" autofocus="autofocus"/>
<button type="button" class="btn btn-primary fw-bold btnFind" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'find_report']/popover_text}" data-bs-html="true" data-bs-custom-class="custom-tooltip"><i class="bi bi-search"/></button>
<button type="button" class="btn btn-primary fw-bold btnClearFind" data-bs-toggle="tooltip" data-bs-title="Clear Find" data-bs-custom-class="custom-tooltip"><i class="bi bi-arrow-clockwise"/></button>
</div>
</div>
<div class="col-auto">
<div class="input-group input-group-sm" data-bs-toggle="tooltip" data-bs-title="Show Per Page" data-bs-custom-class="custom-tooltip">
<div class="input-group-text"><i class="bi bi-list-ol"/></div>
<select class="form-select autosave" name="reports_per_page" id="reports_per_page">
<option value="20">20</option>
<option value="40">40</option>
<option value="60">60</option>
<option value="80">80</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<div class="buttons mt-3 mb-2">
<button type="button" class="btn btn-sm btn-primary me-2 btnDone"><i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-2 btnAdd"><i class="bi bi-plus-lg me-2"/>Add</button>
<div class="btn-group ms-2" role="group">
<xsl:if test="$PAGINATION_PAGE > 1">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="first" data-bs-toggle="tooltip" data-bs-title="First Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-bar-left me-1"/>First</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="previous" data-bs-toggle="tooltip" data-bs-title="Previous Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-left me-1"/>Previous</button>
</xsl:if>
<xsl:if test="$PAGINATION_COUNT > $PAGINATION_END">
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="next" data-bs-toggle="tooltip" data-bs-title="Next Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-right me-1"/>Next</button>
<button type="button" class="btn btn-sm btn-primary btnPagination" data-pagination="last" data-bs-toggle="tooltip" data-bs-title="Last Page" data-bs-custom-class="custom-tooltip"><i class="bi bi-chevron-bar-right me-1"/>Last</button>
</xsl:if>
</div>
</div>
<hr class="mt-3 mb-2"/>
<xsl:choose>
<xsl:when test="count(//reports/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 mb-1">
<xsl:text>There are no Reports to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive">
<table class="table table-sm table-striped table-hover base-table table-auto" id="reports-table">
<thead class="sticky-header" data-theme="{$THEME}">
<th>Class</th>
<th>Type</th>
<th>Name</th>
<th>Description</th>
<th>Target</th>
</thead>
<tbody>
<xsl:apply-templates select="//reports"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="reports/record">
<tr class="text-nowrap hoverable report-row" data-report-serial="{report_serial}">
<td class="report_class"><xsl:value-of select="report_class"/></td>
<td class="report_type"><xsl:value-of select="report_type"/></td>
<td class="report_name"><xsl:value-of select="report_name"/></td>
<td class="report_description"><xsl:value-of select="report_description"/></td>
<td class="report_target"><xsl:value-of select="report_target"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
+150
View File
@@ -0,0 +1,150 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Statuses</xsl:param>
<xsl:param name="PAGE-NAME">setupStatuses</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//statuses/@count"/>
<xsl:variable name="PAGINATION_START" select="//statuses/@start"/>
<xsl:variable name="PAGINATION_END" select="//statuses/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//statuses/@page"/>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/system/{$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>
+179
View File
@@ -0,0 +1,179 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Users</xsl:param>
<xsl:param name="PAGE-NAME">setupUsers</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//users/@count"/>
<xsl:variable name="PAGINATION_START" select="//users/@start"/>
<xsl:variable name="PAGINATION_END" select="//users/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//users/@page"/>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/system/{$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>User ID</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_id">
<xsl:value-of select="user_id"/>
</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>
+147
View File
@@ -0,0 +1,147 @@
<?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">VoterVue</xsl:param>
<xsl:param name="PAGE_TITLE">VoterVue Sign In</xsl:param>
<xsl:param name="FORM_NAME">signIn</xsl:param>
<xsl:param name="BTN_SUBMIT"/>
<xsl:param name="BTN_RESET_PASSWORD">?Xaction=resetpassword</xsl:param>
<xsl:param name="INVALID_SIGNIN"/>
<xsl:param name="RESET_PASSWORD_SUCCESSFUL"/>
<xsl:param name="VERSION"/>
<xsl:template match="/">
<xsl:text disable-output-escaping="yes">&lt;!DOCTYPE html&gt;</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 rel="icon" type="image/x-icon" href="images/votervue_logo.png"/>
<link href="css/themes/Sandstone/bootstrap.min.css?version={$VERSION}" rel="stylesheet"/>
<link href="css/bootstrap-icons.min.css?version={$VERSION}" rel="stylesheet"/>
<link href="css/signIn.css?version={$VERSION}" rel="stylesheet"/>
<script src="js/jquery-3.2.0.min.js?version={$VERSION}"></script>
<script src="js/bootstrap.bundle.min.js?version={$VERSION}"></script>
<script src="js/signIn.js?version={$VERSION}"></script>
</head>
<body class="bg-light">
<main class="min-vh-100 d-flex align-items-center justify-content-center px-3">
<div class="card shadow-sm border-0 login-card">
<div class="card-body p-4">
<div class="text-center mb-4">
<h1 class="h5 fw-bold mb-1">
<xsl:value-of select="$PAGE_TITLE"/>
</h1>
<div class="text-muted small">
Please sign in to continue
</div>
</div>
<xsl:if test="$INVALID_SIGNIN = 'TRUE'">
<div class="alert alert-danger d-flex align-items-center py-2" role="alert">
<i class="bi bi-exclamation-triangle-fill me-2"></i>
<div>Invalid username or password.</div>
</div>
</xsl:if>
<xsl:if test="$RESET_PASSWORD_SUCCESSFUL = 'TRUE'">
<div class="alert alert-info d-flex align-items-start py-2" role="alert">
<i class="bi bi-info-circle-fill me-2 mt-1"></i>
<div>
If an account exists for the email address provided, you will receive an email containing a temporary password and a link to reset your password.
</div>
</div>
</xsl:if>
<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"/>
<div class="mb-3">
<label for="user_name" class="form-label small fw-semibold">Username</label>
<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"
placeholder="Enter username"
maxlength="128"
autofocus="autofocus"
autocomplete="username"/>
</div>
</div>
<div class="mb-3">
<label for="user_password" class="form-label small fw-semibold">Password</label>
<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"
placeholder="Enter password"
maxlength="128"
autocomplete="current-password"/>
</div>
</div>
<div class="d-grid gap-2 mt-4">
<button type="submit" class="btn btn-primary btnSignIn">
<i class="bi bi-box-arrow-in-right me-1"></i>
Sign In
</button>
<button type="button" class="btn btn-outline-secondary btnForgot">
Forgot/Reset Password
</button>
</div>
</form>
<form action="{$BTN_RESET_PASSWORD}" name="reset-password" method="post" id="reset-password">
<input type="hidden" id="reset_user_name" name="user_name"/>
</form>
</div>
<div class="card-footer text-center bg-white border-0 pb-4">
<small class="text-muted">
<i class="bi bi-shield-lock me-1"></i>
Unauthorized Access is Prohibited
</small>
</div>
</div>
</main>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
+101
View File
@@ -0,0 +1,101 @@
<?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">VoterVue</xsl:param>
<xsl:param name="FORM_NAME">signIn</xsl:param>
<xsl:param name="BTN_SUBMIT"/>
<xsl:param name="INVALID_SIGNIN"/>
<xsl:template match="/">
<xsl:text disable-output-escaping="yes">&lt;!DOCTYPE html></xsl:text>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>
<xsl:value-of select="$APPLICATION_NAME"/>
</title>
<link href="css/themes/Spacelab/bootstrap.min.css?version={$VERSION}" rel="stylesheet" media="screen"/>
<link href="css/bootstrap-icons.min.css?version={$VERSION}" rel="stylesheet" media="screen"/>
<link href="css/signIn.css?version={$VERSION}" rel="stylesheet" media="screen"/>
<script src="js/system/jquery-3.2.0.min.js?version={$VERSION}"/>
<script src="js/system/bootstrap.bundle.min.js?version={$VERSION}"/>
<script src="js/system/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">
<i class="bi bi-check-circle me-2"></i>
<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>
+423
View File
@@ -0,0 +1,423 @@
<?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/system/{$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>Title</th>
<th>Start Date</th>
<th>End Date</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-lg 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="subscription_full_title"/>
</td>
<td class="usersubscription_start_date_verbose">
<xsl:value-of select="usersubscription_start_date_verbose"/>
</td>
<td class="usersubscription_end_date_verbose">
<xsl:value-of select="usersubscription_end_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>
+202
View File
@@ -0,0 +1,202 @@
<?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"/>
<!--<meta http-equiv="refresh" content="60"></meta>-->
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">My Exports</xsl:param>
<xsl:param name="PAGE-NAME">viewExports</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//exportjobs/@count"/>
<xsl:variable name="PAGINATION_START" select="//exportjobs/@start"/>
<xsl:variable name="PAGINATION_END" select="//exportjobs/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//exportjobs/@page"/>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/system/{$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-box-arrow-in-up-right 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_exportjob" id="find_exportjob" maxlength="100" autocomplete="off" placeholder="{//popovers/record[popover_name = 'find_exportjob']/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_exportjob']/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="exportjobs_per_page" id="exportjobs_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-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 btnRefresh">
<i class="bi bi-arrow-clockwise me-2"/>Refresh</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(//exportjobs/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 ">
<xsl:text>There are no Exports to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive scrollable">
<table class="table table-sm table-striped table-hover base-table table-auto" id="exportjobs-table">
<thead class="sticky-header" data-theme="{$THEME}">
<th class="text-nowrap">Title</th>
<th class="text-nowrap">Type</th>
<th class="text-nowrap">Submitted</th>
<th class="text-nowrap">Completed</th>
<th class="text-nowrap">Status</th>
<th class="text-nowrap">Action</th>
</thead>
<tbody>
<xsl:apply-templates select="//exportjobs"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="exportjobs/record">
<tr class="hoverable exportjobs-row" data-export-code="{exportjob_download_token}" data-exportjobs-serial="{exportjob_serial}">
<td class="subscription_full_title">
<xsl:value-of select="subscription_full_title"/>
</td>
<td class="exportjob_file_type">
<xsl:value-of select="exportjob_file_type"/>
</td>
<td class="exportjob_created">
<xsl:value-of select="exportjob_created_verbose"/>
</td>
<td class="exportjob_created">
<xsl:choose>
<xsl:when test="normalize-space(exportjob_completed) != ''">
<xsl:value-of select="exportjob_completed_verbose"/>
</xsl:when>
<xsl:otherwise>--</xsl:otherwise>
</xsl:choose>
<!--<xsl:value-of select="exportjob_completed_verbose"/>-->
</td>
<td class="exportjob_status">
<xsl:choose>
<xsl:when test="string-length(normalize-space(exportjob_status)) &gt; 0">
<xsl:value-of select="concat(translate(substring(exportjob_status, 1, 1),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ'),
substring(exportjob_status, 2))"/>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</td>
<td class="exportjob_action text-center">
<button class="btn btn-sm btn-primary btnDownload" data-bs-toggle="tooltip" data-bs-title="{//popovers/record[popover_name = 'download_export']/popover_text}" data-bs-html="true" data-bs-custom-class="custom-tooltip">
<xsl:if test="exportjob_status != 'complete'">
<xsl:attribute name="disabled">disabled</xsl:attribute>
</xsl:if>
<i class="bi bi-download"></i>
</button>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+143
View File
@@ -0,0 +1,143 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Journal</xsl:param>
<xsl:param name="PAGE-NAME">viewJournal</xsl:param>
<!-- Variables -->
<xsl:variable name="PAGINATION_COUNT" select="//journal/@count"/>
<xsl:variable name="PAGINATION_START" select="//journal/@start"/>
<xsl:variable name="PAGINATION_END" select="//journal/@end"/>
<xsl:variable name="PAGINATION_PAGE" select="//journal/@page"/>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/system/{$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>
+95
View File
@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">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 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">Start Date</th>
<th class="text-nowrap">End Date</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-usersubscription-subscription="{usersubscription_subscription}" data-usersubscription-serial="{usersubscription_serial}">
<td class="subscription_title">
<xsl:value-of select="subscription_full_title"/>
</td>
<td class="usersubscription_start_date_verbose">
<xsl:value-of select="usersubscription_start_date_verbose"/>
</td>
<td class="usersubscription_end_date_verbose">
<xsl:value-of select="usersubscription_end_date_verbose"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+100
View File
@@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!--<meta http-equiv="refresh" content="60"></meta>-->
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Budgets Months</xsl:param>
<xsl:param name="PAGE-NAME">viewBudgetMonths</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-calendar3 me-2"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body">
<!-- Action Buttons -->
<div class="buttons mt-2 mb-2">
<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>
</div>
<hr class="mt-3 mb-2"/>
<xsl:choose>
<xsl:when test="count(//budgetmonths/record) = 0">
<div class="fs-5 text-danger fw-bold fst-italic mt-3 ">
<xsl:text>There are no Budget Months to view...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-wrapper table-responsive scrollable">
<table class="table table-sm table-striped table-hover base-table" id="budgetmonth-table">
<thead class="sticky-header" data-theme="{$THEME}">
<!--<th class="text-nowrap">Month</th>-->
</thead>
<tbody>
<xsl:apply-templates select="//budgetmonths"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
</xsl:template>
<!-- Template for table rows -->
<xsl:template match="budgetmonths/record">
<tr class="hoverable budgetmonth-row" data-budgetmonth-serial="{budgetmonth_serial}">
<td class="budget_month">
<xsl:value-of select="budgetmonth_month_verbose"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
+420
View File
@@ -0,0 +1,420 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">User Summary</xsl:param>
<xsl:param name="PAGE-NAME">userSummary</xsl:param>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-person me-2" aria-hidden="true"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body pb-0">
<!-- Details -->
<div class="card card-header rounded p-0 ms-0 me-0 mb-3">
<div class="card-body p-2">
<div class="row fs-875 lh-sm">
<div class="col-lg-6">
<div class="row">
<div class="col-3 fw-bold">
Name
</div>
<div class="col-9">
<xsl:value-of select="//users/record/user_name"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Main Email:
</div>
<div class="col-9">
<xsl:value-of select="//users/record/user_email"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
User Name:
</div>
<div class="col-9">
<xsl:value-of select="//users/record/user_client_name"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Role:
</div>
<div class="col-9">
<xsl:value-of select="//users/record/user_role"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Change Password?:
</div>
<div class="col-9">
<xsl:choose>
<xsl:when test="boolean(number(//users/record/user_change_password)) = true()">
<span class="badge bg-success">Yes</span>
</xsl:when>
<xsl:otherwise>
<span class="badge bg-danger">No</span>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="row">
<div class="col-3 fw-bold">
Created:
</div>
<div class="col-9">
<xsl:value-of select="//users/record/user_created_verbose"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Created By:
</div>
<div class="col-9">
<xsl:value-of select="//users/record/user_creator"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Changed:
</div>
<div class="col-9">
<xsl:value-of select="//users/record/user_changed_verbose"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Changed By:
</div>
<div class="col-9">
<xsl:value-of select="//users/record/user_changed_user"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Last Login:
</div>
<div class="col-9">
<xsl:value-of select="//users/record/user_login_verbose"/>
</div>
</div>
<div class="row align-items-baseline mt-1">
<div class="col-3 fw-bold">
Active Status:
</div>
<div class="col-3">
<select class="form-select form-select-sm" name="user_active" id="user_active" size="1">
<xsl:choose>
<xsl:when test="//users/record/user_active = 1">
<option value="1" selected="yes">Active</option>
<option value="0">Inactive</option>
</xsl:when>
<xsl:otherwise>
<option value="1">Active</option>
<option value="0" selected="yes">Inactive</option>
</xsl:otherwise>
</xsl:choose>
</select>
</div>
</div>
</div>
</div>
</div>
</div>
<hr class="mb-2"/>
<!-- Action Buttons -->
<div class="buttons mt-1 mb-1">
<button type="button" class="btn btn-sm btn-primary me-1 mb-1 btnDone">
<i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-1 mb-1 btnEdit">
<i class="bi bi-pencil me-2"/>Edit</button>
<button type="button" class="btn btn-sm btn-primary me-1 mb-1 btnPrint">
<i class="bi bi-printer me-2"/>Print</button>
<button type="button" class="btn btn-sm btn-primary me-1 mb-1 btnResetPassword">
<i class="bi bi-unlock me-2"/>Reset Password</button>
</div>
<hr class="mt-1 mb-3"/>
<!-- Tabs -->
<div class="row">
<div class="col-12">
<div class="nav nav-tabs" id="nav-tabs" role="tablist">
<a class="nav-item nav-link active" id="tab-Subscriptions" data-bs-toggle="tab" href="#pane-Subscriptions" role="tab" data-tab="Subscriptions" aria-controls="st-Subscriptions">
<i class="bi bi-list-check me-1"/>Subscriptions</a>
<a class="nav-item nav-link" id="tab-Notes" data-bs-toggle="tab" href="#pane-Notes" role="tab" data-tab="Notes" aria-controls="st-Notes">
<i class="bi bi-chat-dots me-1"/>Notes</a>
</div>
</div>
</div>
<!-- Tab Content -->
<div class="tab-content mb-3" id="tab-content">
<!-- Subscriptions -->
<div class="tab-pane show active" id="pane-Subscriptions" role="tabpanel" aria-labelledby="tab-Subscriptions">
<div class="card mb-0 mt-3">
<div class="card-body pt-2 pb-2">
<xsl:choose>
<xsl:when test="count(//usersubscriptions/record) = 0">
<div class="col fs-6 text-danger fw-bold fst-italic mt-1 mb-1">
<xsl:text>There are no Subscriptions....</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-responsive scrollable-30">
<table class="table table-sm table-striped base-table table-auto" id="usersubscriptions-table">
<thead class="sticky-header">
<th>Description</th>
<th>End Date</th>
<th>Status</th>
</thead>
<tbody>
<xsl:apply-templates select="//usersubscriptions"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
<div class="buttons mt-2 mb-1">
<button type="button" class="btn btn-sm btn-primary mt-2 me-1 mb-1 btnAddSubscription">
<i class="bi bi-plus me-2"/>Add Subscription</button>
</div>
</div>
</div>
</div> <!-- Subscriptions -->
<!-- Notes -->
<div class="tab-pane" id="pane-Notes" role="tabpanel" aria-labelledby="tab-Notes">
<div class="card mb-0 mt-3">
<div class="card-body pt-2 pb-2">
<xsl:choose>
<xsl:when test="count(//notes/record) = 0">
<div class="col fs-6 text-danger fw-bold fst-italic mt-1 mb-1">
<xsl:text>There are no Notes...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-responsive scrollable-30">
<table class="table table-sm table-striped base-table table-auto" id="notes-table">
<thead class="sticky-header">
<th>Date</th>
<th>User</th>
<th>Type</th>
<th>Note</th>
</thead>
<tbody>
<xsl:apply-templates select="//notes" />
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
<div class="buttons mt-2 mb-1">
<button type="button" class="btn btn-sm btn-primary mt-2 me-1 mb-1 btnAddNote">
<i class="bi bi-plus me-2"/>Add Note</button>
</div>
</div>
</div>
</div> <!-- Notes -->
</div> <!-- Tab Content -->
</div>
</div>
</div>
<!-- Form to Print the User Summary -->
<form style="display:inline;" id="PrintUserSummaryForm" method="post" action="" target="PrintTab">
<input type="hidden" name="action" value="print"/>
<input type="hidden" name="report" value="Print_UserSummary"/>
<input type="hidden" name="user_serial" value=""/>
</form>
</xsl:template>
<!-- Template for Dropdowns -->
<xsl:template name="dropdowns">
<xsl:param name="dropdown-name"/>
<xsl:param name="current-value"/>
<option value="">Choose...</option>
<xsl:for-each select="//dropdowns/record[dropdowntype_name = $dropdown-name]">
<option value="{dropdown_serial}" data-tokens="{dropdown_value}">
<xsl:if test="dropdown_serial = $current-value">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
<xsl:value-of select="dropdown_value" />
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for Notes Tab -->
<xsl:template match="notes/record">
<tr class="hoverable note-row" data-note-serial="{note_serial}">
<td class="note_timestamp text-nowrap">
<xsl:value-of select="note_timestamp_verbose"/>
</td>
<td class="note_origin text-nowrap">
<xsl:value-of select="note_origin"/>
</td>
<td class="note_type text-nowrap">
<xsl:value-of select="note_type"/>
</td>
<td class="note_text pre-wrap">
<xsl:value-of select="note_text"/>
</td>
</tr>
</xsl:template>
<!-- Template for Users Subscriptions Tab -->
<xsl:template match="usersubscriptions/record">
<tr class="usersubscription-row hoverable" data-usersubscription-serial="{usersubscription_serial}">
<td class="subscription_title">
<xsl:value-of select="concat(subscription_title, '-', subscription_description)"/>
</td>
<td class="usersubscription_stop_date_verbose">
<xsl:value-of select="usersubscription_stop_date_verbose"/>
</td>
<xsl:choose>
<xsl:when test="usersubscription_status = 'EXPIRED'">
<td class="usersubscription_status">
<span class="badge rounded-pill text-bg-danger">
<xsl:value-of select="usersubscription_status"/>
</span>
</td>
</xsl:when>
<xsl:otherwise>
<td class="usersubscription_status">
<span class="badge text-bg-success">
<xsl:value-of select="usersubscription_status"/>
</span>
</td>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:template>
</xsl:stylesheet>