Commit graph

7487 commits

Author SHA1 Message Date
Peter Goodhall
32505c176d
2.7.6
2.7.6
2025-10-20 17:44:18 +01:00
Peter Goodhall
1f7d17ee19
Update application/migrations/231_tag_2_7_6.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-20 17:40:06 +01:00
Peter Goodhall
5fce83b201 Add migration for Cloudlog version 2.7.6
Introduces migration 231 to update the application version to 2.7.6 and trigger the version info dialog for users. Updates the migration version in the configuration to 231.
2025-10-20 17:36:03 +01:00
Peter Goodhall
97e5ac1cad Change QSO_LOOKUP table collation to utf8mb4_general_ci
Updated the SQL statement in Logbook_model to use utf8mb4_general_ci collation instead of utf8mb4_unicode_ci for the MEMORY table QSO_LOOKUP. This may improve performance for certain lookup operations.
2025-10-20 17:32:15 +01:00
Peter Goodhall
e51aae79eb Change QSO_LOOKUP table collation to utf8mb4_general_ci
Updated the SQL statement in Logbook_model to use utf8mb4_general_ci collation instead of utf8mb4_unicode_ci for the MEMORY table QSO_LOOKUP. This may improve performance for certain lookup operations.
2025-10-20 17:32:04 +01:00
Peter Goodhall
210953fc7d Reset QSL sent status on QSO edit and update DXCC info
In Logbook_model.php, LoTW and eQSL sent status are reset to 'N' when editing a QSO that was previously sent, ensuring re-upload to these services. In common.js, a handler updates DXCC, location, and state fields when the callsign is changed in the QSO edit modal.
2025-10-19 13:18:24 +01:00
Peter Goodhall
e0e3fae28a Support user date format preference in footer
Updated the date formatting logic in footer.php to use the user's preferred date format from session or config. The date input now displays according to various supported formats, improving localization and user experience.

Hopefully fixes #3358
2025-10-18 15:10:03 +01:00
Peter Goodhall
c19868b5ff Refactor VUCC search to use query builder methods
Replaced raw SQL LIKE conditions with CodeIgniter's query builder 'like' and 'or_like' methods for VUCC search cases. This improves code readability and helps prevent SQL injection.
2025-10-18 14:41:02 +01: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
2d028e6e87 Update callsign references from 2M0SQL to MM9SQL in README
Replaced all instances of Peter Goodhall's callsign from 2M0SQL to MM9SQL in the README to reflect the updated callsign.
2025-10-14 17:48:20 +01:00
Peter Goodhall
e182313ec5
Merge pull request #3357 from 0x6d61726b/patch-3356
script.sh now uses value of DIRECTORY variable from .env file
2025-10-14 17:47:19 +01:00
Peter Goodhall
2c33a8f3ff Add 1+ option to Min QSOs filter dropdown
Introduces a '1+' option to the Min QSOs select field in the most worked view, allowing users to filter results with a minimum of one QSO.
2025-10-14 16:07:23 +01:00
Peter Goodhall
cd344ff71f Update eQSL authentication comment in Eqsl controller
Clarified the comment regarding eQSL authentication to indicate that the user's actual eQSL credentials are used, and that the station callsign is managed in the ADIF data via eqslqthnickname. Removed outdated logic related to username handling for linked accounts.
2025-10-14 15:57:54 +01:00
Peter Goodhall
3390d80cd2 Add retry logic to LoTW cURL download
Introduces a retry mechanism with exponential backoff for the cURL request in the LoTW controller. This improves reliability by attempting the download up to three times before failing, and logs each retry attempt for better debugging.
2025-10-13 22:07:00 +01:00
Mark
3d6d839278
script.sh now uses value of DIRECTORY variable from .env file (fixes #3356) 2025-10-13 22:33:23 +02:00
Peter Goodhall
888ec5a546
2.7.5
2.7.5
2025-10-13 18:08:55 +01:00
Peter Goodhall
15132cf44d
Update application/controllers/Update.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-13 18:04:49 +01:00
Peter Goodhall
7e6ba3537b Add migration to tag Cloudlog as version 2.7.5
Introduces migration 230 to update the application version to 2.7.5 and trigger the version info dialog for users. Updates the migration version in the configuration to 230.
2025-10-13 17:06:11 +01:00
Peter Goodhall
51e5003a0f Validate CAT frequency/mode data and clean up errors
Adds strict validation to the Cat model to prevent non-numeric frequency and invalid mode values from being stored, logging any invalid data for debugging. Introduces migration 229 to clean up existing corrupted CAT table data caused by rig control error messages, and updates migration version. Includes documentation of the issue and applied fix.
2025-10-13 16:58:50 +01:00
Peter Goodhall
27f45a2f8b Add exception handling to QRZ index migration
Wrapped index creation statements in try-catch blocks to handle potential duplicate key errors during concurrent migrations. This prevents migration failures if indexes already exist, improving robustness.
2025-10-13 16:55:14 +01:00
Peter Goodhall
8db65e7b6f Improve LoTW download with cURL and better encoding
Replaces file_get_contents with cURL for downloading LoTW data to provide better error handling and logging. Switches to rawurlencode for credentials to prevent encoding issues. Adds debug and error logs for easier troubleshooting and checks HTTP response codes and file write success.
2025-10-13 16:46:53 +01:00
Peter Goodhall
0b20964028 Include user_id in station profile query
Added station_profile.user_id to the select statement in the all_with_count method to provide user identification alongside station data.
2025-10-13 15:07:57 +01:00
Peter Goodhall
44a729f335 Optimize QRZ QSO upload/download with batch processing
Improves performance of QRZ QSO upload by batching database updates in the controller and model, reducing the number of individual update queries. Adds a new migration to create indexes supporting QRZ upload/download operations. Refactors QRZ download batch processing to use temporary tables and efficient JOINs for large batch updates, further enhancing speed and scalability.
2025-10-13 15:01:25 +01:00
Peter Goodhall
ce99aa1559 Improve LoTW user CSV import robustness and validation
Enhances the LoTW user activity CSV import by adding network timeouts, user agent, and file validation before truncating the database. Implements batch inserts with error handling, validates callsign format, checks for minimum record count, and provides clearer error messages to improve reliability and data integrity.
2025-10-13 13:57:41 +01:00
Peter Goodhall
db87600d3b Use TRUNCATE for clearing lotw_users table
Replaced empty_table with TRUNCATE TABLE for the lotw_users table to improve performance when clearing its contents before importing new data.
2025-10-13 13:47:43 +01:00
Peter Goodhall
e6ecfa4f1b Require Clublog username to be a valid email address
Enforces that Clublog usernames are valid email addresses throughout the application, reflecting Clublog's policy change to no longer accept callsigns as usernames. Updates validation in controllers, models, and views, adds a migration to clear non-email usernames, and updates language files in multiple languages to clarify the requirement.
2025-10-13 13:40:56 +01:00
Peter Goodhall
1eba4fe164
Tag Cloudlog as 2.7.4
Tag Cloudlog as 2.7.4
2025-10-12 21:52:48 +01:00
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