16 Commits

Author SHA1 Message Date
Erik Thuning
04bbe17b48 Added a VPN status banner
The banner calls ip.dsv.su.se and uses the returned information to determine
whether the client is using a VPN connection.
2025-05-14 11:44:02 +02:00
Erik Thuning
5c2419eef5 Avoid WSOD on access denied 2025-04-01 12:53:46 +02:00
Erik Thuning
c24d3405d2 App no longer flashes the uninitialized page before auth 2025-03-28 16:08:03 +01:00
Erik Thuning
c1538a8912 Moved qr code generation to server side in order to get more compatible codes 2025-03-28 15:44:59 +01:00
Erik Thuning
409123b038 Rearranged client population code to be more legible
Also changed the css to use a class instead of svg elements directly.
This makes it easier to switch libraries for qr generation.
2025-03-28 13:38:31 +01:00
Erik Thuning
8b2baba214 QR codes: Lowered error correction level and set them to crisp rendering
Hopefully this should make it easier to scan the codes when the config
data is very large.
2025-03-28 11:04:59 +01:00
Erik Thuning
8a47e99ae2 Explicitly unsetting height and width on qr codes
This to make them scale properly when zooming the page
2025-03-27 15:28:52 +01:00
Erik Thuning
670c88c7f3 Added display of expiration date to the user interface
Also stopped ever displaying creation time and rearranged some CSS
2025-03-26 15:34:55 +01:00
Erik Thuning
e9f180805a Started sending some serverside configuration to the client-side javascript
The information is sent via the cookie 'server_settings'. The value is a
base64-encoded json object containing the data necessary
for site-specific customization.

Also fixed a bug that was preventing the 'add new client' button from being
disabled when the client limit is reached.
2025-03-06 15:08:37 +01:00
Erik Thuning
49abf8ad21 Implemented handling of client limits, and some general tweaks
- The create button is now disabled when reaching the client limit
 - The client list is now always sorted by case-insensitive config name
 - Focus moves to the form when opening a dialog
 - Fixed some inconsistent use of snake_case vs perlCase
2025-03-04 11:14:02 +01:00
Erik Thuning
311ae0276e Implemented support for entitlements-based access control
If configured, anyone missing the required entitlement will now be denied
access to the application and its api endpoints. If unset, any authenticated
user is accepted.
2025-02-27 17:25:32 +01:00
Erik Thuning
4759fdeabc CSS Tweaking and housekeeping 2025-02-20 15:09:40 +01:00
Erik Thuning
39ba84bf2e CSS tweaks 2025-02-19 23:02:30 +01:00
Erik Thuning
27277968be Removed broken code that should have sorted the configs by name
Something about async/promises is tripping me up again
2025-02-19 15:14:24 +01:00
Erik Thuning
6b4b923c3c FIX: Implemented the download button functionality 2025-02-19 15:13:59 +01:00
Erik Thuning
d6d13aeb6d Frontend is getting close to done 2025-02-18 17:59:13 +01:00