Commit graph

144 commits

Author SHA1 Message Date
Peter Goodhall
984bfde498 Improve DXCC awards filtering and map legend
- Fix returnStatus() to evaluate all band statuses before returning, so 'C' takes priority over 'W' across all bands instead of returning on first match
- Add band preset buttons (HF Only, VHF/UHF+, SAT Only, All, Clear) to the DXCC filter form
- Update map legend to show total worked count (confirmed + unconfirmed) alongside the unconfirmed breakdown
2026-07-21 13:09:12 +01:00
Peter Goodhall
15c8947bdf Pass year and eQSL filters to DXCC map
Wires missing DXCC map filters through the request pipeline. The frontend now submits `year` and `eqsl` with the map AJAX payload, and the Awards controller now reads/sanitizes `year` into `postdata` so year-based filtering can be applied server-side.
2026-07-20 22:10:04 +01:00
Peter Goodhall
e5ce621734 Replace band dropdown with multi-select checkboxes
Replaces the single band dropdown on the DXCC awards page with a group of checkboxes allowing multiple bands to be selected simultaneously.

- Controller and model updated to accept `bands[]` array instead of a single `band` value
- `addBandToQuery()` in Dxcc model now handles array input, building appropriate IN clauses and SAT propagation mode logic
- `returnStatus()` priority fixed: Confirmed (C) now takes precedence over Worked (W); unworked entries now return 'x' instead of null
- JS updated to collect checked band values; map and filter reset functions updated accordingly
- Uninitialized `$newdxcc`/`$newiota` arrays now explicitly initialized before use
2026-07-20 22:08:53 +01:00
Peter Goodhall
3e944f71cc Normalize location lists and sanitize SQL
Replace fragile quoted-implode station lists with normalized integer CSVs and where_in usage to ensure station_id lists are numeric. Add normalize_location_list helpers in multiple models (Lookup_model, Sig, Timeline_model) and update controllers to cast inputs (e.g. dxcc_id) to ints. Escape user-supplied SQL fragments with $this->db->escape_str/escape_like_str and sanitize band/mode parameters; consolidate band/mode filtering into add_band_mode_filters in Timeline_model. Add guards for empty location lists (returning empty results) and a method_exists check around a legacy vucc_shit call. Overall this improves input validation and reduces SQL injection risk while removing duplicated list-building logic.
2026-06-24 22:29:00 +01:00
Peter Goodhall
c6bdee1bc5 Sanitize location lists and harden SQL
Replace string-quoted station_id lists with comma-separated, integer-casted lists and harden SQL across awards models. This diff converts constructions like "'a','b'" to implode(',', array_map('intval', ...)) and uses $this->db->escape_str() for band/mode values and band lists to reduce injection/format issues. Added helper methods (addModeToQuery, addBandToQuery variants) to centralize mode/band filtering, parameterized time/mode/band queries in Gmdxsummer_model, and escaped band arrays when building IN() lists. Also added null/empty-checks for logbook arrays in several models and small refactors (e.g. VUCC addBandToQuery) to keep SQL building consistent.
2026-06-24 22:26:11 +01:00
Peter Goodhall
e25714b37a Update GMDX Summer Challenge to 2026
Advance the GMDX Summer Challenge event to 2026: update controller week end timestamps, and update view copy and table dates/entry link to reflect the new event window (11 May – 5 July 2026). In the model introduce START_DATE (2026-05-11), add validation to ignore empty/null COL_GRIDSQUARE values, and change combined-count logic to normalize gridsquares and group modes into CW / VOICE / DIGITAL so counts are consistent and case-insensitive.
2026-05-06 10:33:35 +01:00
Peter Goodhall
177f605183 Add year filter to DXCC awards
Add a year filter to the DXCC awards UI and backend. Controller: populate worked_years for the view and read/sanitize a year POST value (default 'All'). Model: introduce addYearToQuery() to append a YEAR(col_time_on) clause to existing DXCC queries and call it in relevant query paths; add get_worked_years() to return distinct worked years for the active logbook locations. View: add a year select dropdown to the DXCC awards form. This enables narrowing DXCC results by year.
2026-05-03 22:48:10 +01:00
Peter Goodhall
df8dc163ff Add reverse SIG bulk remove and input validation
Validate and harden SIG handling across controllers and views. Awards: trim and validate requested SIG type, guard against empty types and wrap SIG data loading in try/catch with error logging and user notice. Callhistory: tighten input trimming and validation for proposed SIG info, reject proposals without membership numbers and enforce per-organization SIG-info rules (e.g. numeric for CWOPS). Add scan_remove action to perform reverse/bulk SIG clears for matched QSOs, and filter/validate batch changes before applying. Improve CSV/header parsing by normalizing header keys, aligning rows to headers (handles N1MM !!Order!! cases), extracting exch1 robustly, and adding helpers (looks_like_callsign, is_valid_sig_info_for_organization). View: add Reverse Bulk SIG Update UI, confirmation modal and JS helpers, and convert several forms to use JS-driven confirm dialogs. Misc: various trimming/safety fixes and UX messages.
2026-03-26 10:40:39 +00:00
Peter Goodhall
14af3fda19 Support multiple POTA refs, DB + UI
Add support for comma-separated POTA references across the app: bump migration version to 259 and add migration 260 to expand COL_MY_POTA_REF and station_pota to VARCHAR(255). Introduce Pota::split_refs and collect_refs_from_rows to normalize and aggregate multiple refs; refactor Pota counts to compute unique refs per band/mode. Normalize station_pota when saving in Stations and Logbook_model (uses normalize_pota_refs), and adjust POTA search to match refs inside comma-separated values. Update views to render multiple POTA links and hashtags, and add Selectize-based autocomplete for station POTA input on create/edit forms. Also minor change to user_owns_station query (removed user_id where clause).
2026-03-24 14:32:17 +00:00
Peter Goodhall
c556a42892 Add advanced filtering and stats to WWFF awards page
Enhanced the WWFF awards page with band, mode, and QSL type filters, quick preset buttons, and a summary section showing worked/confirmed parks and milestone progress. Updated the controller to handle filter input and summary data, and extended the model with methods for filtered queries and statistics.
2026-01-21 17:36:18 +00:00
Peter Goodhall
0e7a2ccd39 Add CSV export for SIG QSOs
Introduced a new controller method sigexportcsv() to export SIG QSO data as a CSV file. Added a corresponding button in the SIG QSO list view to allow users to download the CSV export.
2026-01-21 17:19:48 +00:00
Peter Goodhall
2d9c4182d2 Add SIG award filters and translations
Introduces filtering by band, mode, and confirmation status to the SIG awards section in Awards.php, including a filter summary helper. Updates all supported language files to add translations for the new SIG award filters, table headers, and related UI elements.
2026-01-21 17:15:01 +00:00
Peter Goodhall
2a2f62ccbc Add filtering and localization to WAB award view
Introduces band, mode, and confirmed-only filters to the Worked All Britain (WAB) award view and details AJAX endpoint. Updates the controller, model, and view logic to support filtering, and adds new localized strings for WAB award UI elements in multiple languages. Also ensures the correct script is loaded for the WAB section and improves the Bands model to check for field existence before filtering by award.
2026-01-21 16:54:24 +00:00
Peter Goodhall
8b819d2177 Refactor and enhance SOTA awards support
Replaces the old SOTA model with a new Sota_model, adds CSV-based summit metadata caching, and introduces new controller endpoints and view components for SOTA table, stats, and map fragments. The SOTA award page now supports filtering, improved statistics, and interactive mapping using summit coordinates. Updates .gitignore to include the new SOTA CSV, and refactors SOTA data refresh logic for reliability and maintainability.
2026-01-13 13:35:11 +00:00
Peter Goodhall
2f917c8bcf Add advanced POTA awards dashboard with filtering and map
Introduces a new POTA awards dashboard with HTMX-powered filtering, statistics, progress bars, and a Leaflet map of worked parks. Adds new controller endpoints, model methods for filtered queries and park metadata, and modular view components for table, stats, progress, and map. Updates language files for new stats labels and enhances the update process to cache the full POTA parks CSV for richer features.
2026-01-10 15:08:22 +00:00
Peter Goodhall
f4d4fac839 Optimize continent QSOs query in Awards controller
Refactored get_continent_qsos to use a single SQL query for fetching DXCC entities and their worked/confirmed status, replacing multiple per-entity queries. This improves performance and simplifies the code.
2026-01-07 10:50:49 +00:00
Peter Goodhall
d597e2e83b Add DXCC statistics and continent breakdown
Introduces DXCC statistics and continent breakdown features to the awards page, including new controller endpoints for DXCC QSOs, QSOs by status, and continent QSOs. Updates the DXCC model to provide continent and milestone statistics, and enhances the awards view with summary cards, continent progress, table search, sorting, and modal dialogs for QSO details.
2026-01-06 22:34:05 +00:00
Peter Goodhall
f2e63b2d0b Support multiple gridsquares in VUCC validation
Updated gridsquare validation to allow multiple comma-separated gridsquares for VUCC awards. Each gridsquare is now individually validated for correct format, improving input flexibility and error handling.
2025-10-18 14:39:44 +01:00
Peter Goodhall
7d64275095 Add input validation and secure queries for VUCC details
Enhanced input validation for gridsquare and band parameters in Awards controller to prevent invalid data and potential abuse. Updated Logbook_model to use parameterized queries and early return for empty logbook relationships, improving security and reliability of VUCC QSO details retrieval.
2025-10-18 11:31:48 +01:00
Peter Goodhall
cee89b3966 Added support for the GMDX Summer Challenge 2024-05-09 15:55:03 +01:00
Peter Goodhall
ec7d579e77 Update Awards.php 2024-04-20 18:09:10 +01:00
Peter Goodhall
2d72981787 Added full Worked All Britain Award Support
Added full Worked All Britain Award Support using the SIG system in Cloudlog #3079
2024-04-20 16:01:50 +01:00
Peter Goodhall
e2a9641383 draft to build a map with wab map geo overlay 2024-04-18 17:42:34 +01:00
Andreas Kristiansen
2431d26206
Merge pull request #2818 from AndreasK79/new_was_map
New was map
2023-12-13 08:12:29 +01:00
phl0
4e26174b93
Fix FFMA award 2023-12-12 21:58:34 +01:00
Andreas
352b933f44 [Award] WAS - removed unused code 2023-12-12 21:41:23 +01:00
Andreas
fc742615d7 [Award] Added map based on Leaflet 2023-12-12 21:35:03 +01:00
phl0
b58ff1ae13
Remove redundant JA gridmaster stuff 2023-12-12 19:52:42 +01:00
phl0
bfc2d50c95
Generalize gridmaster functions 2023-12-12 19:15:56 +01:00
Andreas
c47ed82166 Fixed map function 2023-12-04 11:00:01 +01:00
Andreas
1602b3bc86 [Awards] WAJA Map W.I.P. 2023-12-03 15:57:25 +01:00
Andreas
50fef635d5 [Awards] Addad WAJA 2023-11-29 20:16:53 +01:00
HB9HIL
29cfc7c3e9
Merge pull request #12 from phl0/jaGridmaster
JA gridmaster and a more generalized approach serving as blueprint for
2023-10-23 10:02:09 +02:00
phl0
3e18f50a90
JA gridmaster and a more generalized approach serving as blueprint for
future gridmaster map pages
2023-10-22 21:23:51 +02:00
HB9HIL
2f45174ffd adjusted page titles 2023-10-21 09:35:09 +02:00
HB9HIL
cec59fcd7d DOK Award(s) 2023-10-21 08:42:03 +02:00
HB9HIL
02bff45d32 adjusted dxcc award page title 2023-10-21 00:27:50 +02:00
HB9HIL
3d18d649d9 adjusted dok award page title 2023-10-21 00:18:27 +02:00
HB9HIL
9522ed7ae5 adjusted cq award name 2023-10-21 00:11:13 +02:00
HB9HIL
649b2a7803 adjusted cq award name 2023-10-21 00:04:12 +02:00
Andreas
c4121e7cde [Awards] Added FFMA 2023-10-20 13:27:44 +02:00
phl0
5c635f1b90
Add paper QSL to Gridmaster (as well as translations) 2023-10-19 18:12:52 +02:00
phl0
c81c6654a2
Add Gridmaster award map 2023-10-19 14:00:20 +02:00
phl0
27652fc773
Add functionality to lookup per source grid(s) 2023-09-16 00:32:39 +02:00
int2001
d2e25a27c8
Added detail-view to todays QSLs 2023-08-14 13:20:13 +00:00
int2001
1e269b18b2
removed a lot of unused (and dangerous) functions 2023-08-08 13:47:23 +00:00
Andreas
1e82df7530 [Awards] Added xss_clean to all used inputs 2023-08-01 14:20:14 +02:00
phl0
2370ee2bfe
Harmonize LoTW abbreviation 2023-04-26 05:44:54 +02:00
phl0
accf4add52
Implement eQSL and QSL filter for WAS awards 2023-01-18 14:08:56 +01:00
phl0
90b2e9c7f9
Implement eQSL and QSL filter for DXCC awards 2023-01-18 13:51:46 +01:00