[IMP]make condition for when to update view in add node.

bzr revid: vme@tinyerp.com-20111111100232-6l0rhp55dn2e53q1
This commit is contained in:
Vidhin Mehta (OpenERP) 2011-11-11 15:32:32 +05:30
parent 6bf24d1890
commit e6eb7c15fc
1 changed files with 26 additions and 14 deletions

View File

@ -74,10 +74,6 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
return (node.getAttribute('name'))?
_.sprintf( "<%s name='%s'>",node.tagName.toLowerCase(), node.getAttribute('name')):
_.sprintf( "<%s>",node.tagName.toLowerCase());
}else if(node.tagName.toLowerCase() == "group"){
return (node.getAttribute('string'))?
_.sprintf( "<%s>",node.getAttribute('string')):
_.sprintf( "<%s>",node.tagName.toLowerCase());
}else{
return (node.getAttribute('string'))?
_.sprintf( "<%s string='%s'>",node.tagName.toLowerCase(), node.getAttribute('string')):
@ -338,15 +334,20 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
}
switch (this.id) {
case "side-add":
var tr = $(this).closest("tr[id^='viewedit-']").find('a').text();
var tag = _.detect(_.keys(_CHILDREN),function(res){
return _.includes(tr, res);
});
var tr = $(side).find('a').text();
var parent_tr = ($(side).prevAll("tr[level="+String(clicked_tr_level - 1)+"]"))[0];
parent_tr = $(parent_tr).find('a').text();
self.rpc("/web/searchview/fields_get", {model:self.model}, function(result) {
var fields = _.keys(result.fields);
fields.push(" ");
fields.sort();
self.on_add_node(_CHILDREN[tag],fields);
fields.push(" "),fields.sort();
var property_to_check = [];
_.each([tr,parent_tr],function(element){
property_to_check.push(
_.detect(_.keys(_CHILDREN),function(res){
return _.includes(element, res);
}));
});
self.on_add_node(property_to_check, fields);
});
break;
case "side-remove":
@ -630,10 +631,22 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
height: 300,
buttons: {
"Update": function(){
var update_values = [];
var node_type,position,fields;
var check_add_node = true;
_.each(self.edit_widget, function(widget) {
update_values.push(widget.get_value());
(widget.name == "node_type")?node_type = widget.get_value()[1]:false;
(widget.name == "position")?position = widget.get_value()[1]:false;
(widget.name == "Fields")?fields = widget.get_value()[1]:false;
});
(position == "Inside")?
check_add_node =(_.include(_CHILDREN[properties[0]],node_type))?true:false:
check_add_node =(_.include(_CHILDREN[properties[1]],node_type))?true:false;
if(node_type == "field" && check_add_node )
{check_add_node = (fields != " ")?true:false;
}
if(check_add_node){
var tag = _.sprintf("<%s></%s>",node_type,node_type);
}else{alert("Can't Update View");}
},
"Cancel": function(){
self.add_node_dialog.close();
@ -653,7 +666,6 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
});
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
});