diff default/input/textbox.html @ 116:da8f1ba9034d

input/comment: renamed "comment" library to "textbox", and made it more generic
author Goffi <goffi@goffi.org>
date Tue, 30 Jan 2018 07:47:23 +0100
parents default/input/comment.html@102356338118
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/default/input/textbox.html	Tue Jan 30 07:47:23 2018 +0100
@@ -0,0 +1,52 @@
+{% import 'input/form.html' as form with context %}
+{% import 'input/field.html' as field %}
+
+{% macro head(service, node, type="textbox") %}
+    {# include data needed to identify the node to use for commenting #}
+    <input type="hidden" name="type" value="{{type}}">
+    <input type="hidden" name="service" value="{{service}}">
+    <input type="hidden" name="node" value="{{node}}">
+{% endmacro %}
+
+{% macro submit(label=_("Send")) %}
+    <input type="submit" value="{{label}}">
+{% endmacro %}
+
+{% macro textbox(service, node, action='', placeholder='', submit_label=_("Send"), type="textbox") %}
+    {# generic content area for comments/blog posts/etc. Only a body by default, but new elements can be
+       added by using this macro with call #}
+    {% set extra_content = caller() if caller is defined else '' %}
+    {% call form.form(action=action, class="textbox") %}
+        {{ head(service, node, type) }}
+        {{ extra_content }}
+        {{ field.textarea("body", placeholder=placeholder, required=True) }}
+        {{ submit(label=submit_label) }}
+    {% endcall %}
+{% endmacro %}
+
+{% macro comment(service, node, action='', placeholder=_("Your comment")) %}
+    {{ textbox(service, node, action=action, placeholder=placeholder, type="comment") }}
+{% endmacro %}
+
+{% macro comment_or_login(service, node, action='', placeholder=none) %}
+    {# show comment form a a message asking to log in
+       login is checked using profile #}
+    {% if profile %}
+        {% if placeholder is none %}
+            {{ comment(service, node, action) }}
+        {% else %}
+            {{ comment(service, node, action, placeholder=placeholder) }}
+        {% endif %}
+    {% else %}
+        <div class="log_request">
+        <p class="not_logged">{% trans %}You are not logged. You need to log in to comment.{% endtrans %}</p>
+        {% if login_url is defined %}
+            <p class="log_in_url">
+                {% trans link_start=('<a href="',login_url,'">')|join|safe, link_end='</a>'|safe %}
+                    To log in {{link_start}}follow this link{{link_end}}
+                {% endtrans %}
+            </p>
+        {% endif %}
+        </div>
+    {% endif %}
+{% endmacro %}