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
+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>