Commit graph

5671 commits

Author SHA1 Message Date
Peter Goodhall
09c35e5f9c
Update application/migrations/233_tag_2_7_8.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-15 15:48:42 +00:00
Peter Goodhall
9587aeaffc Add migration to tag Cloudlog as version 2.7.8
Introduces migration 233 to update the application version to 2.7.8 and trigger the version info dialog for users. Updates the migration configuration to use the new migration version.
2025-11-15 15:43:19 +00:00
Peter Goodhall
45528ee293 Add new gridsquares by band to monthly report
Introduces per-band breakdown of new gridsquares in the monthly report, including model, controller, and view changes. The report now displays new gridsquares grouped by band, as well as improved details for new DXCCs and satellite activity breakdowns.
2025-11-14 17:49:25 +00:00
Peter Goodhall
4e657094f8 Separate SAT/EME DXCC reporting from band-based stats
Updated Monthlyreport_model to distinguish Satellite and EME DXCC entities from terrestrial bands, grouping them separately and including callsign/mode details. Modified report view to filter and display terrestrial, satellite, and EME DXCCs in distinct sections with improved formatting and additional QSO info.
2025-11-14 17:40:27 +00:00
Peter Goodhall
1ee55d3739 Add mode and satellite info to monthly report
Enhances the monthly report to display QSO mode and satellite name for new DXCCs and grids. Adds a satellite breakdown table showing QSOs per satellite and their percentage of total satellite QSOs. Improves data structure in the model to support these features and updates the view for clearer presentation.
2025-11-14 17:33:08 +00:00
Peter Goodhall
f7e03cc52b Optimize grid 'new' checks with historical data caching
Replaced repeated database queries for grid 'new' checks with pre-built in-memory caches, significantly improving performance by reducing hundreds of queries to a few. Added build_historical_caches() to load all relevant historical grid data at once and refactored is_grid_new, is_grid_new_for_prop, and is_grid_new_for_hf to use these caches for instant lookups.
2025-11-14 17:13:11 +00:00
Peter Goodhall
36ae819a22 Show callsign for new DXCC and grid entries in report
Adds callsign information to new DXCC and grid entries in the monthly report, both in the backend data and frontend display. Also updates JSON export to include a filename for downloads. This provides more detailed context for each new entity or grid worked during the month.
2025-11-14 17:11:18 +00:00
Peter Goodhall
4449a91634 Improve grid newness checks for VUCC and gridsquare
Refactored is_grid_new, is_grid_new_for_prop, and is_grid_new_for_hf to more accurately check for new grids by matching the first 4 characters of COL_GRIDSQUARE and parsing COL_VUCC_GRIDS. This ensures grids are not considered new if present in either field, improving report accuracy.
2025-11-14 16:54:00 +00:00
Peter Goodhall
ad6dd809bb Normalize gridsquare processing to 4 characters
Updated gridsquare and VUCC grid handling to consistently use only the first 4 characters in all relevant methods. Also modified country selection to use MAX(COL_COUNTRY) and group by COL_DXCC for improved aggregation.
2025-11-14 16:46:58 +00:00
Peter Goodhall
03390ed2e8 Optimize DXCC entity queries in monthly report model
Replaced use of distinct() with MAX(COL_COUNTRY) in select statements to group DXCC entities more efficiently. This change improves query performance and ensures correct aggregation of country names in monthly report generation.
2025-11-14 16:41:55 +00:00
Peter Goodhall
66e2376ac4 Add monthly report feature for amateur radio activity
Introduces a new Monthlyreport controller, model, and views to generate comprehensive monthly activity reports for amateur radio logbooks. The feature includes summary statistics, new DXCC entities and gridsquares, breakdowns by mode, band, and propagation, and export options in JSON and text formats for AI/blog post generation. Also adds a navigation link to the header for easy access.
2025-11-14 16:39:56 +00:00
Peter Goodhall
d1378a1deb Add error handling to get_most_worked method
Wrapped database queries in a try-catch block to log errors and prevent failures in the get_most_worked method. Also improved null checks and result array initialization for robustness.
2025-11-14 14:41:36 +00:00
Peter Goodhall
4bd574720c Add advanced statistics features and UI enhancements
Introduces new summary statistics, trends, continent, and most worked data endpoints to Statistics controller, with corresponding AJAX and UI updates in statistics.js and index.php. Adds summary cards, date range filtering, error handling, and improved chart/table rendering for a more interactive statistics dashboard.
2025-11-14 14:36:31 +00:00
Peter Goodhall
2e7fb31721 Update migration to Cloudlog 2.7.7
Changed migration comment and version update to reflect Cloudlog version 2.7.7 instead of 2.7.6.
2025-11-09 15:44:17 +00:00
Peter Goodhall
fe335e74bc Refactor user ClubLog fields migration
Update migration to use array definitions for new user ClubLog fields instead of raw SQL strings. This improves compatibility and clarity when adding columns to the 'users' table.
2025-11-09 15:43:20 +00:00
Peter Goodhall
765e4691c2 Add migration to tag Cloudlog as version 2.7.7
Introduces migration 232 to update the application version to 2.7.7 and trigger the version info dialog for users. Updates migration configuration to use the new migration version.
2025-11-09 15:29:04 +00:00
Peter Goodhall
86900513f8 Support markdown images in release notes
Adds CSS styling for images in release notes and updates the markdown parser to convert image syntax (![alt](url)) to HTML <img> tags. This improves the display of images in the version dialog.
2025-11-07 15:56:29 +00:00
Peter Goodhall
82a5e441d0 Improve markdown rendering in version dialog
Enhanced the PHP markdown-to-HTML conversion for release notes in the version dialog modal. Added CSS for better styling, improved handling of code blocks, lists, headers, links, bold/italic text, and cleaned up line break conversions for more accurate and readable output.
2025-11-07 15:55:26 +00:00
Peter Goodhall
63ec8ff1c4 Add bulk satellite assignment to logbook entries
Introduces functionality to assign satellite information to multiple QSOs in Logbook Advanced. Adds controller and model methods for updating satellite data, a new view for satellite selection, and corresponding frontend logic to handle user interaction and update selected entries.
2025-11-07 15:28:18 +00:00
Peter Goodhall
8ad5256328 Use language string for station profile label
Replaced the hardcoded 'Station Location' label with the language string 'cloudlog_station_profile' for improved localization support.
2025-11-06 13:43:09 +00:00
Peter Goodhall
ec1f2d8ddd Add station location selection to Logbook Advanced
Introduces the ability to view and change the station location for selected QSOs in Logbook Advanced. Updates backend, frontend, and QSO model to support station location display and modification, including new UI elements and AJAX handlers. Removes SimpleFLE documentation file.
2025-11-06 11:00:44 +00:00
Peter Goodhall
260b081450 Remove unused header and clean up index.php layout
Eliminated an unused header section and improved formatting in the simplefle index view. Minor CSS adjustments were made for better table display and code readability.
2025-11-05 22:31:14 +00:00
Peter Goodhall
3115689503 Improve QSO table layout and responsiveness
Added fixed column widths and ellipsis styling to QSO table headers and rows for better horizontal scrolling and readability. Updated CSS and HTML structure to enhance table responsiveness and appearance on various screen sizes.
2025-11-05 22:27:30 +00:00
Peter Goodhall
bdd3278f4c Improve SimpleFLE UI and session restore logic
Refactored the SimpleFLE interface for better spacing, clarity, and mobile responsiveness. Enhanced button styling and feedback areas, and moved satellite feedback for improved visibility. In JavaScript, session data restoration now occurs after satellite data loads, ensuring correct initialization and reducing race conditions.
2025-11-05 22:15:15 +00:00
Peter Goodhall
064ab14305 Add satellite feedback UI to SimpleFLE form
Introduces a visual feedback area in the SimpleFLE form to display satellite name and available modes when satellite-related input is detected. Updates JavaScript to show/hide feedback in real time as users type, highlight selected modes, and handle cases where satellites are not found in the database. Feedback is cleared when switching to regular bands or clearing the session.
2025-11-05 22:07:24 +00:00
Peter Goodhall
e9490cb1b9 Add satellite and gridsquare support to SimpleFLE
Enhanced the syntax help and JavaScript logic to support satellite QSOs and gridsquares. Satellite contacts can now be entered using 'sat' or 'satellite' keywords, with automatic frequency/mode population from a satellite database. Gridsquares can be included with callsigns, and both features are now parsed, displayed, and saved in the QSO table and backend.
2025-11-05 16:41:52 +00:00
Peter Goodhall
a124f25837 Add gridsquare validation to prevent placeholder values
Introduces the isValidGridsquare() method to reject obvious invalid or placeholder gridsquare values (e.g., AA00AA, JJ00JJ) when updating QSO data from callbook information. This ensures only valid gridsquares are stored, improving data quality.
2025-11-05 16:19:28 +00:00
Peter Goodhall
04401423bc Add clublog user fields with existence check
Migration now checks if 'user_clublog_name', 'user_clublog_password', and 'user_clublog_callsign' fields exist before adding them to the 'users' table, preventing errors if fields are already present.
2025-10-29 15:14:31 +00: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
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
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
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
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