Skip to content

Conversation

@magicbug
Copy link
Owner

This pull request introduces multi-user logbook sharing with granular permissions, refines logbook access control, and improves error handling and data integrity across several components. The main changes include the addition of a logbook permissions table, new sharing management features, stricter permission checks for logbook operations, and enhancements to DXpedition and DX Cluster data handling.

Logbook Sharing and Permissions

  • Added a new migration (234_create_logbook_permissions.php) to create the station_logbooks_permissions table, enabling multi-user logbook sharing with read, write, and admin permission levels. Includes unique and foreign key constraints for data integrity.
  • Implemented sharing management endpoints in Logbooks.php: users with owner or admin rights can manage collaborators, add/remove users, and validate users by email or callsign.
  • Updated logbook listing in Logbooks_model.php to show both owned and shared logbooks, including the user's access level for each.

Access Control Improvements

  • Enforced permission checks for editing logbooks, renaming, deleting relationships, and modifying public settings—restricting these actions to owners or users with sufficient access. [1] [2] [3] [4] [5]

DXpedition and DX Cluster Enhancements

  • Improved error handling in DXpedition list fetching (Workabledxcc.php) to gracefully handle failed or invalid data responses.
  • Added a batch endpoint to Dxcluster.php for checking if callsigns have been worked, including band and DXCC checks, with input validation and performance safeguards.
  • Loaded radio data for CAT control in DX Cluster index view for improved interface functionality.

General Improvements and Maintenance

  • Updated migration version in migration.php and tagged the release as 2.8.0 in a new migration, triggering a version info dialog for users. [1] [2]
  • Improved sorting logic in Dashboard.php for upcoming DXCC records, ensuring sorting only occurs on valid data.

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 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.
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.
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.
Adds code to update the displayed frequency range when the bandmap view is changed, improving user feedback on the current visible frequency segment.
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.
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.
Replaces the generic 'Nothing found!' alert with a more informative message explaining EME Initials and encouraging users to log EME contacts.
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.
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.
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.
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.
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.
@magicbug magicbug merged commit 9d10ba3 into master Nov 21, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants