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
45f4e31e45
Removed dead code
2025-05-14 10:44:05 +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
d8dcbc6d6b
Improved page accessibility
2025-03-04 11:12:22 +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
683cce3fdd
FIX: Config boxes now shrink to their content
2025-02-20 16:00:24 +01:00
Erik Thuning
4759fdeabc
CSS Tweaking and housekeeping
2025-02-20 15:09:40 +01:00
Erik Thuning
dc50409d29
Eliminated the <main> element
2025-02-19 23:32:10 +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
9b5a752e1a
FIX: Enter in the input field now triggers the correct form action.
...
The first button in the form tree is always the default button. In order for
the save button to become default, the footers were reorganized in backwards
order and then flexbox-ed to be laid out backwards.
This in order to keep the association of right -> forwards/accept
and left -> backwards/cancel.
2025-02-19 14:51:50 +01:00
Erik Thuning
86efda498e
Layout fixes.
...
Mostly a consistency change - now using rem anv vh/vw units as far as
reasonable. Also made some tweaks to the modal box.
2025-02-19 14:50:50 +01:00
Erik Thuning
9b91d8cafb
Style tweaks, should work slightly better on mobile
2025-02-18 18:49:58 +01:00
Erik Thuning
d6d13aeb6d
Frontend is getting close to done
2025-02-18 17:59:13 +01:00
Erik Thuning
1e03616e7b
Added a qr code library
2025-02-18 17:55:37 +01:00