Remove the routes and the template for the comment form

This commit is contained in:
Bat 2018-06-21 15:00:25 +01:00
parent 461c26f159
commit 4c211b4308
8 changed files with 26 additions and 53 deletions

View File

@ -283,3 +283,6 @@ msgstr ""
msgid "{{ data }} mentioned you."
msgstr ""
msgid "Your comment"
msgstr ""

View File

@ -282,3 +282,7 @@ msgstr "Vous n'êtes pas auteur dans ce blog."
msgid "{{ data }} mentioned you."
msgstr ""
#, fuzzy
msgid "Your comment"
msgstr "Envoyer le commentaire"

View File

@ -289,5 +289,9 @@ msgstr ""
msgid "{{ data }} mentioned you."
msgstr "{{ data }} skomentował Twój artykuł"
#, fuzzy
msgid "Your comment"
msgstr "Wyślij komentarz"
#~ msgid "Logowanie"
#~ msgstr "Zaloguj się"

View File

@ -68,9 +68,6 @@ fn main() {
routes::blogs::new_auth,
routes::blogs::create,
routes::comments::new,
routes::comments::new_response,
routes::comments::new_auth,
routes::comments::create,
routes::comments::create_response,
@ -85,6 +82,7 @@ fn main() {
routes::notifications::notifications_auth,
routes::posts::details,
routes::posts::details_response,
routes::posts::activity_details,
routes::posts::new,
routes::posts::new_auth,

View File

@ -1,8 +1,7 @@
use rocket::{
request::Form,
response::{Redirect, Flash}
response::Redirect
};
use rocket_contrib::Template;
use serde_json;
use activity_pub::{broadcast, inbox::Inbox};
@ -15,36 +14,9 @@ use models::{
users::User
};
use utils;
#[get("/~/<blog>/<slug>/comment")]
fn new(blog: String, slug: String, user: User, conn: DbConn) -> Template {
new_response(blog, slug, None, user, conn)
}
// See: https://github.com/SergioBenitez/Rocket/pull/454
#[get("/~/<blog_name>/<slug>/comment?<query>")]
fn new_response(blog_name: String, slug: String, query: Option<CommentQuery>, user: User, conn: DbConn) -> Template {
may_fail!(Blog::find_by_fqn(&*conn, blog_name), "Couldn't find this blog", |blog| {
may_fail!(Post::find_by_slug(&*conn, slug, blog.id), "Couldn't find this post", |post| {
Template::render("comments/new", json!({
"post": post,
"account": user,
"previous": query.and_then(|q| q.responding_to.map(|r| Comment::get(&*conn, r).expect("Error retrieving previous comment").to_json(&*conn))),
"user_fqn": user.get_fqn(&*conn)
}))
})
})
}
#[get("/~/<blog>/<slug>/comment", rank = 2)]
fn new_auth(blog: String, slug: String) -> Flash<Redirect>{
utils::requires_login("You need to be logged in order to post a comment", uri!(new: blog = blog, slug = slug))
}
#[derive(FromForm)]
struct CommentQuery {
responding_to: Option<i32>
pub struct CommentQuery {
pub responding_to: Option<i32>
}
#[derive(FromForm)]
@ -71,7 +43,6 @@ fn create_response(blog_name: String, slug: String, query: Option<CommentQuery>,
.author(user.clone())
.create(&*conn);
// Comment::notify(&*conn, new_comment, user.clone().into_id());
let instance = Instance::get_local(&*conn).unwrap();
instance.received(&*conn, serde_json::to_value(new_comment.clone()).expect("JSON serialization error"));
broadcast(&*conn, &user, new_comment, user.get_followers(&*conn));

View File

@ -14,11 +14,18 @@ use models::{
posts::*,
users::User
};
use routes::comments::CommentQuery;
use safe_string::SafeString;
use utils;
// See: https://github.com/SergioBenitez/Rocket/pull/454
#[get("/~/<blog>/<slug>", rank = 4)]
fn details(blog: String, slug: String, conn: DbConn, user: Option<User>) -> Template {
details_response(blog, slug, conn, user, None)
}
#[get("/~/<blog>/<slug>?<query>")]
fn details_response(blog: String, slug: String, conn: DbConn, user: Option<User>, query: Option<CommentQuery>) -> Template {
may_fail!(Blog::find_by_fqn(&*conn, blog), "Couldn't find this blog", |blog| {
may_fail!(Post::find_by_slug(&*conn, slug, blog.id), "Couldn't find this post", |post| {
let comments = Comment::list_by_post(&*conn, post.id);
@ -33,7 +40,9 @@ fn details(blog: String, slug: String, conn: DbConn, user: Option<User>) -> Temp
"n_reshares": post.get_reshares(&*conn).len(),
"has_reshared": user.clone().map(|u| u.has_reshared(&*conn, &post)).unwrap_or(false),
"account": user,
"date": &post.creation_date.timestamp()
"date": &post.creation_date.timestamp(),
"previous": query.and_then(|q| q.responding_to.map(|r| Comment::get(&*conn, r).expect("Error retrieving previous comment").to_json(&*conn))),
"user_fqn": user.map(|u| u.get_fqn(&*conn)).unwrap_or(String::new())
}))
})
})

View File

@ -1,16 +0,0 @@
{% extends "base" %}
{% block title %}
{{ 'Comment "{{ post }}"' | _(post=post.title) }}
{% endblock title %}
{% block content %}
<h1>{{ 'Comment "{{ post }}"' | _(post=post.title) }}</h1>
<form method="post">
<label for="content">{{ "Content" | _ }}</label>
{# Ugly, but we don't have the choice if we don't want weird paddings #}
<textarea id="content" name="content">{% filter trim %}{% if previous %}{% if previous.author.fqn != user_fqn %}@{{ previous.author.fqn }} {% endif %}{% for mention in previous.mentions %}{% if mention != user_fqn %}@{{ mention }} {% endif %}{% endfor %}{% endif %}{% endfilter %}</textarea>
<input type="submit" value="{{ "Submit comment" | _ }}" />
</form>
{% endblock content %}

View File

@ -84,7 +84,7 @@
<span class="username">@{{ comment.author.username }}</span>
</a>
<div class="text">{{ comment.content | safe }}</div>
<a class="button" href="comment?responding_to={{ comment.id }}">{{ "Respond" | _ }}</a>
<a class="button" href="?responding_to={{ comment.id }}">{{ "Respond" | _ }}</a>
</div>
{% endfor %}
</div>