this.parent = parent
this.dataset = dataset;
this.model = dataset.model;
- this.fields_views = view;
+ this.xml_id = 0;
},
start: function() {
-
+ this.View_editor();
+ },
+ View_editor : function(){
var self = this;
var action = {
name:'ViewEditor',
height: 500,
buttons: {
"Create": function(){
- $(this).dialog('destroy');
+
},
"Edit": function(){
- self.Edit_view();
+ self.xml_id=0;
+ self.edit_view();
},
- " Close": function(){
+ "Close": function(){
+ $(this).dialog('destroy');
}
},
this.dialog.open();
action_manager.appendTo(this.dialog);
action_manager.do_action(action);
- },
- Edit_view : function(){
-
+
+ },
+ check_attr:function(xml,tag){
+ var obj = new Object();
+ obj.child_id = [];
+ obj.id = this.xml_id++;
+ var att_list = [];
+ var name1 = "<" + tag;
+ $(xml).each(function() {
+ att_list = this.attributes;
+ att_list = _.select(att_list, function(attrs){
+ if(attrs.nodeName == "string" || attrs.nodeName == "name" || attrs.nodeName == "index"){
+ name1 += ' ' +attrs.nodeName+'='+'"'+attrs.nodeValue+'"';}
+ });
+ name1+= ">";
+ });
+ obj.name = name1;
+ return obj;
+ },
+ recursiveFunction : function(main_object,parent_id,child_id){
+ var self = this;
+ var check = false;
+ var main_object = _.detect(main_object , function(node){
+ if(node.id == parent_id){
+ node.child_id = child_id;
+ check = true;
+ }
+ return main_object;
+ });
+ if(check){
+ return main_object;
+ }else{
+ //todo recursion for saving object into objects
+ }
+ },
+ children_function : function(xml,root,main_object,parent_id){
+ var self = this;
+ var child_obj_list = [];
+ var main_object = main_object;
+ var children_list = $(xml).filter(root).children();
+ _.each(children_list, function(child_node){
+ var string = self.check_attr(child_node,child_node.tagName.toLowerCase());
+ child_obj_list.push(string);
+ });
+ if(children_list.length != 0){
+ main_object = self.recursiveFunction(main_object,parent_id,child_obj_list);
+ }
+ for(var i=0;i<children_list.length;i++){
+ self.children_function(children_list[i],children_list[i].tagName.toLowerCase(),main_object,child_obj_list[i].id);
+ }
+ return child_obj_list;
+ },
+ edit_view : function(){
+ var self = this;
+ var view_id =(($("input[name='radiogroup']:checked").parent()).parent()).attr('data-id');
+ var ve_dataset = new openerp.base.DataSet(this,'ir.ui.view');
+ ve_dataset.read_ids([parseInt(view_id)],['arch'],function (arch) {
+ var arch = arch[0].arch;
+ var root = $(arch).filter(":first")[0];
+ var tag = root.tagName.toLowerCase();
+ var root_object = self.check_attr(root,tag);
+ var all_list = self.children_function(arch,tag,[root_object],root_object.id);
+
+ //todo render the final object of tree view so xml with it child node display...
+ });
this.dialog = new openerp.base.Dialog(this,{
modal: true,
title: 'Edit Xml',
},
"Close": function(){
$(this).dialog('destroy');
-
}
},
});
this.dialog.start().open();
-
}
});