Files
votervue/xsl/subscriptionSummary.xsl
T

410 lines
17 KiB
XML
Raw Normal View History

2026-07-03 15:46:56 -04:00
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<!-- Parameters -->
<xsl:param name="VERSION">1.0</xsl:param>
<xsl:param name="PAGE-TITLE">Subscription Summary</xsl:param>
<xsl:param name="PAGE-NAME">subscriptionSummary</xsl:param>
<!-- Main Template -->
<xsl:template match="/">
<script src="js/{$PAGE-NAME}.js?version={$VERSION}"/>
<div class="{$PAGE-NAME}">
<div class="card">
<div class="card-header bg-primary text-white p-1 ps-3">
<i class="bi bi-list me-2" aria-hidden="true"/>
<xsl:value-of select="$PAGE-TITLE"/>
</div>
<div class="card-body pb-0">
<!-- Details -->
<div class="card card-header rounded p-0 ms-0 me-0 mb-3">
<div class="card-body p-2">
<div class="row fs-875 lh-sm">
<div class="col-lg-6">
<div class="row">
<div class="col-3 fw-bold">
Title:
</div>
<div class="col-9">
<xsl:value-of select="//subscriptions/record/subscription_title"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Service Level:
</div>
<div class="col-9">
<xsl:value-of select="//subscriptions/record/subscription_service_level_verbose"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Market:
</div>
<div class="col-9">
<xsl:value-of select="//subscriptions/record/subscription_market_verbose"/>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="row">
<div class="col-3 fw-bold">
Created:
</div>
<div class="col-9">
<xsl:value-of select="//subscriptions/record/subscription_created_verbose"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Created By:
</div>
<div class="col-9">
<xsl:value-of select="//subscriptions/record/subscription_creator"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Changed:
</div>
<div class="col-9">
<xsl:value-of select="//subscriptions/record/subscription_changed_verbose"/>
</div>
</div>
<div class="row">
<div class="col-3 fw-bold">
Changed By:
</div>
<div class="col-9">
<xsl:value-of select="//subscriptions/record/subscription_changed_subscription"/>
</div>
</div>
<!-- <div class="row align-items-baseline mt-1">
<div class="col-3 fw-bold">
Active Status:
</div>
<div class="col-3">
<select class="form-select form-select-sm" name="subscription_active" id="subscription_active" size="1">
<xsl:choose>
<xsl:when test="//subscriptions/record/subscription_active = 1">
<option value="1" selected="yes">Active</option>
<option value="0">Inactive</option>
</xsl:when>
<xsl:otherwise>
<option value="1">Active</option>
<option value="0" selected="yes">Inactive</option>
</xsl:otherwise>
</xsl:choose>
</select>
</div>
</div>-->
</div>
</div>
</div>
</div>
<hr class="mb-2"/>
<!-- Action Buttons -->
<div class="buttons mt-1 mb-1">
<button type="button" class="btn btn-sm btn-primary me-1 mb-1 btnDone">
<i class="bi bi-box-arrow-left me-2"/>Done</button>
<button type="button" class="btn btn-sm btn-primary me-1 mb-1 btnEdit">
<i class="bi bi-pencil me-2"/>Edit</button>
</div>
<hr class="mt-1 mb-3"/>
<!-- Tabs -->
<div class="row">
<div class="col-12">
<div class="nav nav-tabs" id="nav-tabs" role="tablist">
<a class="nav-item nav-link active" id="tab-Counties" data-bs-toggle="tab" href="#pane-Counties" role="tab" data-tab="Counties" aria-controls="st-Counties">
<i class="bi bi-list-check me-1"/>Counties</a>
<a class="nav-item nav-link" id="tab-Cities" data-bs-toggle="tab" href="#pane-Cities" role="tab" data-tab="Cities" aria-controls="st-Cities">
<i class="bi bi-list-check me-1"/>Cities</a>
<a class="nav-item nav-link" id="tab-Notes" data-bs-toggle="tab" href="#pane-Notes" role="tab" data-tab="Notes" aria-controls="st-Notes">
<i class="bi bi-chat-dots me-1"/>Notes</a>
</div>
</div>
</div>
<!-- Tab Content -->
<div class="tab-content mb-3" id="tab-content">
<!-- Counties -->
<div class="tab-pane show active" id="pane-Counties" role="tabpanel" aria-labelledby="tab-SCounties">
<div class="card mb-0 mt-3">
<div class="card-body pt-2 pb-2">
<xsl:choose>
<xsl:when test="count(//subscriptioncounties/record) = 0">
<div class="col fs-6 text-danger fw-bold fst-italic mt-1 mb-1">
<xsl:text>There are no Counties...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-responsive scrollable-30">
<table class="table table-sm table-striped base-table table-auto" id="subscriptioncounties-table">
<thead class="sticky-header">
<th>Name</th>
</thead>
<tbody>
<xsl:apply-templates select="//subscriptioncounties"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
<div class="buttons mt-2 mb-1">
<button type="button" class="btn btn-sm btn-primary mt-2 me-1 mb-1 btnAddCountyToSubscription">
<i class="bi bi-plus-lg me-2"/>Add County</button>
</div>
</div>
</div>
</div> <!-- Counties -->
<!-- Cities -->
<div class="tab-pane" id="pane-Cities" role="tabpanel" aria-labelledby="tab-Cities">
<div class="card mb-0 mt-3">
<div class="card-body pt-2 pb-2">
<xsl:choose>
<xsl:when test="count(//subscriptioncities/record) = 0">
<div class="col fs-6 text-danger fw-bold fst-italic mt-1 mb-1">
<xsl:text>There are no Cities...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-responsive scrollable-30">
<table class="table table-sm table-striped base-table table-auto" id="subscriptioncities-table">
<thead class="sticky-header">
<th>Name</th>
</thead>
<tbody>
<xsl:apply-templates select="//subscriptioncities"/>
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
<div class="buttons mt-2 mb-1">
<button type="button" class="btn btn-sm btn-primary mt-2 me-1 mb-1 btnAddCityToSubscription">
<i class="bi bi-plus-lg me-2"/>Add City</button>
</div>
</div>
</div>
</div> <!-- Cities -->
<!-- Notes -->
<div class="tab-pane" id="pane-Notes" role="tabpanel" aria-labelledby="tab-Notes">
<div class="card mb-0 mt-3">
<div class="card-body pt-2 pb-2">
<xsl:choose>
<xsl:when test="count(//notes/record) = 0">
<div class="col fs-6 text-danger fw-bold fst-italic mt-1 mb-1">
<xsl:text>There are no Notes...</xsl:text>
</div>
</xsl:when>
<xsl:otherwise>
<div class="table-responsive scrollable-30">
<table class="table table-sm table-striped base-table table-auto" id="notes-table">
<thead class="sticky-header">
<th>Date</th>
<th>Subscription</th>
<th>Type</th>
<th>Note</th>
</thead>
<tbody>
<xsl:apply-templates select="//notes" />
</tbody>
</table>
</div>
</xsl:otherwise>
</xsl:choose>
<div class="buttons mt-2 mb-1">
<button type="button" class="btn btn-sm btn-primary mt-2 me-1 mb-1 btnAddNote">
<i class="bi bi-plus-lg me-2"/>Add Note</button>
</div>
</div>
</div>
</div> <!-- Notes -->
</div> <!-- Tab Content -->
</div>
</div>
</div>
</xsl:template>
<!-- Template for Dropdowns -->
<xsl:template name="dropdowns">
<xsl:param name="dropdown-name"/>
<xsl:param name="current-value"/>
<option value="">Choose...</option>
<xsl:for-each select="//dropdowns/record[dropdowntype_name = $dropdown-name]">
<option value="{dropdown_serial}" data-tokens="{dropdown_value}">
<xsl:if test="dropdown_serial = $current-value">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
<xsl:value-of select="dropdown_value" />
</option>
</xsl:for-each>
</xsl:template>
<!-- Template for Notes Tab -->
<xsl:template match="notes/record">
<tr class="hoverable note-row" data-note-serial="{note_serial}">
<td class="note_timestamp text-nowrap">
<xsl:value-of select="note_timestamp_verbose"/>
</td>
<td class="note_origin text-nowrap">
<xsl:value-of select="note_origin"/>
</td>
<td class="note_type text-nowrap">
<xsl:value-of select="note_type"/>
</td>
<td class="note_text pre-wrap">
<xsl:value-of select="note_text"/>
</td>
</tr>
</xsl:template>
<!-- Template for Counties Tab -->
<xsl:template match="subscriptioncounties/record">
<tr class="subscriptioncounty-row hoverable" data-subscriptioncounty-serial="{subscriptioncounty_serial}">
<td class="subscriptioncounties_county_name_verbose">
<xsl:value-of select="subscriptioncounties_county_name_verbose"/>
</td>
</tr>
</xsl:template>
<!-- Template for Cities Tab -->
<xsl:template match="subscriptioncities/record">
<tr class="subscriptioncity-row hoverable" data-subscriptioncity-serial="{subscriptioncity_serial}">
<td class="subscriptioncity_city_name">
<xsl:value-of select="subscriptioncities_city_name_verbose"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>