Bump migration version to 244 and add migration 244_tag_2_8_7. The new migration updates options.version to 2.8.7 and resets user_options.version_dialog.confirmed to false to trigger the version info dialog; the down() method reverts options.version to 2.8.6.
Enhanced the WWFF awards page with band, mode, and QSL type filters, quick preset buttons, and a summary section showing worked/confirmed parks and milestone progress. Updated the controller to handle filter input and summary data, and extended the model with methods for filtered queries and statistics.
Added collapsible filter panel with quick preset buttons, improved form layout, and a new statistics summary section showing WAJA progress and milestones. Prefecture names in the table are now clickable to view QSOs. Updated SQL queries in the Waja model to use the correct band key and improved SAT handling.
Introduced a new controller method sigexportcsv() to export SIG QSO data as a CSV file. Added a corresponding button in the SIG QSO list view to allow users to download the CSV export.
Updated the SIG awards table to redirect WAB entries to a dedicated WAB awards page instead of the generic SIG details page. This improves navigation and user experience for WAB award users.
Introduces filtering by band, mode, and confirmation status to the SIG awards section in Awards.php, including a filter summary helper. Updates all supported language files to add translations for the new SIG award filters, table headers, and related UI elements.
Introduces band, mode, and confirmed-only filters to the Worked All Britain (WAB) award view and details AJAX endpoint. Updates the controller, model, and view logic to support filtering, and adds new localized strings for WAB award UI elements in multiple languages. Also ensures the correct script is loaded for the WAB section and improves the Bands model to check for field existence before filtering by award.
Introduces logic in the Debug controller to detect if the application is running inside a Docker container and displays the result on the debug view. This helps developers quickly identify the runtime environment for troubleshooting and configuration purposes.
Added display of installation path, server API, HTTPS status, available disk space, database info, PHP settings, session information, and checks for gd and json PHP modules to the debug/main.php view for improved diagnostics.
Displays a 'Managed' row in the debug table if the managed.php config file exists, providing clearer visibility into the application's configuration state.
The backup controller now checks if the PHP ZIP extension is installed and passes this information to the view. The backup page displays a warning if the extension is missing, guiding users to install it for backup and restore functionality.
Refactored the backup export process to stream JSON data directly to a file handle, significantly reducing memory usage for large datasets. QSOs and logbooks are now written in chunks, and memory is freed periodically. Increased max execution time and adjusted memory limit to optimize for streaming. This improves reliability and scalability for users with large logbooks.
Modified the mode selection dropdown to display submode if it exists, otherwise fallback to mode. Also updated the iteration to use the result() method for consistency with the data structure.
Adds JSON_INVALID_UTF8_SUBSTITUTE to json_encode for $qsos_by_ref and $confirmed to handle invalid UTF-8 data, preventing JavaScript errors when rendering the SOTA map.
Moved the comment reset to the beginning of each line iteration in handleInput(), ensuring comments are cleared before processing each row. This prevents comments from persisting across lines and fixes potential data carryover issues.
Added migration 243 to tag Cloudlog as version 2.8.6 and updated the migration version in config. Improved SOTA awards table to display a message outside the table when no results are found. Modified the SOTA index page to trigger filter refresh on 'Apply' and adjusted DataTables language options for empty states.
Introduces a new section in the maintenance page allowing manual updates of reference data files (Clublog SCP, LoTW Users, DOK, SOTA, WWFF, POTA) via AJAX buttons with loading indicators. Adds corresponding UI-friendly controller methods with authorization checks and improves the WWFF update logic to process CSV files line by line for better memory efficiency.
Introduces the ability to add comments to QSOs by enclosing text in angle brackets, updates the UI to display a new Comment column, and documents the feature in the syntax help. The JavaScript logic is updated to extract, display, and save comments with each QSO.
The RST sent and received columns have been removed from the SOTA awards table for a cleaner display. The colspan for the 'nothing found' row was also updated to match the new column count.
Refactors the SOTA CSV download process to stream data directly to a temporary file using cURL, improving memory efficiency and error handling. Replaces the previous string-based CSV extraction with a file-based approach, and adds more robust error messages for file and download failures.
Replaces the old SOTA model with a new Sota_model, adds CSV-based summit metadata caching, and introduces new controller endpoints and view components for SOTA table, stats, and map fragments. The SOTA award page now supports filtering, improved statistics, and interactive mapping using summit coordinates. Updates .gitignore to include the new SOTA CSV, and refactors SOTA data refresh logic for reliability and maintainability.
Updated the SQL query to use 'station_id in (...)' instead of 'station_id = ...' in the subquery, ensuring correct filtering when multiple station IDs are provided.
Introduces a new POTA awards dashboard with HTMX-powered filtering, statistics, progress bars, and a Leaflet map of worked parks. Adds new controller endpoints, model methods for filtered queries and park metadata, and modular view components for table, stats, progress, and map. Updates language files for new stats labels and enhances the update process to cache the full POTA parks CSV for richer features.
Introduces a 'Created Date' field to the note edit form, allowing users to set or update the creation date of a note. The model is updated to handle and save the optional 'created_at' value when provided.
Updated the logic to display 'N/A' for invalid or empty created_at values, including the '0000-00-00 00:00:00' placeholder, ensuring more accurate date representation in the notes view.
Introduces a migration to add a created_at timestamp to the notes table. Updates the Note model and Notes controller to support filtering notes by creation date, and enhances the notes view to include date filter fields and display the created date for each note. Migration version is incremented to 242.
Introduces note categories with support for filtering, assigning, and managing categories. Adds category selection and creation to add/edit forms, category filtering to the notes list, and modals for deleting/merging categories and confirming note deletion. Updates controller and model logic to handle categories, and improves UI for notes management.
Introduced a useragent_helper with a function to generate a compliant User-Agent string for Cloudlog, and updated QRZ API calls in Qrz controller and Logbook_model to use this helper. This ensures consistent and QRZ-compliant User-Agent headers for all outgoing requests.
Introduces migration 241 to update the application version to 2.8.5 and trigger the version info dialog for users. Updates the migration version in the configuration accordingly.
Corrects the logic for assigning DXCC ID when the country is set and dxcc_id is 0 by fetching the DXCC ID from the callsign lookup. This ensures the correct DXCC ID is used in these cases.
Improves the IOTA awards page with a modernized layout, enhanced filter section, and updated tab navigation. Adds a search box for filtering IOTA table entries by island group name or IOTA number, and refines summary table presentation. Improves accessibility and user experience with better styling and responsive design.
Normalizes COL_GRIDSQUARE and COL_VUCC_GRIDS to empty strings if null to prevent strlen warnings under PHP 8. Ensures correct display of grid information in search results.
Eliminated unnecessary calls to updateCqStatistics and updateWasStatistics on page load and after table filtering/sorting. Statistics are now handled by server-side calculations and page reloads, simplifying the client-side logic.
Introduces a statistics summary section, quick preset filters, and CSV export functionality to the WAS awards page. Adds sortable columns, a search box, and updates the UI for better usability. JavaScript logic is included to update statistics dynamically based on visible table rows and to handle filtering, sorting, and exporting. Also improves the CQ statistics logic for consistency.
Added advanced filter panel with quick presets, improved statistics summary, and milestone progress display to the CQ awards page. Enhanced the CQ table with search and sortable columns, and implemented CSV export functionality. Updated footer scripts to support new table interactions and filter presets.