WIP: endpoint for posting new comments without comment list.

We need to determine what happens when such a comment is successfully
posted, as we can't just reload the comment list. In other words, this is
dependent on where we are embedded, and cannot be handled just locally.
This commit is contained in:
2016-11-02 15:40:26 +01:00
parent 2cc21583d9
commit e69393e95e
2 changed files with 27 additions and 0 deletions

View File

@@ -207,6 +207,26 @@ def comments_for_node(node_id):
node_id=node_id, node_id=node_id,
comments=comments, comments=comments,
nr_of_comments=nr_of_comments, nr_of_comments=nr_of_comments,
show_comments=True,
can_post_comments=can_post_comments)
@blueprint.route('/<string(length=24):node_id>/commentform')
def commentform_for_node(node_id):
"""Shows only the comment for for comments attached to the given node.
i.e. does not show the comments themselves, just the form to post a new comment.
"""
api = system_util.pillar_api()
node = Node.find(node_id, api=api)
project = Project({'_id': node.project})
can_post_comments = project.node_type_has_method('comment', 'POST', api=api)
return render_template('nodes/custom/comment/list_embed.html',
node_id=node_id,
show_comments=False,
can_post_comments=can_post_comments) can_post_comments=can_post_comments)

View File

@@ -69,6 +69,7 @@
| {% endif %} | {% endif %}
| {% if show_comments %}
section#comments-list-header section#comments-list-header
#comments-list-title #comments-list-title
| {% if nr_of_comments == 0 %}No{% else %}{{ nr_of_comments }}{% endif %} comment{{ nr_of_comments|pluralize }} | {% if nr_of_comments == 0 %}No{% else %}{{ nr_of_comments }}{% endif %} comment{{ nr_of_comments|pluralize }}
@@ -76,6 +77,7 @@
| {% for comment in comments['_items'] %} | {% for comment in comments['_items'] %}
| {{ macros.render_comment(comment, False) }} | {{ macros.render_comment(comment, False) }}
| {% endfor %} | {% endfor %}
| {% endif %}
| {% block comment_scripts %} | {% block comment_scripts %}
script. script.
@@ -99,11 +101,16 @@ script.
} }
}) })
.done(function(comment_node_id) { .done(function(comment_node_id) {
{% if show_comments %}
var commentsUrl = "{{ url_for('nodes.comments_for_node', node_id=node_id) }}"; var commentsUrl = "{{ url_for('nodes.comments_for_node', node_id=node_id) }}";
loadComments(commentsUrl) loadComments(commentsUrl)
.done(function() { .done(function() {
$('#' + comment_node_id).scrollHere(); $('#' + comment_node_id).scrollHere();
}); });
{% else %}
// TODO: implement something here
console.log('Comment posted succesfully, reload the page to see it.');
{% endif %}
}); });
}); });