Commit graph

5622 commits

Author SHA1 Message Date
Peter Goodhall
31efbd0da2 Add migration to tag Cloudlog as version 2.7.4
Introduces migration 226 to update the application version to 2.7.4 and trigger the version info dialog for users. Updates the migration version in the configuration to 226.
2025-10-12 21:46:45 +01:00
Peter Goodhall
97fc54df91 Improve Clublog realtime upload error handling
Refactored variable names for clarity and added detailed logging for Clublog realtime upload results. Now resets user credentials if a 403 error is returned by the Clublog API, and includes HTTP status code in the response for better error handling.
2025-10-12 21:44:27 +01:00
Peter Goodhall
530267caa7 Add indexes to bands and bandxuser tables for performance
Introduces a migration that adds several indexes to the bands and bandxuser tables to improve query performance, especially for user, band, and award-based lookups. Updates the migration version to 225.
2025-10-12 17:45:57 +01:00
Peter Goodhall
aa5c3d4ed0 Add performance indexes to key tables and update migrations
Added new migrations to create performance indexes on station_logbooks_relationship, station_profile, options, and adif_modes tables to improve query speed for frequent lookups and filtering. Updated migration version to 224 in configuration.
2025-10-12 17:44:45 +01:00
Peter Goodhall
ca0f344d9d Add IOTA table performance indexes and migration
Introduces migration 221 to add indexes on the IOTA table for Tag, Prefix, and Status fields to improve query performance. Updates migration version in config to 221.
2025-10-12 17:38:40 +01:00
Peter Goodhall
84a93bbf49 Add performance indexes to DXCC tables
Introduces migration 220 to add several indexes to the dxcc_entities, dxcc_master, dxcc_exceptions, and dxcc_prefixes tables. These indexes are designed to improve query performance for common lookups, filtering, and joins based on usage patterns such as country name, prefix, continent, CQ/ITU zones, and date ranges.
2025-10-12 17:32:57 +01:00
Peter Goodhall
9420baf038 Add indexes to CAT table for performance
Introduces migration 219 to add several indexes to the CAT table, optimizing queries involving user_id, radio, and timestamp fields. Updates migration version to 219.
2025-10-12 17:25:42 +01:00
Peter Goodhall
9c3a8d3c51 Add composite indexes for LoTW performance
Introduces migration 218 to add composite indexes to optimize LoTW upload and certificate lookup queries. Updates migration version to 218 in the config. These indexes improve query performance for LoTW-related operations.
2025-10-11 15:42:11 +01:00
Peter Goodhall
ad80e94bd3 Optimize LoTW upload with batch QSO updates
Replaces individual QSO update queries with a new mark_lotw_sent_batch() method in Logbook_model for improved performance during LoTW uploads. Updates Lotw controller to use batch updates within a transaction, reducing database load and increasing efficiency for large QSO uploads.
2025-10-11 15:17:51 +01:00
Peter Goodhall
cc3d728a1d Improve result limits and defaults in logbook and OQRS
Added validation and default values for result limits in Logbookadvanced_model and Oqrs_model to prevent invalid or empty limits. Updated views to set default selected options for result limits in logbook advanced and OQRS request pages. Also fixed SQL order by column alias typos in Logbookadvanced_model.
2025-10-11 10:27:47 +01:00
Peter Goodhall
76f002b214 Revert "Add debug output and refactor queries for LoTW and logbook"
This reverts commit 4cad75be43.
2025-10-11 00:11:46 +01:00
Peter Goodhall
dbb058f198 Revert "Add error handling and verbose logging to LoTW controller"
This reverts commit 7a7b142ee8.
2025-10-11 00:11:38 +01:00
Peter Goodhall
7a7b142ee8 Add error handling and verbose logging to LoTW controller
Wrapped key operations in try-catch blocks to improve error handling and provide detailed error messages during LoTW certificate, QSO, and report file processing. Added verbose logging throughout the process to aid in debugging and monitoring, including status updates for each station profile and user.
2025-10-11 00:09:11 +01:00
Peter Goodhall
4cad75be43 Add debug output and refactor queries for LoTW and logbook
Added extensive debug output and error handling to LoTW upload and download processes for easier troubleshooting. Refactored SQL queries in Logbook_model and Logbookadvanced_model to simplify and optimize data retrieval, replacing subqueries with more direct joins and query builder usage. Removed migration 217_add_performance_indexes.php.
2025-10-11 00:08:03 +01:00
Peter Goodhall
5667437160 Include COL_TIME_ON in subquery for logbook query
Added COL_TIME_ON to the DISTINCT subquery in the logbook model's SQL for improved query accuracy and potential performance benefits.
2025-10-10 23:13:10 +01:00
Peter Goodhall
592ea25c45 Add migration for performance indexes
Introduces migration 217 to add indexes on station_profile.user_id, qsl_images.qsoid, and lotw_users.callsign to improve query performance. Updates migration version in configuration.
2025-10-10 23:10:55 +01:00
Peter Goodhall
2a835fea1f Optimize QSO queries with subqueries and improved joins
Refactored SQL queries in Logbook_model and Logbookadvanced_model to use subqueries for filtering and pagination, improving performance and accuracy. Updated joins and selected fields for consistency and to avoid duplicate results, especially when limiting and ordering large datasets.
2025-10-10 23:04:21 +01:00
Peter Goodhall
0c4f84d488 Add migration to optimize QSO table indexes
Introduces migration 216 to add a composite index (station_id, COL_TIME_ON, COL_PRIMARY_KEY) for efficient QSO sorting and removes redundant single-column indexes. Updates migration version in config to 216.
2025-10-10 22:40:23 +01:00
Peter Goodhall
a27b0cf571 Add input validation and parameterized queries to OQRS
Added server-side validation for callsign and station_id inputs in Oqrs controller to prevent invalid data and potential abuse. Updated Oqrs_model to use parameterized queries instead of string concatenation, improving security against SQL injection. Callsigns are now consistently uppercased before querying.
2025-10-10 22:34:06 +01:00
Peter Goodhall
aa5ff3ac11 Use active station profile in QSO controller
Replaced usage of session 'station_profile_id' with the active station profile ID retrieved from the stations model. Improved error handling and messaging when no active station profile is set. This ensures consistency and accuracy when accessing or updating station-specific data.
2025-10-10 18:01:31 +01:00
Peter Goodhall
17d9ef6aa9 Set controller methods to public visibility
Changed several controller methods in Qso.php from implicit or default visibility to explicit 'public' for better clarity and consistency. Also fixed indentation in cwmacrosave for improved readability.
2025-10-10 15:38:24 +01:00
Peter Goodhall
134f9a4995 Remove redundant return statement in Qso controller
Eliminated an unnecessary return statement after sending a JSON response in the Qso controller, improving code clarity.
2025-10-10 15:26:40 +01:00
Peter Goodhall
00aa3bcc0b Improve CW macro handling and error management
Enhanced the Qso controller with better error handling, input validation, and user/session checks for CW macro operations. Added a new cwmacros_test method for testing session data. Updated the footer JS to check for the message element before adding event listeners, preventing errors if the element is missing. Improved error handling in winkey.js when fetching macros to handle HTTP errors more gracefully.
2025-10-10 15:19:42 +01:00
Peter Goodhall
ad9e7b04e0 Improve CW macro saving and UI feedback
Enhanced macro saving with better input sanitization, error handling, and user feedback in Qso.php and Winkey.php. Updated modal forms to display save responses in a dedicated area. Improved JavaScript to handle default macro values and update button labels more robustly. Removed unnecessary WebSocket polling for CW speed in the footer.
2025-10-10 14:54:50 +01:00
Peter Goodhall
60e191ce74 Toggle #winkey div based on mode selection
Show the #winkey div when data.mode is 'CW' and hide it otherwise. This improves the UI by conditionally displaying the Winkey controls only when relevant.
2025-10-07 22:40:23 +01:00
Peter Goodhall
3215f6847c Tag Cloudlog as version 2.7.3 and remove API docs
Bump migration version to 215 and add migration to update Cloudlog version to 2.7.3. Remove API_DOCUMENTATION.md and RADIO_COMMANDS_API.md files. The migration also resets the version info dialog for users.
2025-10-07 14:10:40 +01:00
Peter Goodhall
3204ffd531 Improve Winkey UI visibility and layout
Added dynamic visibility for the Winkey panel based on mode selection and protocol, ensuring it only appears in CW mode and over HTTPS. Refactored the Winkey UI layout for better structure and usability, including grouped function keys, improved speed control, message input, and status/message log presentation.
2025-10-06 14:45:31 +01:00
Peter Goodhall
e17cf47f53 Add CW speed control and message log toggle to QSO UI
Introduced CW speed adjustment controls and real-time speed display to the QSO interface, with supporting JavaScript for polling and updating speed via WebSocket. Added a toggle button to show or hide the message log, improving usability and user control over the interface.
2025-10-06 14:42:03 +01:00
Peter Goodhall
62380e0181 Expand band support and improve band display in bandmap
Added support for additional LF, MF, UHF, SHF, and EHF amateur radio bands in Bands model and bandmap view. Updated band ranges and ordering, and improved band name formatting in the bandmap UI for better clarity and consistency across all supported bands.
2025-10-04 23:05:20 +01:00
Peter Goodhall
d0bc360049 Redesign DX Cluster view with real-time WebSocket spots
Revamps the DX Cluster page to use a modern card/table layout, real-time spot updates via WebSocket, and DataTables for enhanced interactivity. Adds connection status indicators, frequency click-to-copy, and age-based row styling. Removes legacy AJAX spot lookup code from the footer.
2025-10-04 14:53:43 +01:00
Peter Goodhall
1fa7315d02 Add Radio Commands button to Active Radios card
Enhanced the Active Radios card header by adding a 'Radio Commands' button linking to the commands page. This improves navigation and accessibility for users managing radio commands.
2025-10-04 14:45:32 +01:00
Peter Goodhall
4f9cab6572 Remove FT8, FT4, and VFO C options from form
FT8 and FT4 modes, as well as VFO C, have been removed from the mode and VFO selection dropdowns in the commands index view. This streamlines the available options for users.
2025-10-04 14:17:08 +01:00
Peter Goodhall
d661b0a3b7 Remove Bandmap controller and enhance QSY mode handling
Deleted the Bandmap controller as part of code cleanup or refactoring. Improved the QSY command logic in Dxcluster by adding debug logging and handling the mode parameter more robustly. Updated the bandmap view to pass spot information, detect RBN spots, and send the appropriate mode (e.g., CW) with QSY commands.
2025-10-04 14:06:19 +01:00
Peter Goodhall
25a03ab1fa Add optimized radio command APIs and QSY integration
Introduces an optimized API endpoint to fetch all pending radio commands for a user in a single call, along with a maintenance endpoint for cleaning up expired and old commands. Updates the documentation to reflect these new endpoints and usage patterns. Adds a QSY endpoint to Dxcluster for queuing frequency/mode commands from the bandmap, and integrates client-side JavaScript to send QSY commands to the selected radio with user feedback. Enhances backend models to support user-scoped cleanup of expired and old commands.
2025-10-04 13:34:42 +01:00
Peter Goodhall
5c63e5099e Add radio command queueing and management system
Introduces a new radio command queueing system with API endpoints and a user interface for sending, viewing, and managing radio commands. Adds migration for the radio_commands table, extends the Cat model with command-related methods, and implements new controllers and views for both API and web interfaces. This enables integration with desktop apps and provides users with tools to send, track, and cancel radio commands.
2025-10-04 11:48:48 +01:00
Peter Goodhall
97195690b2 Integrate DX Cluster bandmap with QSO and layout
Refactored Dxcluster controller to use header and footer layouts. Removed standalone HTML structure from dxcluster/index.php to fit within the site layout. Added 'Open Bandmap' button and supporting JavaScript to qso/index.php for easier access to the bandmap from the QSO page.
2025-10-02 21:43:35 +01:00
Peter Goodhall
e603635df7 Fix band select dropdown value assignment
Replaces direct value assignment with a loop to find and select the dropdown option matching the band's start and end range. Adds console logs for debugging the selection process.
2025-10-02 18:28:05 +01:00
Peter Goodhall
fd4dc279b2 Display band name from dropdown in bandmap
Updated the bandmap to use the band name from the dropdown option text when displaying the current band. This ensures the displayed band name matches the user's selection and improves clarity, especially for bands with custom names.
2025-10-02 18:25:46 +01:00
Peter Goodhall
111daa29cb Fix band display for 70cm and 23cm bands
Update band display logic to show '70cm' and '23cm' instead of '70m' and '23m' for those specific bands. Also add debug logging to band selection for easier troubleshooting.
2025-10-02 18:24:27 +01:00
Peter Goodhall
c9a192900f Update bandmap.php 2025-10-02 18:22:44 +01:00
Peter Goodhall
e0e12a2caa Add VHF/UHF bands to bandmap options
Added 2m, 70cm, and 23cm band options to the bandmap selection in the dxcluster view to support additional amateur radio bands.
2025-10-02 18:20:54 +01:00
Peter Goodhall
7b25beebb8 Handle satellite RX frequency in bandmap auto-tracking
Updated bandmap auto-tracking logic to use RX frequency when satellite mode is detected, ensuring correct frequency handling for satellite contacts. Added console logging to indicate when satellite mode is active.
2025-10-02 18:18:12 +01:00
Peter Goodhall
e48219ca3b Add DX Cluster link to Tools dropdown menu
Introduced a new 'DX Cluster' item in the Tools dropdown of the header, providing quick access to the DX Cluster page.
2025-10-02 18:06:07 +01:00
Peter Goodhall
5c13fb8f52 Add radio auto-tracking toggle to bandmap
Introduces a UI toggle and supporting logic for enabling or disabling automatic bandmap tracking of the selected radio's frequency. The bandmap now polls the radio endpoint and updates the view to follow the radio frequency when auto-tracking is enabled. Also adjusts the bandmap popup width in the cluster index view.
2025-10-02 18:03:10 +01:00
Peter Goodhall
5f0c95804a Add user-specific bands to bandmap and persist radio selection
The bandmap now displays only the bands configured for the current user, using a new Bands model method to retrieve and order them. The band selection dropdown in the bandmap view is dynamically generated based on user bands, with a fallback to defaults. Additionally, the selected radio is now persisted in localStorage and synchronized across selects, and the bandmap window width was adjusted for better display.
2025-10-02 17:40:49 +01:00
Peter Goodhall
c39e727f9a Add DX Cluster controller and bandmap views
Introduces a new Dxcluster controller with authorization checks and two views: a main index page and an interactive bandmap for real-time DX spots visualization. The bandmap view includes a WebSocket connection to a DX Cluster server, dynamic spot rendering, zoom, band selection, and user interface enhancements.
2025-10-02 14:19:39 +01:00
Peter Goodhall
57e4d6fe6a Remove commented-out SAT Timers menu item
Cleaned up the header by deleting unused, commented-out code related to the SAT Timers dropdown menu item.
2025-10-02 09:54:53 +01:00
Peter Goodhall
5984123bf0 Merge branch 'dev' of https://github.com/magicbug/Cloudlog into dev 2025-10-02 09:46:02 +01:00
Peter Goodhall
8ee56acb17 Remove Bandmap feature and related files
This commit removes the Bandmap feature, including its controller, views, JavaScript assets, and navigation menu entry. This is because it was broken upstream
2025-10-02 09:46:01 +01:00
Peter Goodhall
dc49ac4df9
Update application/models/Emeinitials_model.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-29 22:07:22 +01:00