summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2015-02-03 18:47:17 +0100
committerChristophe Simonis <chs@odoo.com>2015-02-03 18:47:42 +0100
commitfa75094e6ff712963d9b809106ca69d39fd45246 (patch)
treea494cd29e07478dd73d1231ab8c513f2f51706c5 /addons/web/static/src
parent0ac04b335c163e82b4d852c41a18d91e039878d4 (diff)
parent4af53de399e6a5de1d06e8f3cef11bb1d08a1e12 (diff)
[MERGE] forward port of branch 8.0 up to 4af53de
ignore .po and .pot changes
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/formats.js5
-rw-r--r--addons/web/static/src/js/openerpframework.js5
-rw-r--r--addons/web/static/src/js/search.js3
-rw-r--r--addons/web/static/src/js/view_form.js5
-rw-r--r--addons/web/static/src/js/view_list.js2
-rw-r--r--addons/web/static/src/js/view_list_editable.js2
6 files changed, 18 insertions, 4 deletions
diff --git a/addons/web/static/src/js/formats.js b/addons/web/static/src/js/formats.js
index 3dbacc98527..9c35d66c20e 100644
--- a/addons/web/static/src/js/formats.js
+++ b/addons/web/static/src/js/formats.js
@@ -390,4 +390,9 @@ instance.web.normalize_format_table = {
};
var _normalize_format_cache = {};
+instance.web.float_is_zero = function(value, decimals){
+ epsilon = Math.pow(10, -decimals);
+ return Math.abs(instance.web.round_precision(value, epsilon)) < epsilon;
+};
+
})();
diff --git a/addons/web/static/src/js/openerpframework.js b/addons/web/static/src/js/openerpframework.js
index 004ec2cb93a..eba992e328f 100644
--- a/addons/web/static/src/js/openerpframework.js
+++ b/addons/web/static/src/js/openerpframework.js
@@ -478,6 +478,11 @@ openerp.PropertiesMixin = _.extend({}, openerp.EventDispatcherMixin, {
var tmp = self.__getterSetterInternalMap[key];
if (tmp === val)
return;
+ if (self.field && self.field.type === 'float' && tmp && val){
+ var precision = self.field.digits ? self.field.digits[1] : 2;
+ if (openerp.web.float_is_zero(tmp - val, precision))
+ return;
+ }
changed = true;
self.__getterSetterInternalMap[key] = val;
if (! options.silent)
diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js
index 19e6659296d..04eebc2c0a1 100644
--- a/addons/web/static/src/js/search.js
+++ b/addons/web/static/src/js/search.js
@@ -1233,12 +1233,13 @@ instance.web.search.SelectionField = instance.web.search.Field.extend(/** @lends
var results = _(this.attrs.selection).chain()
.filter(function (sel) {
var value = sel[0], label = sel[1];
- if (!value) { return false; }
+ if (value === undefined || !label) { return false; }
return label.toLowerCase().indexOf(needle.toLowerCase()) !== -1;
})
.map(function (sel) {
return {
label: _.escape(sel[1]),
+ indent: true,
facet: facet_from(self, sel)
};
}).value();
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index c06c50ceea4..cc3bdc25990 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -5671,14 +5671,17 @@ instance.web.form.FieldBinary = instance.web.form.AbstractField.extend(instance.
} else {
instance.web.blockUI();
var c = instance.webclient.crashmanager;
+ var filename_fieldname = this.node.attrs.filename;
+ var filename_field = this.view.fields && this.view.fields[filename_fieldname];
this.session.get_file({
url: '/web/binary/saveas_ajax',
data: {data: JSON.stringify({
model: this.view.dataset.model,
id: (this.view.datarecord.id || ''),
field: this.name,
- filename_field: (this.node.attrs.filename || ''),
+ filename_field: (filename_fieldname || ''),
data: instance.web.form.is_bin_size(value) ? null : value,
+ filename: filename_field ? filename_field.get('value') : null,
context: this.view.dataset.get_context()
})},
complete: instance.web.unblockUI,
diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js
index 4333731b93e..0e446fb323e 100644
--- a/addons/web/static/src/js/view_list.js
+++ b/addons/web/static/src/js/view_list.js
@@ -2230,7 +2230,7 @@ instance.web.list.Column = instance.web.Class.extend({
}
if (attrs.invisible) { return ''; }
- if (!row_data[this.id]) {
+ if (!(row_data[this.id] && row_data[this.id].value)) {
return options.value_if_empty === undefined
? ''
: options.value_if_empty;
diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js
index 77559504060..82dd5433dc0 100644
--- a/addons/web/static/src/js/view_list_editable.js
+++ b/addons/web/static/src/js/view_list_editable.js
@@ -649,7 +649,7 @@
var form = this.editor.form;
var last_field = _(form.fields_order).chain()
.map(function (name) { return form.fields[name]; })
- .filter(function (field) { return field.$el.is(':visible'); })
+ .filter(function (field) { return field.$el.is(':visible') && !field.get('effective_readonly'); })
.last()
.value();
// tabbed from last field in form