login

<     >

2023-08-04 17:30:28 (UTC-03:00)

Marcel Rodrigues <marcelgmr@gmail.com>

get author names and links

diff --git a/data.lua b/data.lua
index d562eca..1cdb687 100644
--- a/data.lua
+++ b/data.lua
@@ -105,6 +105,15 @@ function Model:get_user(nick)
     return self.db:execute("SELECT * FROM User WHERE nick = ?;", nick)[1]
 end
 
+function Model:get_indexed_users()
+    local query = "SELECT id, nick, name FROM User;"
+    local users = {}
+    for _, user in ipairs(self.db:execute(query)) do
+        users[user.id] = {nick=user.nick, name=user.name}
+    end
+    return users
+end
+
 function Model:create_invite(user_id)
     local uuid = auth.hex(auth.uuid4())
     local expire = "unixepoch('now', '+2 days')"

diff --git a/skopos.lua b/skopos.lua
index a2cfda4..b2b7e09 100644
--- a/skopos.lua
+++ b/skopos.lua
@@ -221,9 +221,13 @@ function App:routes()
         if proj == nil then return "not found", 404 end
         local tick = self.model:get_ticket(proj.id, tonumber(code))
         if tick == nil then return "not found", 404 end
+        local users = self.model:get_indexed_users()
         -- TODO: load comments
         local comments = {}
-        local env = {title=self.title, user=user, proj=proj, tick=tick, comments=comments}
+        local env = {
+            title=self.title, user=user, proj=proj, tick=tick,
+            users=users, comments=comments
+        }
         return lud.template.render_file("view/ticket.html", env)
     end},
     {"POST", "/p/([-_%w]+)/t",

diff --git a/view/ticket.html b/view/ticket.html
index 84c3229..faffc2c 100644
--- a/view/ticket.html
+++ b/view/ticket.html
@@ -20,7 +20,8 @@
     <h1>{{$tick.title}}</h1>
     <div class="header-details">
       <p class="date">Date: {{os.date("%Y-%m-%d", $tick.time)}}</p>
-      <p class="author">Author: {{$tick.user_id}}</p>
+      % set author = $users[$tick.user_id]
+      <p class="author">Author: <a href="/u/{{$author.nick}}">{{$author.name}}</a></p>
     </div>
     <pre>{{$tick.desc}}</pre>
   </div>
@@ -30,7 +31,8 @@
     <div class="comment">
       <div class="header-details">
         <p class="date">Date: {{os.date("%Y-%m-%d", $comment.time)}}</p>
-        <p class="author">Author: {{$comment.user_id}}</p>
+        % set author = $users[$comment.user_id]
+        <p class="author">Author: <a href="/u/{{$author.nick}}">{{$author.name}}</a></p>
       </div>
       <pre>{{$comment.text}}</pre>
     </div>