Commit graph

25 commits

Author SHA1 Message Date
Vincent Ambo
69583b1236 refactor(templates): Move thread page template to Askama 2018-05-22 20:44:49 +02:00
Vincent Ambo
f5badb97d3 refactor(templates): Use Askama for index template 2018-05-22 20:44:49 +02:00
Vincent Ambo
40fb4ebbb9 refactor(handlers/render): Use users from database for all functions
Converse now sets the user ID as the session identity parameter in
actix_web's identity middleware after a successful login and uses the
ID to determine identity when creating threads & posts and when
validating edit permissions.
2018-05-02 00:33:46 +02:00
Vincent Ambo
9b1f6d3628 refactor(db/render/schema): Use SimplePost type for thread views
This uses the simplified view for querying posts instead of the post
table directly to display posts.
2018-05-02 00:33:46 +02:00
Vincent Ambo
93d6c7bbd1 chore(license): Relicense under AGPL-3.0-or-later
Relicense the project from the standard GPL3 to the Affero version of
the license, requiring source code disclosure for modifications made
on instances of Converse that are serving users over the network.
2018-04-17 14:47:36 +02:00
TatriX
ee855d8b67 feat(templates): Add 'Last post by' to the list of threads 2018-04-16 16:26:24 +02:00
Vincent Ambo
1462810963 fix(render): Enable GFM's tagfilter extension 2018-04-16 03:15:50 +02:00
Vincent Ambo
705097dab9 feat(handlers/render): Display edit form for user's own posts
Displays an edit form for posts that are owned by a user (which is
currently defined as "email addresses match").
2018-04-15 23:09:44 +02:00
Vincent Ambo
ce18cfa2d6 refactor: Add a message!-macro to reduce message boilerplate 2018-04-15 21:31:14 +02:00
Vincent Ambo
d9d1a3313f refactor(render): Pass serializable structs to Tera directly
No need to go the intermediate step via `Context::new()`
2018-04-15 21:18:27 +02:00
Vincent Ambo
ec712cc4c0 refactor(templates/render): Add generic post editing template
Adds a generic template that can be used for submitting, responding to
and editing posts.
2018-04-15 21:13:20 +02:00
Vincent Ambo
9cee48f2da feat(handlers): Determine whether current user can edit a post 2018-04-15 12:38:12 +02:00
Vincent Ambo
e0b1bc2627 fix(render): Escape post bodies
... derp.

Well, the CSP prevented script executions already.
2018-04-14 22:33:35 +02:00
Vincent Ambo
4132869277 feat: Implement search result view & enable search
Implements a very simple and currently kinda broken-looking search
result view.
2018-04-14 22:21:55 +02:00
Vincent Ambo
c6995fcab3 feat(templates): Highlight stickied threads in index 2018-04-14 17:55:57 +02:00
Vincent Ambo
d1c45159b9 feat(db): Add support for stickies in database
Adds a 'sticky' column to threads and rewrites the thread index to
take sticky markings into account when ordering threads.

Stickies are not yet highlighted in any way in the forum overview.
2018-04-14 17:47:31 +02:00
Vincent Ambo
f10bd20276 feat(db): Add view for ordering thread index by most recent post
This implements the classic thread ordering expected by most forum
users (i.e. the thread with the most recent post is at the top).
2018-04-14 17:15:27 +02:00
Vincent Ambo
a326e1ea2e feat: License project under GPLv3 2018-04-14 16:40:56 +02:00
Vincent Ambo
8c30ef92f6 refactor(db): Store thread body in the posts table
This is a simplification over the previous approach. The OP of a
thread is just a normal post like any other in this model, which
allows some code simplifications (and future query convenience).
2018-04-14 16:33:45 +02:00
Vincent Ambo
e7a54a5aff feat(handler): Perform basic input validation on new thread view 2018-04-12 01:07:25 +02:00
Vincent Ambo
b781a1fe57 chore: Clean up unused imports 2018-04-11 16:35:26 +02:00
Vincent Ambo
138f4f608d feat(render): Use a more human-readable format for dates 2018-04-11 16:16:37 +02:00
Vincent Ambo
2bbcc8432e fix(render): Escape thread titles in index 2018-04-11 13:52:37 +02:00
Vincent Ambo
87237f5c28 feat(render): Implement Markdown thread rendering & Gravatar
Implements a new thread rendering pipeline which all posts and the
main thread body are first converted to a `RenderablePost` structure.

During the conversion to this structure, the post body is rendered as
Markdown and the author's email address is converted into the format
required by Gravatar.
2018-04-11 13:25:12 +02:00
Vincent Ambo
fe7e5e48b5 feat(render): Add rendering actor
Adds a separate actor that handles page rendering, templating engine
state and other related topics.
2018-04-11 12:17:33 +02:00