annotate default/ticket/item.html @ 84:b2ef34e602cf

base, js (websocket), css (main style): dynamic pages implementation, first draft: this patch introduces the browser part of dynamic pages. Dynamic pages work by establishing a websocket between server and the current page, if requested by server (which means that needed arguments are present in template). Once the connection is established, the server can, for now, reload the page, append HTML elements, or receive arbitrary data (without reloading the page, in opposition to data post). If connection can't be established, a popup will be displayed and connection will be retried many times after variable timeouts. The browser will finally give up and display an alert to client if the number of retries is too high (20 for now).
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 %}