annotate default/ticket/item.html @ 85:05b500bd6235

chat: chat implementation, first draft: this chat use the new dynamic pages feature. Updates are pushed directly by server. Identities are used to retrieve avatar, and first letter of nickname is used to generate an avatar is none is found (temporary, a more elaborate avatar generation should follow in the future). Scroll is done automatically when new messages arrive, except if scroll is not at the end, as it probably means that user is checking history. User can resize text area and use [shift] + [enter] to enter multi-line messages. History will then scroll to bottom after message has been sent.
author Goffi <goffi@goffi.org>
date Wed, 03 Jan 2018 01:12:16 +0100
parents 18d00a8afc4d
children da8f1ba9034d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
56
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
1 {# display a single ticket
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
2
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
3 @variable item(xmlui_item): ticket to display
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
4 @variable comments(data_object.BlogItems): comments of the ticket
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
5 @variable comments_service(unicode): service for adding comments
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
6 @variable comments_node(unicode): node for adding comments
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
7 #}
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
8
72
18d00a8afc4d ticket(item): fixed menus
Goffi <goffi@goffi.org>
parents: 66
diff changeset
9 {% set category_menu = [('tickets_list', url_tickets_list),
66
9834106678da base: menu implementation:
Goffi <goffi@goffi.org>
parents: 62
diff changeset
10 ('ticket_new', url_tickets_new)] %}
56
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
11 {% if not embedded %}{% extends 'base/base.html' %}{% endif %}
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
12 {% import 'input/xmlui.html' as xmlui with context %}
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
13 {% import 'blog/macros.html' as blog with context %}
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
14 {% import 'input/comment.html' as comment with context %}
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
15
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
16 {% block title %}{{item|adv_format('[{value.widget_value.id}] {value.widget_value.title}') }}{% endblock %}
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
17
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
18 {% block confirm_message %}
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
19 {% trans %}Your comment has been sent{% endtrans %}
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
20 {% endblock confirm_message %}
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
21
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
22 {% block body %}
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
23 <div id="{{ item.widget_value['id'] }}" class="view single ticket box">
66
9834106678da base: menu implementation:
Goffi <goffi@goffi.org>
parents: 62
diff changeset
24 {{ xmlui.generate(item,
56
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
25 form=false,
57
50957f0669b9 ticket/item: URLs in body are now clickable
Goffi <goffi@goffi.org>
parents: 56
diff changeset
26 filters={'created': {'filters': ['date_fmt'], 'filters_args':[{'fmt': 'short'}]},
50957f0669b9 ticket/item: URLs in body are now clickable
Goffi <goffi@goffi.org>
parents: 56
diff changeset
27 'updated': {'filters': ['date_fmt'], 'filters_args':[{'fmt': 'short'}]},
50957f0669b9 ticket/item: URLs in body are now clickable
Goffi <goffi@goffi.org>
parents: 56
diff changeset
28 'body': {'filters': ['urlize'], 'filters_args':[{'nofollow': True, 'rel': 'noopener noreferrer'}]}},
56
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
29 )}}
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
30 </div>
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
31 {% if comments is defined %}
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
32 <div id="blog_items">
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
33 {{ blog.show_items(comments|reverse, expanded=true) }}
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
34 </div>
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
35 {% endif %}
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
36 {% if comments_node is defined %}
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
37 <div class="comment_post">
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
38 {{- comment.comment_or_login(service=comments_service, node=comments_node) -}}
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
39 </div>
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
40 {% endif %}
ea67eba3199d ticket: first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
41 {% endblock body %}