comparison sat_templates/templates/bulma/input/field.html @ 413:0190a0d32909 default tip

Forum: Major redesign of forums: Forums have been redesigned. They follow the new general design with 2 or 3 panels, allowing to have directly a forum if one is found/set up, and a panel on the left to search/discover other ones. Categories have been rewritten to be usable with pubsub relationships, a XEP-0277 type node is used for topics, and each item has a comments node for the threads. The thread view is set in `forum/show_messages.html` template. It has a header with a search box and a button to (un)subscribe. Items are displayed with the same macros as for the blog items. Below a room is set for editor, tags and attachments. rel 463
author Goffi <goffi@goffi.org>
date Fri, 05 Sep 2025 21:54:09 +0200
parents 58c4c1664421
children
comparison
equal deleted inserted replaced
412:c1d33d7e4b96 413:0190a0d32909
1 {# macros to create form fields #} 1 {# macros to create form fields #}
2 2
3 {% macro field(type, name, label="", value=none, class="", control_class="", help="", required=false, icon_left=none, icon_right=none, in_group=false, attrs=none) %} 3 {% macro field(type, name, label="", value=none, class="", control_class="", help="", required=false, icon_left=none, icon_right=none, in_group=false, attrs=none, delete_button=false) %}
4 {# generic field 4 {# generic field
5 "class" keyword can be used to add classes 5 "class" keyword can be used to add classes
6 additional kwargs will be passed as attributes #} 6 additional kwargs will be passed as attributes #}
7 7
8 {% if not in_group %} 8 {% if not in_group %}
10 {% endif %} 10 {% endif %}
11 {% set cur_id = name|next_gidx %} 11 {% set cur_id = name|next_gidx %}
12 {% if label %} 12 {% if label %}
13 <label for="{{cur_id}}" class="label">{{label}}</label> 13 <label for="{{cur_id}}" class="label">{{label}}</label>
14 {% endif %} 14 {% endif %}
15 <div class="control{% if icon_left %} has-icons-left{% endif %}{% if icon_right %} has-icons-right{% endif %} {{control_class}}"> 15 <div class="control{% if icon_left %} has-icons-left{% endif %}{% if icon_right or delete_button %} has-icons-right{% endif %} {{control_class}}">
16 <input id="{{cur_id}}" class="input" type="{{type}}" name="{{name}}" {{"required" if required}}{{{'value': value}|xmlattr}}{{(attrs or {})|xmlattr}}> 16 <input id="{{cur_id}}" class="input" type="{{type}}" name="{{name}}" {{"required" if required}}{{{'value': value}|xmlattr}}{{(attrs or {})|xmlattr}}>
17 {% if icon_left %} 17 {% if icon_left %}
18 <span class="icon is-left"> 18 <span class="icon is-left">
19 {# we use <i> with font from CSS instead of SVG, because using directly SVG doesn't play way with Bulma's control #} 19 {# we use <i> with font from CSS instead of SVG, because using directly SVG doesn't play way with Bulma's control #}
20 <i class="icon-{{icon_left}}"></i> 20 <i class="{{icon_left}}"></i>
21 </span> 21 </span>
22 {% endif %} 22 {% endif %}
23 {% if icon_right %} 23 {% if icon_right %}
24 <span class="icon is-right"> 24 <span class="icon is-right">
25 <i class="icon-{{icon_right}}"></i> 25 <i class="{{icon_right}}"></i>
26 </span>
27 {% endif %}
28 {% if delete_button %}
29 <span class="icon is-right action_delete">
30 <a role="button" class="delete is-small" aria-label="Delete"></a>
26 </span> 31 </span>
27 {% endif %} 32 {% endif %}
28 </div> 33 </div>
29 {% if help %} 34 {% if help %}
30 <p class="help">{{help}}</p> 35 <p class="help">{{help}}</p>
75 80
76 {% macro text(name, label="", value=none, class="", control_class="", placeholder=none, help="", required=false, pattern=none, title=none, autocomplete=none, icon_left=none, icon_right=none, in_group=false) %} 81 {% macro text(name, label="", value=none, class="", control_class="", placeholder=none, help="", required=false, pattern=none, title=none, autocomplete=none, icon_left=none, icon_right=none, in_group=false) %}
77 {{ field("text", name=name, label=label, value=value, class=class, control_class=control_class, help=help, required=required, icon_left=icon_left, icon_right=icon_right, attrs={'placeholder': placeholder, 'pattern': pattern, 'title': title, 'autocomplete': autocomplete}, in_group=in_group, caller=caller) }} 82 {{ field("text", name=name, label=label, value=value, class=class, control_class=control_class, help=help, required=required, icon_left=icon_left, icon_right=icon_right, attrs={'placeholder': placeholder, 'pattern': pattern, 'title': title, 'autocomplete': autocomplete}, in_group=in_group, caller=caller) }}
78 {% endmacro %} 83 {% endmacro %}
79 84
80 {% macro search(name, label="", value=none, class="", control_class="", placeholder=none, help="", required=false, pattern=none, title=none, autocomplete=none, icon_left=none, icon_right=none, in_group=false) %} 85 {% macro search(name, label="", value=none, class="", control_class="", placeholder=none, help="", required=false, pattern=none, title=none, autocomplete=none, icon_left=none, icon_right=none, in_group=false, delete_button=false) %}
81 {{ field("search", name=name, label=label, value=value, class=class, control_class=control_class, help=help, required=required, icon_left=icon_left, icon_right=icon_right, attrs={'placeholder': placeholder, 'pattern': pattern, 'title': title, 'autocomplete': autocomplete}, in_group=in_group, caller=caller) }} 86 {{ field("search", name=name, label=label, value=value, class=class, control_class=control_class, help=help, required=required, icon_left=icon_left, icon_right=icon_right, attrs={'placeholder': placeholder, 'pattern': pattern, 'title': title, 'autocomplete': autocomplete}, in_group=in_group, delete_button=delete_button, caller=caller) }}
82 {% endmacro %} 87 {% endmacro %}
83 88
84 {% macro password(name, label="", value=none, required=false, minlength=none, icon_left=none, icon_right=none) %} 89 {% macro password(name, label="", value=none, required=false, minlength=none, icon_left=none, icon_right=none) %}
85 {{ field("password", name=name, label=label, value=value, required=required, icon_left=icon_left, icon_right=icon_right, attrs={'minlength': minlength}) }} 90 {{ field("password", name=name, label=label, value=value, required=required, icon_left=icon_left, icon_right=icon_right, attrs={'minlength': minlength}) }}
86 {% endmacro %} 91 {% endmacro %}