Vincent Ambo
831f5c5abd
docs: Add contribution guidelines document
...
This document is intended to provide some information about how to
contribute to the project, from basic sanity checks and code quality
to information about how to structure git commits.
These are the most common things that I encounter in pull requests
sent to my projects.
2018-05-15 11:09:47 +02:00
Vincent Ambo
06f21643dd
docs(build): Document manual changes to Carnix expression
2018-05-02 00:33:46 +02:00
Vincent Ambo
c07b1be3be
fix(build): Apply a workaround for building Comrak in Nix
...
Carnix can not be configured to not build a dependency's
binaries (even if relevant features are disabled), but Comrak's binary
can by default not be built in Carnix because it attempts to read a
Cargo-provided environment variable at compile time.
This works around the issue by "faking" the environment variable,
which is less than ideal but works.
2018-05-02 00:33:46 +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
6d69f5001e
refactor(main): Use actix-web's identity middleware for auth
2018-05-02 00:33:46 +02:00
Vincent Ambo
095293e8e3
feat(db): Add LookupOrCreateUser message
...
Adds a message to look up a user in the database based on their email
address. If the user does not exist, it is created.
2018-05-02 00:33:46 +02:00
Vincent Ambo
1e57b879fb
chore(cargo): Update dependency minor versions
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
9d5830e9a7
feat(migrations): Add a view for simplified post querying
...
Adds a view to avoid having to query and join the users & posts table
inside of the application (which isn't particularly convenient in Diesel).
2018-05-02 00:33:46 +02:00
Vincent Ambo
7a17d532c4
fix(schema): Update for author->user_id column rename
2018-05-02 00:33:46 +02:00
Vincent Ambo
a45da31abc
refactor(migrations): Rename 'author' column to 'user_id'
...
This makes it easier to integrate with Diesel, for which this is the
expected column name.
2018-05-02 00:33:46 +02:00
Vincent Ambo
a324a89fd0
chore(schema): Update generated Diesel schema
...
Updates the generated schema with the new users table.
This commit will break the build.
2018-05-02 00:33:46 +02:00
Vincent Ambo
1d9ff8b4c8
fix(migrations): Explicitly insert anonymous user
...
This guarantees that the anonymous user will always exist and have
ID=1.
2018-05-02 00:33:46 +02:00
Vincent Ambo
02c15f06d6
fix(migrations): Fix search index creation in user migration
2018-05-02 00:33:46 +02:00
Vincent Ambo
2159c76ca7
feat(migrations): Adds a migration to create a users table
...
As a first step of getting the concept of users into the database,
this creates a (somewhat involved) migration that moves all existing
"users" into a new users table and updates the post table to reference
it.
This migration is not yet finalised and still needs to be updated with
something to handle the concept of anonymous users (which I want to
keep around).
2018-05-02 00:33:46 +02:00
Vincent Ambo
0d23a04daf
chore(gitattributes): Tell Github Linguist to ignore default.nix
...
The `default.nix` in this repository contains generated code and skews
Github's language statistics. While I'm a big fan of Nix, Converse is
certainly not 80% written in Nix ;-)
2018-04-24 16:04:12 +02:00
Vincent Ambo
9adacf8696
fix(build): Add explicit pulldown-cmark dependency
...
There is some weird dependency interaction between pulldown-cmark and
getopts which causes builds to fail with a message about unstable
features if getopts is not explicitly depended on as a dependency of a
dependency (yeah, huh?)
2018-04-23 22:09:37 +02:00
Vincent Ambo
0f6f5aeb4c
refactor(build): Use Carnix-based expression for building
...
This is probably going to break Github's language statistics ...
2018-04-23 22:09:37 +02:00
Vincent Ambo
9dc1143b14
chore(cargo): Bump dependency minor versions
2018-04-23 22:09:37 +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
Vincent Ambo
1427220f9d
style(thread): Fix padding on thread view
...
Removing this padding lets the author column render evenly sized.
2018-04-16 20:17:15 +02:00
Vincent Ambo
37331d9107
fix(thread): Load Gravatar images at larger size
...
This makes them look nicer in 2x situations (e.g. retina displays) and
when a user zooms in.
2018-04-16 16:48:42 +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
09a97d46ea
docs(envrc): Add .envrc example file
2018-04-16 14:24:42 +02:00
Vincent Ambo
8d32200999
style(db): Fix whitespace error
2018-04-16 14:17:02 +02:00
Vincent Ambo
c5cf911a07
fix(db): Explicitly order posts in a thread
2018-04-16 14:14:26 +02:00
Vincent Ambo
9bc5bbff54
fix(templates): Fix alignment of columns in thread view
...
The author column is maybe slightly too large now, but that can be
sorted out later.
2018-04-16 13:33:47 +02:00
Vincent Ambo
9c2359c8c9
fix(templates): Fix double-escaping of thread titles
2018-04-16 11:03:15 +02:00
Vincent Ambo
1462810963
fix(render): Enable GFM's tagfilter extension
2018-04-16 03:15:50 +02:00
Vincent Ambo
a5f2677785
fix(templates): Add some pleasing spacing to thread layout
2018-04-16 02:56:55 +02:00
Vincent Ambo
1b662c8674
chore(oidc): Enable debug log statement for token responses
2018-04-16 02:16:34 +02:00
Vincent Ambo
985ca0a3e5
fix(build): Add PostgreSQL library to Nix dependencies
2018-04-16 01:06:20 +02:00
Vincent Ambo
72f6fa65fd
fix(templates): Mark pre-escaped variables as 'safe'
2018-04-16 00:25:29 +02:00
Vincent Ambo
fc0b9d7fa5
refactor(main): Include Tera templates into application binary
...
Instead of loading the templates at launch time (which requires the
template folder to be present), include the template strings into the
binary.
This also re-enables auto-escaping in Tera.
2018-04-16 00:24:55 +02:00
Vincent Ambo
71c55b8bb8
feat(build): Add Nix build configuration
...
Adds a Nix build configuration baesd on the default rustPlatform
configuration.
The configuration pins a specific nixpkgs commit (which at the time
was a commit tracking nixpkgs-unstable).
2018-04-16 00:24:13 +02:00
Vincent Ambo
6fd7ee05f2
docs(todo): Update todo-list
2018-04-15 23:31:36 +02:00
Vincent Ambo
56d57edfd0
feat(handlers): Implement post editing handler
...
Implements a handler that receives the edit form result and updates
the database accordingly if the user identity matches.
2018-04-15 23:30:22 +02:00
Vincent Ambo
e130e15b79
feat(db): Support UpdatePost message
...
Simple message intended to be used for post editing.
2018-04-15 23:23:13 +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
7a55786552
fix(templates/post): Correctly insert post body
2018-04-15 23:09:33 +02:00
Vincent Ambo
f4ca632c00
feat(db): Support GetPost message
...
Very simple message that retrieves a post from the DB.
2018-04-15 23:09:00 +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
4c0e6552e8
refactor(main): Split enormous main() into smaller methods
...
A little bit of logical grouping of things has never hurt anyone.
2018-04-15 13:16:49 +02:00
Vincent Ambo
aeaa497a62
fix(handlers): Trim leading/trailing whitespace from new threads
2018-04-15 13:01:06 +02:00
Vincent Ambo
ee4b690d22
refactor(templates): Restyle thread view using flex layout
2018-04-15 12:38:33 +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
02a466a28b
style(templates): Minor fixes to search & index layouts
2018-04-15 00:41:17 +02:00
Vincent Ambo
ba33efd772
refactor(handlers): Receive search terms via query parameters
...
There are several reasons for this, but one important one is that
people expect to be able to share search links.
2018-04-14 23:28:34 +02:00