Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2018-04-15 | refactor(templates/render): Add generic post editing template | Vincent Ambo | 6 | -72/+156 | |
Adds a generic template that can be used for submitting, responding to and editing posts. | |||||
2018-04-15 | refactor(main): Split enormous main() into smaller methods | Vincent Ambo | 1 | -38/+58 | |
A little bit of logical grouping of things has never hurt anyone. | |||||
2018-04-15 | fix(handlers): Trim leading/trailing whitespace from new threads | Vincent Ambo | 1 | -6/+12 | |
2018-04-15 | refactor(templates): Restyle thread view using flex layout | Vincent Ambo | 1 | -48/+35 | |
2018-04-15 | feat(handlers): Determine whether current user can edit a post | Vincent Ambo | 3 | -3/+19 | |
2018-04-15 | style(templates): Minor fixes to search & index layouts | Vincent Ambo | 2 | -6/+5 | |
2018-04-14 | refactor(handlers): Receive search terms via query parameters | Vincent Ambo | 4 | -6/+6 | |
There are several reasons for this, but one important one is that people expect to be able to share search links. | |||||
2018-04-14 | fix(render): Escape post bodies | Vincent Ambo | 1 | -1/+2 | |
... derp. Well, the CSP prevented script executions already. | |||||
2018-04-14 | feat(templates): Add 'sticky' badge to sticky threads | Vincent Ambo | 1 | -1/+1 | |
2018-04-14 | fix(migrations): Change weighting of title vs. body | Vincent Ambo | 1 | -2/+2 | |
After thinking for a little while I actually think the body of a post may be more relevant when searching for posts than the thread title. Right now this is just a hunch and we'll have to find out how it actually ends up working in real life. | |||||
2018-04-14 | feat: Implement search result view & enable search | Vincent Ambo | 6 | -4/+90 | |
Implements a very simple and currently kinda broken-looking search result view. | |||||
2018-04-14 | chore(db): Arbitrarily limit search result size | Vincent Ambo | 1 | -0/+1 | |
... until pagination is in place. | |||||
2018-04-14 | feat(main/db): Schedule regular search view refresh | Vincent Ambo | 5 | -0/+54 | |
Schedules refreshes of the database view used for search at one-minute intervals. | |||||
2018-04-14 | refactor(schema): Unify integer type usage across tables | Vincent Ambo | 1 | -2/+2 | |
2018-04-14 | refactor(handlers): Improve error handling in post creation | Vincent Ambo | 1 | -2/+2 | |
2018-04-14 | feat(db): Implement handling of 'SearchPosts' message | Vincent Ambo | 2 | -1/+61 | |
Adds support for executing full-text search across a forum instance by sending the `SearchPosts` message with a search query to the DB actor. The struct used for results is mapped manually to the expected query result as the query is embedded via raw SQL. | |||||
2018-04-14 | feat(migrations): Add materialized view & index for full text search | Vincent Ambo | 2 | -0/+23 | |
Adds a materialized view to be used for full-text searches that indexes the tsvector documents for each post. | |||||
2018-04-14 | fix(templates): Fluidly scale all images | Vincent Ambo | 1 | -0/+2 | |
2018-04-14 | fix(templates): Set CSPs on templates | Vincent Ambo | 3 | -0/+3 | |
2018-04-14 | docs(todo): Stickies are done! | Vincent Ambo | 1 | -1/+1 | |
2018-04-14 | feat(templates): Highlight stickied threads in index | Vincent Ambo | 2 | -2/+4 | |
2018-04-14 | feat(db): Add support for stickies in database | Vincent Ambo | 7 | -21/+36 | |
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 | docs(todo): Add note about stickies | Vincent Ambo | 1 | -1/+2 | |
2018-04-14 | feat(db): Add view for ordering thread index by most recent post | Vincent Ambo | 6 | -7/+45 | |
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 | feat(build): Configure Travis builds for Rust | Vincent Ambo | 1 | -0/+1 | |
2018-04-14 | feat: License project under GPLv3 | Vincent Ambo | 8 | -0/+786 | |
2018-04-14 | docs(CODE_OF_CONDUCT): Add a reasonable code of conduct | Vincent Ambo | 1 | -0/+29 | |
2018-04-14 | docs(README): Add a very simple README file | Vincent Ambo | 2 | -1/+18 | |
2018-04-14 | refactor(db): Store thread body in the posts table | Vincent Ambo | 5 | -23/+36 | |
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 | feat(migrations): Drop 'body' column from threads | Vincent Ambo | 2 | -0/+7 | |
As a data model simplification, the text of a thread's top post should simply also go into the posts table. | |||||
2018-04-12 | feat(handlers/main): Add 'anonymous' mode for forum | Vincent Ambo | 2 | -9/+27 | |
Adds a `REQUIRE_LOGIN` environment variable which, if set to anything other than true, will let users post anonymously on the forums. | |||||
2018-04-12 | feat(handler): Perform basic input validation on new thread view | Vincent Ambo | 4 | -11/+39 | |
2018-04-12 | chore(cargo): Remove unused dependency | Vincent Ambo | 2 | -15/+0 | |
2018-04-12 | fix(handlers): Fix chained error handling in actors | Vincent Ambo | 1 | -14/+15 | |
This took me some time to figure out so it's useful to document in the commit message. When chaining messages from actors, the result type of a message (i.e. the actual `<M as Message>::Result`) is sometimes itself a `Result<T, E>`. In many cases this leads to a situation where the return type of a message sending process is something like (simplified): Future<Item=Result<Foo, ConverseError>, Error=actix::MailboxError> Due to the implementation of `From<actix::MailboxError> for ConverseError` it is possible to use `.from_err()` on these futures to convert the future's `Error` to `ConverseError`. The type `Result` apparently implements `IntoFuture`, which means that due to some trait magic that's been applied somewhere in the futures API a call to `flatten()` can "lift" the contained error if the error types match and give us a "simple" Future<Item=Foo, Error=ConverseError> From that point on chaining becomes easy. | |||||
2018-04-11 | chore(handlers): Remove unused code | Vincent Ambo | 1 | -8/+0 | |
2018-04-11 | chore(cargo): Use stable release of actix-web | Vincent Ambo | 2 | -20/+20 | |
The git version previously tracked by Converse has been released. | |||||
2018-04-11 | fix(templates/handlers): Fix post anchors | Vincent Ambo | 2 | -3/+5 | |
- ensure users are correctly linked to a post actor after replying - ensure timestamps are clickable to get post IDs | |||||
2018-04-11 | chore: Clean up unused imports | Vincent Ambo | 2 | -3/+1 | |
2018-04-11 | feat(render): Use a more human-readable format for dates | Vincent Ambo | 1 | -5/+15 | |
2018-04-11 | fix(render): Escape thread titles in index | Vincent Ambo | 1 | -1/+19 | |
2018-04-11 | feat(render): Implement Markdown thread rendering & Gravatar | Vincent Ambo | 3 | -35/+85 | |
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 | chore(cargo): Add md5 crate dependency | Vincent Ambo | 3 | -0/+10 | |
Required for Gravatar. | |||||
2018-04-11 | fix(main): Correctly set up rendering actor | Vincent Ambo | 1 | -3/+7 | |
2018-04-11 | refactor(handlers): Use rendering actor for page renders | Vincent Ambo | 2 | -46/+31 | |
This currently breaks error handling in page render flows. To fix it properly, the database actor should return failable futures instead of `Result<T>` wrapped in a future. | |||||
2018-04-11 | feat(render): Add rendering actor | Vincent Ambo | 2 | -1/+72 | |
Adds a separate actor that handles page rendering, templating engine state and other related topics. | |||||
2018-04-10 | fix(main): Update cookie session setup for new actix-web | Vincent Ambo | 1 | -4/+3 | |
2018-04-10 | chore(cargo): Dependency bump & pin versions | Vincent Ambo | 2 | -8/+105 | |
2018-04-09 | fix(templates): Fix author name & avatar display | Vincent Ambo | 1 | -4/+12 | |
2018-04-09 | fix(db): Order index threads in descending post time | Vincent Ambo | 1 | -1/+3 | |
Technically the last post date should matter more here, but we'll get there. | |||||
2018-04-09 | feat(handlers/templates): Add "New Thread" handler and template | Vincent Ambo | 3 | -1/+62 | |