diff --git a/.gitignore b/.gitignore
index 4776bd5..e19668a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
-./TraefikAccessControl
+/TraefikAccessControl
*.db
tac_data.json
diff --git a/static/js/dashboard.js b/static/js/dashboard.js
index 4eda3a2..a49faea 100644
--- a/static/js/dashboard.js
+++ b/static/js/dashboard.js
@@ -11,6 +11,11 @@
const createBearerButton = document.getElementById("bearerCreateButton");
createBearerButton.onclick = onCreateBearer;
+
+ const createBearerButtonMobile = document.getElementById("bearerCreateButtonMobile");
+ if (createBearerButtonMobile) {
+ createBearerButtonMobile.onclick = onCreateBearer;
+ }
function onDeleteBearer(event) {
event.preventDefault();
diff --git a/static/style/common.css b/static/style/common.css
index 91eac00..511f704 100644
--- a/static/style/common.css
+++ b/static/style/common.css
@@ -39,6 +39,92 @@ main {
.page-footer .container {
font-size: 0.9rem;
}
+
+ /* Make tables scrollable on mobile */
+ .table-wrapper {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ margin-bottom: 1.5rem;
+ }
+
+ table {
+ min-width: 100%;
+ font-size: 0.85rem;
+ }
+
+ table th, table td {
+ padding: 8px 5px;
+ }
+
+ /* Stack form inputs vertically on mobile */
+ .input-field {
+ margin-bottom: 1rem;
+ }
+
+ /* Make buttons full width on mobile */
+ .btn, button {
+ width: 100%;
+ margin-bottom: 0.5rem;
+ }
+
+ /* Adjust spacing for headings */
+ h1 {
+ font-size: 2rem;
+ }
+
+ h4 {
+ font-size: 1.5rem;
+ margin-top: 1.5rem;
+ }
+
+ /* Better spacing for icons in tables */
+ .material-icons {
+ font-size: 1.2rem;
+ }
+
+ /* Stack checkboxes and labels better on mobile */
+ label {
+ font-size: 0.9rem;
+ }
+
+ /* Improve password change section on mobile */
+ .change-password-wrapper {
+ display: flex;
+ flex-direction: column;
+ gap: 0.5rem;
+ }
+
+ .change-password-wrapper .input-field {
+ width: 100%;
+ }
+
+ .change-password-wrapper button {
+ width: 100%;
+ }
+
+ /* Allow long tokens to wrap on mobile */
+ table td {
+ word-break: break-all;
+ overflow-wrap: break-word;
+ }
+
+ /* Ensure proper spacing for checkbox labels */
+ [type="checkbox"]+span {
+ padding-left: 30px;
+ font-size: 0.9rem;
+ }
+
+ /* Better button spacing on mobile */
+ .row {
+ margin-bottom: 10px;
+ }
+
+ /* Ensure inputs don't overflow */
+ input[type="text"],
+ input[type="password"],
+ select {
+ font-size: 1rem;
+ }
}
.page-footer {
@@ -53,6 +139,11 @@ main {
position: relative;
}
+/* Ensure select dropdowns are properly styled */
+select {
+ display: block;
+}
+
#infoCard {
-webkit-animation: fadeOut 1.5s forwards;
-webkit-animation-iteration-count: 1;
diff --git a/templates/admin.html b/templates/admin.html
index 2ec0855..0b7b298 100644
--- a/templates/admin.html
+++ b/templates/admin.html
@@ -6,107 +6,130 @@
All users:
-
+
+
+
+
+ Username
+ Is Admin
+ Delete
+
+
+
+ {{range .users}}
+
+ {{.Username}}
+
+ {{if .IsAdmin}}
+ done
+ {{else}}
+ clear
+ {{end}}
+
+ delete_forever
+
+ {{end}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Is Admin
+
+
+
+
+ Create New User
+ add
+
+
+
All sites:
-
+
+
+
+
+ Host
+ Path-Prefix
+ Prompt Basic Auth
+ Anonymous Access
+ Config OK
+ Edit
+ Delete
+
+
+
+ {{range .sites}}
+
+ {{.Host}}
+ {{.PathPrefix}}
+
+ {{if .PromptBasicAuth}}
+ done
+ {{else}}
+ clear
+ {{end}}
+
+
+ {{if .AnonymousAccess}}
+ done
+ {{else}}
+ clear
+ {{end}}
+
+
+ {{if .ConfigOK}}
+ done
+ {{else}}
+ clear
+ {{end}}
+
+ edit
+ delete_forever
+
+ {{end}}
+
+
+
+
If the config for a site is not OK, most probably the Traefik configuration is not set properly.
More information about this can be found in the