diff options
Diffstat (limited to 'addons/web/static/src/js/view_form.js')
| -rw-r--r-- | addons/web/static/src/js/view_form.js | 49 |
1 files changed, 26 insertions, 23 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index d2f55c0901e..0f33de0814e 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -346,7 +346,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM self.on_form_changed(); self.rendering_engine.init_fields(); self.is_initialized.resolve(); - self.do_update_pager(record.id == null); + self.do_update_pager(record.id === null || record.id === undefined); if (self.sidebar) { self.sidebar.do_attachement_update(self.dataset, self.datarecord.id); } @@ -465,7 +465,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM // form field if (self.fields[field]) { var value_ = self.fields[field].get_value(); - return value_ == null ? false : value_; + return value_ === null || value_ === undefined ? false : value_; } // parent field var splitted = field.split('.'); @@ -475,7 +475,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM } var p_val = parent_fields[_.str.trim(splitted[1])]; if (p_val !== undefined) { - return p_val == null ? false : p_val; + return p_val === null || p_val === undefined ? false : p_val; } } // string literal @@ -621,7 +621,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM } return $.when(); }); - }; + } return iterate(); }); }, @@ -943,11 +943,11 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM reload: function() { var self = this; return this.reload_mutex.exec(function() { - if (self.dataset.index == null) { + if (self.dataset.index === null || self.dataset.index === undefined) { self.trigger("previous_view"); return $.Deferred().reject().promise(); } - if (self.dataset.index == null || self.dataset.index < 0) { + if (self.dataset.index < 0) { return $.when(self.on_button_new()); } else { var fields = _.keys(self.fields_view.fields); @@ -1714,7 +1714,7 @@ instance.web.form.compute_domain = function(expr, fields) { }; instance.web.form.is_bin_size = function(v) { - return /^\d+(\.\d*)? \w+$/.test(v); + return (/^\d+(\.\d*)? \w+$/).test(v); }; /** @@ -2642,7 +2642,7 @@ instance.web.form.FieldText = instance.web.form.AbstractField.extend(instance.we if (! this.get("effective_readonly")) { var show_value = instance.web.format_value(this.get('value'), this, ''); if (show_value === '') { - this.$textarea.css('height', parseInt(this.default_height)+"px"); + this.$textarea.css('height', parseInt(this.default_height, 10)+"px"); } this.$textarea.val(show_value); if (! this.auto_sized) { @@ -3265,7 +3265,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc this.$input.keydown(input_changed); this.$input.change(input_changed); this.$drop_down.click(function() { - self.$input.focus(); + self.$input.focus(); if (self.$input.autocomplete("widget").is(":visible")) { self.$input.autocomplete("close"); } else { @@ -3740,7 +3740,7 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ }, reload_current_view: function() { var self = this; - return self.is_loaded = self.is_loaded.then(function() { + self.is_loaded = self.is_loaded.then(function() { var active_view = self.viewmanager.active_view; var view = self.viewmanager.views[active_view].controller; if(active_view === "list") { @@ -3758,13 +3758,15 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ return view.do_search(self.build_domain(), self.dataset.get_context(), []); } }, undefined); + return self.is_loaded; }, set_value: function(value_) { value_ = value_ || []; var self = this; this.dataset.reset_ids([]); + var ids; if(value_.length >= 1 && value_[0] instanceof Array) { - var ids = []; + ids = []; _.each(value_, function(command) { var obj = {values: command[2]}; switch (command[0]) { @@ -3795,7 +3797,7 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ this._super(ids); this.dataset.set_ids(ids); } else if (value_.length >= 1 && typeof(value_[0]) === "object") { - var ids = []; + ids = []; this.dataset.delete_all = true; _.each(value_, function(command) { var obj = {values: command}; @@ -3850,7 +3852,7 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ this.viewmanager.views[this.viewmanager.active_view].controller) { var view = this.viewmanager.views[this.viewmanager.active_view].controller; if (this.viewmanager.active_view === "form") { - if (!view.is_initialized.state() === 'resolved') { + if (view.is_initialized.state() !== 'resolved') { return $.when(false); } return $.when(view.save()); @@ -3870,7 +3872,6 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ .invoke('is_valid') .all(_.identity) .value(); - break; case 'list': return view.is_valid(); } @@ -4256,7 +4257,7 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(in }, core: { onSetInputData: function(e, data) { - if (data == '') { + if (data === '') { this._plugins.autocomplete._suggestions = null; } this.input().val(data); @@ -4578,8 +4579,9 @@ instance.web.form.FieldMany2ManyKanban = instance.web.form.AbstractField.extend( if (type !== "form") return; var self = this; + var pop; if (this.dataset.index === null) { - var pop = new instance.web.form.SelectCreatePopup(this); + pop = new instance.web.form.SelectCreatePopup(this); pop.select_element( this.field.relation, { @@ -4599,7 +4601,7 @@ instance.web.form.FieldMany2ManyKanban = instance.web.form.AbstractField.extend( }); } else { var id = self.dataset.ids[self.dataset.index]; - var pop = new instance.web.form.FormOpenPopup(this); + pop = new instance.web.form.FormOpenPopup(this); pop.show_element(self.field.relation, id, self.build_context(), { title: _t("Open: ") + self.string, write_function: function(id, data, options) { @@ -4935,7 +4937,7 @@ instance.web.form.SelectCreatePopup = instance.web.form.AbstractFormPopup.extend self.select_elements(self.selected_ids); self.destroy(); }); - var $cbutton = self.$buttonpane.find(".oe_selectcreatepopup-search-create"); + $cbutton = self.$buttonpane.find(".oe_selectcreatepopup-search-create"); $cbutton.click(function() { self.new_object(); }); @@ -5190,18 +5192,18 @@ instance.web.form.FieldBinaryFile = instance.web.form.FieldBinary.extend({ } }, render_value: function() { + var show_value; if (!this.get("effective_readonly")) { - var show_value; if (this.node.attrs.filename) { show_value = this.view.datarecord[this.node.attrs.filename] || ''; } else { - show_value = (this.get('value') != null && this.get('value') !== false) ? this.get('value') : ''; + show_value = (this.get('value') !== null && this.get('value') !== undefined && this.get('value') !== false) ? this.get('value') : ''; } this.$el.find('input').eq(0).val(show_value); } else { this.$el.find('a').toggle(!!this.get('value')); if (this.get('value')) { - var show_value = _t("Download") + show_value = _t("Download") if (this.view) show_value += " " + (this.view.datarecord[this.node.attrs.filename] || ''); this.$el.find('a').text(show_value); @@ -5553,11 +5555,12 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({ on_click_stage: function (ev) { var self = this; var $li = $(ev.currentTarget); + var val; if (this.field.type == "many2one") { - var val = parseInt($li.data("id")); + val = parseInt($li.data("id"), 10); } else { - var val = $li.data("id"); + val = $li.data("id"); } if (val != self.get('value')) { this.view.recursive_save().done(function() { |
