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.
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.
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.
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.
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.
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.
Squashed commit of the following:
commit 595f620d9e
Author: phl0 <github@florian-wolters.de>
Date: Wed Nov 1 13:58:05 2023 +0100
Update languages
commit f670a06059
Author: phl0 <github@florian-wolters.de>
Date: Wed Nov 1 13:55:04 2023 +0100
Added user option for enabling QSO end time logging
commit 36d9a95ebb
Merge: 54d5bb53352931b1
Author: phl0 <github@florian-wolters.de>
Date: Wed Nov 1 12:18:39 2023 +0100
Merge branch 'dev' into qsoTime
commit 54d5bb535b
Author: phl0 <github@florian-wolters.de>
Date: Fri Oct 27 10:14:58 2023 +0200
start/end times for other languages
commit c5f6bb0cab
Author: phl0 <github@florian-wolters.de>
Date: Fri Oct 27 10:14:42 2023 +0200
Hide end time if only differs in seconds as we only display minutes
anyway ...
commit d519d88604
Author: phl0 <github@florian-wolters.de>
Date: Fri Oct 27 10:14:29 2023 +0200
use start as end time if end is not set separately
commit f2588ad132
Author: phl0 <github@florian-wolters.de>
Date: Fri Oct 27 10:13:43 2023 +0200
reset timers on form reset
commit 2b7ee4e48c
Author: phl0 <github@florian-wolters.de>
Date: Fri Oct 27 10:13:27 2023 +0200
Strip seconds from session time variable
commit e0c35aa0cf
Author: phl0 <github@florian-wolters.de>
Date: Fri Oct 27 10:13:11 2023 +0200
Adapt contest logging
commit 5368ef25f3
Author: phl0 <github@florian-wolters.de>
Date: Fri Oct 27 10:12:50 2023 +0200
Make date field a little smaller
commit ad2d7e756c
Author: phl0 <github@florian-wolters.de>
Date: Fri Oct 27 10:12:30 2023 +0200
Add button to reset start time
commit f56e031946
Author: phl0 <github@florian-wolters.de>
Date: Fri Oct 27 10:11:09 2023 +0200
Copy start to end time on focus out
commit b741d0428d
Author: phl0 <github@florian-wolters.de>
Date: Fri Oct 27 10:10:45 2023 +0200
Only min and sec for post QSO template
commit 77314edd31
Author: phl0 <github@florian-wolters.de>
Date: Fri Oct 27 10:08:49 2023 +0200
Basics for QSO end time logging