Ricardo Wurmus [Mon, 30 Mar 2020 22:11:48 +0000 (00:11 +0200)]
css: Add bubble tab to the left of messages on wide screens.
Ricardo Wurmus [Mon, 30 Mar 2020 22:11:34 +0000 (00:11 +0200)]
css: Make space for avatars on wide screens.
Ricardo Wurmus [Mon, 30 Mar 2020 22:11:14 +0000 (00:11 +0200)]
css: Hide avatar on narrow screens.
Ricardo Wurmus [Mon, 30 Mar 2020 17:32:17 +0000 (19:32 +0200)]
scripts: Catch any errors in worker and restart.
Ricardo Wurmus [Mon, 30 Mar 2020 17:29:06 +0000 (19:29 +0200)]
controller: Remove /snippet handlers.
Ricardo Wurmus [Mon, 30 Mar 2020 17:27:05 +0000 (19:27 +0200)]
view/html: index: Include list of recent and priority bugs.
Don't use JavaScript for this.
Ricardo Wurmus [Mon, 30 Mar 2020 17:22:39 +0000 (19:22 +0200)]
css: Separate filters vertically.
Ricardo Wurmus [Mon, 30 Mar 2020 17:20:07 +0000 (19:20 +0200)]
bugs: update-bug-database!: Refresh all existing bugs.
This includes bugs that have been moved to other packages.
Ricardo Wurmus [Mon, 30 Mar 2020 17:10:24 +0000 (19:10 +0200)]
view/html: Remove help for obsolete mdate keyword.
Ricardo Wurmus [Mon, 30 Mar 2020 17:08:06 +0000 (19:08 +0200)]
view/html: Update copyright.
Ricardo Wurmus [Thu, 12 Mar 2020 11:41:31 +0000 (12:41 +0100)]
scripts: Adjust error message on index failure.
* scripts/mumi.in (mu-index): Don't use undeclared variable COMMAND.
Ricardo Wurmus [Thu, 12 Mar 2020 11:40:22 +0000 (12:40 +0100)]
scripts: Index mails before initialization.
Ricardo Wurmus [Thu, 12 Mar 2020 11:13:29 +0000 (12:13 +0100)]
bugs: Use inexact queries for names.
* mumi/bugs.scm (bugs-by-submitter, bugs-by-owner): Use LIKE to
compare argument.
Ricardo Wurmus [Thu, 12 Mar 2020 11:08:22 +0000 (12:08 +0100)]
messages: Implement search with mu.
* mumi/messages.scm (search-bugs): Use mu to find messages according
to the query, then filter by message sets from the local database.
(ago, date-term->epoch-seconds): Remove procedures.
(punctuation?): New procedure.
(process-query): Remove handling of attributes; replace filters with
sets; build up mu query and use local database for bug sets.
* mumi/web/controller.scm (controller): Adjust call of search-bugs.
Ricardo Wurmus [Thu, 12 Mar 2020 11:04:52 +0000 (12:04 +0100)]
messages: recent-bugs: Convert bug id to number.
* mumi/messages.scm (recent-bugs): Convert bug id field to number.
Ricardo Wurmus [Thu, 12 Mar 2020 09:59:38 +0000 (10:59 +0100)]
messages: bugs-by-severity: Use local database.
* mumi/messages.scm (bugs-by-severity): Use local database instead of
contacting Debbugs.
Ricardo Wurmus [Thu, 12 Mar 2020 09:59:05 +0000 (10:59 +0100)]
messages: easy-bugs: Use local database.
* mumi/messages.scm (easy-bugs): Implement using bugs-by-tag.
Ricardo Wurmus [Thu, 12 Mar 2020 09:57:47 +0000 (10:57 +0100)]
scripts: Add worker option to refresh database.
* scripts/mumi.in: Update the mu index and the Sqlite database when
the "--worker" option is provided.
Ricardo Wurmus [Thu, 12 Mar 2020 09:56:47 +0000 (10:56 +0100)]
mumi: Add bugs.
* mumi/bugs.scm: New file.
* etc/schema.sql: New file.
* Makefile.am (SOURCES): Add mumi/bugs.scm.
(dist_pkgdata_DATA): Add etc/schema.sql.
Ricardo Wurmus [Thu, 12 Mar 2020 07:27:55 +0000 (08:27 +0100)]
configure: Check for presence of Guile-Sqlite3.
Ricardo Wurmus [Thu, 12 Mar 2020 07:26:57 +0000 (08:26 +0100)]
config: Add pkg-dir and db-dir.
* mumi/config.scm.in (%config): Add fields for pkg-dir and db-dir.
Ricardo Wurmus [Thu, 12 Mar 2020 07:26:42 +0000 (08:26 +0100)]
guix: Use guile-sqlite3.
Ricardo Wurmus [Thu, 12 Mar 2020 07:25:55 +0000 (08:25 +0100)]
messages: Close port after downloading mail.
* mumi/messages.scm (download-message): Close port when done downloading.
Ricardo Wurmus [Wed, 11 Mar 2020 21:03:45 +0000 (22:03 +0100)]
messages: Speed up recent-bugs by using mumimu.
* mumi/messages.scm (recent-bugs): Don't use the Debbugs search-est
action; collect messages from the mumimu database instead.
Ricardo Wurmus [Wed, 11 Mar 2020 21:03:03 +0000 (22:03 +0100)]
scripts: Initialize mumimu mail directory.
* scripts/mumi.in: Initialize configured mail directory.
Ricardo Wurmus [Wed, 11 Mar 2020 20:39:49 +0000 (21:39 +0100)]
guix: Simplify by using existing Guix packages.
* guix.scm (guile-email-devel, guile-debbugs-devel, mumimu): Remove
variables.
Ricardo Wurmus [Sat, 29 Feb 2020 07:47:10 +0000 (08:47 +0100)]
configure: Check for Guile 3.0 first.
Ricardo Wurmus [Sat, 29 Feb 2020 07:46:43 +0000 (08:46 +0100)]
Makefile: Distribute all assets.
Ricardo Wurmus [Sat, 29 Feb 2020 07:46:22 +0000 (08:46 +0100)]
configure: Don't ask for fibers.
Ricardo Wurmus [Sat, 29 Feb 2020 07:33:25 +0000 (08:33 +0100)]
controller: Match method symbols.
* mumi/web/controller.scm (controller): Match method symbols.
Ricardo Wurmus [Sat, 29 Feb 2020 07:32:28 +0000 (08:32 +0100)]
server: Remove unnecessary indirection.
* mumi/web/server.scm (run-controller): Remove.
(handler): Call controller directly.
(start-mumi-web-server): Remove lambda around handler.
Ricardo Wurmus [Thu, 5 Dec 2019 07:42:30 +0000 (08:42 +0100)]
guix: guile-email-devel: Update to 0.2.1-4.
641168f.
* guix.scm (guile-email-devel): Update to 0.2.1-4.
641168f.
Ricardo Wurmus [Sun, 1 Dec 2019 08:40:38 +0000 (09:40 +0100)]
Do not use fibers web server.
For some reason this no longer works and breaks XML parsing:
In mumi/messages.scm:
185:16 19 (patch-messages 37444)
In /gnu/store/71pv9hv73vn1zl1jmx7w8jwrpfn2nx0v-profile/share/guile/site/2.2/debbugs/soap.scm:
163:19 18 (soap-invoke* #<procedure %gnu args> #<procedure get-b�> �)
157:7 17 (soap-invoke _ _ . _)
In sxml/simple.scm:
143:4 16 (xml->sxml _ #:namespaces _ #:declare-namespaces? _ # _ �)
143:4 15 (loop #<input: string
7f3944511e70> () #f _)
143:4 14 (loop #<input: string
7f3944511e70> () #f _)
143:4 13 (loop #<input: string
7f3944511e70> () #f _)
143:4 12 (loop #<input: string
7f3944511e70> () #f _)
143:4 11 (loop #<input: string
7f3944511e70> () #f _)
143:4 10 (loop #<input: string
7f3944511e70> () #f _)
In sxml/upstream/SSAX.scm:
1896:21 9 (_ #<input: string
7f3944511e70> #f #<procedure 7f394e�> �)
In sxml/ssax/input-parse.scm:
103:21 8 (next-token _ (#\< #\& #\return) _ _)
In ice-9/suspendable-ports.scm:
683:15 7 (read-delimited _ _ _)
184:27 6 (fill-input #<input: string
7f3944511e70> _ _)
72:4 5 (read-bytes #<input: string
7f3944511e70> #vu8(50 89 �) �)
In unknown file:
4 (port-read #<input: string
7f3944511e70> #vu8(50 89 # �) �)
In web/response.scm:
254:22 3 (read! #vu8(50 89 84 99 119 77 50 89 120 78 87 81 53 �) �)
In ice-9/suspendable-ports.scm:
284:18 2 (get-bytevector-n! #<input-output: string
7f3944511ee0> �)
72:4 1 (read-bytes #<input-output: string
7f3944511ee0> # 663 #)
In unknown file:
0 (port-read #<input-output: string
7f3944511ee0> # 663 361)
In procedure custom_binary_input_port_read: Value out of range: 1024
Ricardo Wurmus [Sun, 1 Dec 2019 08:19:58 +0000 (09:19 +0100)]
guix: Use latest version of guile-email.
* guix.scm (guile-email-devel): Update to commit
121073cb725aef9baecaac0cfb6cf3f5a287c4e7.
Ricardo Wurmus [Thu, 19 Sep 2019 22:34:19 +0000 (00:34 +0200)]
mumi: Add /easy route to show easy bugs.
* mumi/messages.scm (easy-bugs): New procedure.
* mumi/web/controller.scm (controller): Handle /easy route.
Ricardo Wurmus [Sun, 28 Jul 2019 07:59:16 +0000 (09:59 +0200)]
guix: Update guile-email-devel.
Ricardo Wurmus [Tue, 23 Jul 2019 22:03:01 +0000 (00:03 +0200)]
guix: Update mumimu.
* guix.scm (mumimu): Update to latest commit.
Ricardo Wurmus [Tue, 23 Jul 2019 11:17:40 +0000 (13:17 +0200)]
guix: Use mumimu instead of mu.
* guix.scm (mumimu): New variable.
* configure.ac: Check for mumimu.
* mumi/config.scm.in (%config): Update placeholder for mu-executable.
Ricardo Wurmus [Sun, 21 Jul 2019 19:06:01 +0000 (21:06 +0200)]
guix: Use development version of guile-email.
* guix.scm (guile-email-devel): New variable.
(guile-debbugs-devel)[propagated-inputs]: Use it.
Ricardo Wurmus [Sun, 21 Jul 2019 11:12:37 +0000 (13:12 +0200)]
messages: patch-messages: Use download-message.
* mumi/messages.scm (patch-messages): Rewrite to use download-message.
Ricardo Wurmus [Sun, 21 Jul 2019 10:30:44 +0000 (12:30 +0200)]
scripts: Regularly index the mail directory.
* configure.ac: Detect mu.
* guix.scm: Add "mu" to the environment.
* mumi/config.scm.in (%config)[mu-executable]: Add it.
* scripts/mumi.in: Spawn "mu index" regularly.
Ricardo Wurmus [Sun, 21 Jul 2019 10:14:00 +0000 (12:14 +0200)]
scripts: Add support for "--fetch" option.
* scripts/mumi.in (%options): Recognize "fetch" option.
(%default-options): Set default for "fetch".
* mumi/config.scm.in (%config): Remove extraneous quotes from "lists"
and "packages".
Ricardo Wurmus [Sun, 21 Jul 2019 10:12:11 +0000 (12:12 +0200)]
messages: Add download-message.
* mumi/config.scm.in (%config): Add mail-dir.
* mumi/messages.scm (download-message): New procedure.
Ricardo Wurmus [Sun, 21 Jul 2019 09:14:29 +0000 (11:14 +0200)]
Remove unused module import.
* mumi/messages.scm: Do not import (debbugs rfc822).
Ricardo Wurmus [Sun, 21 Jul 2019 01:30:30 +0000 (03:30 +0200)]
guix: Update guile-debbugs.
* guix.scm (guile-debbugs-devel): New variable.
Ricardo Wurmus [Sun, 21 Jul 2019 01:29:26 +0000 (03:29 +0200)]
config: Use %gnu instance function.
* mumi/config.scm.in (%config): Use %gnu function instead of URL string.
Ricardo Wurmus [Thu, 11 Jul 2019 21:32:25 +0000 (23:32 +0200)]
Update styles.
* assets/css/bootstrap.css: Replace with Bootstrap 4.1.1.
* assets/css/screen.scm: Remove obsolete rules.
* assets/img/logo.png: Use same logo as on ci.guix.gnu.org.
* assets/js/mumi.js (loadSnippet): Replace outer HTML.
* mumi/config.scm.in (%config): Add submission-bug-email-address.
* mumi/web/view/html.scm (layout, search-form, header, index,
issue-page): Adjust CSS classes.
(index): Mention submission-bug-email-address; merge tables of
recent/priority bugs.
(issue-page): Use DL/DD/DT instead of UL for issue stats.
(list-of-bugs): Return only table rows.
(priority-bugs): Same.
(list-of-matching-bugs): Adjust by adding table and table header.
* mumi/web/controller.scm (controller): Adjust use of PRIORITY-BUGS.
Ricardo Wurmus [Wed, 15 May 2019 12:47:32 +0000 (14:47 +0200)]
view: Handle bugs without subjects gracefully.
* mumi/messages.scm (subject): Always return a string.
* mumi/web/view/html.scm (bug-subject*): New procedure.
(issue-page, list-of-bugs): Use it.
Ricardo Wurmus [Tue, 5 Feb 2019 10:21:55 +0000 (11:21 +0100)]
html: Fix URL in footer.
Ricardo Wurmus [Tue, 5 Feb 2019 10:19:30 +0000 (11:19 +0100)]
html: Add footer.
* mumi/web/view/html.scm (layout): Add footer.
* assets/css/screen.css (footer): Add new rule.
Ricardo Wurmus [Mon, 4 Feb 2019 11:22:46 +0000 (12:22 +0100)]
html: Show block info.
* mumi/web/view/html.scm (issue-page): Handle blocks and blockedby
fields.
* assets/css/screen.css: Add styles for blockedby and blocks lists.
Ricardo Wurmus [Mon, 4 Feb 2019 07:38:12 +0000 (08:38 +0100)]
html: Handle type quirk of "mergedwith" field.
* mumi/web/view/html.scm (issue-page): Deal with confusing type of
"mergedwith" field, which may be a string representing a list or a
proper number.
Ricardo Wurmus [Mon, 4 Feb 2019 00:24:25 +0000 (01:24 +0100)]
html: Show related bugs that were merged.
* mumi/web/view/html.scm (issue-page): Process "mergedwith" field.
* assets/css/screen.css: Add rules for ul.merged.
Ricardo Wurmus [Fri, 1 Feb 2019 11:45:34 +0000 (12:45 +0100)]
controller: Load expensive lists via JavaScript
* mumi/web/controller.scm (controller): Add routes for rendering
snippets.
* mumi/web/view/html.scm (list-of-bugs): Export; add severity class.
(priority-bugs): New procedure.
(index): Add sections for priority bugs.
* assets/js/mumi.js: New file.
* assets/css/screen.css: Color serious and important bugs.
Ricardo Wurmus [Fri, 1 Feb 2019 11:44:40 +0000 (12:44 +0100)]
messages: Add bugs-by-severity.
* mumi/messages.scm (bugs-by-severity): New procedure.
Ricardo Wurmus [Fri, 1 Feb 2019 11:44:05 +0000 (12:44 +0100)]
messages: Use status-with-cache.
* mumi/messages.scm (search-bugs, recent-bugs): Use status-with-cache.
Ricardo Wurmus [Fri, 1 Feb 2019 11:43:11 +0000 (12:43 +0100)]
messages: Add status-with-cache.
* mumi/messages.scm (status-with-cache): New procedure.
Ricardo Wurmus [Fri, 1 Feb 2019 09:03:40 +0000 (10:03 +0100)]
guix: Add missing module reference.
Ricardo Wurmus [Mon, 28 Jan 2019 22:55:39 +0000 (23:55 +0100)]
view: Treat image attachments as binaries.
* mumi/web/view/utils.scm (display-message-body): Handle attachments
of type "image" like any other binary attachment.
Ricardo Wurmus [Mon, 28 Jan 2019 22:54:17 +0000 (23:54 +0100)]
view: Handle bytevector mime parts.
* mumi/web/view/utils.scm (display-message-body): Handle mime entities
with a bytevector part.
Ricardo Wurmus [Mon, 28 Jan 2019 12:18:24 +0000 (13:18 +0100)]
guix: Remove custom versions of packages.
* guix.scm (guile-debbugs-next, guile-email): Remove.
Ricardo Wurmus [Mon, 28 Jan 2019 12:17:56 +0000 (13:17 +0100)]
guix: Use GUILE-2.2 variable.
* guix.scm (mumi)[propagated-inputs]: Replace guile-2.2.4 with guile-2.2.
Ricardo Wurmus [Mon, 28 Jan 2019 12:16:38 +0000 (13:16 +0100)]
Use the Guix logo instead of GuixSD.
* assets/css/screen.css (.logo): New rules.
* assets/img/logo.png: Replace file.
* mumi/web/view/html.scm (header): Remove IMG tag.
Arun Isaac [Sun, 27 Jan 2019 10:55:29 +0000 (16:25 +0530)]
Present download links for single part messages.
* mumi/web/view/utils.scm (display-message-body): Pass single part
messages through the same display-mime-entity function so that
download links are presented for them too.
Arun Isaac [Sun, 27 Jan 2019 10:49:11 +0000 (16:19 +0530)]
Support download of single part messages.
* mumi/messages.scm (extract-attachment): Return <email> record for
single part messages.
* mumi/web/download.scm (handle-download): Handle <email> record type.
Arun Isaac [Sun, 27 Jan 2019 10:45:22 +0000 (16:15 +0530)]
Do not attempt to decode the message body.
guile-email handles decoding of the message body.
* mumi/web/download.scm (handle-download): Do not attempt to decode
the message body.
Arun Isaac [Sun, 27 Jan 2019 10:38:15 +0000 (16:08 +0530)]
Display subject only when message actually has a subject.
* mumi/web/view/html.scm (issue-page): Check if message actually has a
subject field before attempting to display it.
Ricardo Wurmus [Sun, 11 Nov 2018 19:43:56 +0000 (20:43 +0100)]
mumi: extract-attachment: Extract the mime-entity body.
* mumi/messages.scm (extract-attachment): Extract the mime-entity-body
instead of expecting a tagged list.
Ricardo Wurmus [Sun, 11 Nov 2018 19:43:04 +0000 (20:43 +0100)]
Handle nested mime entries recursively.
* mumi/web/view/utils.scm (display-message-body): Apply
display-mime-entity recursively.
Ricardo Wurmus [Sat, 10 Nov 2018 11:21:16 +0000 (12:21 +0100)]
Declare Guile JSON as a dependency.
Ricardo Wurmus [Sat, 10 Nov 2018 09:52:49 +0000 (10:52 +0100)]
Use Guile Fibers web server.
* mumi/web/server.scm (handler): Simplify.
(start-mumi-web-server): Use fiberized server.
* guix.scm: Add guile-fibers to inputs.
* configure.ac: Check for availability of fibers.
Ricardo Wurmus [Fri, 9 Nov 2018 21:41:03 +0000 (22:41 +0100)]
view: Be more defensive when working with message subject.
* mumi/web/view/html.scm (issue-page): Ensure that the message subject
is always a string before comparing it.
Ricardo Wurmus [Fri, 9 Nov 2018 21:35:47 +0000 (22:35 +0100)]
Remove dependency on mailutils.
* configure.ac: Remove check for mailutils.
* guix.scm (mailutils-next): Remove variable.
* mumi/message.scm (qp-decoder): Remove procedure.
Ricardo Wurmus [Fri, 9 Nov 2018 21:33:19 +0000 (22:33 +0100)]
mumi: Use (email quoted-printable).
* mumi/web/download.scm (handle-download): Use quoted-printable-decode
from guile-email to decode body.
Ricardo Wurmus [Fri, 9 Nov 2018 21:32:32 +0000 (22:32 +0100)]
mumi: Try harder to extract a display name.
* mumi/messages.scm (extract-name): Try to extract a name from the
email address.
Ricardo Wurmus [Fri, 9 Nov 2018 21:23:16 +0000 (22:23 +0100)]
mumi: Remove "decode" procedure.
* mumi/messages.scm (decode): Remove procedure.
Ricardo Wurmus [Fri, 9 Nov 2018 21:19:38 +0000 (22:19 +0100)]
mumi: Remove parser procedures.
* mumi/messages.scm (split-multipart-message, read-token, read-until,
read-between, read-key-value-pair, throw-away, parse-multipart-header,
multipart-header?): Remove procedures.
Ricardo Wurmus [Fri, 9 Nov 2018 21:16:41 +0000 (22:16 +0100)]
guix: Update to latest version of guile-debbugs.
Ricardo Wurmus [Fri, 9 Nov 2018 21:16:12 +0000 (22:16 +0100)]
guix: Add missing inputs to mailutils-next.
Ricardo Wurmus [Fri, 9 Nov 2018 21:14:54 +0000 (22:14 +0100)]
mumi: handle-download: Operate on mime-entity.
* mumi/web/download.scm (handle-download): Match on mime-entity
as returned by guile-email instead of custom data structure.
Ricardo Wurmus [Fri, 9 Nov 2018 21:12:36 +0000 (22:12 +0100)]
mumi: extract-attachment: Use the email-body directly.
* mumi/messages.scm (extract-attachment): Remove call to
split-multipart-message and use the email body directly.
Arun Isaac [Mon, 1 Oct 2018 20:27:24 +0000 (01:57 +0530)]
Add guile-email dependency.
* configure.ac: Check for guile-email.
* guix.scm (guile-email): New variable.
(mumi)[inputs]: Add guile-email.
Arun Isaac [Mon, 1 Oct 2018 20:19:49 +0000 (01:49 +0530)]
Use guile-email.
* mumi/messages.scm (extract-name, extract-email, header, sender,
sender-email, date, subject, message-id, participants, recipients,
closing?, multipart-message?): Modify to use guile-email API.
* mumi/web/view/html.scm (issue-page): Likewise.
* mumi/web/view/utils.scm (content-type->css-class,
display-message-body): Likewise.
Arun Isaac [Tue, 25 Sep 2018 06:55:08 +0000 (12:25 +0530)]
Simplify definition of nth.
* mumi/messages.scm (extract-attachment): Simplify definition of nth
by using list-ref instead of drop and first.
Arun Isaac [Tue, 25 Sep 2018 06:25:46 +0000 (11:55 +0530)]
Use iota generated message numbers instead of debbugs' msg-num.
* 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.
Arun Isaac [Wed, 5 Sep 2018 10:51:23 +0000 (16:21 +0530)]
Support live hacking.
* scripts/mumi.in: Spawn REPL server to support live hacking, if
--listen-repl is provided on the command line.
Ricardo Wurmus [Tue, 9 Oct 2018 14:06:57 +0000 (16:06 +0200)]
guix: Update to latest guile-debbugs-next.
Ricardo Wurmus [Thu, 20 Sep 2018 17:21:11 +0000 (19:21 +0200)]
view: Fix submitter example.
Reported-by: Pierre Neidhardt <mail@ambrevar.xyz>.
Ricardo Wurmus [Thu, 20 Sep 2018 13:46:49 +0000 (15:46 +0200)]
view: Show changed message subjects.
Suggested-by: Ludovic Courtès <ludo@gnu.org>
Ricardo Wurmus [Fri, 7 Sep 2018 11:01:52 +0000 (13:01 +0200)]
view: Allow downloading any message part.
Ricardo Wurmus [Fri, 7 Sep 2018 09:53:29 +0000 (11:53 +0200)]
recent-bugs: Include recently submitted bugs.
Ricardo Wurmus [Tue, 4 Sep 2018 08:03:29 +0000 (10:03 +0200)]
prettify: Pass down a bit of context to avoid false matches.
Ricardo Wurmus [Tue, 4 Sep 2018 00:50:11 +0000 (02:50 +0200)]
css: Use monospace font for Scheme code.
Ricardo Wurmus [Tue, 4 Sep 2018 00:47:26 +0000 (02:47 +0200)]
Add syntax highlighting for Scheme files.
Ricardo Wurmus [Tue, 4 Sep 2018 00:07:43 +0000 (02:07 +0200)]
Add missing module.
Ricardo Wurmus [Tue, 4 Sep 2018 00:02:45 +0000 (02:02 +0200)]
Support downloading of attachments.
* assets/css/screen.css (.attachment:before): Add rule.
* assets/img/file.svg: New file.
* mumi/web/controller.scm (controller): Handle attachment route.
* mumi/web/download.scm: New file.
* mumi/web/view/utils.scm (display-multipart-chunk): Move into...
(display-message-body): ...this procedure; adjust to include
attachment download links.
* mumi/web/view/html.scm (issue-page): Adjust.
Ricardo Wurmus [Tue, 4 Sep 2018 00:01:33 +0000 (02:01 +0200)]
Support SVG MIME type.
* mumi/web/render.scm (file-mime-types): Add type for SVG.
Ricardo Wurmus [Tue, 4 Sep 2018 00:00:56 +0000 (02:00 +0200)]
Add extract-attachment procedure.
* mumi/messages.scm (extract-attachment): New procedure.
Ricardo Wurmus [Mon, 3 Sep 2018 14:04:29 +0000 (16:04 +0200)]
recent-bugs: Simplify.
Ricardo Wurmus [Mon, 3 Sep 2018 14:01:57 +0000 (16:01 +0200)]
recent-bugs: Avoid out of bounds error.