aboutsummaryrefslogtreecommitdiff
path: root/abrechenbarkeit.lua
diff options
context:
space:
mode:
authorRiley L. <riley@e926.de>2024-11-13 22:27:59 +0100
committerRiley L. <riley@e926.de>2024-11-13 22:27:59 +0100
commite263b806c643341d8d64238dcd0fe2b9111c55a6 (patch)
tree384dd7c32d691f6b384df995b2d69f4acabbaefb /abrechenbarkeit.lua
parent56ee146ec901d316f32156f955ddbdeee5a7ecd7 (diff)
downloadabrechenbarkeit-e263b806c643341d8d64238dcd0fe2b9111c55a6.tar
abrechenbarkeit-e263b806c643341d8d64238dcd0fe2b9111c55a6.tar.bz2
abrechenbarkeit-e263b806c643341d8d64238dcd0fe2b9111c55a6.tar.zst
merge
Diffstat (limited to 'abrechenbarkeit.lua')
-rwxr-xr-xabrechenbarkeit.lua34
1 files changed, 33 insertions, 1 deletions
diff --git a/abrechenbarkeit.lua b/abrechenbarkeit.lua
index f02e888..12514d2 100755
--- a/abrechenbarkeit.lua
+++ b/abrechenbarkeit.lua
@@ -532,6 +532,8 @@ end
local function r_users(show_special)
return respond(200, "Abrechenbarkeit", function()
+ local users = get_active_users()
+
if not show_special then
print(format([[
<form action="/" method="GET" id="user_creation">
@@ -541,9 +543,39 @@ local function r_users(show_special)
<input type="submit" value="{+index.form.create_user.submit}" class="button amount-ntr" />
</form>
]]))
+
+ -- get first letters
+ local firstletters = {}
+ local function contains(char)
+ for _, firstchar in ipairs(firstletters) do
+ if firstchar == char then
+ return true
+ end
+ end
+
+ return false
+ end
+
+ for _, user in ipairs(users) do
+ user.firstchar = user.name:sub(1,1):lower()
+ if user.firstchar ~= "@" and not contains(user.firstchar) then
+ table.insert(firstletters, user.firstchar)
+ end
+ end
+
+ table.sort(firstletters)
+
+ print(format([[<section class="firstletterlist"><h3>{+users.filter}</h3><ul>]]))
+ for k, letter in ipairs(firstletters) do
+ print(format([[<li><a href="?users&prefix={letter}">{letter}</a></li>]], {
+ letter = letter,
+ }))
+ end
+ print([[</ul></section>]])
end
print([[<div class="userlist"></div>]]) -- for printing
print([[<ul class="userlist">]])
+
local show_user = function(user)
local is_spu = user.name:sub(1, 1) == "@"
local filter_out = query.prefix ~= nil and user.name:sub(1,1):lower() ~= query.prefix
@@ -566,7 +598,7 @@ local function r_users(show_special)
end
print("</ul>")
print(format([[<details><summary>{+users.inactive_list}</summary><ul class="userlist">]]))
- for _, user in ipairs(get_active_users()) do
+ for _, user in ipairs(users) do
if user.time <= inactive_cutoff then show_user(user) end
end
print([[</ul></details>]])