style negative user list; add embezzlement amount

This commit is contained in:
Riley L. 2024-11-20 22:34:56 +01:00
parent 80cf5a6ccd
commit fb6eafaec0
3 changed files with 30 additions and 8 deletions

View file

@ -540,7 +540,7 @@ local function r_users(show_special, filter_negative)
if not show_special then
print(format([[
<form action="/" method="GET" id="user_creation">
<form class="section" action="/" method="GET" id="user_creation">
<h3>{+index.form.create_user}</h3>
<label for="username">{+field.username}: </label>
<input type="text" name="create_user" id="username" />
@ -583,8 +583,9 @@ local function r_users(show_special, filter_negative)
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
if (filter_negative ~= nil and user.balance < filter_negative)
or (filter_negative == nil and is_spu == show_special and (not filter_out)) then
if is_spu == show_special and
((filter_negative ~= nil and user.balance < filter_negative)
or (filter_negative == nil and (not filter_out))) then
print(format([[<li>
<a href="/{username_url}">
<span class="name">{!username}</span>
@ -597,12 +598,32 @@ local function r_users(show_special, filter_negative)
}))
end
end
if filter_negative ~= nil then
table.sort(users, function(a, b)
return a.balance < b.balance
end)
end
local inactive_cutoff = os.time() - (tonumber(config.inactive_cutoff) or (30 * 24 * 60 * 60))
for _, user in ipairs(get_active_users()) do
if filter_negative or user.time > inactive_cutoff then show_user(user) end
local embezzlement = 0
for _, user in ipairs(users) do
if filter_negative or user.time > inactive_cutoff then
show_user(user)
if user.name:sub(1,1) ~= "@" then
if user.balance < 0 then embezzlement = embezzlement - user.balance end
end
end
end
print("</ul>")
if filter_negative ~= nil then return end
if filter_negative ~= nil then
print(format([[<section class="section" style="margin-top: 0">{+users.embezzlement}</section>]], {
amount = format_amount(embezzlement)
}))
return
end
print(format([[<details><summary>{+users.inactive_list}</summary><ul class="userlist">]]))
for _, user in ipairs(users) do
if user.time <= inactive_cutoff then show_user(user) end

View file

@ -68,3 +68,4 @@ error.invalid_name=Name invalid
error.open_products=Failed to open products file
error.no_path=No path
users.inactive_list=Inactive Users
users.embezzlement=A total of {amount} are currently under embezzlement.

View file

@ -97,7 +97,7 @@ nav> :last-child {
}
/* landing page */
form#user_creation {
.section {
background-color: var(--b2);
padding: 1em;
margin-top: 2em;