[IMP]add node to xml according to its position.

bzr revid: vme@tinyerp.com-20111111133002-5shh06ts8vjumhqo
This commit is contained in:
Vidhin Mehta (OpenERP) 2011-11-11 19:00:02 +05:30
parent 412fd0e8c5
commit 81e8bce5a1
1 changed files with 31 additions and 8 deletions

View File

@ -70,6 +70,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
}); });
}, },
add_node_name : function(node) { add_node_name : function(node) {
console.log("node",node);
if(node.tagName.toLowerCase() == "button" || node.tagName.toLowerCase() == "field"){ if(node.tagName.toLowerCase() == "button" || node.tagName.toLowerCase() == "field"){
return (node.getAttribute('name'))? return (node.getAttribute('name'))?
_.sprintf( "<%s name='%s'>",node.tagName.toLowerCase(), node.getAttribute('name')): _.sprintf( "<%s name='%s'>",node.tagName.toLowerCase(), node.getAttribute('name')):
@ -347,7 +348,8 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
return _.includes(element, res); return _.includes(element, res);
})); }));
}); });
self.on_add_node(property_to_check, fields); self.on_add_node(property_to_check, fields ,
clicked_tr_id, one_object, view_id, view_xml_id, clicked_tr_level);
}); });
break; break;
case "side-remove": case "side-remove":
@ -491,19 +493,35 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
}else{ }else{
$(arch1).attr(val[0],val[1]); $(arch1).attr(val[0],val[1]);
} }
console.log("typeof",typeof arch1,arch1);
}); });
var new_obj = self.create_View_Node(arch1); var new_obj = self.create_View_Node(arch1);
new_obj.id = obj.id,new_obj.child_id = obj.child_id; new_obj.id = obj.id,new_obj.child_id = obj.child_id;
self.edit_xml_dialog.$element.find("tr[id='viewedit-"+id+"']").find('a').text(new_obj.name); self.edit_xml_dialog.$element.find("tr[id='viewedit-"+id+"']").find('a').text(new_obj.name);
child_list.splice(index, 1, new_obj); child_list.splice(index, 1, new_obj);
}else if(move_direct == "add_node"){
console.log(arch1,obj, update_values);
$(arch1).add(update_values[0]);
//self.create_View_Node(arch1); object not created here
switch (update_values[1]) {
case "After":
$(arch1).after(update_values[0]);
break;
case "Before":
$(arch1).before(update_values[0]);
break;
case "Inside":
$(arch1).append(update_values[0]);
break;
}
} }
var parent = $(arch1).parents(); var parent = $(arch1).parents();
var convert_to_utf = QWeb.tools.xml_node_to_string(parent[parent.length-1]); var convert_to_utf = QWeb.tools.xml_node_to_string(parent[parent.length-1]);
convert_to_utf = convert_to_utf.replace('xmlns="http://www.w3.org/1999/xhtml"', ""); convert_to_utf = convert_to_utf.replace('xmlns="http://www.w3.org/1999/xhtml"', "");
convert_to_utf = '<?xml version="1.0"?>' + convert_to_utf; convert_to_utf = '<?xml version="1.0"?>' + convert_to_utf;
arch.arch = convert_to_utf; arch.arch = convert_to_utf;
this.dataset.write(parseInt(view_id),{"arch":convert_to_utf}, function(r) { /*this.dataset.write(parseInt(view_id),{"arch":convert_to_utf}, function(r) {
}); });*/
} }
if (obj.level <= level) { if (obj.level <= level) {
_.each(list_obj_xml, function(child_node) { _.each(list_obj_xml, function(child_node) {
@ -616,8 +634,9 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
}) })
return def.promise(); return def.promise();
}, },
on_add_node: function(properties,fields){ on_add_node: function(properties,fields,clicked_tr_id, one_object, view_id, view_xml_id, clicked_tr_level){
var self = this; var self = this;
console.log()
var positions = ['After','Before','Inside']; var positions = ['After','Before','Inside'];
var render_list = []; var render_list = [];
render_list.push(["node_type",(_.keys(_CHILDREN)).sort()]); render_list.push(["node_type",(_.keys(_CHILDREN)).sort()]);
@ -631,21 +650,25 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
height: 300, height: 300,
buttons: { buttons: {
"Update": function(){ "Update": function(){
var node_type,position,fields; var node_type,position,field_value;
var check_add_node = true; var check_add_node = true;
_.each(self.edit_widget, function(widget) { _.each(self.edit_widget, function(widget) {
(widget.name == "node_type")?node_type = widget.get_value()[1]:false; (widget.name == "node_type")?node_type = widget.get_value()[1]:false;
(widget.name == "position")?position = widget.get_value()[1]:false; (widget.name == "position")?position = widget.get_value()[1]:false;
(widget.name == "Fields")?fields = widget.get_value()[1]:false; (widget.name == "Fields")?field_value = widget.get_value()[1]:false;
}); });
(position == "Inside")? (position == "Inside")?
check_add_node =(_.include(_CHILDREN[properties[0]],node_type))?true:false: check_add_node =(_.include(_CHILDREN[properties[0]],node_type))?true:false:
check_add_node =(_.include(_CHILDREN[properties[1]],node_type))?true:false; check_add_node =(_.include(_CHILDREN[properties[1]],node_type))?true:false;
if(node_type == "field" && check_add_node ) if(node_type == "field" && check_add_node )
{check_add_node = (fields != " ")?true:false; {check_add_node = (field_value != " ")?true:false;
} }
if(check_add_node){ if(check_add_node){
var tag = _.sprintf("<%s></%s>",node_type,node_type); var tag = (node_type == "field")?
_.sprintf("<%s name='%s'> ",node_type,field_value,node_type):
_.sprintf("<%s>",node_type,node_type);
self.do_save_update_arch(one_object, view_id, view_xml_id,
clicked_tr_id, clicked_tr_level, "add_node", [tag, position]);
}else{alert("Can't Update View");} }else{alert("Can't Update View");}
}, },
"Cancel": function(){ "Cancel": function(){