Commit graph

5783 commits

Author SHA1 Message Date
Peter Goodhall
dfb005899e Add migration to tag Cloudlog 2.8.7
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.
2026-02-02 13:07:24 +00:00
Peter Goodhall
c556a42892 Add advanced filtering and stats to WWFF awards page
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.
2026-01-21 17:36:18 +00:00
Peter Goodhall
e85e18018e Enhance WAJA award page with filters and stats
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.
2026-01-21 17:31:32 +00:00
Peter Goodhall
0e7a2ccd39 Add CSV export for SIG QSOs
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.
2026-01-21 17:19:48 +00:00
Peter Goodhall
e6b12e9f3d Redirect WAB SIG to dedicated awards page
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.
2026-01-21 17:17:27 +00:00
Peter Goodhall
2d9c4182d2 Add SIG award filters and translations
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.
2026-01-21 17:15:01 +00:00
Peter Goodhall
2a2f62ccbc Add filtering and localization to WAB award view
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.
2026-01-21 16:54:24 +00:00
Peter Goodhall
65a7170bbc Add Docker environment detection to debug page
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.
2026-01-15 15:40:34 +00:00
Peter Goodhall
0f4dbaaa8d Enhance debug view with system and PHP details
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.
2026-01-15 15:36:23 +00:00
Peter Goodhall
618154f380 Add managed config status to debug view
Displays a 'Managed' row in the debug table if the managed.php config file exists, providing clearer visibility into the application's configuration state.
2026-01-15 15:29:51 +00:00
Peter Goodhall
3fdeee9dc6 Add ZIP extension check to backup page
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.
2026-01-15 15:26:15 +00:00
Peter Goodhall
c5728f09c2 Add zip extension status to debug view
The debug page now displays whether the PHP zip extension is installed, providing clearer visibility into server configuration.
2026-01-15 15:24:47 +00:00
Peter Goodhall
3694af2c40 Move 'nothing found' row to table footer
The message indicating no results are found is now displayed in the <tfoot> section instead of <tbody> for better semantic HTML structure.
2026-01-15 13:43:43 +00:00
Peter Goodhall
3d32a36036 Stream JSON export for large user backups
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.
2026-01-15 10:35:50 +00:00
Peter Goodhall
7793b2446a Update mode dropdown to use submode if available
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.
2026-01-14 22:48:55 +00:00
Peter Goodhall
1e89b420fd Fix JSON encoding for map data with invalid UTF-8
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.
2026-01-14 22:47:24 +00:00
Peter Goodhall
953b27783b Tag Cloudlog as version 2.8.6 and update SOTA UI
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.
2026-01-14 16:43:53 +00:00
Peter Goodhall
897ba50c0e Add UI for manual data file updates in maintenance
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.
2026-01-14 14:55:07 +00:00
Peter Goodhall
5583cd8c14 Add comment support to SimpleFLE QSO entries
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.
2026-01-14 10:23:15 +00:00
Peter Goodhall
821e1c2163 Remove RST columns from SOTA awards table
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.
2026-01-13 14:02:53 +00:00
Peter Goodhall
de3f72c536 Improve SOTA CSV download and parsing logic
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.
2026-01-13 13:40:00 +00:00
Peter Goodhall
8b819d2177 Refactor and enhance SOTA awards support
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.
2026-01-13 13:35:11 +00:00
Peter Goodhall
a59bf0ce35 Fix SQL query to use 'in' for station_id comparison
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.
2026-01-13 10:45:52 +00:00
Peter Goodhall
2f917c8bcf Add advanced POTA awards dashboard with filtering and map
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.
2026-01-10 15:08:22 +00:00
Peter Goodhall
eb03e364d5 Add editable created date to note editing
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.
2026-01-09 16:37:11 +00:00
Peter Goodhall
0ca9484ef2 Improve created_at date handling in notes list
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.
2026-01-09 16:17:32 +00:00
Peter Goodhall
ae97ef5152 Add created_at to notes and enable date filtering
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.
2026-01-09 16:13:57 +00:00
Peter Goodhall
5c5bdf2f2f Add categories and management to notes feature
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.
2026-01-09 13:17:56 +00:00
Peter Goodhall
e6aeee53a1 Add reusable User-Agent helper for QRZ API requests
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.
2026-01-09 10:52:37 +00:00
Peter Goodhall
4cf7d79c25 Add migration to tag Cloudlog as version 2.8.5
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.
2026-01-08 16:34:46 +00:00
Peter Goodhall
cc1b92cb13 Fix DXCC ID assignment in logbook model
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.
2026-01-08 14:29:59 +00:00
Peter Goodhall
58d7eeeef3 Redesign IOTA awards page UI and add search
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.
2026-01-07 16:07:14 +00:00
Peter Goodhall
dd61dff336 Fix null grid square handling for PHP 8 compatibility
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.
2026-01-07 12:58:46 +00:00
Peter Goodhall
1000fafd68 Revert "Remove redundant statistics update calls in footer"
This reverts commit bf82b6949c.
2026-01-07 11:38:09 +00:00
Peter Goodhall
bf82b6949c Remove redundant statistics update calls in footer
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.
2026-01-07 11:36:36 +00:00
Peter Goodhall
d07e788921 Add WAS statistics summary, filters, and CSV export
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.
2026-01-07 11:25:03 +00:00
Peter Goodhall
1fa6da4556 Enhance CQ awards page with filters and table features
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.
2026-01-07 11:02:44 +00:00
Peter Goodhall
218f796e71 Move filters section above statistics summary in DXCC view
Reordered the filters section to appear before the statistics summary and continent breakdown in the DXCC awards index view for improved user experience and logical flow.
2026-01-07 10:54:44 +00:00
Peter Goodhall
f4d4fac839 Optimize continent QSOs query in Awards controller
Refactored get_continent_qsos to use a single SQL query for fetching DXCC entities and their worked/confirmed status, replacing multiple per-entity queries. This improves performance and simplifies the code.
2026-01-07 10:50:49 +00:00
Peter Goodhall
6080db9e23 Improve distances UI and add caching for statistics
Refactored the distances filter form for better layout and usability, added a reset button, and enhanced the display of statistics with metric cards. Implemented session-based caching in Distances_model to reduce repeated calculations and speed up responses. Updated JavaScript to auto-load charts, show loading spinners, and improve error handling and dynamic UI updates.
2026-01-06 22:48:26 +00:00
Peter Goodhall
1e7eb7d429 Enhance country count filtering in statistics
Updated get_total_countries to filter by active station's locations and apply additional validation filters for country and DXCC fields, aligning logic with Dashboard validation.
2026-01-06 22:37:36 +00:00
Peter Goodhall
d597e2e83b Add DXCC statistics and continent breakdown
Introduces DXCC statistics and continent breakdown features to the awards page, including new controller endpoints for DXCC QSOs, QSOs by status, and continent QSOs. Updates the DXCC model to provide continent and milestone statistics, and enhances the awards view with summary cards, continent progress, table search, sorting, and modal dialogs for QSO details.
2026-01-06 22:34:05 +00:00
Peter Goodhall
e572821b96 Add Personal Propagation Advisor feature
Introduces the Personal Propagation Advisor, allowing users to analyze their own QSO data to determine the best times, bands, and modes for working specific DXCC entities. Adds a new controller, model methods, view, JavaScript, and language strings in multiple languages. Updates navigation and footer to support the new feature.
2026-01-05 22:14:00 +00:00
Peter Goodhall
44fbfd4aab Pass second parameter to getAdifLine in Logbook_model
Updated the call to getAdifLine in Logbook_model to include a second parameter set to true. This may enable additional functionality or formatting in the ADIF line generation for Clublog integration.
2026-01-03 21:34:27 +00:00
Peter Goodhall
0c7b919e4f Update satellite mapping in lotw_satellite_map
Added mappings for SONATE-2, ASRTU-1 (AO-123), and TEVEL2-3 satellites to improve satellite name resolution in the lotw_satellite_map function.
2026-01-03 18:31:24 +00:00
Peter Goodhall
6a8f8a85f3 Fix indentation for lotw_satellite_map comment block
Corrected the indentation of the comment block for the lotw_satellite_map function to improve code readability and maintain consistent formatting.
2026-01-03 18:28:59 +00:00
Peter Goodhall
fb5afabed9 Remove strict type check in satellite name search
The third parameter in array_search was set to true, enforcing strict type comparison. This has been removed to allow non-strict comparison, which may improve matching for satellite names.
2026-01-03 18:28:08 +00:00
Peter Goodhall
b368cba876 Enforce write permissions for QSO modifications
Replaced checks for QSO accessibility with stricter write permission checks across controllers and models. Added a new check_qso_is_writable method to Logbook_model to ensure only authorized users can modify or delete QSOs, including shared logbook scenarios. Updated QSO, Qsl_model, and Sstv_model to use the new permission logic for all write operations.
2025-12-23 11:06:19 +00:00
Peter Goodhall
30ee758cce Add migration for Cloudlog version 2.8.4
Introduces migration 240 to update the application version to 2.8.4 and trigger the version info dialog for users. Updates migration configuration to reflect the new version.
2025-12-23 10:49:18 +00:00
Peter Goodhall
1a62e400af Add embed widget modal and attribution for logbooks
Introduced an 'Embed Code' modal in the logbooks index to allow users to easily copy iframe code for embedding their logbook widget. Also added a 'Powered by Cloudlog' attribution to the widget view for better visibility and credit.
2025-12-22 15:04:03 +00:00