diff options
| author | Christophe Simonis <chs@odoo.com> | 2015-02-03 18:47:17 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2015-02-03 18:47:42 +0100 |
| commit | fa75094e6ff712963d9b809106ca69d39fd45246 (patch) | |
| tree | a494cd29e07478dd73d1231ab8c513f2f51706c5 /addons/web/static/src | |
| parent | 0ac04b335c163e82b4d852c41a18d91e039878d4 (diff) | |
| parent | 4af53de399e6a5de1d06e8f3cef11bb1d08a1e12 (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.js | 5 | ||||
| -rw-r--r-- | addons/web/static/src/js/openerpframework.js | 5 | ||||
| -rw-r--r-- | addons/web/static/src/js/search.js | 3 | ||||
| -rw-r--r-- | addons/web/static/src/js/view_form.js | 5 | ||||
| -rw-r--r-- | addons/web/static/src/js/view_list.js | 2 | ||||
| -rw-r--r-- | addons/web/static/src/js/view_list_editable.js | 2 |
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 |
