mirror of
https://git.ianrenton.com/ian/spothole.git
synced 2026-09-28 18:22:05 +00:00
Replace pages' use of the options call with directly building the HTML components using templates, as the syntax is much nicer. Use a common set of data provided to all modules via pagetemplate.py instead of passing things like web_ui_options around. Closes #153
This commit is contained in:
+60
-1
@@ -38,12 +38,18 @@
|
||||
<label for="mode" class="form-label">Mode</label>
|
||||
<select id="mode" class="form-select">
|
||||
<option value="" selected></option>
|
||||
{% for m in options["modes"] %}
|
||||
<option value="{{ m }}">{{ m }}</option>
|
||||
{% end %}
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label for="activity" class="form-label">Activity</label>
|
||||
<select id="activity" class="form-select">
|
||||
<option value="" selected></option>
|
||||
{% for a in options["activities"] %}
|
||||
<option value="{{ a.name }}">{{ a.name }}</option>
|
||||
{% end %}
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
@@ -68,6 +74,32 @@
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div id="upstream-area" class="mt-3" style="display:none;">
|
||||
<div class="row g-2 align-items-center">
|
||||
<div class="col-auto">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" id="submit-upstream">
|
||||
<label class="form-check-label" for="submit-upstream">
|
||||
Send spot to <span id="upstream-provider-label"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto" id="upstream-provider-select-col" style="display:none;">
|
||||
<select id="upstream-provider-select" class="form-select form-select-sm"></select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-sm btn-outline-secondary" id="upstream-credentials-btn"
|
||||
onclick="showCredentialsModal();" style="display:none;">
|
||||
<i class="fa-solid fa-key"></i> Credentials
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="recaptcha-area" class="mt-3" style="display:none;">
|
||||
<div id="recaptcha-widget"></div>
|
||||
</div>
|
||||
|
||||
<div id="result-good"></div>
|
||||
<div id="result-bad"></div>
|
||||
|
||||
@@ -77,7 +109,34 @@
|
||||
|
||||
</div>
|
||||
|
||||
<script src="/static/js/add-spot.js?v=1790344336"></script>
|
||||
<div class="modal fade" id="credentials-modal" tabindex="-1" aria-labelledby="credentials-modal-label" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="credentials-modal-label">Credentials for
|
||||
<span id="credentials-provider-name"></span></h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p class="small text-muted">Credentials are stored only in your browser and are never saved on the
|
||||
server.</p>
|
||||
<div id="credentials-fields"></div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
|
||||
<button type="button" class="btn btn-primary" onclick="saveCredentials();">Save</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const SPOT_SUBMIT_PROVIDERS = {% raw safe_json_dumps(options["spot_submit_providers"]) %};
|
||||
const RECAPTCHA_SITE_KEY = {% raw safe_json_dumps(web_ui_options["recaptcha_site_key"]) %};
|
||||
const ALLOW_UPSTREAM_SPOTTING = {% raw safe_json_dumps(web_ui_options["allow_upstream_spotting"]) %};
|
||||
</script>
|
||||
|
||||
<script src="/static/js/add-spot.js?v=1790367752"></script>
|
||||
<script>$(document).ready(function () {
|
||||
$("#nav-link-add-spot").addClass("active");
|
||||
}); <!-- highlight active page in nav --></script>
|
||||
|
||||
+18
-16
@@ -7,45 +7,47 @@
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="d-inline-flex gap-1">
|
||||
{% module Template("widgets/filters_display_data_buttons.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/filters_display_data_buttons.html") %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="filters-area" class="appearing-panel card mb-3">
|
||||
{% module Template("widgets/filters_area_header.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/filters_area_header.html") %}
|
||||
<div class="card-body">
|
||||
<div class="row row-cols-1 row-cols-md-3 g-4">
|
||||
<div class="col">
|
||||
{% module Template("cards/dx_continent.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/dx_continent.html") %}
|
||||
<div class="mt-4"></div>
|
||||
{% module Template("cards/duration_limit_alerts.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/duration_limit_alerts.html") %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/activities.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/activities.html",
|
||||
activities=[a for a in options["activities"] if a.alerts_possible], include_general_dx=False) %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/sources.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/sources.html",
|
||||
sources=options["alert_providers"], sources_enabled_by_default=options["alert_providers"]) %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="display-area" class="appearing-panel card mb-3">
|
||||
{% module Template("widgets/display_area_header.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/display_area_header.html") %}
|
||||
<div class="card-body">
|
||||
<div id="display-container" class="row row-cols-1 row-cols-md-4 g-4">
|
||||
<div class="col">
|
||||
{% module Template("cards/time_zone.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/time_zone.html") %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/number_of_alerts.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/number_of_alerts.html") %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/color_scheme.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/color_scheme.html") %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/table_columns_alerts.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/table_columns_alerts.html") %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -53,21 +55,21 @@
|
||||
|
||||
{% if web_ui_options["qrz_enabled"] or web_ui_options["hamqth_enabled"] %}
|
||||
<div id="data-area" class="appearing-panel card mb-3">
|
||||
{% module Template("widgets/your_data_area_header.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/your_data_area_header.html") %}
|
||||
<div class="card-body">
|
||||
<div class="row row-cols-1 row-cols-md-4 g-4">
|
||||
{% if web_ui_options["qrz_enabled"] %}
|
||||
<div class="col">
|
||||
{% module Template("cards/qrz.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/qrz.html") %}
|
||||
</div>
|
||||
{% end %}
|
||||
{% if web_ui_options["hamqth_enabled"] %}
|
||||
<div class="col">
|
||||
{% module Template("cards/hamqth.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/hamqth.html") %}
|
||||
</div>
|
||||
{% end %}
|
||||
<div class="col">
|
||||
{% module Template("cards/wanted_calls.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/wanted_calls.html") %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -85,7 +87,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
<script src="/static/js/alerts.js?v=1790344337"></script>
|
||||
<script src="/static/js/alerts.js?v=1790367751"></script>
|
||||
<script>$(document).ready(function () {
|
||||
$("#nav-link-alerts").addClass("active");
|
||||
}); <!-- highlight active page in nav --></script>
|
||||
|
||||
+24
-18
@@ -6,44 +6,46 @@
|
||||
<div class="col-auto me-auto pt-3"></div>
|
||||
<div class="col-auto">
|
||||
<div class="d-inline-flex gap-1">
|
||||
{% module Template("widgets/filters_display_data_buttons.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/filters_display_data_buttons.html") %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="filters-area" class="appearing-panel card mb-3">
|
||||
{% module Template("widgets/filters_area_header.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/filters_area_header.html") %}
|
||||
<div class="card-body">
|
||||
<div class="row row-cols-1 g-4 mb-4 row-cols-md-3">
|
||||
<div class="col">
|
||||
{% module Template("cards/bands.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/bands.html") %}
|
||||
<div class="mt-4"></div>
|
||||
{% module Template("cards/dx_continent.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/dx_continent.html") %}
|
||||
<div class="mt-4"></div>
|
||||
{% module Template("cards/de_continent.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/de_continent.html") %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/activities.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/activities.html",
|
||||
activities=options["activities"], include_general_dx=True) %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/sources.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/sources.html",
|
||||
sources=options["spot_providers"],
|
||||
sources_enabled_by_default=options["spot_providers_enabled_by_default"]) %}
|
||||
<div class="mt-4"></div>
|
||||
{% module Template("cards/modes.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/modes.html") %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="display-area" class="appearing-panel card mb-3">
|
||||
{% module Template("widgets/display_area_header.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/display_area_header.html") %}
|
||||
<div class="card-body">
|
||||
<div id="display-container" class="row row-cols-1 row-cols-md-4 g-4">
|
||||
<div class="col">
|
||||
{% module Template("cards/spot_age.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/spot_age.html") %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/color_scheme_and_band_color_scheme.html", web_ui_options=web_ui_options)
|
||||
%}
|
||||
{% module Template("cards/color_scheme_and_band_color_scheme.html") %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -51,21 +53,21 @@
|
||||
|
||||
{% if web_ui_options["qrz_enabled"] or web_ui_options["hamqth_enabled"] %}
|
||||
<div id="data-area" class="appearing-panel card mb-3">
|
||||
{% module Template("widgets/your_data_area_header.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/your_data_area_header.html") %}
|
||||
<div class="card-body">
|
||||
<div class="row row-cols-1 row-cols-md-4 g-4">
|
||||
{% if web_ui_options["qrz_enabled"] %}
|
||||
<div class="col">
|
||||
{% module Template("cards/qrz.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/qrz.html") %}
|
||||
</div>
|
||||
{% end %}
|
||||
{% if web_ui_options["hamqth_enabled"] %}
|
||||
<div class="col">
|
||||
{% module Template("cards/hamqth.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/hamqth.html") %}
|
||||
</div>
|
||||
{% end %}
|
||||
<div class="col">
|
||||
{% module Template("cards/wanted_calls.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/wanted_calls.html") %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -76,8 +78,12 @@
|
||||
|
||||
</div>
|
||||
|
||||
<script src="/static/js/spotsbandsandmap.js?v=1790344336"></script>
|
||||
<script src="/static/js/bands.js?v=1790344336"></script>
|
||||
<script>
|
||||
const BANDS = {% raw safe_json_dumps(options["bands"]) %};
|
||||
</script>
|
||||
|
||||
<script src="/static/js/spotsbandsandmap.js?v=1790367752"></script>
|
||||
<script src="/static/js/bands.js?v=1790367752"></script>
|
||||
<script>$(document).ready(function () {
|
||||
$("#nav-link-bands").addClass("active");
|
||||
}); <!-- highlight active page in nav --></script>
|
||||
|
||||
+6
-6
@@ -1,6 +1,6 @@
|
||||
{% extends "skeleton.html" %}
|
||||
{% block head_extra %}
|
||||
<link rel="stylesheet" href="/static/css/style.css?v=1790344336" type="text/css">
|
||||
<link rel="stylesheet" href="/static/css/style.css?v=1790367751" type="text/css">
|
||||
<link href="/static/vendor/css/bootstrap-5.3.8.min.css" rel="stylesheet">
|
||||
<link href="/static/vendor/css/fontawesome-6.7.2.min.css" rel="stylesheet">
|
||||
<link href="/static/vendor/css/solid-6.7.2.min.css" rel="stylesheet">
|
||||
@@ -16,10 +16,10 @@
|
||||
window.fetchEventSource = fetchEventSource;
|
||||
</script>
|
||||
|
||||
<script src="/static/js/utils.js?v=1790344336"></script>
|
||||
<script src="/static/js/ui-ham.js?v=1790344336"></script>
|
||||
<script src="/static/js/geo.js?v=1790344336"></script>
|
||||
<script src="/static/js/common.js?v=1790344336"></script>
|
||||
<script src="/static/js/utils.js?v=1790367751"></script>
|
||||
<script src="/static/js/ui-ham.js?v=1790367751"></script>
|
||||
<script src="/static/js/geo.js?v=1790367751"></script>
|
||||
<script src="/static/js/common.js?v=1790367751"></script>
|
||||
{% end %}
|
||||
{% block body %}
|
||||
<div class="container">
|
||||
@@ -43,7 +43,7 @@
|
||||
class="fa-solid fa-ruler-vertical"></i> Bands</a></li>
|
||||
<li class="nav-item ms-4"><a href="/alerts" class="nav-link" id="nav-link-alerts"><i
|
||||
class="fa-solid fa-clock"></i> Upcoming</a></li>
|
||||
{% if allow_spotting %}
|
||||
{% if options["spot_allowed"] %}
|
||||
<li class="nav-item ms-4"><a href="/add-spot" class="nav-link" id="nav-link-add-spot"><i
|
||||
class="fa-solid fa-comment"></i> Add Spot</a></li>
|
||||
{% end %}
|
||||
|
||||
@@ -1,6 +1,58 @@
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Activities</h5>
|
||||
<div id="activity-options" class="card-text spothole-card-text"></div>
|
||||
<div class="card-text spothole-card-text">
|
||||
<ul class="list-unstyled filter-section-list ps-0">
|
||||
{% for section_type, heading, expanded in [("TRADITIONAL", "Traditional", True), ("ADVENTURE",
|
||||
"Adventure", True), ("REGIONAL", "Regional", False), ("EVENT", "Event", False)] %}
|
||||
{% set show_general_dx = include_general_dx and section_type == "TRADITIONAL" %}
|
||||
{% set section_activities = [a for a in activities if a.activity_type == section_type] %}
|
||||
{% if section_activities or show_general_dx %}
|
||||
{% set collapse_id = "activity-options-" + section_type.lower() + "-collapse" %}
|
||||
<li class="mb-1">
|
||||
<button class="btn-toggle{% if not expanded %} collapsed{% end %}" data-bs-toggle="collapse"
|
||||
data-bs-target="#{{ collapse_id }}" aria-expanded="{{ 'true' if expanded else 'false' }}"
|
||||
aria-controls="{{ collapse_id }}">{{ heading }}
|
||||
</button>
|
||||
<div class="collapse filter-section-body{% if expanded %} show{% end %}" id="{{ collapse_id }}">
|
||||
{% if show_general_dx %}
|
||||
<div class="w-100 mb-1">
|
||||
<div class="form-check">
|
||||
<input type="checkbox"
|
||||
class="form-check-input filter-button-activity storeable-checkbox"
|
||||
id="filter-button-activity-NO_ACTIVITY" value="NO_ACTIVITY"
|
||||
autocomplete="off" onClick="filtersUpdated()" checked>
|
||||
<label class="form-check-label" for="filter-button-activity-NO_ACTIVITY"><i
|
||||
class="fa-solid fa-tower-cell"></i> General DX</label>
|
||||
</div>
|
||||
</div>
|
||||
{% end %}
|
||||
<div class="row row-cols-2 g-1 mb-1">
|
||||
{% for a in section_activities %}
|
||||
<div class="col">
|
||||
<div class="form-check">
|
||||
<input type="checkbox"
|
||||
class="form-check-input filter-button-activity storeable-checkbox"
|
||||
id="filter-button-activity-{{ dom_safe_name(a.name) }}" value="{{ a.name }}"
|
||||
autocomplete="off" onClick="filtersUpdated()" checked>
|
||||
<label class="form-check-label"
|
||||
for="filter-button-activity-{{ dom_safe_name(a.name) }}"
|
||||
title="{{ a.description }}"><i class="fa-solid {{ a.icon }}"></i> {{ a.name
|
||||
}}
|
||||
{{ a.region_flag or "" }}</label>
|
||||
</div>
|
||||
</div>
|
||||
{% end %}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
{% end %}
|
||||
{% end %}
|
||||
</ul>
|
||||
<div class="mt-1">
|
||||
<a href="#" onclick="toggleFilterButtons('activity', true); return false;">All</a>
|
||||
<a href="#" onclick="toggleFilterButtons('activity', false); return false;">None</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,26 @@
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Bands</h5>
|
||||
<div id="band-options" class="card-text spothole-card-text"></div>
|
||||
<div class="card-text spothole-card-text">
|
||||
<div class="row row-cols-3 row-cols-md-2 row-cols-lg-3 row-cols-xxl-4 g-1 mb-1">
|
||||
{% for b in options["bands"] %}
|
||||
<div class="col">
|
||||
<div class="form-check">
|
||||
<input type="checkbox" class="form-check-input filter-button-band storeable-checkbox"
|
||||
id="filter-button-band-{{ dom_safe_name(b.name) }}" value="{{ b.name }}"
|
||||
data-ham-hf="{{ 'true' if b.is_ham_hf else 'false' }}"
|
||||
autocomplete="off" onClick="filtersUpdated()" checked>
|
||||
<label class="form-check-label" for="filter-button-band-{{ dom_safe_name(b.name) }}">{{ b.name
|
||||
}}</label>
|
||||
</div>
|
||||
</div>
|
||||
{% end %}
|
||||
</div>
|
||||
<div class="mt-1">
|
||||
<a href="#" onclick="toggleFilterButtons('band', true); return false;">All</a>
|
||||
<a href="#" onclick="toggleFilterButtons('band', false); return false;">None</a>
|
||||
<a href="#" onclick="setHamHFBandToggles(); return false;">Ham HF only</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Theme</h5>
|
||||
<p class="card-text spothole-card-text">
|
||||
{% module Template("widgets/color_scheme.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/color_scheme.html") %}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -2,10 +2,10 @@
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Theme</h5>
|
||||
<p class="card-text spothole-card-text">
|
||||
{% module Template("widgets/color_scheme.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/color_scheme.html") %}
|
||||
</p>
|
||||
<p class="card-text spothole-card-text">
|
||||
{% module Template("widgets/band_color_scheme.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/band_color_scheme.html") %}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,6 +1,21 @@
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">DE Continent</h5>
|
||||
<div id="de_continent_options" class="card-text spothole-card-text"></div>
|
||||
<div class="card-text spothole-card-text">
|
||||
<div>
|
||||
{% for c in options["continents"] %}
|
||||
<div class="form-check form-check-inline">
|
||||
<input type="checkbox" class="form-check-input filter-button-de_continent storeable-checkbox"
|
||||
id="filter-button-de_continent-{{ c }}" value="{{ c }}"
|
||||
autocomplete="off" onClick="filtersUpdated()" checked>
|
||||
<label class="form-check-label" for="filter-button-de_continent-{{ c }}">{{ c }}</label>
|
||||
</div>
|
||||
{% end %}
|
||||
</div>
|
||||
<div class="mt-1">
|
||||
<a href="#" onclick="toggleFilterButtons('de_continent', true); return false;">All</a>
|
||||
<a href="#" onclick="toggleFilterButtons('de_continent', false); return false;">None</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,21 @@
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">DX Continent</h5>
|
||||
<div id="dx_continent_options" class="card-text spothole-card-text"></div>
|
||||
<div class="card-text spothole-card-text">
|
||||
<div>
|
||||
{% for c in options["continents"] %}
|
||||
<div class="form-check form-check-inline">
|
||||
<input type="checkbox" class="form-check-input filter-button-dx_continent storeable-checkbox"
|
||||
id="filter-button-dx_continent-{{ c }}" value="{{ c }}"
|
||||
autocomplete="off" onClick="filtersUpdated()" checked>
|
||||
<label class="form-check-label" for="filter-button-dx_continent-{{ c }}">{{ c }}</label>
|
||||
</div>
|
||||
{% end %}
|
||||
</div>
|
||||
<div class="mt-1">
|
||||
<a href="#" onclick="toggleFilterButtons('dx_continent', true); return false;">All</a>
|
||||
<a href="#" onclick="toggleFilterButtons('dx_continent', false); return false;">None</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,26 @@
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Modes</h5>
|
||||
<div id="mode-options" class="card-text spothole-card-text"></div>
|
||||
<div class="card-text spothole-card-text">
|
||||
<div class="row row-cols-3 row-cols-md-2 row-cols-lg-3 g-1 mb-1">
|
||||
{% for m in options["modes"] %}
|
||||
<div class="col">
|
||||
<div class="form-check">
|
||||
<input type="checkbox" class="form-check-input filter-button-mode storeable-checkbox"
|
||||
id="filter-button-mode-{{ dom_safe_name(m) }}" value="{{ m }}"
|
||||
data-mode-type="{{ infer_mode_type_from_mode(m).value }}"
|
||||
autocomplete="off" onClick="filtersUpdated()" checked>
|
||||
<label class="form-check-label" for="filter-button-mode-{{ dom_safe_name(m) }}">{{ m }}</label>
|
||||
</div>
|
||||
</div>
|
||||
{% end %}
|
||||
</div>
|
||||
<div class="mt-1">
|
||||
<a href="#" onclick="toggleFilterButtons('mode', true); return false;">All</a>
|
||||
<a href="#" onclick="toggleFilterButtons('mode', false); return false;">None</a>
|
||||
<a href="#" onclick="setVoiceModeToggles(); return false;">Voice only</a>
|
||||
<a href="#" onclick="setDigiModeToggles(); return false;">Digimodes only</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,25 @@
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Sources</h5>
|
||||
<div id="source-options" class="card-text spothole-card-text"></div>
|
||||
<div class="card-text spothole-card-text">
|
||||
<div class="row row-cols-2 row-cols-xxl-3 g-1 mb-1">
|
||||
{% for s in sources %}
|
||||
<div class="col">
|
||||
<div class="form-check">
|
||||
<input type="checkbox" class="form-check-input filter-button-source storeable-checkbox"
|
||||
id="filter-button-source-{{ dom_safe_name(s) }}" value="{{ s }}"
|
||||
autocomplete="off" onClick="filtersUpdated()" {% if s in sources_enabled_by_default
|
||||
%}checked{% end %}>
|
||||
<label class="form-check-label" for="filter-button-source-{{ dom_safe_name(s) }}">{{ s
|
||||
}}</label>
|
||||
</div>
|
||||
</div>
|
||||
{% end %}
|
||||
</div>
|
||||
<div class="mt-1">
|
||||
<a href="#" onclick="toggleFilterButtons('source', true); return false;">All</a>
|
||||
<a href="#" onclick="toggleFilterButtons('source', false); return false;">None</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -284,7 +284,7 @@
|
||||
</div>
|
||||
|
||||
<script src="/static/vendor/js/chart-4.4.9.umd.min.js"></script>
|
||||
<script src="/static/js/conditions.js?v=1790344336"></script>
|
||||
<script src="/static/js/conditions.js?v=1790367751"></script>
|
||||
<script>$(document).ready(function () {
|
||||
$("#nav-link-conditions").addClass("active");
|
||||
}); <!-- highlight active page in nav --></script>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<li><strong><i class="fa-solid fa-clock"></i> Upcoming</strong>, the list of upcoming activations, DXpeditions and
|
||||
contests
|
||||
</li>
|
||||
{% if allow_spotting %}
|
||||
{% if options["spot_allowed"] %}
|
||||
<li><strong><i class="fa-solid fa-comment"></i> Add Spot</strong>, which allows users to add new spots to the system
|
||||
</li>
|
||||
{% end %}
|
||||
|
||||
+22
-20
@@ -20,50 +20,52 @@
|
||||
<div class="col-auto me-auto pt-3"></div>
|
||||
<div class="col-auto">
|
||||
<div class="d-inline-flex gap-1">
|
||||
{% module Template("widgets/filters_display_data_buttons.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/filters_display_data_buttons.html") %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="filters-area" class="appearing-panel card mb-3">
|
||||
{% module Template("widgets/filters_area_header.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/filters_area_header.html") %}
|
||||
<div class="card-body">
|
||||
<div class="row row-cols-1 g-4 mb-4 row-cols-md-3">
|
||||
<div class="col">
|
||||
{% module Template("cards/bands.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/bands.html") %}
|
||||
<div class="mt-4"></div>
|
||||
{% module Template("cards/dx_continent.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/dx_continent.html") %}
|
||||
<div class="mt-4"></div>
|
||||
{% module Template("cards/de_continent.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/de_continent.html") %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/activities.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/activities.html",
|
||||
activities=options["activities"], include_general_dx=True) %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/sources.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/sources.html",
|
||||
sources=options["spot_providers"],
|
||||
sources_enabled_by_default=options["spot_providers_enabled_by_default"]) %}
|
||||
<div class="mt-4"></div>
|
||||
{% module Template("cards/modes.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/modes.html") %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="display-area" class="appearing-panel card mb-3">
|
||||
{% module Template("widgets/display_area_header.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/display_area_header.html") %}
|
||||
<div class="card-body">
|
||||
<div id="display-container" class="row row-cols-1 row-cols-md-4 g-4">
|
||||
<div class="col">
|
||||
{% module Template("cards/spot_age.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/spot_age.html") %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/basemap.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/basemap.html") %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/map_features.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/map_features.html") %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/color_scheme_and_band_color_scheme.html",
|
||||
web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/color_scheme_and_band_color_scheme.html") %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -71,21 +73,21 @@
|
||||
|
||||
{% if web_ui_options["qrz_enabled"] or web_ui_options["hamqth_enabled"] %}
|
||||
<div id="data-area" class="appearing-panel card mb-3">
|
||||
{% module Template("widgets/your_data_area_header.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/your_data_area_header.html") %}
|
||||
<div class="card-body">
|
||||
<div class="row row-cols-1 row-cols-md-4 g-4">
|
||||
{% if web_ui_options["qrz_enabled"] %}
|
||||
<div class="col">
|
||||
{% module Template("cards/qrz.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/qrz.html") %}
|
||||
</div>
|
||||
{% end %}
|
||||
{% if web_ui_options["hamqth_enabled"] %}
|
||||
<div class="col">
|
||||
{% module Template("cards/hamqth.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/hamqth.html") %}
|
||||
</div>
|
||||
{% end %}
|
||||
<div class="col">
|
||||
{% module Template("cards/wanted_calls.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/wanted_calls.html") %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -113,8 +115,8 @@
|
||||
const CARTODB_API_KEY = "{{ web_ui_options.get('cartodb_api_key', '') }}";
|
||||
</script>
|
||||
|
||||
<script src="/static/js/spotsbandsandmap.js?v=1790344337"></script>
|
||||
<script src="/static/js/map.js?v=1790344337"></script>
|
||||
<script src="/static/js/spotsbandsandmap.js?v=1790367751"></script>
|
||||
<script src="/static/js/map.js?v=1790367751"></script>
|
||||
<script>$(document).ready(function () {
|
||||
$("#nav-link-map").addClass("active");
|
||||
}); <!-- highlight active page in nav --></script>
|
||||
|
||||
+27
-25
@@ -30,85 +30,87 @@
|
||||
<div id="settingsButtonRow" class="row mb-3">
|
||||
<div class="col-md-4 mb-3 mb-md-0">
|
||||
<div class="d-inline-flex gap-3">
|
||||
{% module Template("widgets/run_pause.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/run_pause.html") %}
|
||||
<div class="d-inline-flex">{% raw web_ui_options["support_button_html"] %}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-8 text-end">
|
||||
<div class="d-inline-flex gap-3">
|
||||
{% module Template("widgets/search.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/filters_display_data_buttons.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/search.html") %}
|
||||
{% module Template("widgets/filters_display_data_buttons.html") %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="filters-area" class="appearing-panel card mb-3">
|
||||
{% module Template("widgets/filters_area_header.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/filters_area_header.html") %}
|
||||
<div class="card-body">
|
||||
<div class="row row-cols-1 g-4 mb-4 row-cols-md-3">
|
||||
<div class="col">
|
||||
{% module Template("cards/bands.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/bands.html") %}
|
||||
<div class="mt-4"></div>
|
||||
{% module Template("cards/dx_continent.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/dx_continent.html") %}
|
||||
<div class="mt-4"></div>
|
||||
{% module Template("cards/de_continent.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/de_continent.html") %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/activities.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/activities.html",
|
||||
activities=options["activities"], include_general_dx=True) %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/sources.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/sources.html",
|
||||
sources=options["spot_providers"],
|
||||
sources_enabled_by_default=options["spot_providers_enabled_by_default"]) %}
|
||||
<div class="mt-4"></div>
|
||||
{% module Template("cards/modes.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/modes.html") %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="display-area" class="appearing-panel card mb-3">
|
||||
{% module Template("widgets/display_area_header.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/display_area_header.html") %}
|
||||
<div class="card-body">
|
||||
<div id="display-container" class="row row-cols-1 row-cols-md-4 g-4">
|
||||
<div class="col">
|
||||
{% module Template("cards/time_zone.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/time_zone.html") %}
|
||||
<div class="mt-4"></div>
|
||||
{% module Template("cards/audio.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/audio.html") %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/number_of_spots.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/number_of_spots.html") %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/color_scheme_and_band_color_scheme.html", web_ui_options=web_ui_options)
|
||||
%}
|
||||
{% module Template("cards/color_scheme_and_band_color_scheme.html") %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/table_columns_spots.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/table_columns_spots.html") %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="data-area" class="appearing-panel card mb-3">
|
||||
{% module Template("widgets/your_data_area_header.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("widgets/your_data_area_header.html") %}
|
||||
<div class="card-body">
|
||||
<div class="row row-cols-1 row-cols-md-4 g-4">
|
||||
{% if web_ui_options["qrz_enabled"] %}
|
||||
<div class="col">
|
||||
{% module Template("cards/qrz.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/qrz.html") %}
|
||||
</div>
|
||||
{% end %}
|
||||
{% if web_ui_options["hamqth_enabled"] %}
|
||||
<div class="col">
|
||||
{% module Template("cards/hamqth.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/hamqth.html") %}
|
||||
</div>
|
||||
{% end %}
|
||||
<div class="col">
|
||||
{% module Template("cards/location.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/location.html") %}
|
||||
<div class="mt-4"></div>
|
||||
{% module Template("cards/worked_calls.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/worked_calls.html") %}
|
||||
</div>
|
||||
<div class="col">
|
||||
{% module Template("cards/wanted_calls.html", web_ui_options=web_ui_options) %}
|
||||
{% module Template("cards/wanted_calls.html") %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -125,8 +127,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
<script src="/static/js/spotsbandsandmap.js?v=1790344336"></script>
|
||||
<script src="/static/js/spots.js?v=1790344336"></script>
|
||||
<script src="/static/js/spotsbandsandmap.js?v=1790367751"></script>
|
||||
<script src="/static/js/spots.js?v=1790367751"></script>
|
||||
<script>$(document).ready(function () {
|
||||
$("#nav-link-spots").addClass("active");
|
||||
}); <!-- highlight active page in nav --></script>
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="/static/js/status.js?v=1790344336"></script>
|
||||
<script src="/static/js/status.js?v=1790367751"></script>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$("#nav-link-status").addClass("active");
|
||||
|
||||
Reference in New Issue
Block a user