Commit graph

72 commits

Author SHA1 Message Date
Griffin Smith
d4c9a8afda fix(panettone): Add missing util.lisp to build
Change-Id: Id2fdd84145712d75f23844ad1ececa835cec6a84
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1487
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-07-28 00:37:32 +00:00
Griffin Smith
14c4ed99e1 feat(panettone): Use postgres as the storage backend
Switch from cl-prevalence to postgres (via postmodern) as the storage
backend for panettone. The first time the application starts up after
this commit, it will (idempotently) initialize the db schema and migrate
over all data from the prevalence snapshot to the database - the plan is
then to get rid of the prevalence classes and dependency once that's
deployed.

Change-Id: I4f35707efead67d8854f1c224ef67f8471620453
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1467
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: eta <eta@theta.eu.org>
2020-07-28 00:32:48 +00:00
Griffin Smith
696924b5ef feat(web/panettone): Add dev helpers for postgres db
Add a docker-compose file and lorri-based direnv for aiding in
running and connecting to a postgres database during development of
panettone.

Change-Id: I319eee52b52cd48e1f3d2e32c558989768dc19d8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1465
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: eta <eta@theta.eu.org>
2020-07-26 21:55:41 +00:00
Griffin Smith
273053dbf3 fix(web/panettone): Don't log backtraces
The default hunchentoot behavior is to log all local variables when
logging lisp backtraces - this is nice for debugging, but means that if
we hit an error when checking for auth with the ldap server we log the
password provided by the user. No good! Let's just turn off logging of
backtraces for now.

Change-Id: Ibc4242e3e0f974ac53fffc482d3724b0547425ab
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1471
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-07-26 21:44:49 +00:00
Griffin Smith
6cbaf5dac0 chore(web/panettone): ignore .fasl files
Sly spits these out as a result of the various compile commands, but we
don't want them committed.

Change-Id: I6f45b6de6dc978667a0575d0ed361c573045ef92
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1464
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Tested-by: BuildkiteCI
2020-07-26 20:12:37 +00:00
Griffin Smith
850f6fc27b feat(web/panettone): Make responsive
Make the site responsive, by making all the hard :widths we were using
into :max-widths, and adding a viewport meta tag.

Change-Id: I02f054f81ff57fbd1c4603b179b2104367f03e3b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1415
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2020-07-25 02:38:43 +00:00
Griffin Smith
ece66d081b fix(web/panettone): Fix html5 compliance
- who:html-mode needs to be html5 rather than HTML5 apparently, even
  though the documentation says otherwise
- wrap content in an :html tag with the :lang "en" attribute

Fixes: #22
Change-Id: I58ff8947d17ac02659e4c8d98155f57127ec7005
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1421
Tested-by: BuildkiteCI
Reviewed-by: isomer <isomer@tvl.fyi>
2020-07-24 23:39:38 +00:00
Griffin Smith
e191e0afad feat(web/panettone): Make issues visible publicly
Make auth optional on the index, closed-issues, and view-issue pages,
and only render the various buttons (close issue, new issue, make
comment, etc.) if the user is authenticated.

Fixes: #5
Change-Id: I0a2aaf4a7cc4c5ef0494cc183410f00d2a3b7e06
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1414
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2020-07-24 16:41:44 +00:00
Griffin Smith
3e033637b4 feat(web/panettone): Add a Log Out link to the footer
Generalize the rendering of the footer nav, and add a Log Out button to
the right.

Change-Id: I107e2370fd8f12949218ecacb611649a48abd738
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1413
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2020-07-24 16:41:44 +00:00
Griffin Smith
156c68698b feat(web/panettone): Add "All Issues" link on issue page
This was something that was complained about verbally - if someone gets
a link to an issue directly it's nice to be able to click on a link to
view all issues.

Change-Id: Id4e0c7208edc51980c6577bb10e6c6dea1e7ab55
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1412
Tested-by: BuildkiteCI
Reviewed-by: kanepyork <rikingcoding@gmail.com>
2020-07-24 15:50:40 +00:00
Griffin Smith
ed8fed5baa feat(web/panettone): Redirect to original URI after login
Once the user authenticates, redirect them to the original URI they were
trying to get to

Fixes: #7
Change-Id: Id7c8cbe3547923f6c4c5faed180ea8ea6528fddd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1411
Tested-by: BuildkiteCI
Reviewed-by: kanepyork <rikingcoding@gmail.com>
2020-07-24 15:50:40 +00:00
Griffin Smith
fba4d145f8 feat(web/panettone): Add issue subject to page title
Fixes: #8
Change-Id: I5513018e6d4908881a3522a24764729f2638b521
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1408
Tested-by: BuildkiteCI
Reviewed-by: kanepyork <rikingcoding@gmail.com>
2020-07-24 01:01:43 +00:00
Griffin Smith
add588e634 feat(web/panettone): Disallow comments with an empty body
Change-Id: Ic77a0caf419389e8460bf7e5688293f3a588caa4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1405
Tested-by: BuildkiteCI
Reviewed-by: kanepyork <rikingcoding@gmail.com>
2020-07-24 01:01:43 +00:00
Griffin Smith
943a4c9214 feat(web/panettone): Disallow issues with an empty subject
Disallow creating issues with an empty subject, and render a nice(ish)
alert box indicating the error.

Change-Id: I2857923dc0eb7702c85cd1974a73270ca27720fc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1404
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Tested-by: BuildkiteCI
2020-07-24 01:01:43 +00:00
Griffin Smith
6bdd191cbf fix(web/panettone): Fix failure on invalid username
Handle if the username submitted to the login form is one of a
nonexistent user, rather than returning a 500

Fixes: #1
Change-Id: Iebc68dea3c91dc928e4386cb172d3c1515fb1556
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1402
Tested-by: BuildkiteCI
Reviewed-by: kanepyork <rikingcoding@gmail.com>
2020-07-23 22:53:18 +00:00
Griffin Smith
d8a0bd9e75 fix(web/panettone): Put snapshot in the right place
For some reason cl-prevalence tries to put the snapshot in the *parent
directory* of the directory that's passed to make-prevalence-system.
This is icky, but this should work around it

Fixes: #2
Fixes: #3
Fixes: #4
Change-Id: I8300246275887653586108cd7b3b033df3bca203
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1401
Tested-by: BuildkiteCI
Reviewed-by: isomer <isomer@tvl.fyi>
2020-07-23 22:30:44 +00:00
Griffin Smith
bd3c19320a feat(web/panettone): Add issue statuses
Add support for issue statuses, which is currently a trivial groupoid of
open and closed. On the show page for open issues there's a Close
button, and on the show page for closed issues there's a Reopen button.
In addition, the index page is filtered by open issues only and there's
a link to view closed issues.

Change-Id: I6c0c3d2e874b1c801e9e06c804f5c1b12db5dbdc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1352
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-23 22:20:00 +00:00
Griffin Smith
a107d8e335 feat(web/panettone): Add support for comments
Add a new-comment form and list all issue comments on the issue page

Change-Id: Ia74083484614ba0ca0f2879276f717f709d0f42f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1351
Tested-by: BuildkiteCI
Reviewed-by: eta <eta@theta.eu.org>
2020-07-23 22:20:00 +00:00
Griffin Smith
d445136140 feat(web/panettone): Add initial styles
Take an initial crack at styling most of the Panettone application,
taking inspiration from the styles from todo.tvl.fyi and tvl.fyi itself.
This uses the LASS CSS library, after a brief attempt at using css-lite
which I ended up not going with because I don't like the library's
design very much, and also it's not compatible with sbcl's (safety
3) (some macroexpansions SETQ undeclared variables).

Change-Id: I054402e4c68ae1e99884d5164e6e2fc39d2779ff
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1350
Tested-by: BuildkiteCI
Reviewed-by: eta <eta@theta.eu.org>
2020-07-23 22:20:00 +00:00
Griffin Smith
d3b7de0783 feat(web/panettone): Display who opened issues and when
Add a line to the issue show page displaying who opened the issue and
when, the latter formatted in dottime.

Change-Id: Ie70d7fd9e62ae92f9a479969d4ea21daddccee40
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1345
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-07-23 22:20:00 +00:00
Griffin Smith
974c2e05af feat(web/panettone): Read config from env
Read the port and data directory from environment variables, in
preparation for deploying as a systemd unit to Whitby

Change-Id: I066dced7b7926b6bdc77132d13a4da6c886b20e8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1338
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2020-07-23 22:09:15 +00:00
Griffin Smith
fa01f515e2 feat(web/panettone): The start of a very simple issue tracker
Initial commit for Panettone, a very simple issue tracker for TVL. In
its current state this launches a web server with authenticates with our
ldap server, and supports listing and creating issues via static html
pages and simple forms.

We've been needing an issue tracker for a while now, but none of the
options out there seem very good - or there are some good ones, but
they're AGPL licensed and we don't want to deal with them. Rather than
muck around with Trac or Bugzilla, we've decided to write our own.

Change-Id: I704f0996d15199329bbd5450f3d959046bf13973
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1337
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2020-07-23 19:47:38 +00:00