diff --git a/admin-web/static/app.js b/admin-web/static/app.js
index e3c9e19..c11b4ab 100644
--- a/admin-web/static/app.js
+++ b/admin-web/static/app.js
@@ -1138,12 +1138,12 @@ function renderUserTraffic() {
}
function renderUsers() {
- const tbody = $("#usersTable");
+ const container = $("#usersTable");
if (!state.users.length) {
- tbody.innerHTML = `
| ${escapeHtml(t("noKeys"))} |
`;
+ container.innerHTML = `${escapeHtml(t("noKeys"))}
`;
return;
}
- tbody.innerHTML = state.users.map((user) => {
+ container.innerHTML = state.users.map((user) => {
const pending = state.pendingUsers.has(user.name);
const selected = user.name === state.userTrafficUser;
const traffic = user.traffic || {};
@@ -1151,13 +1151,12 @@ function renderUsers() {
const activeIps = Number(traffic.active_unique_ips) || 0;
const maxUniqueIps = Number.isFinite(Number(user.max_unique_ips)) ? Math.max(0, Number(user.max_unique_ips)) : 0;
return `
-
- |
+
+
+ ${escapeHtml(t("tableUser"))}
- |
-
${escapeHtml(pending ? t("applying") : (user.enabled ? t("enabled") : t("disabled")))}
- |
- ${escapeHtml(user.secret)} |
-
+
+
+ ${escapeHtml(t("tableSecret"))}
+ ${escapeHtml(user.secret)}
+
+
+ ${escapeHtml(t("tableLink"))}
- |
-
+
+
+ ${escapeHtml(t("tableTraffic"))}
@@ -1188,14 +1192,15 @@ function renderUsers() {
- |
-
+
+
+ ${escapeHtml(t("tableActions"))}
- |
-
+
+
`; }).join("");
}
diff --git a/admin-web/static/index.html b/admin-web/static/index.html
index d6a6753..67dce75 100644
--- a/admin-web/static/index.html
+++ b/admin-web/static/index.html
@@ -194,20 +194,8 @@
-
-
-
-
- | User |
- Status |
- Secret |
- Link |
- Traffic |
- Actions |
-
-
-
-
+
@@ -400,6 +388,6 @@
-
+