Use iota generated message numbers instead of debbugs' msg-num.
authorArun Isaac <arunisaac@systemreboot.net>
Tue, 25 Sep 2018 06:25:46 +0000 (11:55 +0530)
committerRicardo Wurmus <rekado@elephly.net>
Fri, 9 Nov 2018 18:50:27 +0000 (19:50 +0100)
* mumi/messages.scm (extract-attachment): Use nth instead of find to
get message.
* mumi/web/view/html.scm (issue-page): Let show-message accept
message-number as an argument. Update invocations of show-message.
* mumi/web/view/utils.scm (display-message-body): Accept
message-number as an argument.

mumi/messages.scm
mumi/web/view/html.scm
mumi/web/view/utils.scm

index d24de8560168078a10a0e1400425647728aee568..6c33e8a90caf013a5c84a8b1c16692f0d7f2d96d 100644 (file)
@@ -1,5 +1,6 @@
 ;;; mumi -- Mediocre, uh, mail interface
 ;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This program is free software: you can redistribute it and/or
 ;;; modify it under the terms of the GNU Affero General Public License
@@ -299,9 +300,7 @@ we have to do this in a very convoluted way."
                         (cadr (find-tail (cut eq? #:body <>) chunk)))))))))
   (and=> (fetch-bug id)
          (lambda (bug)
-           (and=> (find (lambda (msg)
-                          (eq? (email-msg-num msg) msg-num))
-                        (patch-messages id))
+           (and=> (nth msg-num (patch-messages id))
                   (lambda (msg)
                     (and=> (multipart-message? msg)
                            (lambda (attributes)
index 1f2408ccba53a1e143e07168701436dbbb512e80..cee265f58194350477d31a275bee248df7f7fd16 100644 (file)
@@ -1,5 +1,6 @@
 ;;; mumi -- Mediocre, uh, mail interface
 ;;; Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This program is free software: you can redistribute it and/or
 ;;; modify it under the terms of the GNU Affero General Public License
@@ -256,10 +257,10 @@ range.  The supported arguments are the same as for "
                         (lambda (a b)
                           (string< (extract-email a)
                                    (extract-email b)))))
-  (define (show-message message previous-subject)
+  (define (show-message message-number message previous-subject)
     `((div
        (@ (class "row"))
-       (a (@ (id ,(number->string (email-msg-num message)))))
+       (a (@ (id ,(number->string message-number))))
        (div
         (@ (class "avatar col-md-1")
            (style ,(string-append "background-color:"
@@ -278,7 +279,7 @@ range.  The supported arguments are the same as for "
            " wrote on "
            (span (@ (class "date"))
                  (a (@ (href ,(string-append "#" (number->string
-                                                  (email-msg-num message)))))
+                                                  message-number))))
                     ,(date message))))
           ,@(if (string-suffix? previous-subject (subject message))
                 '()
@@ -297,7 +298,7 @@ range.  The supported arguments are the same as for "
             ,(message-id message))))
          (div
           (@ (class "body panel-body"))
-          ,(display-message-body id message)))))
+          ,(display-message-body id message-number message)))))
       ,@(if (closing? message id)
             '((div
                (@ (class "row event"))
@@ -344,8 +345,9 @@ range.  The supported arguments are the same as for "
                                (and (email-body msg)
                                     (not (internal-message? msg))))
                              messages)))
-           (map (lambda (msg previous-subject)
-                  (show-message msg previous-subject))
+           (map (lambda (message-number msg previous-subject)
+                  (show-message message-number msg previous-subject))
+                (iota (length msgs))
                 msgs
                 (cons (bug-subject bug)
                       (map subject msgs))))
index 2c03c35fd7c60f8a1d75133288b3f2ff7cd2d825..cb4e83ef6f719f80511b5e794e19f68a4101dec8 100644 (file)
@@ -1,5 +1,6 @@
 ;;; mumi -- Mediocre, uh, mail interface
 ;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This program is free software: you can redistribute it and/or
 ;;; modify it under the terms of the GNU Affero General Public License
               (string-take value (or (string-index value #\;)
                                      (string-length value)))))
 
-(define (display-message-body bug-num message)
+(define (display-message-body bug-num message-number message)
   "Convenience procedure to render MESSAGE (part of bug with number
 BUG-NUM), even when it is a multipart message."
   (define (display-multipart-chunk headers body . path)
@@ -115,7 +116,7 @@ BUG-NUM), even when it is a multipart message."
       (string-append "/issue/"
                      (number->string bug-num)
                      "/attachment/"
-                     (number->string (email-msg-num message))
+                     (number->string message-number)
                      "/" (string-join (map number->string path) "/")))
     (let* ((type
             (and=> (assoc-ref headers "content-type")