Commit graph

187 commits

Author SHA1 Message Date
Peter Goodhall
4fe8ca4093 Handle AMSAT override for OscarWatch
Add a persisted `force_amsat` OscarWatch user option, expose it on the user edit form, and keep the AMSAT upload setting in sync when OscarWatch status uploads are enabled. The controller now defaults unchecked values correctly and shows a notice when OscarWatch disables direct AMSAT uploads or when the override keeps both enabled.
2026-08-04 13:15:01 +01:00
Peter Goodhall
9e1b10169e Add OscarWatch status upload controls
Adds full user-setting support for OscarWatch SAT status uploads: new per-user `status_upload` option initialization, save/load wiring, and session hydration. The user edit page now includes an enable/disable selector plus a “Test Token” action that calls a new `validate_oscarwatch_token` controller endpoint to verify tokens against OscarWatch and return clear JSON status messages. Logbook SAT upload logic is updated so AMSAT and OscarWatch uploads are handled independently based on their respective user toggles.
2026-08-03 14:51:19 +01:00
Peter Goodhall
8e0e28cd84 Add OscarWatch SAT status upload support
This adds optional OscarWatch integration for SAT QSOs: users can store an OscarWatch API token in account settings, and Cloudlog now reports SAT status uploads to OscarWatch alongside AMSAT uploads when enabled. It includes payload building, mode remapping for common satellites/modes, timestamp/grid handling, and error logging for failed submissions. The edit flow was also updated to load/save these options for the correct edited user, and the account label was generalized from “AMSAT Status Upload” to “Satellite Status Upload.”
2026-08-03 14:45:59 +01:00
Peter Goodhall
7c0c7515a5 Add experimental Remote Operation feature
Introduce an experimental browser-based remote audio feature: bump migration version to 270 and add a migration to add a remote_operation flag to the users table. Add server-side support to User and QSO controllers/models to read/save the remote_operation option (stored via user_options_model) and expose isRemoteOperationEnabled to views and session updates. Add UI: a Remote Operation card on the QSO page, a modal component for detailed settings, a toggle in the user edit page, and conditional loading of assets/js/remote-operation.js. Add a large client-side implementation (assets/js/remote-operation.js) implementing WebRTC signalling, device selection, level meters and diagnostics. Minor session/session-update and helper changes to keep UI state in sync.
2026-05-16 13:44:09 +01:00
Peter Goodhall
d6ffc494f7 Remove redundant CSS from user edit view
Remove inline CSS rules from application/views/user/edit.php: deleted .user_edit custom properties (--gh-border, --gh-muted, --gh-bg-subtle) and .settings-nav .list-group-item styles (cursor, margin-bottom). This cleans up duplicated/unused styling that should be provided by global stylesheets.
2026-04-10 11:19:25 +01:00
Peter Goodhall
929d428e54 Refactor user settings UI to two-column layout
Revamp user edit view into a responsive two-column settings UI: add sidebar navigation, GitHub-like styles, and JS to switch setting panes. Reorganize and present existing options (main menu, map params, default values, Hams.at, AMSAT, Mastodon, hardware, QSO form) as cards inside accordion panes, remove duplicated blocks, and align the save button. Changes improve usability and navigation in application/views/user/edit.php.
2026-04-08 22:43:18 +01:00
Peter Goodhall
e197a5c1f2 Add toggle for QSL Cards menu item
Introduce a user-controllable option to show/hide the "View QSL Cards" link in the Logbook menu. Controller: initialize menu_show_qsl_cards, load/save the 'show_qsl_cards' menu option and sync it to the session during profile updates. Model: fetch the 'show_qsl_cards' option and expose user_show_qsl_cards in the user data. Views: add a checkbox in the user edit form to control the setting, remove the duplicate SSTV storage card UI, and update the header to robustly read the session value and conditionally render the QSL menu item. Defaults to showing the menu item when the option is unset.
2026-04-08 22:26:05 +01:00
Peter Goodhall
de293f6ed3 Relocate SSTV menu toggle into Storage Options
Move the "Show SSTV Images" menu checkbox out of its previous standalone section and into a new "Storage Options" card. Removed the old <hr> and explanatory paragraph and added a new card column with a header, brief description, and the existing checkbox so image-related menu controls are grouped together and the form layout is cleaner.
2026-04-08 22:19:42 +01:00
Peter Goodhall
297ff0af42 Add SSTV menu toggle for users
Introduce a user preference to show or hide the "View SSTV Images" menu item. Controller: initialize menu_show_sstv_images, load/save the 'menu:show_sstv_images' option and set session user_show_sstv_images when profile is saved. Model: fetches the menu option and exposes user_show_sstv_images (and has_eqsl_credentials) in the returned user data. Views: add a checkbox to the user edit form to toggle the setting, and conditionally render the eQSL/SSTV menu items in the header based on session flags. This lets users control visibility of the SSTV menu entry from their profile.
2026-04-08 22:18:02 +01:00
Peter Goodhall
ac23397727 Add DX Cluster tab to QSO interface
Introduce a DX Cluster tab to the QSO view and user settings. This change:

- Enables a new qso_form option 'dxcluster_tab' in controllers (Qso.php, User.php) so the tab can be toggled per-user.
- Adds a user preference toggle in the user edit view to show/hide the DX Cluster tab.
- Implements the DX Cluster UI in the QSO index view: tab button, controls (band select, hide RBN), spot table and click-to-fill behavior.
- Adds client-side JS to manage a WebSocket to wss://dxc.cloudlog.org, maintain and render recent spots in a DataTable, persist filter preferences, sync band selection with the QSO form/radio, and batch-check worked status via the dxcluster/check_worked endpoint.

Files changed: application/controllers/Qso.php, application/controllers/User.php, application/views/qso/index.php, application/views/user/edit.php.
2026-03-27 22:29:25 +00:00
Peter Goodhall
20570ba343 Add configurable QSO form field visibility
Introduce per-user visibility settings for QSO form fields and tabs. Load qso_form options in QSO and User controllers (with sensible defaults), apply them to the qso view to conditionally render fields/tabs, and save changes from the user edit form. Add a QSO Form accordion in user/edit.php exposing switches for each field/tab, update user save logic to persist each option, and include client-side JS in qso/index.php to toggle USA state/county and DOK fields based on DXCC selection. Files changed: application/controllers/Qso.php, application/controllers/User.php, application/views/qso/index.php, application/views/user/edit.php.
2026-03-27 18:11:22 +00:00
Peter Goodhall
bcae0c8782 Add optional map greyline layer (terminator)
Add a day/night greyline (terminator) overlay to the dashboard map.

- New assets/js/leaflet/L.Terminator.js: a Leaflet polygon plugin that computes the solar terminator for a given time and exposes L.terminator().
- Load the terminator script in the footer and register a Greyline overlay layer with start/stop interval updates (refreshes every minute). Updates are managed when the overlay is added/removed or when the map unloads to avoid orphaned timers.
- Expose the greyline as a toggleable overlay in the map layer control and add markers to a dedicated markersLayer overlay (instead of adding them directly to the map).
- Add a user preference checkbox to application/views/user/edit.php (Enable Dashboard Map Greyline Layer) and wire saving/reading of the dashboard_map_greyline option in application/controllers/User.php and application/controllers/Dashboard.php. Default behavior is enabled when not set.

This change lets users enable/disable the visual day/night terminator on the dashboard map and ensures proper lifecycle handling for updates and marker layering.
2026-03-26 22:39:04 +00:00
Peter Goodhall
36757e3e34 Add option to count satellite QSOs in DXPeditions
Introduce a user preference to treat satellite QSOs as "worked" for DXPedition status and wire it through the UI, controller, and model. Changes: add dashboard_dxpedition_sat_worked default and POST handling in User controller, add checkbox to user settings view to toggle the option, update Workabledxcc_model to optionally include satellite results when computing workedBefore via a new shouldIncludeSatelliteWorked() helper, and tweak upcoming_dxccs view styling and row classes to visually indicate worked vs needed DXPeditions. This makes DXPedition cards respect users' preference for counting satellite contacts.
2026-03-26 15:00:56 +00:00
Peter Goodhall
6e43503116 Enforce unique callsigns and protect last admin
Add callsign uniqueness checks and prevent demotion of the last admin. Introduces ECALLSIGNEXISTS and ELASTADMIN constants, new model methods (exists_by_callsign, count_admin_users, would_remove_last_admin) and integrates checks into add/update flows to return appropriate error codes. Update User controller to add validation callbacks (check_unique_callsign, check_last_admin_role) and wire errors into multiple user actions. Update signup/edit views to display callsign and usertype validation feedback using Bootstrap invalid-feedback and improve alert layout.
2026-03-26 14:22:02 +00:00
Peter Goodhall
0848a9b4c0 Add open registration and public signup feature
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.
2025-12-02 18:10:37 +00:00
Peter Goodhall
2236d4360b Ensure user callsign is stored in uppercase
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.
2025-11-24 14:22:34 +00:00
Peter Goodhall
ac27e6a653 Add welcome email feature for new and existing users
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.
2025-11-22 15:23:47 +00:00
Peter Goodhall
e6ecfa4f1b Require Clublog username to be a valid email address
Enforces that Clublog usernames are valid email addresses throughout the application, reflecting Clublog's policy change to no longer accept callsigns as usernames. Updates validation in controllers, models, and views, adds a migration to clear non-email usernames, and updates language files in multiple languages to clarify the requirement.
2025-10-13 13:40:56 +01:00
Peter Goodhall
7156b185e1 add option to turn on websockets for winkey 2025-05-28 13:38:25 +01:00
Peter Goodhall
d853963384 Cleaned up code formatting 2025-05-23 11:55:35 +01:00
Peter Goodhall
a5cf402827 Starting to add Winkey web socket features 2025-05-22 22:54:18 +01:00
Peter Goodhall
b36c8a4cd1 [Callbooks] Login information stored in user account
this is a breaking change you need to update your callbook preferences in your account under third party services
2024-10-03 14:46:11 +01:00
Emiliano Macedonio
121e5f7981 Added flags to QSO tables and in detail 2024-05-24 16:43:32 +02:00
Peter Goodhall
471c83a8b8 Impliments a simple remember me feature for 14 days
Starts to impliment #3087 this has a remember me for 14 days
2024-04-30 14:48:47 +01:00
Peter Goodhall
c7718d675c Impliments HTMX for the user delete so that you never leave the main table display 2024-04-10 15:15:54 +01:00
Peter Goodhall
abda7fb663 [Dashboard|User] Control over what cards are shown on the dashboard 2024-03-19 14:38:33 +00:00
phl0
9a79cbcfcd
Add option to configure private feed key and show only workable passe 2024-03-09 08:49:12 +01:00
Peter Goodhall
b4b199f405 [Login] Placed errors below the login header for visibility 2024-02-26 16:28:57 +00:00
HB9HIL
c001b66364 comments 2024-01-01 02:44:03 +01:00
HB9HIL
326e1b040c show last login in users table 2024-01-01 02:08:23 +01:00
HB9HIL
6cd37e7a2f additional flash messages 2024-01-01 01:30:50 +01:00
HB9HIL
773cbec28a refractoring of user list 2024-01-01 01:01:39 +01:00
abarrau
ecc6b9110c Deleted add.php since this is not needed anymore 2023-12-18 08:36:20 +01:00
HB9HIL
ee166cf698 replaced theme select 2023-12-17 21:05:56 +01:00
HB9HIL
b54913f49f improved language 2023-12-17 20:46:38 +01:00
HB9HIL
0e8288f16f first tab open by default, the others default hidden 2023-12-17 20:21:30 +01:00
abarrau
cbb93e89de change edit view for use on add view 2023-12-17 19:16:23 +01:00
abarrau
c02d2dce7b add translate file 2023-12-17 18:14:01 +01:00
abarrau
1748e298ba add pwd button (show/hide) 2023-12-17 17:39:12 +01:00
abarrau
947e06a74a change tag div/small class to small tag 2023-12-17 11:51:26 +01:00
abarrau
a3604c95a2 remove icon for help tooltips 2023-12-16 19:23:02 +01:00
abarrau
8d606b7b8d use accordion for header 2023-12-16 08:05:43 +01:00
abarrau
ed11da8833 change design user edit page 2023-12-15 20:22:58 +01:00
int2001
f56acc7765
Included QRZ.com to choser at maps and at default-QSL-Settings 2023-12-08 07:17:01 +00:00
int2001
3cbb9382cc
Add QRZ-QSL to configurable Items for last-qsl and to last-view 2023-12-08 06:23:01 +00:00
abarrau
6244681069 Map custom function (eng lang) 2023-11-30 18:11:22 +01:00
DJ3CE
a10468bf50 Add new column-selection to user-add view as well 2023-11-26 20:10:34 +01:00
DJ3CE
cf2a50050c Add user-selectable 'Name' column 2023-11-26 18:37:08 +01:00
HB9HIL
8c4bae8453 run migration script 2023-11-14 13:35:53 +01:00
Peter Goodhall
c4e8fe1004
Merge pull request #2676 from abarrau/ans-update-language-french
update french language (+ standardize some format)
2023-11-13 11:44:40 +00:00