Introduces a new 'Most Worked Callsigns' page, controller, model, and view to display callsigns worked multiple times from the active logbook. Adds language support for this feature in multiple languages and updates the navigation menu to include a link to the new page. Also includes DataTables integration and filter options for bands, modes, satellites, date range, and minimum QSOs.
Adds robust error handling and user feedback for failures when fetching satellite data from the hams.at API. The controller now sets error states and messages for connection issues and invalid responses, and the view displays appropriate alerts to users.
Introduces an 'archived' boolean column to the lotw_certs table via migration, adds model and controller logic to toggle archive status, and updates the view to display and allow archiving/unarchiving of certificates. This enables users to mark LoTW certificates as archived for better management.
Introduces a new 'public_radio_status' field to station logbooks, allowing users to enable or disable the display of radio status on public logbook pages. Updates migration, controllers, model, views, and language files to support this feature and provide UI controls for toggling the option.
Introduces an offset parameter to the Visitor controller and updates the footer view to include the offset in the map URL. This enables paginated or segmented access to QSOs for public logbook pages.
Fixes#3317
Introduces batch processing of IOTA worked/confirmed status in the controller and model, and updates the DXCC list view to display IOTA badges with status and links. Enhances visibility of IOTA information for each DXCC entry.
Introduced clearCallsignLabels() to remove callsign labels when map data is refreshed or markers are removed. Ensures label state is reset and UI button appearance is updated, preventing stale labels from persisting after data changes.
Introduces 'workedViaSatellite' status to DXCC tracking in both controller and model, including batch queries for satellite contacts. Updates the DXCC list view to show a badge when a country has been worked via satellite, improving visibility of satellite achievements.
Merged map statistics, controls, and header into a single card header for improved UI clarity and compactness. The new layout consolidates the QSOs count, map status, and control buttons, streamlining the map view presentation.
Added 'callsign' property to plot data in Logbook_model and updated custom_date.php to use only the 'callsign' for map labels. Simplified and removed aggressive CSS targeting for tooltip classes, ensuring consistent font size and cleaner label rendering.
Introduces a button and supporting logic to toggle callsign labels on the map using Leaflet DivIcons. Also updates the Logbook model to include gridsquare in plot data for potential label use and enhances CSS for callsign label styling.
Eliminated calls and function for updating the date-range-display element, which does not exist in the DOM. This cleans up unnecessary JavaScript and prevents potential errors.
Extended the failsafe timeout for map loading from 10 to 60 seconds in the footer and increased the AJAX request timeout in leafembed.js from 30 to 50 seconds to better accommodate slow responses.
Added console logging to map loading callbacks and AJAX requests for better debugging. Reduced failsafe timeout from 35s to 10s to improve user experience. Improved date range display logic to check for element existence before updating.
Improves the custom map interface with a redesigned filter section, quick action buttons, advanced filters, and a statistics display. Adds a loading spinner, disables the submit button during map load, and provides success/error feedback with failsafe timeout. Integrates new CSS for better map and legend styling, and updates JS to support callbacks for AJAX success/error, improving user experience and reliability.
Initialize bandcalls and modecalls arrays with default zero values in Stats.php to prevent undefined index errors. Update qsotable.php and uniquetable.php views to display 0 when mode or band totals are not set.
Replaced custom tab navigation and styling in the ADIF import view with Bootstrap's native nav-tabs for improved maintainability and consistency. Removed related custom CSS and JavaScript, simplifying the codebase and leveraging Bootstrap's built-in tab functionality.
Introduces custom tab navigation with enhanced dark theme support, replacing Bootstrap nav-tabs. Adds aggressive tab styling, a custom tab switching script, and updates card headers for consistent appearance across all tab panes.
Updated card headers to use <h5> elements for improved semantic structure and consistent styling. Refactored table and card CSS to use Bootstrap variables for better theme compatibility and maintainability.
Replaces the alert box with a card component for the statistics section, improving visual consistency. Adds text color classes for better emphasis and readability.
Improved the bands configuration page with info and controls cards, search/filter functionality, statistics, and visual feedback for checkbox actions. Updated bands.js to add animations, keyboard shortcuts, bulk award toggling, and dynamic statistics updates for a more user-friendly experience.
Replaces client-side JavaScript markdown conversion with server-side PHP processing for release notes. Markdown is now parsed and rendered as HTML directly in PHP, improving reliability and removing the dependency on the Showdown library.
Revamped the logbooks management page for improved usability and modern appearance, including enhanced table layout, action buttons, and empty state messaging. Added dedicated CSS styles for logbooks management components to ensure consistent spacing, card appearance, badge sizing, and DataTable integration.
Revamped the station profile management page with improved Bootstrap-based layout, enhanced alert and card components, and a more user-friendly table for station locations. Added new CSS styles for the station management page, including custom card, badge, button, and DataTable styling for a modern, consistent look.
Improves the ADIF import/export page with a more structured layout, icons, grouped options, and clearer forms for import, export, LoTW, and DCL actions. Adds extensive CSS for better visual hierarchy, card and tab styling, form controls, and alert presentation to provide a modern, user-friendly experience.
Enhanced the DXCC data update interface by adding a spinner, disabling the button during updates, and providing immediate status feedback. Polling intervals were reduced for more responsive updates, and error handling was improved to reset UI elements on persistent errors.
Added get_status endpoint to Update controller for serving update status. Enhanced update_status to handle directory creation and log errors. Updated footer view to use new endpoint, improved error handling and retry logic for status updates.
The SAT Timers dropdown link in the header has been commented out, removing it from the navigation menu. This may be for temporary deactivation or pending further updates.
Adds hardcoded US_STATE and US_COUNTY fields (HI and Hawaii) when the LoTW certificate DXCC ID is 110, ensuring proper ADIF export for Hawaii contacts.
Added a 'qso-checkbox' class and value attribute to QSO checkboxes in the QSL print table for easier selection and identification. Updated JavaScript to use the new class for batch selection, row highlighting, and QSO actions, improving code clarity and maintainability.
Added checks for required DOM elements before converting markdown to HTML in the version dialog to prevent errors. Updated Cypress support to ignore specific uncaught exceptions related to missing elements and markdown conversion, improving test reliability.
- Updated setRst() function in footer.php to include Q65, FST4, FST4W modes
- Extended getReportByMode() function in simplefle.js to handle dB reports for all digital modes
- Ensures consistent signal report handling (-5 dB default) across all WSJT-X compatible modes
- Fixes issue where Q65, FST4, FST4W used traditional RST instead of dB reports
Prevent duplicate QSO form submissions
- Add isSubmitting flag to track form submission state
- Implement event listener on qso_input form to prevent multiple submissions
- Block subsequent submit attempts while form is processing
- Add comprehensive JSDoc documentation for the feature
- Prevents duplicate QSO contacts from being created accidentally
Fixes#3181