Commit graph

63 commits

Author SHA1 Message Date
Peter Goodhall
1fe8f10c02 Relocate callsign badges and simplify redraw
Move the small badge elements (callsign_info, locator_info_contest_dxcc, distance_contest_dxcc) out of the callsign input column and into a new row below the distance field (div#callsign-badge-row) with a min-height to preserve layout. In contesting.js, replace table.columns.adjust().draw(false) with table.draw(false) in updateTableColumns to avoid an extra column adjustment and reduce redraw overhead.
2026-03-27 17:39:32 +00:00
Peter Goodhall
dce3127eca Improve contest UI and DataTable behavior
Rework contest QSO form layout and add collapsible panels for session settings and extra fields (name/comment/copy-exchange). Add prominent reset/save buttons, inline chevrons to indicate collapse state, and a logbook search input. In assets/js/sections/contesting.js ensure DataTables are destroyed before DOM updates, initialize DataTable with a compact dom, preserve initial search from the new logbook search field, add a keyup handler to drive table filtering, and fix column render targets/padding. Also remove a redundant search/order call after logging a QSO to avoid duplicate operations.
2026-03-27 16:32:15 +00:00
Peter Goodhall
3267413685 Add contest stats card and dupe checks
Add a contest stats card to the contesting view and implement client-side logic to compute and display session QSOs, per-band counts, and recent rate. Hide the callsign suggestion box by default and show/hide it based on lookup results; add a debounced duplicate-worked check while typing and visual success/error styling on the callsign input. Mark duplicate QSOs in the table (table-warning) by counting identical call|band|mode entries, and add updateTableColumns/updateContestStats helpers to toggle DataTable columns by exchange type and refresh contest stats when the QSO table is rebuilt. Also include small resets to clear suggestion UI and styling when fields are reset.
2026-03-27 16:10:39 +00:00
Peter Goodhall
4c1dd7a42d Add Cabrillo export modal & format improvements
Add a full Cabrillo export workflow and harden Cabrillo/QSO formatting. Introduces a modal UI to export contest logs (new button + modal form with fields for location, category time, operators, club, soapbox, date range and other Cabrillo categories). Controller updates pass the new fields to the export action. Cabrilloformat library extended to accept and emit LOCATION and CATEGORY-TIME, improve header field ordering and presence checks, map ADIF modes to the five Cabrillo modes (CW/PH/FM/RY/DG), fix a band label (2.4G -> 2.3G), and emit placeholders for missing received exchanges to preserve column alignment. Contesting_model: more robust date parsing with UTC fallback, ensure session QSO marker only persists when timestamp valid, and build start timestamp when LIVE mode omits start_date/start_time. Frontend JS: setSession() now returns the ajax promise so callers can await it; several callers updated to await setSession and re-fetch session data before refreshing the QSO table; restore full table search on callsign blur and when suggestions are cleared. Misc: small form/input fixes (club field type, default overlay option) and additional server-supplied data loaded into the contesting view (active station id, contest session, station profile). These changes add required Cabrillo fields for certain contests and make exports and session handling more reliable.
2026-03-27 00:04:21 +00:00
Peter Goodhall
894d9af38f Add Call History upload and lookup feature
Introduce a new Call History feature: adds Callhistory controller, Callhistory_model, migration (create callhistory_files table) and view for uploading/managing call history files. Implements CSV/TXT upload handling, storage per-user, activation/priority controls, checksum, and server-side lookup that scans active files for matching callsigns. Integrates UI: header menu link, contesting and QSO views show call history results inline, and JavaScript to perform lookups and render results with copy-to-SIG functionality. Also updates .gitignore to exclude uploaded callhistory directory and bumps migration_version to 261.
2026-03-24 22:36:54 +00:00
Peter Goodhall
70971d81f1 Fix contesting tab order and initial focus flow
Set deterministic tab sequence for contest logging fields by exchange type, start focus on callsign, and end navigation at Save QSO for faster keyboard entry.
2026-03-24 16:07:44 +00:00
Peter Goodhall
c89ac7ceb5 Add contest callsign bearing/distance lookup with DXCC fallback 2026-03-24 14:13:35 +00:00
Peter Goodhall
c11ec97526 Add mode switch to LIVE/POST badges and update menu
LIVE and POST badges in contesting and QSO views are now clickable to switch modes. Redundant menu items for post QSO and contest logging have been removed from the header for a cleaner navigation.
2025-11-18 11:46:28 +00:00
Peter Goodhall
42018f8233 Add Bandmap button and popup to contesting page
Introduces a 'Bandmap' button to the contesting interface, allowing users to open the DX Cluster Bandmap in a new popup window. Also adds a placeholder for radio status and refactors button layout for improved UI.
2025-11-18 11:38:28 +00:00
copilot-swe-agent[bot]
ae47a5204a Fix contest logging locator field length and tab navigation issues
Co-authored-by: magicbug <84308+magicbug@users.noreply.github.com>
2025-07-30 15:36:19 +00:00
Peter Goodhall
13f102bee2 [Contesting] Stops whitespace in the getting saved with callsign
If there is any whitespace it will error and if that slips through it gets stripped out. Fixes #3267
2025-04-12 14:09:04 +01:00
Peter Goodhall
3a8f424dc0
Contest "copy exchange to" 2024-04-02 13:44:08 +01:00
phl0
cc46e713e0
Add live/post QSO markers 2024-03-27 18:33:23 +01:00
DJ3CE
3d22e3c949 Implement contesting copy-exchange-to(-nearly)-anything
- in contest-session, the (numeric-)id of the selected 'copy' is saved,
  compatible with the previous DOK-copy.
- UI changes
- Logbook_model enhancements
- Translation additions
2024-03-27 11:31:39 +01:00
HB9HIL
a8c9aaa5fa form-select fix 2023-12-10 21:37:35 +01:00
HB9HIL
003ca6a1d0 made button more visible 2023-11-25 23:34:58 +01:00
HB9HIL
8c4bae8453 run migration script 2023-11-14 13:35:53 +01:00
phl0
12ab752fc3
Display seconds in live contest logging 2023-11-01 14:33:13 +01:00
phl0
973d76eeb5
Add option to log QSO end times separately
Squashed commit of the following:

commit 595f620d9e
Author: phl0 <github@florian-wolters.de>
Date:   Wed Nov 1 13:58:05 2023 +0100

    Update languages

commit f670a06059
Author: phl0 <github@florian-wolters.de>
Date:   Wed Nov 1 13:55:04 2023 +0100

    Added user option for enabling QSO end time logging

commit 36d9a95ebb
Merge: 54d5bb53 352931b1
Author: phl0 <github@florian-wolters.de>
Date:   Wed Nov 1 12:18:39 2023 +0100

    Merge branch 'dev' into qsoTime

commit 54d5bb535b
Author: phl0 <github@florian-wolters.de>
Date:   Fri Oct 27 10:14:58 2023 +0200

    start/end times for other languages

commit c5f6bb0cab
Author: phl0 <github@florian-wolters.de>
Date:   Fri Oct 27 10:14:42 2023 +0200

    Hide end time if only differs in seconds as we only display minutes
    anyway ...

commit d519d88604
Author: phl0 <github@florian-wolters.de>
Date:   Fri Oct 27 10:14:29 2023 +0200

    use start as end time if end is not set separately

commit f2588ad132
Author: phl0 <github@florian-wolters.de>
Date:   Fri Oct 27 10:13:43 2023 +0200

    reset timers on form reset

commit 2b7ee4e48c
Author: phl0 <github@florian-wolters.de>
Date:   Fri Oct 27 10:13:27 2023 +0200

    Strip seconds from session time variable

commit e0c35aa0cf
Author: phl0 <github@florian-wolters.de>
Date:   Fri Oct 27 10:13:11 2023 +0200

    Adapt contest logging

commit 5368ef25f3
Author: phl0 <github@florian-wolters.de>
Date:   Fri Oct 27 10:12:50 2023 +0200

    Make date field a little smaller

commit ad2d7e756c
Author: phl0 <github@florian-wolters.de>
Date:   Fri Oct 27 10:12:30 2023 +0200

    Add button to reset start time

commit f56e031946
Author: phl0 <github@florian-wolters.de>
Date:   Fri Oct 27 10:11:09 2023 +0200

    Copy start to end time on focus out

commit b741d0428d
Author: phl0 <github@florian-wolters.de>
Date:   Fri Oct 27 10:10:45 2023 +0200

    Only min and sec for post QSO template

commit 77314edd31
Author: phl0 <github@florian-wolters.de>
Date:   Fri Oct 27 10:08:49 2023 +0200

    Basics for QSO end time logging
2023-11-01 14:24:13 +01:00
HB9HIL
cdb025c53e Contest Translation 2023-10-06 22:17:08 +02:00
HB9HIL
65c9f5e9fb Contest Translations 2023-10-06 10:48:01 +02:00
HB9HIL
5202f20ebf "Add Contest" Translation 2023-10-06 10:30:32 +02:00
HB9HIL
0bf88faad9 Multilang Active/Deactivate Contest List 2023-10-06 09:26:34 +02:00
HB9HIL
f06e62ddfb Multilang Support for Admin Contest Menu 2023-10-05 22:02:26 +02:00
HB9HIL
3f3586c428 Pretty Code 2023-10-05 19:00:55 +02:00
HB9HIL
e1345fb0bb Multilang Contest Menu 2023-10-05 01:14:28 +02:00
HB9HIL
e6db11f3b6 "Contests" doubled 2023-10-05 00:24:55 +02:00
HB9HIL
b59c44f1be Multilang Contesting 2023-10-05 00:20:52 +02:00
int2001
d53d69494b
Added OperatorCall to Contesting 2023-08-22 16:57:42 +00:00
phl0
0a64fae50f
Add some space before search box 2023-05-27 15:29:20 +02:00
Andreas
ac2cdc6e58 [Translation] Replaced all language string from $this->lang->line to lang 2023-05-14 13:45:10 +02:00
phl0
951be84c97
Rename recv/RECV to rcvd/RCVD to comply with ADIF fields and avoid
confusion
2022-11-08 23:57:39 +01:00
Andreas
71b38c72a5 [Bands] Contest logging band dropdown fetches bands from db. 2022-09-08 20:19:41 +02:00
Peter Goodhall
b7c046184a Revert "Make the manual query parameter optional"
This reverts commit 0faf59c7e8.
2022-05-30 14:30:28 +01:00
Stuart Mumford
0faf59c7e8
Make the manual query parameter optional 2022-05-26 10:40:28 +01:00
Thomas Werzmirzowsky
7870e31a9d post contest logging using manual parameter 2022-03-27 17:33:05 +02:00
Andreas
b534ef1911 [Contesting] Fixed syntax error in band dropdown. Fixes #1386 2022-02-01 11:01:51 +01:00
Ryan Zink
6b4a328bc1 Addition of 33cm and 1.25m bands where appropriate, reclassification of some bands as Microwave rather than UHF 2022-01-20 21:10:16 -07:00
Andreas
36d1b75484 [Contesting] Implemented dupecheck 2021-10-24 16:48:23 +02:00
Andreas
93b6cba00e [Contests] Added buttons for activate/deactivate all 2021-10-23 19:44:41 +02:00
Andreas
d44831d3f5 [Contesting] Added selection for copying received exchange over to DOK field in the database. 2021-10-16 16:03:54 +02:00
Andreas
b63ebc02be [Contest Logging] Started work on adding DOK to exchange 2021-10-12 13:10:54 +02:00
Jesse Rhoads
7eedf970e5 Fix incorrect column header on live contest page 2021-10-09 16:49:35 -04:00
Andreas
e0e80fb680 [Contesting] Fixed so that correct gridsquare was shown in the view. Also removed some unused code in the controller. 2021-10-07 21:42:19 +02:00
Andreas
349f3ee1ca [Contesting names] Bugfix in the form for creating contests and stopped loading of contesting.js when editing contestnames. 2021-10-06 20:24:14 +02:00
Andreas
e6387c92a5 [Contesting] Spacebar jumping is now working. Filling of QSO table is working. Logging the QSO and exchanges correct is working. 2021-08-13 12:47:17 +02:00
Andreas
6f448e056a [Contesting] Cleaning up the JS code, fixing some bugs and getting everything to work in the GUI. 2021-08-12 19:37:16 +02:00
Andreas
d0a0cad4b7 [Contesting] Added exchange to exchange type. Input fields change according to exchange type. Storing values in localstorage, and restoring on reload. 2021-08-12 11:52:36 +02:00
Andreas
041114e85a [Contesting] Added hide/show on exchangefields when selection is made. 2021-08-10 22:32:15 +02:00
Andreas
1adae9fd88 [Contesting] Started working on adding more possibilities for contest exchange 2021-08-07 10:13:38 +02:00