[IMP]hide and show of inherited view and reduce code.
bzr revid: vme@tinyerp.com-20111003094931-4jsh8rwmum4ak0z1
This commit is contained in:
parent
654478b811
commit
5e07d121a6
|
@ -143,7 +143,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
|
||||||
return {"main_object":main_object,"parent_child_id":parent_child_id};
|
return {"main_object":main_object,"parent_child_id":parent_child_id};
|
||||||
},
|
},
|
||||||
|
|
||||||
parse_xml :function(arch){
|
parse_xml :function(arch,view_id){
|
||||||
var self = this;
|
var self = this;
|
||||||
var root = $(arch).filter(":first")[0];
|
var root = $(arch).filter(":first")[0];
|
||||||
var tag = root.tagName.toLowerCase();
|
var tag = root.tagName.toLowerCase();
|
||||||
|
@ -156,7 +156,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
|
||||||
var view_id =(($("input[name='radiogroup']:checked").parent()).parent()).attr('data-id');
|
var view_id =(($("input[name='radiogroup']:checked").parent()).parent()).attr('data-id');
|
||||||
var ve_dataset = new openerp.web.DataSet(this,'ir.ui.view');
|
var ve_dataset = new openerp.web.DataSet(this,'ir.ui.view');
|
||||||
ve_dataset.read_ids([parseInt(view_id)],['arch'],function (arch){
|
ve_dataset.read_ids([parseInt(view_id)],['arch'],function (arch){
|
||||||
one_object = self.parse_xml(arch[0].arch);
|
one_object = self.parse_xml(arch[0].arch,view_id);
|
||||||
one_object.arch = arch[0].arch;
|
one_object.arch = arch[0].arch;
|
||||||
dataset = new openerp.web.DataSetSearch(self,'ir.ui.view', null, null);
|
dataset = new openerp.web.DataSetSearch(self,'ir.ui.view', null, null);
|
||||||
dataset.read_slice([],{domain : [['inherit_id','=',parseInt(view_id)]]},function (result) {
|
dataset.read_slice([],{domain : [['inherit_id','=',parseInt(view_id)]]},function (result) {
|
||||||
|
@ -181,7 +181,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
|
||||||
xpath_list.push(root[0]);
|
xpath_list.push(root[0]);
|
||||||
}
|
}
|
||||||
_.each(xpath_list,function(element){
|
_.each(xpath_list,function(element){
|
||||||
var xpath_object = self.parse_xml(element);
|
var xpath_object = self.parse_xml(element,result.id);
|
||||||
var expr = $(element).attr('expr');
|
var expr = $(element).attr('expr');
|
||||||
var position = $(element).attr('position');
|
var position = $(element).attr('position');
|
||||||
part_expr = expr.split("/");
|
part_expr = expr.split("/");
|
||||||
|
@ -192,39 +192,47 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
|
||||||
}
|
}
|
||||||
if(part_expr[part_expr.length-1].search("@")!=-1){
|
if(part_expr[part_expr.length-1].search("@")!=-1){
|
||||||
var part = part_expr[part_expr.length-1];
|
var part = part_expr[part_expr.length-1];
|
||||||
var pp = $.trim(part.replace(/[^a-zA-Z 0-9 _]+/g,' ')).split(" ");
|
var xpath_list = $.trim(part.replace(/[^a-zA-Z 0-9 _]+/g,' ')).split(" ");
|
||||||
|
one_object['parent_child_id'].push(xpath_object['parent_child_id'][0]);
|
||||||
$.each(one_object['main_object'], function(key,val) {
|
$.each(one_object['main_object'], function(key,val) {
|
||||||
self.search_object(val,pp,[],position,xpath_object['main_object']);
|
var id = self.search_object(val,xpath_list,[],position,xpath_object['main_object'],[]);
|
||||||
|
_.detect(one_object['parent_child_id'],function(res){
|
||||||
|
if(res.key==id){
|
||||||
|
res.value.push(xpath_object['main_object'][0].id);
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
search_object:function(val,list,p_list,position,xpath_object){
|
search_object:function(val,list,p_list,position,xpath_object,r_list){
|
||||||
var self = this;
|
var self = this;
|
||||||
var pp = $.trim(val.name.replace(/[^a-zA-Z 0-9 _]+/g,' ')).split(" ");
|
var return_list = r_list;
|
||||||
var insert = _.intersection(pp,list);
|
var main_list = $.trim(val.name.replace(/[^a-zA-Z 0-9 _]+/g,' ')).split(" ");
|
||||||
if(insert.length == list.length){
|
var insert = _.intersection(main_list,list);
|
||||||
var level = val.level;
|
var check = _.indexOf(p_list.child_id,xpath_object[0]);
|
||||||
$.each(xpath_object, function(key,val) {
|
if(check == -1){
|
||||||
self.increase_level(val,level)
|
if(insert.length == list.length){
|
||||||
});
|
var level = val.level;
|
||||||
var index = _.indexOf(p_list.child_id,val);
|
$.each(xpath_object, function(key,val) {
|
||||||
if(position == "before"){
|
self.increase_level(val,level)
|
||||||
if(index!=0){index--;}
|
});
|
||||||
}else if(position == "after"){
|
var index = _.indexOf(p_list.child_id,val);
|
||||||
index++;
|
if(position == "before"){
|
||||||
}
|
if(index!=0){index--;}
|
||||||
var check = _.indexOf(p_list.child_id,xpath_object[0]);
|
}else if(position == "after"){
|
||||||
if(check == -1){
|
index++;
|
||||||
|
}
|
||||||
p_list.child_id.splice(index,0,xpath_object[0]);
|
p_list.child_id.splice(index,0,xpath_object[0]);
|
||||||
return val.id;
|
return_list.push(p_list.id);
|
||||||
|
}else{
|
||||||
|
if(val.child_id.length!=0){p_list = val;}
|
||||||
|
$.each(val.child_id, function(key,val) {
|
||||||
|
self.search_object(val,list,p_list,position,xpath_object,return_list);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}else{
|
|
||||||
if(val.child_id.length!=0){p_list = val;}
|
|
||||||
$.each(val.child_id, function(key,val) {
|
|
||||||
self.search_object(val,list,p_list,position,xpath_object);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
return return_list;
|
||||||
},
|
},
|
||||||
increase_level :function(val,level){
|
increase_level :function(val,level){
|
||||||
var self = this;
|
var self = this;
|
||||||
|
@ -268,7 +276,8 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
|
||||||
self.on_expand(this);
|
self.on_expand(this);
|
||||||
}else{
|
}else{
|
||||||
$(this).attr('src', '/web/static/src/img/collapse.gif');
|
$(this).attr('src', '/web/static/src/img/collapse.gif');
|
||||||
self.on_collapse(this,one_object['parent_child_id']);
|
var id = this.id.split('-')[1];
|
||||||
|
self.on_collapse(this,one_object['parent_child_id'],one_object['main_object']);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$("img[id^='side-']").click(function() {
|
$("img[id^='side-']").click(function() {
|
||||||
|
@ -363,7 +372,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
|
||||||
}else return nxt_tr;
|
}else return nxt_tr;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
on_collapse: function(self,parent_child_id,id){
|
on_collapse: function(self,parent_child_id,id,main_object){
|
||||||
var id = self.id.split('-')[1];
|
var id = self.id.split('-')[1];
|
||||||
var datas = _.detect(parent_child_id,function(res){
|
var datas = _.detect(parent_child_id,function(res){
|
||||||
return res.key == id;
|
return res.key == id;
|
||||||
|
|
Loading…
Reference in New Issue