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
a049d33b3a Prevent duplicate callhistory fields
Add normalization helpers and update callhistory renderers to avoid showing redundant membership numbers or names when they are contained in or equal to other fields. Introduces normalizeCallhistoryText and qsoCallhistoryNormalizeText, converts values to strings, trims and lowercases them for comparisons, and only appends #exch1 or name when they would be distinct from the organization label or each other. Applies the change to assets/js/sections/contesting.js and assets/js/sections/qso.js to clean up callhistory display logic.
2026-03-24 22:54:15 +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
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
55d24cd52b
Prevent non-numeric input in contesting-serial fields 2024-04-02 13:45:00 +01:00
Peter Goodhall
3a8f424dc0
Contest "copy exchange to" 2024-04-02 13:44:08 +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
DJ3CE
f6681482ab Post-contest-logging focus and qso-list fix 2024-03-27 11:29:58 +01:00
DJ3CE
f527be0af0 Prevent non-numeric entries in contesting-serial fields 2024-03-25 11:07:08 +01:00
root
7e315677db Cleanup unused class 2024-03-08 12:57:07 +00:00
root
f03b96968e Contesting Dupe Check Improvement 2024-03-08 12:41:12 +00:00
Peter Goodhall
4128425f2d Resolves issue when no previous contest qsos have been set and table was empty
Should resolve #2919 #2139
2024-01-14 18:04:46 +00:00
Juan Garcia
14429fbc83 Fix asset route and function name 2024-01-03 22:18:20 -05:00
Juan Garcia
42fda7cc83 Generalize the PoC 2024-01-03 22:03:11 -05:00
int2001
0748115b4e
JS-Part 2023-12-30 20:17:43 +00: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
int2001
df688cfcd4
Fix contestlog-reload on Fieldreset 2023-10-02 11:46:01 +00:00
int2001
9f50106529
commented the code 2023-08-06 08:01:21 +00:00
int2001
bc76514096
Reload table after each QSO in case of >1 PC used for logging 2023-08-06 07:05:33 +00:00
Peter Goodhall
ecda88f240 [Lookup] Change SCP lookup from GET to POST
stops memory leaks when searching callsigns like i/4o4a
2023-07-08 13:38:28 +01:00
phl0
6787c62caa
Make contest table use padding for SRX and STX 2023-05-27 14:52:55 +02:00
Andreas
ea70ee94b5 [Contesting] Fixed sorting when adding qsos to table 2023-05-23 12:12:21 +02:00
Andreas
22a2b1c61a [Contesting] Fixed date sorting in the QSO table 2023-05-03 12:28:41 +02:00
Andreas
5920167a3f [Contesting] Hopefully fixed serial issue 2023-04-29 10:17:07 +02:00
Andreas
d64a75a244 [Contesting] Fixed serial not incrementing when loading session 2023-04-28 17:53:03 +02:00
Andreas
50f5f41883 [Contesting] Fixed issue with serial incrementing when setting exchangetype 2023-04-28 15:55:58 +02:00
Andreas
f58df101b5 [Contest logging] Increment stored serial with 1 2023-04-11 10:40:12 +02:00
Andreas
b481fdbb38 [Contest logging] Moved contest session from local storage to database 2023-04-10 18:54:24 +02:00
Andreas
2d629c8b01 [Contesting] Only log exchange according to exchangetype 2023-04-06 19:28:16 +02:00
Andreas
5497de3334 [Contesting] Fix serial not saved when using space 2023-04-05 14:52:05 +02:00
Andreas
d9e0b36fb3 [Contesting] Added so that enter saves qso if in received grid or serial as well 2023-04-01 21:20:03 +02:00
phl0
136baf32c1
Make exchange upper case (in table and db) 2023-02-05 12:37:23 +01:00
phl0
aaf86d5656
Make number of rows "sticky" 2022-11-15 17:07:58 +01: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
a9210ecad7 [Contesting] Triggers table search when entering call 2022-10-30 08:02:32 +01:00
phl0
1b03da8b9b
Time and Date shortcuts also for contesting page 2022-09-25 12:32:39 +02:00
Thomas Werzmirzowsky
7870e31a9d post contest logging using manual parameter 2022-03-27 17:33:05 +02:00
Andreas
36d1b75484 [Contesting] Implemented dupecheck 2021-10-24 16:48:23 +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
Andreas
566f112897 [Contesting] Pushed fix so that serial is not set when serial is not used. 2021-10-11 18:54:48 +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
1746f7e581 [Contesting] Fixed a typo that would break function. 2021-08-12 11:56:38 +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