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({
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) {