From 5e3a533f39f7783c4b3d29c0453601c2f0c48a75 Mon Sep 17 00:00:00 2001 From: "Yogesh (OpenERP)" Date: Wed, 9 Nov 2011 13:22:06 +0530 Subject: [PATCH] [IMP] vieweditor :- improve code in edit widget class. bzr revid: ysa@tinyerp.com-20111109075206-s2k6s8t9n8ik1qu3 --- addons/web/static/src/js/view_editor.js | 124 ++++++++++++------------ addons/web/static/src/xml/base.xml | 9 +- 2 files changed, 71 insertions(+), 62 deletions(-) diff --git a/addons/web/static/src/js/view_editor.js b/addons/web/static/src/js/view_editor.js index b2b6b07324c..78efb3055a4 100644 --- a/addons/web/static/src/js/view_editor.js +++ b/addons/web/static/src/js/view_editor.js @@ -557,14 +557,14 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ } else { type_widget = new openerp.web.ViewEditor.FieldChar (self.edit_node_dialog,arch_val, id); } - self.edit_widget.push(type_widget); - self.edit_node_dialog.$element.find('table[id=rec_table]').append(''+id+':'+type_widget.render()+''); - var view_val = _.detect(arch_val[0]['att_list'],function(res) { + var value = _.detect(arch_val[0]['att_list'],function(res) { return _.include(res, id); }); - var value = null; - id == 'groups'? type_widget.set_value(self.groups, view_val): type_widget.set_value(value, view_val); + if (id == 'groups') type_widget.value = self.groups; + self.edit_node_dialog.$element.find('table[id=rec_table]').append(''+id+':'+type_widget.render()+''); type_widget.start(); + type_widget.set_value(value) + self.edit_widget.push(type_widget); }); }); }, @@ -593,7 +593,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ .read_slice([],{domain:[['res_id', 'in', group_ids],['model','=','res.groups']]}) .done(function(model_grp) { _.each(model_grp,function(res_group){ - groups.push([res_group.name,group_names[res_group.res_id]]); + groups.push([res_group.module + "." + res_group.name,group_names[res_group.res_id]]); }); self.groups = groups; def.resolve(); @@ -608,6 +608,7 @@ openerp.web.ViewEditor.Field = openerp.web.Class.extend({ this.node = node; this.dirty = false; this.name = id; + this.value = undefined; }, on_ui_change: function() { this.dirty = true; @@ -624,9 +625,9 @@ openerp.web.ViewEditor.FieldBoolean = openerp.web.ViewEditor.Field.extend({ self.on_ui_change(); }); }, - set_value: function(value,view_val) { - if (view_val) { - this.$element.find("input[id=" + this.name+ "]").attr('checked', view_val[1]); + set_value: function(value) { + if (value) { + this.$element.find("input[id=" + this.name+ "]").attr('checked', value[1]); } }, get_value: function() { @@ -645,8 +646,8 @@ openerp.web.ViewEditor.FieldChar = openerp.web.ViewEditor.Field.extend({ self.on_ui_change(); }); }, - set_value: function(value,view_val) { - view_val ? this.$element.find("input[id=" + this.name + "]").val(view_val[1]): this.$element.find("tr[id=" + this.name + "] input").val(); + set_value: function(value) { + value ? this.$element.find("input[id=" + this.name + "]").val(value[1]): this.$element.find("tr[id=" + this.name + "] input").val(); }, get_value: function() { if (!this.dirty) { @@ -664,16 +665,14 @@ openerp.web.ViewEditor.FieldSelect = openerp.web.ViewEditor.Field.extend({ self.on_ui_change(); }); }, - set_value: function(value, view_val) { - var self = this; - _.each(value, function(item) { - var select_val = view_val? (view_val[1] == ((typeof(item) == 'string')? item:item[0])?true: false): false; - self.$element.find("select[id=" + self.name + "]").append($("