login

<     >

2023-08-04 17:39:12 (UTC-03:00)

Marcel Rodrigues <marcelgmr@gmail.com>

show status, priority, and improve ticket page

diff --git a/data.lua b/data.lua
index 1cdb687..cfaa737 100644
--- a/data.lua
+++ b/data.lua
@@ -92,6 +92,15 @@ function Model:get_states()
     return self.db:execute("SELECT * FROM State;")
 end
 
+function Model:get_indexed_states()
+    local query = "SELECT id, name FROM State;"
+    local states = {}
+    for _, state in ipairs(self.db:execute(query)) do
+        states[state.id] = state.name
+    end
+    return states
+end
+
 function Model:create_user(nick, name, password)
     local salt = auth.get_salt()
     local hash = auth.hash_pass(password, salt)

diff --git a/skopos.lua b/skopos.lua
index b2b7e09..a2893c7 100644
--- a/skopos.lua
+++ b/skopos.lua
@@ -222,11 +222,12 @@ function App:routes()
         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()
+        local states = self.model:get_indexed_states()
         -- TODO: load comments
         local comments = {}
         local env = {
             title=self.title, user=user, proj=proj, tick=tick,
-            users=users, comments=comments
+            users=users, states=states, comments=comments
         }
         return lud.template.render_file("view/ticket.html", env)
     end},

diff --git a/view/ticket.html b/view/ticket.html
index faffc2c..8a31e22 100644
--- a/view/ticket.html
+++ b/view/ticket.html
@@ -19,20 +19,31 @@
   <div class="ticket-details">
     <h1>{{$tick.title}}</h1>
     <div class="header-details">
-      <p class="date">Date: {{os.date("%Y-%m-%d", $tick.time)}}</p>
+      <p class="date"><strong>Date:</strong> {{os.date("%Y-%m-%d", $tick.time)}}</p>
       % set author = $users[$tick.user_id]
-      <p class="author">Author: <a href="/u/{{$author.nick}}">{{$author.name}}</a></p>
+      <p class="author">
+        <strong>Author:</strong>
+        <a href="/u/{{$author.nick}}">{{$author.name}}</a>
+      </p>
     </div>
     <pre>{{$tick.desc}}</pre>
+    <p>
+      <strong>Status:</strong> {{$states[$tick.state_id]}}
+      &nbsp;&nbsp;&nbsp;
+      <strong>Priority:</strong> {{$tick.priority}}
+    </p>
   </div>
   <div class="comments-section">
     <h2>Comments</h2>
     % for comment in $comments do
     <div class="comment">
       <div class="header-details">
-        <p class="date">Date: {{os.date("%Y-%m-%d", $comment.time)}}</p>
+        <p class="date"><strong>Date:</strong> {{os.date("%Y-%m-%d", $comment.time)}}</p>
         % set author = $users[$comment.user_id]
-        <p class="author">Author: <a href="/u/{{$author.nick}}">{{$author.name}}</a></p>
+        <p class="author">
+          <strong>Author:</strong>
+          <a href="/u/{{$author.nick}}">{{$author.name}}</a>
+        </p>
       </div>
       <pre>{{$comment.text}}</pre>
     </div>