annotate default/input/xmlui.html @ 91:cc36a5b990ab

input(xmlui): better handling of missing values
author Goffi <goffi@goffi.org>
date Fri, 12 Jan 2018 19:52:37 +0100
parents 6f1686723472
children eabfb53f7777
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
1 {% import 'input/field.html' as field %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
2
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
3 {# generate methods #}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
4
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
5 {% macro generate_container(cont, config) %}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
6 {% if cont.type == 'vertical' %}
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
7 {{ vertical_container(cont, config) }}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
8 {% elif cont.type == 'pairs' %}
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
9 {{ pairs_container(cont, config) }}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
10 {% elif cont.type == 'label' %}
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
11 {{ label_container(cont, config) }}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
12 {% endif %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
13 {% endmacro %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
14
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
15 {% macro generate_widget(wid, config, id=none) %}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
16 {% if wid.type == 'text' %}
66
9834106678da base: menu implementation:
Goffi <goffi@goffi.org>
parents: 65
diff changeset
17 {{ text_widget(wid, config, id=id) }}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
18 {% elif wid.type == 'label' %}
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
19 {{ label_widget(wid, config) }}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
20 {% elif wid.type == 'string' %}
66
9834106678da base: menu implementation:
Goffi <goffi@goffi.org>
parents: 65
diff changeset
21 {{ string_widget(wid, config, id=id) }}
65
dd15b6c0b1d3 input/xmlui: added 'jid' widget type, using string_widget for now
Goffi <goffi@goffi.org>
parents: 58
diff changeset
22 {% elif wid.type == 'jid' %}
dd15b6c0b1d3 input/xmlui: added 'jid' widget type, using string_widget for now
Goffi <goffi@goffi.org>
parents: 58
diff changeset
23 {# TODO: proper JID widget #}
66
9834106678da base: menu implementation:
Goffi <goffi@goffi.org>
parents: 65
diff changeset
24 {{ string_widget(wid, config, id=id) }}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
25 {% elif wid.type == 'textbox' %}
66
9834106678da base: menu implementation:
Goffi <goffi@goffi.org>
parents: 65
diff changeset
26 {{ textbox_widget(wid, config, id=id) }}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
27 {% elif wid.type == 'list' %}
66
9834106678da base: menu implementation:
Goffi <goffi@goffi.org>
parents: 65
diff changeset
28 {{ list_widget(wid, config, id=id) }}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
29 {% endif %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
30 {% endmacro %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
31
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
32 {% macro generate_children(cont, config) %}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
33 {% for child in cont.children %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
34 {% if child.category == 'container' %}
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
35 {{ generate_container(child, config) }}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
36 {% else %}
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
37 {{ generate_widget(child, config) }}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
38 {% endif %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
39 {% endfor %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
40
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
41 {% endmacro %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
42
58
4347910cc594 input(xmlui): added attributes argument to create:
Goffi <goffi@goffi.org>
parents: 55
diff changeset
43 {% macro generate(xmlui, form=true, filters=none, attributes=none) %}
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
44 {# generate HTML from XMLUI
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
45 @param xmlui(template_xmlui.XMLUIPanel): xmlui to use
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
46 @param form(bool): if true will generate form elements
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
47 @param filters(dict,none): filters as expected by item_filter
58
4347910cc594 input(xmlui): added attributes argument to create:
Goffi <goffi@goffi.org>
parents: 55
diff changeset
48 @param attributes(dict,none): extra attributes to put on named widgets
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
49 #}
58
4347910cc594 input(xmlui): added attributes argument to create:
Goffi <goffi@goffi.org>
parents: 55
diff changeset
50 {% set config = {'form':form, 'filters':filters or {}, 'attrs': attributes or {}} %}
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
51 {{ generate_container(xmlui.main_cont, config) }}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
52 {% endmacro %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
54 {% macro generate_table(xmlui_items, fields, formatters, tr_class_fields, on_click) %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
55 {# generate a HTML table from requested widgets names
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
56 @param xmlui_items(iterable[unicode]): list of xmlui to show (one per row)
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
57 @param fields(tuple[unicode,unicode]): fields to show (name, label)
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
58 @param formatters(dict): dictionary of templates to format values:
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
59 field_name => template
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
60 if no formatter is set (or None is used) for a field, it will be used unmodified.
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
61 current xmlui items will be set as "item" key
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
62 @param tr_class_fields(iterable[unicode]): name of fields to use as class
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
63 class will be "{name}_{value}" where name is field name, and value field value
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
64 all lowercase/stripped
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
65 @param on_click(data_objects.OnClick): thing to do when clicking on a row
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
66 #}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
67 {% if formatters is undefined %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
68 {% set formatters = {} %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
69 {% endif %}
91
cc36a5b990ab input(xmlui): better handling of missing values
Goffi <goffi@goffi.org>
parents: 71
diff changeset
70 {% if on_click is undefined %}
cc36a5b990ab input(xmlui): better handling of missing values
Goffi <goffi@goffi.org>
parents: 71
diff changeset
71 {% set on_click = {} %}
cc36a5b990ab input(xmlui): better handling of missing values
Goffi <goffi@goffi.org>
parents: 71
diff changeset
72 {% endif %}
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
73 <table>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
74 <thead>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
75 <tr>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
76 {% for name,label in fields %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
77 <th>{{ label }}</th>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
78 {% endfor %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
79 </tr>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
80 </thead>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
81 <tbody>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
82 {% for xmlui in xmlui_items %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
83 {% set link=on_click.formatUrl(xmlui.widget_value) if on_click.url else none %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
84 <tr {{ {'class': xmlui|xmlui_class(tr_class_fields)}|xmlattr }}>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
85
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
86 {% for name,label in fields %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
87 <td {{ {'class': 'td_'+name}|xmlattr }}>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
88 {% for value in xmlui.widgets[name].values %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
89 <a {{ {'href':link}|xmlattr }}>{{ value|adv_format(formatters.get(name),item=xmlui.widget_value) }}</a>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
90 {% endfor %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
91 </td>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
92 {% endfor %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
93 </tr>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
94 {% endfor %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
95 </tbody>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
96 </table>
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
97 {% endmacro %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
98
71
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
99
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
100
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
101
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
102 {% macro generate_list(xmlui_items, fields, formatters, item_class_fields, on_click) %}
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
103 {# generate a list of rendered XMLUI from requested widgets names
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
104 very similar to generate_table but generate a list instead of a tabme
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
105 @param xmlui_items(iterable[unicode]): list of xmlui to show
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
106 @param fields(tuple[unicode,unicode]): fields to show (name, label)
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
107 @param formatters(dict): dictionary of templates to format values:
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
108 field_name => template
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
109 if no formatter is set (or None is used) for a field, it will be used unmodified.
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
110 current xmlui items will be set as "item" key
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
111 @param item_class_fields(iterable[unicode]): name of fields to use as class
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
112 class will be "{name}_{value}" where name is field name, and value field value
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
113 all lowercase/stripped
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
114 @param on_click(data_objects.OnClick): thing to do when clicking on a row
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
115 #}
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
116 {% if formatters is undefined %}
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
117 {% set formatters = {} %}
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
118 {% endif %}
91
cc36a5b990ab input(xmlui): better handling of missing values
Goffi <goffi@goffi.org>
parents: 71
diff changeset
119 {% if on_click is undefined %}
cc36a5b990ab input(xmlui): better handling of missing values
Goffi <goffi@goffi.org>
parents: 71
diff changeset
120 {% set on_click = {} %}
cc36a5b990ab input(xmlui): better handling of missing values
Goffi <goffi@goffi.org>
parents: 71
diff changeset
121 {% endif %}
71
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
122 <ul class="xmlui_list">
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
123 {% for xmlui in xmlui_items %}
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
124 <li>
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
125 {% set link=on_click.formatUrl(xmlui.widget_value) if on_click.url else none %}
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
126 <a {{ {'class': xmlui|xmlui_class(item_class_fields),
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
127 'href':link}|xmlattr }}>
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
128 {% for name,label in fields %}
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
129 <span {{ {'class': 'xmlui_field__'+name}|xmlattr }}>
91
cc36a5b990ab input(xmlui): better handling of missing values
Goffi <goffi@goffi.org>
parents: 71
diff changeset
130 {% for label in xmlui.widgets.get(name, {}).labels %}
71
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
131 <span>{{ label|adv_format(formatters.get(name),item=xmlui.widget_value) }}</span>
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
132 {% endfor %}
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
133 </span>
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
134 {% endfor %}
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
135 </a>
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
136 </li>
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
137 {% endfor %}
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
138 </ul>
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
139 {% endmacro %}
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
140
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
141
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
142
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
143
6f1686723472 input(xmlui): added generate_list method, similar to generate_table but generate list of items instead.
Goffi <goffi@goffi.org>
parents: 66
diff changeset
144
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
145 {# containers #}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
146
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
147 {% macro vertical_container(cont, config) %}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
148 <div class="xmlui_cont xmlui_cont_vertical">
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
149 {{ generate_children(cont, config) }}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
150 </div>
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
151 {% endmacro %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
152
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
153 {% macro pairs_container(cont, config) %}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
154 {# TODO: proper impelmentation (do the same as vertical container for now #}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
155 <div class="xmlui_cont xmlui_cont_vertical">
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
156 {{ generate_children(cont, config) }}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
157 </div>
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
158 {% endmacro %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
159
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
160 {% macro label_container(cont, config) %}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
161 <div class="xmlui_cont xmlui_cont_vertical">
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
162 {% for child in cont.children %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
163 {% if loop.index is odd %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
164 {# label #}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
165 {% if child.type == 'label' %}
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
166 {% set for_ = ('wid_' + (child.for_name or child.name or '_noname'))|next_gidx %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
167 {{ label_widget(child, config, for=for_) }}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
168 {% endif %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
169 {% else %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
170 {# widget #}
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
171 {% set id = ('wid_' + (child.name or '_noname'))|cur_gidx %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
172 {{ generate_widget(child, config, id=id) }}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
173 {% endif %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
174 {% endfor %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
175 </div>
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
176 {% endmacro %}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
177
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
178
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
179 {# widgets #}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
180
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
181 {% macro text_widget(wid, config, id=none) %}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
182 <p class="xmlui_widget xmlui_text" {{ {'id':id}|xmlattr }}>
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
183 {{- wid|item_filter(config.filters)|default('\u00A0',true) -}}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
184 </p>
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
185 {% endmacro%}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
186
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
187 {% macro label_widget(wid, config, for=none) %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
188 {% if config.form %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
189 <label class="xmlui_widget xmlui_label" {{ {'for':for}|xmlattr }}>
55
d58fdd57df49 input/xmlui: fixed for_name in labels + selection in listWidget
Goffi <goffi@goffi.org>
parents: 53
diff changeset
190 {{wid|item_filter(config.filters)}}
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
191 </label>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
192 {% else %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
193 <span class="xmlui_widget xmlui_label" {{ {'id':none if not for else 'label_%s'|format(for)}|xmlattr }}>{{wid|item_filter(config.filters)}}</span>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
194 {% endif %}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
195 {% endmacro%}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
196
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
197 {% macro string_widget(wid, config, id=none) %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
198 {% if config.form %}
58
4347910cc594 input(xmlui): added attributes argument to create:
Goffi <goffi@goffi.org>
parents: 55
diff changeset
199 <input class="xmlui_widget xmlui_string" type="text" {{ {'name':wid.name, 'id':id, 'value':wid|item_filter(config.filters)}|dict_ext(config.attrs, wid.name)|xmlattr }}>
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
200 {% else %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
201 <div class="xmlui_widget xmlui_string" {{ {'id':id}|xmlattr }}>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
202 {{- wid|item_filter(config.filters)|default('\u00A0',true) -}}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
203 </div>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
204 {% endif %}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
205 {% endmacro%}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
206
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
207 {% macro textbox_widget(wid, config, id=none) %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
208 {% if config.form %}
58
4347910cc594 input(xmlui): added attributes argument to create:
Goffi <goffi@goffi.org>
parents: 55
diff changeset
209 <textarea class="xmlui_widget xmlui_textbox" rows="10" cols="50" {{ {'name':wid.name, 'id':id}|dict_ext(config.attrs, wid.name)|xmlattr }}>
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
210 {{- wid|item_filter(config.filters) -}}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
211 </textarea>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
212 {% else %}
66
9834106678da base: menu implementation:
Goffi <goffi@goffi.org>
parents: 65
diff changeset
213 <p class="xmlui_widget xmlui_textbox" {{ {'id':id}|xmlattr }}>
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
214 {{- wid|item_filter(config.filters) -}}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
215 </p>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
216 {% endif %}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
217 {% endmacro%}
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
218
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
219 {% macro list_widget(wid, config, id=none) %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
220 {% if config.form %}
58
4347910cc594 input(xmlui): added attributes argument to create:
Goffi <goffi@goffi.org>
parents: 55
diff changeset
221 <select class="xmlui_widget xmlui_list" {{ {'name':wid.name, 'id':id}|dict_ext(config.attrs, wid.name)|xmlattr }}>
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
222 {% for value,label in wid.options %}
55
d58fdd57df49 input/xmlui: fixed for_name in labels + selection in listWidget
Goffi <goffi@goffi.org>
parents: 53
diff changeset
223 <option {{ {'value':value}|xmlattr }} {{ 'selected' if value in wid.selected }}>
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
224 {{- label -}}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
225 </option>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
226 {% endfor %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
227 </select>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
228 {% else %}
66
9834106678da base: menu implementation:
Goffi <goffi@goffi.org>
parents: 65
diff changeset
229 <div class="xmlui_widget xmlui_list" {{ {'id':id}|xmlattr }}>
53
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
230 {% for value,label in wid.items %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
231 <span class="xmlui_list_item value_{{value|attr_escape}}">
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
232 {{- label -}}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
233 </span>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
234 {% endfor %}
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
235 </div>
dfef430a26ef input(xmlui): added a macro to generate a table from list of XMLUI items + many improvments in item generation (see docstrings)
Goffi <goffi@goffi.org>
parents: 47
diff changeset
236 {% endif %}
47
7d5cca978eeb input/xmlui: XMLUI generation first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
237 {% endmacro%}