[MERGE]merge with main branch.
authorVidhin Mehta (OpenERP) <vme@tinyerp.com>
Fri, 11 Nov 2011 05:37:03 +0000 (11:07 +0530)
committerVidhin Mehta (OpenERP) <vme@tinyerp.com>
Fri, 11 Nov 2011 05:37:03 +0000 (11:07 +0530)
bzr revid: vme@tinyerp.com-20111111053703-r8gx2w67t0w38jp7

1  2 
addons/web/static/src/js/view_editor.js

@@@ -572,10 -560,10 +574,10 @@@ openerp.web.ViewEditor =   openerp.web.
                  var value = _.detect(arch_val[0]['att_list'],function(res) {
                      return _.include(res, id);
                  });
-                 if (id == 'groups') type_widget.value = self.groups;
+                 if (id == 'groups') type_widget.selection = self.groups;
                  self.edit_node_dialog.$element.find('table[id=rec_table]').append('<tr><td align="right">'+id+':</td><td>'+type_widget.render()+'</td></tr>');
                  type_widget.start();
 -                type_widget.set_value(value)
 +                type_widget.set_value(value);
                  self.edit_widget.push(type_widget);
              });
          });
                  });
              })
          return def.promise();
 +    },
 +    on_add_node: function(properties,fields){
 +        var self = this;
 +        var  positions = ['After','Before','Inside'];
 +        var  render_list = [];
 +        render_list.push(["node_type",(_.keys(_CHILDREN)).sort()]);
 +        render_list.push(["position",positions]);
 +        render_list.push(["Fields",fields]);
 +        this.edit_widget = [];
 +        this.add_node_dialog = new openerp.web.Dialog(this,{
 +            modal: true,
 +            title: 'Properties',
 +            width: 500,
 +            height: 300,
 +            buttons: {
 +                    "Update": function(){
 +                        var update_values = [];
 +                        _.each(self.edit_widget, function(widget) {
-                             if (widget.dirty) {
-                                 update_values.push(widget.get_value());
-                             }
++                            update_values.push(widget.get_value());
 +                        });
 +                    },
 +                    "Cancel": function(){
 +                        self.add_node_dialog.close();
 +                    }
 +           }
 +        }).start().open();
 +        this.add_node_dialog.$element.
 +        append('<table id="rec_table"  style="width:400px" class="oe_forms"></table>');
 +        var table_selector = self.add_node_dialog.$element.find('table[id=rec_table]');
 +        _.each(render_list,function(node){
 +            type_widget = new openerp.web.ViewEditor.FieldSelect (self.add_node_dialog, node[0]);
-             type_widget.value = node[1];
++            type_widget.selection = node[1];
 +            if(node[0]=="Fields"){ node[0] = "";}
 +            table_selector.append('<tr><td align="right">'+node[0]+'</td><td>'+type_widget.render()+'</td></tr>');
 +            type_widget.start();
 +            self.edit_widget.push(type_widget);
 +        });
 +        table_selector.append('<tr><td align="right"> <button id="new_field">New Field</button></td></tr>');
 +        self.add_node_dialog.$element.find("select[id=node_type] option[value=field]").attr("selected",1);
 +        
 +        self.add_node_dialog.$element.find('#new_field').click(function() {
 +            //to do
 +        });
      }
  });
  openerp.web.ViewEditor.Field = openerp.web.Class.extend({
@@@ -713,10 -655,6 +712,11 @@@ openerp.web.ViewEditor.FieldSelect = op
          var self = this;
          this.$element.find("select[id=" + this.name + "]").css('width', '100%').change(function() {
              self.on_ui_change();
 +            add_node = self.get_value();
-             if(add_node[0] == "node_type" && add_node[1] == "field" ){
-                 self.$element.find("select[id=Fields]").show();
-             }else{self.$element.find("select[id=Fields]").hide();}
++            if(add_node[0] == "node_type"){
++                if(add_node[1] == "field"){self.$element.find("select[id=Fields]").show();}
++                else{self.$element.find("select[id=Fields]").hide();}
++            }
          });
      },
      set_value: function(value) {