summaryrefslogtreecommitdiff
path: root/addons/base/static/src/xml
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2011-08-01 11:26:17 +0200
committerFabien Meghazi <fme@openerp.com>2011-08-01 11:26:17 +0200
commita291c46b27bedda79273331ca601f528bf8d0bd2 (patch)
treec64f50b40269dca17c6d3997d6c5c7c116743fd5 /addons/base/static/src/xml
parent26c20c4f23724563bc56021fd661671ad35421f6 (diff)
parentc8e7b43acbc3cd5c1dc40ceffe567b12a072cf40 (diff)
[MERGE] Merged with trunk
bzr revid: fme@openerp.com-20110801092617-f4vcc8dhx31n5ot3
Diffstat (limited to 'addons/base/static/src/xml')
-rw-r--r--addons/base/static/src/xml/base.xml398
1 files changed, 275 insertions, 123 deletions
diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml
index 9bef00147d3..c51284ad63a 100644
--- a/addons/base/static/src/xml/base.xml
+++ b/addons/base/static/src/xml/base.xml
@@ -62,7 +62,7 @@
<td><label for="db">Database:</label></td>
<td>
<t t-if="!db_list">
- <input type="text" name="db" value="trunk" autofocus="true"/>
+ <input type="text" name="db" t-att-value="selected_db || ''" autofocus="true"/>
</t>
<t t-if="db_list">
<select name="db">
@@ -87,18 +87,7 @@
<tr>
<td><label for="password">Password:</label></td>
<td><input type="password" name="password"
- t-att-value="selected_password || ''"/></td>
- </tr>
- <tr t-if="has_local_storage">
- <td><label for="remember">Remember password:</label></td>
- <td class="oe_remember">
- <t t-if="remember">
- <input type="checkbox" name="remember" checked="yes"/>
- </t>
- <t t-if="!remember">
- <input type="checkbox" name="remember"/>
- </t>
- </td>
+ t-att-value="selected_password || ''"/></td>
</tr>
<tr>
<td></td>
@@ -114,7 +103,7 @@
<div class="oe_login_right_pane">
<p>We think that daily job activities can be more intuitive, efficient, automated, .. and even fun.</p>
<h3>OpenERP's vision to be:</h3>
-
+
<table cellpadding="0" cellspacing="0" width="100%" style="border:none;">
<tbody>
<tr>
@@ -146,7 +135,7 @@
</tr>
</tbody>
</table>
-
+
</div>
</t>
<t t-name="Header">
@@ -154,8 +143,8 @@
<div class="company_logo" />
</a>
<h1 class="header_title" t-if="session.session_is_valid()">
- <span class="company">$company</span> - (<span class="database">$database</span>)<br/>
- <small class="username">$username session_id: <t t-esc="session.session_id"/></small>
+ <span class="database"><t t-esc="session.db"/></span> - <t t-esc="session.login"/> <br/>
+ <small class="username">rpc_session_id: <t t-esc="session.session_id"/></small>
</h1>
<div class="header_corner">
<ul class="block" t-if="session.session_is_valid()">
@@ -243,42 +232,66 @@
</t>
</td>
<td class="view-manager-main-sidebar" height="100%">
+ <t t-foreach="views" t-as="view">
+ <div t-attf-id="#{prefix}_sidebar_#{view.view_type}" class="sidebar-main-div closed-sidebar" style="display: none"/>
+ </t>
</td>
</tr>
</table>
</t>
-<table t-name="ListView">
+<t t-name="Sidebar">
+ <a class="toggle-sidebar"></a>
+ <div class="sidebar-content">
+ <div class="sidebar-actions">
+ </div>
+ </div>
+</t>
+<t t-name="Sidebar.section">
+ <h2><t t-esc="name"/></h2>
+ <div t-att-id="section_id" t-att-class="classname">
+ <ul t-if="items">
+ <li t-foreach="items" t-as="item" t-att-class="item.classname">
+ <a class="oe_sidebar_action_a" t-att-id="item.element_id" t-att-title="item.title" href="#">
+ <t t-esc="item.label"/>
+ </a>
+ </li>
+ </ul>
+ </div>
+</t>
+<table t-name="ListView" class="oe-listview-content">
<t t-set="columns_count" t-value="visible_columns.length + (options.selectable ? 1 : 0) + (options.deletable ? 1 : 0)"/>
- <t t-set="actions_span" t-value="Math.floor((options.deletable or options.addable) ? columns_count/2 : 0)"/>
<thead class="ui-widget-header">
- <tr>
- <th t-if="actions_span" t-att-colspan="actions_span"
- class="oe-actions">
- <t t-if="flags.action_buttons !== false">
- <button type="button" id="oe-list-add"
- t-if="options.addable">
- <t t-esc="options.addable"/>
- </button>
- <button type="button" id="oe-list-delete"
- t-if="options.selectable and options.deletable">
- Delete
- </button>
- </t>
- </th>
- <th t-att-colspan="columns_count - actions_span"
- class="oe-list-pager">
- <t t-if="flags.pager !== false">
- <button type="button" data-pager-action="first">First</button>
- <button type="button" data-pager-action="previous"
- >&lt;&lt;</button>
+ <tr t-if="options.action_buttons !== false or options.pager !== false">
+ <th t-att-colspan="columns_count">
+ <table>
+ <tr>
+ <td t-if="options.action_buttons !== false" class="oe-actions">
+ <button type="button" class="oe-list-add"
+ t-if="options.addable">
+ <t t-esc="options.addable"/>
+ </button>
+ <button type="button" class="oe-list-delete"
+ t-if="options.selectable and options.deletable">
+ Delete
+ </button>
+ </td>
+ <th t-if="options.pager !== false" class="oe-list-pager">
+ <button type="button" disabled="disabled"
+ data-pager-action="first">First</button>
+ <button type="button" disabled="disabled"
+ data-pager-action="previous"
+ >&lt;</button>
- <span class="oe-pager-first">1</span>
- to <span class="oe-pager-last">1</span>
- of <span class="oe-pager-total">1</span>
+ <span class="oe-pager-state">
+ </span>
- <button type="button" data-pager-action="next">&gt;&gt;</button>
- <button type="button" data-pager-action="last">Last</button>
- </t>
+ <button type="button" disabled="disabled"
+ data-pager-action="next">&gt;</button>
+ <button type="button" disabled="disabled"
+ data-pager-action="last">Last</button>
+ </th>
+ </tr>
+ </table>
</th>
</tr>
<tr t-if="options.header">
@@ -287,24 +300,22 @@
<t t-esc="column.string"/>
</th>
</t>
- <th t-if="options.selectable"/>
+ <th t-if="options.selectable" width="1"/>
<t t-foreach="columns" t-as="column">
<th t-if="!column.meta and column.invisible !== '1'" t-att-data-id="column.id"
t-att-class="((options.sortable and column.tag !== 'button') ? 'oe-sortable' : null)">
- <t t-if="column.tag !== 'button'">
- <t t-esc="column.string"/>
- <span t-att-class="(fields_view.sorted.field === column.id) ? ('ui-icon' + (fields_view.sorted.reversed ? ' ui-icon-triangle-1-n' : ' ui-icon-triangle-1-s')) : ''"/>
- </t>
+ <t t-if="column.tag !== 'button'"
+ ><t t-esc="column.string"/></t>
</th>
</t>
- <th t-if="options.deletable"/>
+ <th t-if="options.deletable" width="1"/>
</tr>
</thead>
<tfoot class="ui-widget-header">
<tr>
<td t-if="options.selectable"/>
<td t-foreach="aggregate_columns" t-as="column" class="oe-list-footer oe-number"
- t-att-data-field="column.field" t-att-title="column.label">
+ t-att-data-field="column.id" t-att-title="column.label">
</td>
<td t-if="options.deletable"/>
</tr>
@@ -322,10 +333,10 @@
t-att-data-index="row_index">
<t t-foreach="columns" t-as="column">
<td t-if="column.meta">
-
+
</td>
</t>
- <th t-if="options.selectable" class="oe-record-selector">
+ <th t-if="options.selectable" class="oe-record-selector" width="1">
<input type="checkbox"/>
</th>
<t t-foreach="columns" t-as="column">
@@ -333,23 +344,10 @@
<td t-if="!column.meta and column.invisible !== '1'" t-att-title="column.help"
t-att-class="'oe-field-cell' + (align ? ' oe-number' : '')"
t-att-data-field="column.id">
- <t t-set="attrs" t-value="column.attrs_for(row.data)"/>
- <t t-if="!attrs.invisible">
- <t t-set="is_button" t-value="column.tag === 'button'"/>
- <!-- TODO: get correct widget from form -->
- <t t-if="!is_button and row['data'][column.id].value !== false">
- <t t-set="value" t-value="row['data'][column.id].value"/>
- <t t-esc="value instanceof Array ? value[1] : value"/>
- </t>
- <button type="button" t-att-title="column.string"
- t-if="is_button">
- <img t-att-src="'/base/static/src/img/icons/' + column.icon + '.png'"
- t-att-alt="column.string"/>
- </button>
- </t>
+ <t t-raw="render_cell(row.data, column)"/>
</td>
</t>
- <td t-if="options.deletable" class='oe-record-delete'>
+ <td t-if="options.deletable" class='oe-record-delete' width="1">
<button type="button" name="delete">♻</button>
</td>
</tr>
@@ -357,9 +355,9 @@
<t t-raw="frame.render()"/>
</t>
<t t-name="FormView">
- <h2 class="oe_view_title"><t t-esc="view.fields_view.arch.attrs.string"/></h2>
<div class="oe_form_header" t-att-id="view.element_id + '_header'">
- <div class="oe_form_buttons" t-if="view.flags.action_buttons !== false">
+ <h2 class="oe_view_title"><t t-esc="view.fields_view.arch.attrs.string"/> <button class="oe_get_xml_view">xml</button></h2>
+ <div class="oe_form_buttons" t-if="view.options.action_buttons !== false">
<!--<button type="button" class="oe_form_button_save">
<span class="oe_form_on_update">Save</span>
<span class="oe_form_on_create">Create</span>
@@ -371,7 +369,7 @@
<!--<button type="button" class="oe_form_button_cancel">Cancel</button>-->
<button type="button" class="oe_form_button_new">New</button>
</div>
- <div class="oe_form_pager" t-if="view.flags.pager !== false">
+ <div class="oe_form_pager" t-if="view.options.pager !== false">
<button type="button" data-pager-action="first">First</button>
<button type="button" data-pager-action="previous">&lt;&lt;</button>
@@ -384,21 +382,20 @@
<t t-raw="frame.render()"/>
</t>
<t t-name="FormView.sidebar.attachments">
- <h2>Attachments</h2>
<div class="oe-sidebar-attachments-toolbar">
<div class="oe-binary-file-set" style="float: right">
<form class="oe-binary-form" t-attf-target="#{element_id}_iframe"
method="post" enctype="multipart/form-data" action="/base/binary/upload_attachment">
<input type="hidden" name="session_id" t-att-value="session.session_id"/>
<input type="hidden" name="callback" t-attf-value="#{element_id}_iframe"/>
- <input type="hidden" name="model" t-att-value="dataset.model"/>
- <input type="hidden" name="id" t-att-value="datarecord.id"/>
+ <input type="hidden" name="model" t-att-value="view.dataset.model"/>
+ <input type="hidden" name="id" t-att-value="view.datarecord.id"/>
<button class="button" type="button">
<img src="/base/static/src/img/throbber.gif" width="16" height="16" style="display: none"/>
<span>Add</span>
</button>
<input type="file" class="oe-binary-file" name="ufile" title="Add attachment"
- t-att-onclick="datarecord.id ? null : 'alert(\'No record selected ! You can only attach to existing record.\'); return false;'"/>
+ t-att-onclick="view.datarecord.id ? null : 'alert(\'No record selected ! You can only attach to existing record.\'); return false;'"/>
</form>
<iframe t-attf-id="#{element_id}_iframe" t-attf-name="#{element_id}_iframe" style="display: none"> </iframe>
</div>
@@ -408,7 +405,7 @@
<li t-foreach="attachments" t-as="attachment">
<t t-if="attachment.type == 'binary'" t-set="attachment.url" t-value="'/base/binary/saveas?session_id='
+ session.session_id + '&amp;model=ir.attachment&amp;id=' + attachment.id
- + '&amp;field=datas' + '&amp;fieldname=name' + '&amp;t=' + (new Date().getTime())"/>
+ + '&amp;field=datas&amp;fieldname=name&amp;t=' + (new Date().getTime())"/>
<a class="oe-sidebar-attachments-link" t-att-href="attachment.url" target="_blank">
<t t-esc="attachment.name"/>
</a>
@@ -441,18 +438,21 @@
</t>
<t t-name="WidgetNotebook">
<ul>
- <li t-foreach="widget.pages" t-as="page">
- <a t-att-href="'#' + widget.element_id + '-' + page_index">
+ <li t-foreach="widget.pages" t-as="page" t-att-id="page.element_tab_id">
+ <a t-att-href="'#' + page.element_id">
<t t-esc="page.string"/>
</a>
</li>
</ul>
<t t-foreach="widget.pages" t-as="page">
- <div t-att-id="widget.element_id + '-' + page_index">
- <t t-raw="page.render()"/>
- </div>
+ <t t-raw="page.render()"/>
</t>
</t>
+<t t-name="WidgetNotebookPage">
+ <div t-att-id="widget.element_id">
+ <t t-call="WidgetFrame"/>
+ </div>
+</t>
<t t-name="WidgetSeparator">
<div t-att-class="'separator ' + (widget.node.attrs.orientation || 'horizontal')">
<t t-esc="widget.string"/>
@@ -526,9 +526,9 @@
t-att-id="widget.element_id + '_field'"
t-att-class="'field_' + widget.type"
style="width: 100%">
- <t t-foreach="widget.field.selection" t-as="options">
- <option t-att-value="options[0]">
- <t t-esc="options[1]"/>
+ <t t-foreach="widget.field_index" t-as="options">
+ <option t-att-value="options.ikey">
+ <t t-esc="options.label"/>
</option>
</t>
</select>
@@ -541,9 +541,9 @@
<span class="oe-m2o-cm-button" t-att-id="widget.name + '_open'">
<img src="/base/static/src/img/icons/gtk-index.png"/></span>
<div t-att-id="widget.cm_id" class="contextMenu" style="display:none"><ul>
- <li t-att-id="widget.cm_id + '_search'">Search</li>
- <li t-att-id="widget.cm_id + '_create'">Create New</li>
- <li t-att-id="widget.cm_id + '_open'" style="color:grey">Open</li>
+ <li t-att-id="widget.cm_id + '_open'" style="color:grey">Open...</li>
+ <li t-att-id="widget.cm_id + '_create'">Create...</li>
+ <li t-att-id="widget.cm_id + '_search'">Search...</li>
</ul></div>
</div>
</t>
@@ -685,14 +685,28 @@
<input type="reset" value="Clear"/>
<button class="oe_search-view-custom-filter-btn"><span>Advanced Filter</span></button>
<select class="oe_search-view-filters-management">
- <option value="_filters">-- Filters --</option>
- <option value="_actions">-- Actions --</option>
- <option value="save_filter">Save Filter</option>
- <option value="manage_filters">Manage Filters</option>
</select>
</div>
</form>
</t>
+<t t-name="SearchView.managed-filters">
+ <option value="_filters">-- Filters --</option>
+ <t t-set="i" t-value="0"/>
+ <t t-foreach="filters" t-as="filter">
+ <option t-att-value="'get:' + i"><t t-esc="filter.name"/></option>
+ <t t-set="i" t-value="i+1"/>
+ </t>
+ <option value="_actions">-- Actions --</option>
+ <option value="save_filter">Save Filter</option>
+ <option value="manage_filters">Manage Filters</option>
+</t>
+<t t-name="SearchView.managed-filters.add">
+ <div>
+ <p>Filter Name:</p>
+ <input type="text"/>
+ <p>(Any existing filter with the same name will be replaced)</p>
+ </div>
+</t>
<t t-name="SearchView.render_lines">
<table class="oe-searchview-render-line" border="0" cellspacing="0" cellpadding="0"
t-foreach="lines" t-as="line">
@@ -803,11 +817,11 @@
<t t-name="SearchView.extended_search.group">
<div t-att-id="element_id" class="searchview_extended_group">
<select class="searchview_extended_group_choice">
- <option value="all">All the following conditions must match</option>
<option value="any">Any of the following conditions must match</option>
+ <option value="all">All the following conditions must match</option>
<option value="none">None of the following conditions must match</option>
</select>
- <a class="searchview_extended_delete_group"
+ <a class="searchview_extended_delete_group"
href="javascript:void(0)"><span></span></a>
<div class="searchview_extended_propositions_list">
</div>
@@ -829,7 +843,7 @@
<select class="searchview_extended_prop_op"/>
<span class="searchview_extended_prop_value"/>
<a class="searchview_extended_delete_prop"
- href="javascript:void(0)"><span></span></a>
+ href="javascript:void(0)"><span> </span></a>
</div>
</t>
<t t-name="SearchView.extended_search.proposition.char">
@@ -856,29 +870,6 @@
</t>
</select>
</t>
-<t t-name="ViewManager.sidebar">
- <div t-att-id="element_id" class="sidebar-main-div closed-sidebar">
-
- </div>
-</t>
-<t t-name="ViewManager.sidebar.internal">
- <a class="toggle-sidebar"></a>
- <div class="sidebar-content">
- <div class="sidebar-attachments" t-if="view == 'form'"> </div>
- <div class="sidebar-actions">
- <t t-foreach="sidebar.sections" t-as="section" t-if="section.elements.length">
- <h2><t t-esc="section.label"/></h2>
- <ul>
- <li t-foreach="section.elements" t-as="element">
- <a class="oe_sidebar_action_a" t-attf-data-index="#{section_index}-#{element_index}" href="#">
- <t t-esc="element.name"/>
- </a>
- </li>
- </ul>
- </t>
- </div>
- </div>
-</t>
<t t-name="DialogWarning">
<table cellspacing="0" cellpadding="0" border="0" class="oe-dialog-warning">
<tr>
@@ -886,7 +877,9 @@
<td>
<p>
<t t-js="d">
- d.html_error = context.engine.tools.html_escape(d.error.data.fault_code).replace(/\n/g, '<br/>');
+ var message = d.message ? d.message : d.error.data.fault_code;
+ d.html_error = context.engine.tools.html_escape(message)
+ .replace(/\n/g, '<br/>');
</t>
<t t-raw="html_error"/>
</p>
@@ -901,9 +894,19 @@
</t>
<t t-name="SelectCreatePopup">
<div t-att-id="element_id">
- <div t-att-id="element_id + '_search'"></div>
- <div t-att-id="element_id + '_view_list'"></div>
- <div t-att-id="element_id + '_view_form'"></div>
+ <table style="width:100%">
+ <tr style="width:100%">
+ <td style="width:100%">
+ <div t-att-id="element_id + '_search'" style="width:100%"></div>
+ </td>
+ </tr>
+ <tr style="width:100%">
+ <td style="width:100%">
+ <div t-att-id="element_id + '_view_list'" style="width:100%"></div>
+ </td>
+ </tr>
+ </table>
+ <div t-att-id="element_id + '_view_form'" style="width:100%"></div>
</div>
</t>
<t t-name="SelectCreatePopup.search.buttons">
@@ -914,7 +917,15 @@
<button type="button" class="oe_selectcreatepopup-form-save">Save</button>
<button type="button" class="oe_selectcreatepopup-form-close">Close</button>
</t>
-
+<t t-name="FormOpenPopup">
+ <div t-att-id="element_id">
+ <div t-att-id="element_id + '_view_form'" style="width:100%"></div>
+ </div>
+</t>
+<t t-name="FormOpenPopup.form.buttons">
+ <button type="button" class="oe_formopenpopup-form-save">Save</button>
+ <button type="button" class="oe_formopenpopup-form-close">Close</button>
+</t>
<t t-name="ListView.row.frame" t-extend="WidgetFrame">
<t t-jquery="tr">
$(document.createElement('t'))
@@ -933,4 +944,145 @@
.unwrap();
</t>
</t>
+
+<t t-name="ExportView">
+ <a id="exportview" href="javascript: void(0)" style="text-decoration: none;color: #3D3D3D;">Export</a>
+</t>
+
+<t t-name="ExportTreeView">
+ <table class="view" style="background-color: #F3F3F3;">
+ <tr>
+ <td align="left">
+ This wizard will export all data that matches the current search criteria to a CSV file.
+ You can export all data or only the fields that can be reimported after modification.
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <td class="label"><label>Export Type:</label></td>
+ <td>
+ <select id="import_compat" name="import_compat">
+ <option value="1">Import Compatible Export</option>
+ <option value="0">Export all Data</option>
+ </select>
+ </td>
+ <td class="label"><label>Export Format</label></td>
+ <td>
+ <select id="export_format" name="export_format">
+ <option value="csv">CSV</option>
+ <option value="xls">Excel</option>
+ </select>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table class="oe_export_fields_selector_export">
+ <tr>
+ <th class="oe_view_title" valign="bottom">Available fields</th>
+ <th class="oe_view_title"></th>
+ <th class="oe_view_title">Fields to export
+ <a style="color: blue; text-decoration: none;" href="#" id="export_new_list">Save fields list</a>
+ <div id="savenewlist"></div>
+ <div id="ExistsExportList"></div>
+ </th>
+ </tr>
+ <tr>
+ <td class="oe_export_fields_selector_left">
+ <div id="left_field_panel">
+ </div>
+ </td>
+ <td>
+ <table class="oe_export_fields_selector_center">
+ <tr>
+ <td align="center">
+ <button id="add_field" class="oe_export_button_export">Add</button>
+ </td>
+ </tr>
+ <tr>
+ <td align="center">
+ <button id="remove_field" class="oe_export_button_export">Remove</button>
+ </td>
+ </tr>
+ <tr>
+ <td align="center">
+ <button id="remove_all_field" class="oe_export_button_export">Remove All</button>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td class="oe_export_fields_selector_right">
+ <select name="fields_list" id="fields_list" multiple="multiple"></select>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</t>
+
+<t t-name="ExportTreeView-Secondary">
+ <table id="field-tree-structure" class="oe_export_fields_selector_export" cellspacing="0" cellpadding="0">
+ <tr><th class="oe_export_tree_header"> Name </th></tr>
+ <t t-call="ExportTreeView-Secondary.children"/>
+ </table>
+</t>
+<t t-name="ExportTreeView-Secondary.children">
+ <t t-foreach="fields" t-as="field" >
+ <tr t-att-id="'treerow-' + field.id" class="oe_export_row">
+ <td>
+ <table class="tree_grid" border="0">
+ <tr class="oe_export_row">
+ <t t-foreach="(field.id).split('/')" t-as="level" >
+ <t t-if="(field.id).split('/')[0] != level">
+ <td width="18">&amp;nbsp;</td>
+ </t>
+ </t>
+ <td valign="top" align="left" style="cursor: pointer;" width="18">
+ <t t-if="(field.children).length >= 1">
+ <t t-if="(field.id).split('/').length != 3">
+ <img t-att-id="'parentimg-' + field.id" src="/base/static/src/img/expand.gif" width="16" height="16" border="0"/>
+ </t>
+ </t>
+ </td>
+ <td id="tree-column" valign="middle" align="left" style="cursor: pointer;">
+ <a t-att-id="'export-' + field.id" t-att-string="field.string" href="javascript: void(0);" style="text-decoration: none;">
+ <t t-esc="field.string"/>
+ </a>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </t>
+</t>
+
+<t t-name="ExportNewList">
+ <tr>
+ <th><label>Save as:</label></th>
+ <td><input size="10" type="text" id="savelist_name"/></td>
+ <td><button class="oe_export_button_export" id="add_export_list">Ok</button></td>
+ </tr>
+</t>
+
+<t t-name="Exists.ExportList">
+ <tr><th align="right"><label >Saved exports:</label></th></tr>
+ <tr align="left">
+ <td>
+ <select id="saved_export_list" style="width: 100%;">
+ <option></option>
+ <t t-foreach="existing_exports" t-as="export">
+ <option t-att-value="export.id"><t t-esc="export.name"/></option>
+ </t>
+ </select>
+ </td>
+ <td><button class="oe_export_button_export" id="delete_export_list">Delete</button></td>
+ </tr>
+</t>
</templates>