summaryrefslogtreecommitdiff
path: root/addons/web/static/src/xml/base.xml
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/xml/base.xml')
-rw-r--r--addons/web/static/src/xml/base.xml45
1 files changed, 26 insertions, 19 deletions
diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml
index e2ecd16f89d..76230befea5 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -243,6 +243,7 @@
<t t-call="HiddenInputFile">
<t t-set="fileupload_id" t-value="widget.fileupload_id"/>
<t t-set="fileupload_action" t-translation="off">/web/binary/upload_attachment</t>
+ <t t-set="multi_upload" t-value="true"/>
<input type="hidden" name="model" t-att-value="widget.dataset and widget.dataset.model"/>
<input type="hidden" name="id" t-att-value="widget.model_id"/>
<input type="hidden" name="session_id" t-att-value="widget.session.session_id" t-if="widget.session.override_session"/>
@@ -380,7 +381,8 @@
t-att-data-field="column.id"
><t t-raw="render_cell(record, column)"/></td>
</t>
- <td t-if="options.deletable" class='o_list_record_delete'>
+ <!-- DO NOT FORWARDPORT, ONLY FOR SAAS-15 -->
+ <td t-if="options.deletable || typeof record.attributes.id !== 'number'" class='o_list_record_delete'>
<span name="delete" class="fa fa-trash-o"/>
</td>
</tr>
@@ -801,7 +803,7 @@
</div>
<div t-name="FieldSelector" class="o_field_selector">
- <input type="text" t-att-value="widget.chain" t-att-readonly="!(widget.debug) and 1 or None"/>
+ <input type="text" t-att-value="widget.chain" t-att-readonly="!(widget.options.debugMode) and 1 or None"/>
<div class="o_field_selector_controls" tabindex="0">
<i class="fa fa-exclamation-triangle o_field_selector_warning hidden" title="Invalid field chain"/>
</div>
@@ -817,13 +819,15 @@
</div>
</div>
<ul t-name="FieldSelector.page" t-attf-class="o_field_selector_page #{animation}">
- <li t-foreach="lines" t-as="line"
- t-attf-class="o_field_selector_item #{line.relation and 'o_field_selector_next_page' or 'o_field_selector_select_button'}#{line_index == 0 and ' active' or ''}"
- t-att-data-name="line.name">
- <t t-esc="line.string"/>
- <div t-if="debug" class="text-muted o_field_selector_item_title"><t t-esc="line.name"/> (<t t-esc="line.type"/>)</div>
- <i t-if="line.relation" class="fa fa-chevron-right o_field_selector_relation_icon" t-att-data-name="line.name"/>
- </li>
+ <t t-foreach="lines" t-as="line">
+ <t t-set="relationToFollow" t-value="followRelations &amp;&amp; line.relation"/>
+ <li t-attf-class="o_field_selector_item #{relationToFollow and 'o_field_selector_next_page' or 'o_field_selector_select_button'}#{line_index == 0 and ' active' or ''}"
+ t-att-data-name="line.name">
+ <t t-esc="line.string"/>
+ <div t-if="debug" class="text-muted o_field_selector_item_title"><t t-esc="line.name"/> (<t t-esc="line.type"/>)</div>
+ <i t-if="relationToFollow" class="fa fa-chevron-right o_field_selector_relation_icon"/>
+ </li>
+ </t>
</ul>
<t t-name="web.datepicker">
@@ -1008,7 +1012,7 @@
<input type="hidden" name="csrf_token" t-att-value="csrf_token"/>
<input type="hidden" name="session_id" value="" t-if="widget.session.override_session"/>
<input type="hidden" name="callback" t-att-value="fileupload_id"/>
- <input t-if="widget.widget!='image'" type="file" class="o_form_input_file" name="ufile"/>
+ <input t-if="widget.widget!='image'" type="file" class="o_form_input_file" name="ufile" t-att="{'multiple': multi_upload ? 'multiple' : null}"/>
<input t-if="widget.widget=='image'" type="file" class="o_form_input_file" name="ufile" accept="image/*"/>
<t t-raw="0"/>
</form>
@@ -1022,6 +1026,7 @@
<t t-call="HiddenInputFile">
<t t-set="fileupload_id" t-value="widget.fileupload_id"/>
<t t-set="fileupload_action" t-translation="off">/web/binary/upload_attachment</t>
+ <t t-set="multi_upload" t-value="true"/>
<input type="hidden" name="model" t-att-value="widget.view.model"/>
<input type="hidden" name="id" value="0"/>
<input t-if="widget.session.override_session" type="hidden" name="session_id" t-att-value="widget.session.session_id"/>
@@ -1038,23 +1043,24 @@
<t t-if="!widget.get('effective_readonly')">
<div t-foreach="values" t-as="id" class="oe_attachment">
<t t-set="file" t-value="widget.data[id]"/>
- <span t-if="file.upload or file.percent_loaded&lt;100"
- t-att-title="(file.name || file.filename) + ((file.date)? (' \n(' + file.date + ')') : '')"
- t-att-name="file.name || file.filename">
- <span class="oe_fileuploader_in_process">...Upload in progress...</span>
- <t t-raw="file.name || file.filename"/>
- </span>
- <t t-if="!file.upload or file.percent_loaded&gt;=100">
+ <t t-if="!file.upload">
<div>
<a href="#" class="fa fa-times pull-right oe_delete" title="Delete this file" t-att-data-id="file.id"/>
<t t-raw="file.name || file.filename"/>
</div>
<a class="o_image" target="_blank" t-att-href="file.url"
- t-att-title="(file.name || file.filename) + ((file.date)? (' \n(' + file.date + ')') : '')"
+ t-att-title="file.name"
t-att-data-mimetype="file.mimetype"
t-attf-data-src="/web/image/#{file.id}/100x80"/>
</t>
</div>
+ <div t-foreach="widget.files_uploading" t-as="file" class="oe_attachment">
+ <div>Uploading...</div>
+ <a t-att-title="file.name" t-att-name="file.name" class="o_image">
+ <i class="fa fa-spinner fa-spin fa-5x fa-fw"></i>
+ </a>
+ <div><t t-esc="file.name"/></div>
+ </div>
</t>
</div>
<div t-name="SearchView" class="o_searchview">
@@ -1212,7 +1218,8 @@
<span class="fa fa-star"/> Favorites <span class="caret"/>
</button>
<ul class="dropdown-menu o_favorites_menu" role="menu">
- <li class="divider"/>
+ <li class="divider user_filter"/>
+ <li class="divider shared_filter"/>
<li class="o_save_search o_closed_menu">
<a href="#">Save current search</a>
</li>