Skip to content

2.7.6 - #3362

Merged
magicbug merged 14 commits into
masterfrom
dev
Oct 20, 2025
Merged

2.7.6#3362
magicbug merged 14 commits into
masterfrom
dev

Conversation

@magicbug

Copy link
Copy Markdown
Owner

This pull request introduces several improvements and bug fixes across the Cloudlog application, focusing on enhanced input validation, improved reliability for external integrations, better user experience, and internal code updates. The most significant changes include stricter validation for VUCC gridsquare and band inputs, more robust handling of LoTW downloads, improvements to QSO editing and upload status, and user interface enhancements for date formatting and callsign handling.

Input validation and security:

  • Added comprehensive validation and sanitization for VUCC gridsquare and band inputs in Awards.php, ensuring only valid values are accepted and preventing malformed or malicious data from being processed.
  • Refactored VUCC QSO detail queries in Logbook_model.php to use parameterized queries and safer LIKE conditions, reducing the risk of SQL injection and improving maintainability.

External integration reliability:

  • Implemented retry logic with exponential backoff for LoTW downloads in Lotw.php, increasing robustness against temporary network issues and improving user experience when syncing with LoTW.

QSO editing and upload status:

  • Updated the QSO edit process in Logbook_model.php to reset LoTW and eQSL upload status when a QSO is edited, ensuring that modified QSOs are correctly re-uploaded to these services. Also added support for ClubLog upload status.

User interface and usability improvements:

  • Enhanced the date input in the footer to respect user date format preferences, improving localization and user experience.
  • Improved the QSO edit modal's callsign field to automatically update DXCC, CQ/ITU zones, continent, and state fields based on the entered callsign, streamlining the editing process.
  • Added a "1+" option to the "Min QSOs" filter in the Most Worked view for more flexible filtering.

Maintenance, migration, and documentation:

  • Added a new migration to tag Cloudlog as version 2.7.6 and updated the migration version in the config. [1] [2]
  • Updated README references to the maintainer's new callsign and Patreon link for accuracy. [1] [2] [3]
  • Adjusted permissions in script.sh to use the ${DIRECTORY} variable for greater flexibility.
  • Changed the collation for the QRZ temp table to utf8mb4_general_ci for broader compatibility.
  • Minor update to eQSL export logic for improved clarity about authentication.
  • Refined VUCC search queries for more accurate results in Logbook_model.php.

0x6d61726b and others added 13 commits October 13, 2025 22:33
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.
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.
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.
script.sh now uses value of DIRECTORY variable from .env file
Replaced all instances of Peter Goodhall's callsign from 2M0SQL to MM9SQL in the README to reflect the updated callsign.
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.
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.
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.
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
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.
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.
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.
Copilot AI review requested due to automatic review settings October 20, 2025 16:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request tags Cloudlog as version 2.7.6 and introduces several improvements focused on security, reliability, and user experience. Key changes include enhanced input validation for VUCC gridsquare and band parameters, retry logic for LoTW downloads, and automatic updates to QSO upload status when records are edited.

  • Added comprehensive input validation for VUCC gridsquare and band inputs to prevent malformed data
  • Implemented retry logic with exponential backoff for LoTW downloads to handle transient network issues
  • Enhanced QSO editing to reset upload status for LoTW, eQSL, and ClubLog when records are modified

Reviewed Changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
application/migrations/231_tag_2_7_6.php Adds migration to tag version 2.7.6
application/config/migration.php Updates migration version to 231
application/controllers/Awards.php Adds validation for VUCC gridsquare and band inputs
application/models/Logbook_model.php Refactors VUCC queries to use parameterized queries and adds upload status reset on QSO edit
application/controllers/Lotw.php Implements retry logic with exponential backoff for LoTW downloads
application/controllers/Eqsl.php Updates comment about eQSL authentication
assets/js/sections/common.js Adds callsign change handler to auto-update DXCC and location fields
application/views/interface_assets/footer.php Implements user date format preference in UTC date stamp function
application/views/mostworked/index.php Adds "1+" option to Min QSOs filter
script.sh Replaces hardcoded paths with ${DIRECTORY} variable
README.md Updates maintainer callsign from 2M0SQL to MM9SQL

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment thread application/migrations/231_tag_2_7_6.php Outdated
formattedDate = months[now.getUTCMonth()] + ' ' + now.getUTCDate() + ', ' + year4;
break;
case 'M d, y':
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];

Copilot AI Oct 20, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The months array is defined twice in cases 'M d, Y' and 'M d, y'. This duplicated logic should be extracted to a single variable before the switch statement to improve maintainability.

Copilot uses AI. Check for mistakes.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@magicbug
magicbug merged commit 32505c1 into master Oct 20, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants