Introduces migration 235 to update the application version to 2.8.0 and trigger the version info dialog for users. Updates migration configuration to use the new migration version.
Introduces logbook sharing with read, write, and admin permission levels via a new station_logbooks_permissions table and related migration. Updates controllers, models, and views to support managing collaborators, restricts sensitive actions to owners/admins, and adds UI for sharing management. Also adds user lookup by callsign and improves logbook/station location access logic.
Set explicit widths for DX cluster table columns and display a country name badge in the DX Call column when available for improved readability and user experience.
Added error handling to dxcclist controller to manage failures when fetching or decoding DXpedition data. Updated the view to display error messages to users if data retrieval fails or returns invalid data.
Added error checks when fetching DXpedition data in Workabledxcc_model and updated Dashboard controller to only sort valid records. The upcoming_dxccs view now displays a warning message if an error occurs, improving user feedback and robustness.
LIVE and POST badges in contesting and QSO views are now clickable to switch modes. Redundant menu items for post QSO and contest logging have been removed from the header for a cleaner navigation.
Introduces a 'Bandmap' button to the contesting interface, allowing users to open the DX Cluster Bandmap in a new popup window. Also adds a placeholder for radio status and refactors button layout for improved UI.
Enhances DX Cluster by showing DXCC entity and worked status per spot, including new band/country indicators. Adds radio selection and QSY functionality, updates UI with improved filters and spot marker styling, and provides user feedback for frequency actions.
Introduces a new API endpoint in Dxcluster.php to batch check if callsigns have been worked, with band-specific and overall status. Updates the DX Cluster view to display worked status icons next to callsigns and asynchronously fetches status for visible spots, improving user awareness of worked contacts.
Introduces UI controls to filter DX spots by band and to hide RBN spots, with user preferences saved in localStorage. Filtering logic is implemented in JavaScript, including band detection from frequency and RBN spot identification.
Enhanced the QSO edit dialog to use datalist autocompletion for satellite name and mode fields. Satellite data is loaded from JSON, and selecting a satellite/mode updates related frequency, band, and propagation fields automatically.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Adds CSS styling for images in release notes and updates the markdown parser to convert image syntax () to HTML <img> tags. This improves the display of images in the 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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
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 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.
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.