Introduces migration 238 to update the application version to 2.8.2 and trigger the version info dialog for users. Updates the migration version in the configuration to 238.
Simplifies the QRZ data download process by removing the custom date selection logic. Now, all QRZ data is downloaded regardless of the date specified in the request.
Added FontAwesome icons to options pages and sidebar for better visual distinction. Improved the options index page with overview cards for each settings category. Updated CSS for active and hover states in the options sidebar, providing a more modern and user-friendly interface. Added a subscription management link to the header if configured.
Introduces logic to detect and enforce centrally managed email settings. When managed, email options are displayed as read-only and cannot be changed by users; attempts to save changes are blocked with a notice. The email options view now conditionally renders a read-only summary and test email form if management is enabled.
Changed the import logic to deduplicate LoTW users by callsign, keeping only the latest timestamp for each callsign. Updated batch insertion to process only unique callsigns and improved reporting to show both total records read and unique callsigns inserted.
Replaces direct joins to lotw_users with subqueries that select the latest (MAX) lastupload per callsign in Distances_model, Logbook_model, and Logbookadvanced_model. This ensures only the most recent LoTW upload per callsign is joined, improving data accuracy and preventing duplicate join results.
Replaces direct join with lotw_users table by joining a subquery that selects the latest lastupload per callsign. This improves performance and ensures only the most recent LOTW upload date is included for each callsign.
Introduces open registration settings in the options area, allowing administrators to enable or disable public user signup. Adds a registration options page, updates sidebar navigation, and implements a public signup form and controller logic. Also refines user model to ensure correct data types for user fields and updates language strings for registration. The login page now links to signup when open registration is enabled.
Replaced several Font Awesome icons in the header navigation dropdowns for improved clarity and consistency. Updated icons for QSL, eQSL, statistics, awards, export options, backup, hardware interfaces, and version information. This enhances the visual representation and user experience across the interface.
Replaced Font Awesome icons for General Logging, Contest Logging, and Fast Log Entry links in both dashboard and header views to improve visual clarity and consistency.
Renamed 'Live QSO' to 'General Logging' and 'Live Contest Logging' to 'Contest Logging' in language file. Reordered contest and fast log entry links in the header dropdown for improved clarity.
Introduces user-facing JSON+ZIP export and import for stations, logbooks, and QSOs, including preview and progress views. Updates backup controller to allow all authenticated operators (level 2+) and replaces legacy backup card with new workflow in the UI. Adds new views for import preview and progress, supporting selective import and conflict handling.
Updated User_model to store user_callsign in uppercase using strtoupper when creating or updating users. Also added a style to the edit form input to visually enforce uppercase entry for callsign.
Added checks to return empty results when no user is logged in, preventing SQL errors and ensuring consistent behavior for unauthenticated access in logbook-related queries.
The DXCluster navigation link has been removed from the options sidebar. This streamlines the sidebar and may reflect a change in available features or navigation structure.
Updated the FPDF_FONTPATH definition to remove the 'unifont/' subdirectory, as AddFont() automatically appends it. This ensures fonts are loaded correctly when generating PDFs.
Adds logging of actual errors during label generation for better debugging. Updates error messages to include the specific exception message, and ensures FPDF_FONTPATH is only defined if not already set.
Radio status now loads immediately on page load and updates every 2 seconds, with a loading spinner shown until data is available. The radio index page UI has been enhanced for better clarity, accessibility, and user feedback, including improved alert styling and more informative icons.
Improved the layout and styling of the API help page, adding a header with quick-create buttons for API keys, enhanced table responsiveness, and updated action buttons with icons. Added better feedback for empty API key lists and improved alert handling for notices.
Enhanced the QSL print page layout with better Bootstrap styling, icons, and improved message alerts. Updated the QSO table for better readability and responsiveness, added icons to action buttons, and refined the overall user interface for a more modern look.
Refactored the labels index view to enhance layout and styling, including improved card headers, table responsiveness, and icon usage. Added better alert messages and reorganized action buttons for label and paper types, making the interface more user-friendly and visually consistent.
Replaces standard callsign ordering with natural sorting by splitting callsigns into prefix, number (padded), and suffix. This improves the order of QSO label results for better readability and organization.
Introduces Add_Label_With_Bold_Callsign to render the callsign in bold and larger font on label PDFs. Updates font path to use unifont, adds DejaVuSans-Bold font files, and modifies label generation to use the new method for improved visual emphasis of callsigns.
Introduces functionality to send a welcome email with credentials to new users upon creation and allows admins to resend a reminder email (without password) to existing users. Adds email templates, UI options for sending emails, and improves user management interface with new actions and enhanced layout.
Introduces email notifications when a logbook is shared with a new user, including a new email template and improved error logging for email sending. Also enhances the test email UI with a loading spinner and updates error messages for better clarity.
After creating a new logbook, users are now redirected to the edit page for the newly created logbook instead of the logbooks list. The add method in Logbooks_model now returns the new logbook ID to support this change.
Moved the country name badge to appear after the worked status icon in the DX cluster callsign display for improved clarity and logical grouping of status indicators.
Updated the csadditions regular expression in Logbook_model.php and Dxcc.php to include 'B' as a valid suffix for DXCC lookup and call sign parsing. This change ensures callsigns with '/B' are properly recognized in DXCC-related functions.
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.