Software /
code /
prosody-modules
Comparison
mod_client_management/mod_client_management.lua @ 5371:b2d51c6ae89a
mod_client_management: Move table cell formatting into column specification
It's only more lines because of lua-format!
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 26 Apr 2023 11:55:55 +0200 |
parent | 5370:d9d52ad8c1ae |
child | 5372:2d8076577e14 |
comparison
equal
deleted
inserted
replaced
5370:d9d52ad8c1ae | 5371:b2d51c6ae89a |
---|---|
417 if not clients or #clients == 0 then | 417 if not clients or #clients == 0 then |
418 return true, "No clients associated with this account"; | 418 return true, "No clients associated with this account"; |
419 end | 419 end |
420 | 420 |
421 local colspec = { | 421 local colspec = { |
422 { title = "Software", key = "software", width = "1p" }; | 422 { |
423 { title = "Last seen", key = "last_seen", width = 10 }; | 423 title = "Software"; |
424 { title = "Authentication", key = "auth_methods", width = "2p" }; | 424 key = "software"; |
425 width = "1p"; | |
426 mapper = function(user_agent) | |
427 return user_agent and user_agent.software; | |
428 end; | |
429 }; | |
430 { | |
431 title = "Last seen"; | |
432 key = "last_seen"; | |
433 width = 10; | |
434 mapper = function(last_seen) | |
435 return os.date("%Y-%m-%d", last_seen); | |
436 end; | |
437 }; | |
438 { | |
439 title = "Authentication"; | |
440 key = "active"; | |
441 width = "2p"; | |
442 mapper = function(active) | |
443 return array.collect(it.keys(active)):sort():concat(", "); | |
444 end; | |
445 }; | |
425 }; | 446 }; |
426 | 447 |
427 local row = require "util.human.io".table(colspec, self.session.width); | 448 local row = require "util.human.io".table(colspec, self.session.width); |
428 | 449 |
429 local print = self.session.print; | 450 local print = self.session.print; |
430 print(row()); | 451 print(row()); |
431 print(string.rep("-", self.session.width)); | 452 print(string.rep("-", self.session.width)); |
432 for _, client in ipairs(clients) do | 453 for _, client in ipairs(clients) do |
433 print(row({ | 454 print(row(client)); |
434 id = client.id; | |
435 software = client.user_agent and client.user_agent.software; | |
436 last_seen = os.date("%Y-%m-%d", client.last_seen); | |
437 auth_methods = array.collect(it.keys(client.active)):sort():concat(", "); | |
438 })); | |
439 end | 455 end |
440 print(string.rep("-", self.session.width)); | 456 print(string.rep("-", self.session.width)); |
441 return true, ("%d clients"):format(#clients); | 457 return true, ("%d clients"):format(#clients); |
442 end | 458 end |
443 end); | 459 end); |