diff options
| author | Frédéric van der Essen <fva@openerp.com> | 2012-10-05 16:49:33 +0200 |
|---|---|---|
| committer | Frédéric van der Essen <fva@openerp.com> | 2012-10-05 16:49:33 +0200 |
| commit | 8fc09c1c7818613ef5d849bbd113df6e0a9d9b0e (patch) | |
| tree | 01d13d69fa63b5d265d9ea89c490e1e9b0fc2ceb /addons/web/static/src | |
| parent | a280aa6d81288bed3bf7756c20826153a3a4c69f (diff) | |
| parent | 050f8daa8c2c37df585e04f6175c050de6bfed7f (diff) | |
[MERGE] from trunk
bzr revid: fva@openerp.com-20121005144933-zvtkq24i1188rsny
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/chrome.js | 8 | ||||
| -rw-r--r-- | addons/web/static/src/js/view_form.js | 29 | ||||
| -rw-r--r-- | addons/web/static/src/js/views.js | 4 |
3 files changed, 24 insertions, 17 deletions
diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 01bfb63a580..fe5812a9dd9 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -886,8 +886,8 @@ instance.web.UserMenu = instance.web.Widget.extend({ var self = this; if (!this.getParent().has_uncommitted_changes()) { self.rpc("/web/action/load", { action_id: "base.action_res_users_my" }, function(result) { - result.result.res_id = instance.session.uid; - self.getParent().action_manager.do_action(result.result); + result.res_id = instance.session.uid; + self.getParent().action_manager.do_action(result); }); } }, @@ -1121,7 +1121,7 @@ instance.web.WebClient = instance.web.Client.extend({ var self = this; return this.rpc("/web/action/load", { action_id: options.action_id }) .pipe(function (result) { - var action = result.result; + var action = result; if (options.needaction) { action.context.search_default_needaction_pending = true; } @@ -1166,7 +1166,7 @@ instance.web.EmbeddedClient = instance.web.Client.extend({ return $.when(this._super()).pipe(function() { return instance.session.session_authenticate(self.dbname, self.login, self.key, true).pipe(function() { return self.rpc("/web/action/load", { action_id: self.action_id }, function(result) { - var action = result.result; + var action = result; action.flags = _.extend({ //views_switcher : false, search_view : false, diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 4d69e07489a..3319177d325 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -1212,7 +1212,7 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt this.$form.appendTo(this.$target); - _.each(this.fields_to_init, function($elem) { + var ws = _.map(this.fields_to_init, function($elem) { var name = $elem.attr("name"); if (!self.fvg.fields[name]) { throw new Error("Field '" + name + "' specified in view could not be found."); @@ -1228,7 +1228,10 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt } self.alter_field(w); self.view.register_field(w, $elem.attr("name")); - w.replace($elem); + return [w, $elem]; + }); + _.each(ws, function(w) { + w[0].replace(w[1]); }); _.each(this.tags_to_init, function($elem) { var tag_name = $elem[0].tagName.toLowerCase(); @@ -1578,6 +1581,10 @@ instance.web.form.DefaultFieldManager = instance.web.Widget.extend({ this._super(parent); this.field_descs = {}; this.eval_context = eval_context || {}; + this.set({ + display_invalid_fields: false, + actual_mode: 'create', + }); }, get_field_desc: function(field_name) { if (this.field_descs[field_name] === undefined) { @@ -1780,11 +1787,13 @@ instance.web.form.FormWidget = instance.web.Widget.extend(instance.web.form.Invi this.field_manager.on("view_content_has_changed", this, this.process_modifiers); - this.set({required: this.modifiers['required'] === true}); + this.set({ + required: false, + readonly: false, + }); // some events to make the property "effective_readonly" sync automatically with "readonly" and // "mode" on field_manager var self = this; - this.set({"readonly": this.modifiers['readonly'] === true}); var test_effective_readonly = function() { self.set({"effective_readonly": self.get("readonly") || self.field_manager.get("actual_mode") === "view"}); }; @@ -1793,6 +1802,7 @@ instance.web.form.FormWidget = instance.web.Widget.extend(instance.web.form.Invi test_effective_readonly.call(this); }, renderElement: function() { + this.process_modifiers(); this._super(); this.$el.addClass(this.node.attrs["class"] || ""); }, @@ -3975,6 +3985,7 @@ instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({ disable_utility_classes: true, init: function(field_manager, node) { this._super(field_manager, node); + this.set({"value": []}); this.is_loaded = $.Deferred(); this.initial_is_loaded = this.is_loaded; this.is_setted = $.Deferred(); @@ -4601,18 +4612,14 @@ instance.web.form.FieldReference = instance.web.form.AbstractField.extend(instan } }, destroy_content: function() { - if (this.selection) { - this.selection.destroy(); - this.selection = undefined; - } - if (this.m2o) { - this.m2o.destroy(); - this.m2o = undefined; + if (this.fm) { + this.fm.destroy(); } }, initialize_content: function() { var self = this; var fm = new instance.web.form.DefaultFieldManager(this); + this.fm = fm; fm.extend_field_desc({ "selection": { selection: this.field_manager.get_field_desc(this.name).selection, diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 99f4d3e35e8..a166865476a 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -231,7 +231,7 @@ instance.web.ActionManager = instance.web.Widget.extend({ } else if (_.isNumber(action) || _.isString(action)) { var self = this; return self.rpc("/web/action/load", { action_id: action }).pipe(function(result) { - return self.do_action(result.result, on_close, clear_breadcrumbs, on_reverse_breadcrumb); + return self.do_action(result, on_close, clear_breadcrumbs, on_reverse_breadcrumb); }); } if (!action.type) { @@ -1223,7 +1223,7 @@ instance.web.View = instance.web.Widget.extend({ }; if (action_data.special) { - return handler({result: {"type":"ir.actions.act_window_close"}}); + return handler({"type":"ir.actions.act_window_close"}); } else if (action_data.type=="object") { var args = [[record_id]], additional_args = []; if (action_data.args) { |
