diff options
| author | Bhumi Thakkar (Open ERP) <bth@tinyerp.com> | 2011-06-08 19:07:06 +0530 |
|---|---|---|
| committer | Bhumi Thakkar (Open ERP) <bth@tinyerp.com> | 2011-06-08 19:07:06 +0530 |
| commit | 2e8aafae5066a758a3b6bf83448237a6b4b74a82 (patch) | |
| tree | 67845250ccb6e2a376a8fc5f215612e7ace7aaf4 /addons/base/static/src | |
| parent | 4b15c43c4336f597819e3f446b1cce93e77a9e8f (diff) | |
[IMP]Implements collapse functionality.
bzr revid: bth@tinyerp.com-20110608133706-9zrkl4jx7fcqrngc
Diffstat (limited to 'addons/base/static/src')
| -rw-r--r-- | addons/base/static/src/js/tree.js | 105 | ||||
| -rw-r--r-- | addons/base/static/src/xml/base.xml | 6 |
2 files changed, 77 insertions, 34 deletions
diff --git a/addons/base/static/src/js/tree.js b/addons/base/static/src/js/tree.js index 2858c5e444b..853b470386c 100644 --- a/addons/base/static/src/js/tree.js +++ b/addons/base/static/src/js/tree.js @@ -2,6 +2,7 @@ openerp.base.tree = function(openerp) { openerp.base.views.add('tree', 'openerp.base.TreeView'); openerp.base.TreeView = openerp.base.View.extend({ init: function(view_manager, session, element_id, dataset, view_id, options) { + this._super(session, element_id); this.view_manager = view_manager || new openerp.base.NullViewManager(); this.dataset = dataset; @@ -25,21 +26,26 @@ openerp.base.TreeView = openerp.base.View.extend({ var self = this; this.dataset.read_slice([], 0, false, function (response) { self.$element.html(QWeb.render('TreeView', {'field_data':response})); + id=self.dataset.ids[0]; self.dataset.domain=[['parent_id','=',parseInt(id,10)]]; self.dataset.read_slice([], 0, false, function (response) { $('#parent_id').change(self.getch(($('#parent_id').attr('value')),0)); self.$element.append(QWeb.render('TreeView_Secondry', {'child_data':response})); + $('#child_id').find('div').click(function(){ - if(jQuery('#child_id').find('#'+(this.id)).find('#subchild').length==0){ - self.getch(this.id,1); - } + if($('#'+this.id).parent().attr('id')=="child_id"){ + if(jQuery('#child_id').find('#'+(this.id)).find('#subchild').length==0){ + //console.log('in load'); + self.getch(this.id,1); + } + } }); }); }); }, getch: function(id,flag) { - + //console.log(flag); var self=this; if(flag==0){ $('#parent_id').change(function(){ @@ -53,7 +59,9 @@ openerp.base.TreeView = openerp.base.View.extend({ } }, on_change:function(parentid,flag){ + var self=this; + if(parentid>0){ this.dataset.domain=[['parent_id','=',parseInt(parentid,10)]]; this.dataset.read_slice([],0,false, function (response) { @@ -72,39 +80,74 @@ openerp.base.TreeView = openerp.base.View.extend({ jQuery('#subchild #'+parentid).find("#childimg").attr("src", "/base/static/src/img/collapse.gif"); $("#subchild #"+parentid).append(QWeb.render('TreeView_SubChildren', {'subchilddata':response})) $("#subchild #"+parentid).find('#childsubchild').show(); - } - + /*for(var i=0;i<$('#child_id > div').length;i++){ + console.log($('#child_id:nth-child('+i+') ')); + }*/ + //console.log($('#child_id > div').slice().attr('id')); + // subclass + //$('#child_id').find('.childclass').click(function(){ + if(flag==0){ + //console.log('in flag 0'); $('#child_id').find('div').click(function(){ - var pathimg=jQuery('#child_id').find('#'+(this.id)).find("#parentimg").attr("src"); - if(pathimg=='/base/static/src/img/collapse.gif'){ - jQuery('#child_id').find('#'+(this.id)).find('#parentimg').attr('src','/base/static/src/img/expand.gif'); - //jQuery('#subchild').find('#'+(this.id)).find('#childsubchild').hide(); - //jQuery('#child_id').find('#'+(this.id)).find('#subchild').css('display','none'); - } - else if(pathimg=='/base/static/src/img/expand.gif'){ - if(jQuery('#child_id').find('#'+(this.id)).find('#subchild').length==0){ - self.getch(this.id,1); - } - } + if($('#'+this.id).parent().attr('id')=="child_id"){ + var pathimg=jQuery('#child_id').find('#'+(this.id)).find("#parentimg").attr("src"); + if(pathimg=='/base/static/src/img/collapse.gif'){ + $(('#'+this.id)+'> div').hide(); + jQuery('#child_id').find('#'+(this.id)).find('#parentimg').attr('src','/base/static/src/img/expand.gif'); + } + else if(pathimg=='/base/static/src/img/expand.gif'){ + if(jQuery('#child_id').find('#'+(this.id)).find('#subchild').length==0){ + self.getch(this.id,1); + }else{ + $(('#'+this.id)+'> div').show(); + jQuery('#child_id').find('#'+(this.id)).find('#parentimg').attr('src','/base/static/src/img/collapse.gif'); + } + } + } }); - - $('#child_id div #subchild').find('div').click(function(){ - if(jQuery('#subchild').find('#'+(this.id)).find('#childsubchild').length==0){ - self.getch(this.id,2); - }else if((jQuery('#subchild').find('#'+(this.id)).find('#childimg').attr('src'))=='/base/static/src/img/collapse.gif'){ - jQuery('#subchild').find('#'+(this.id)).find('#childimg').attr('src','/base/static/src/img/expand.gif'); - //jQuery('#subchild').find('#'+(this.id)).find('#childsubchild').hide(); - jQuery('#subchild').find('#'+(this.id)).find('#childsubchild').css('display','none'); + } + $('#child_id div #subchild').find('div').click(function(){ + var childimg=jQuery('#subchild').find('#'+(this.id)).find("#childimg").attr("src"); + if(childimg=='/base/static/src/img/collapse.gif'){ + $('#'+this.id).find('#childsubchild').hide(); + jQuery('#subchild').find('#'+(this.id)).find('#childimg').attr('src','/base/static/src/img/expand.gif'); + }else if(childimg=='/base/static/src/img/expand.gif'){ + /* console.log('in else of subchild div'); + if($('#'+(this.id)).find('#childsubchild').css('display')=='none'){ + console.log('in else-else of subchild div'); + $(('#'+this.id)+'> div').show(); + jQuery('#subchild').find('#'+(this.id)).find('#childimg').attr('src','/base/static/src/img/collapse.gif'); }else{ - jQuery('#subchild').find('#'+(this.id)).find('#childsubchild').css('display','block'); - //jQuery('#subchild').find('#'+(this.id)).find('#childsubchild').show(); - }/*else{ - jQuery('#subchild').find('#'+(this.id)).find('#childimg').attr('src','/base/static/src/img/expand.gif'); - jQuery('#subchild').find('#'+(this.id)).find('#childsubchild').hide(); + self.getch(this.id,2); }*/ - }); + if(jQuery('#subchild').find('#'+(this.id)).find('#childsubchild').length==0){ + //console.log('in else-if of subchild div'); + self.getch(this.id,2); + }else{ + //console.log('in else-else of subchild div'); + $(('#'+this.id)+'> div').show(); + jQuery('#subchild').find('#'+(this.id)).find('#childimg').attr('src','/base/static/src/img/collapse.gif'); + } + } + + /*if(jQuery('#subchild').find('#'+(this.id)).find('#childsubchild').length==0){ + self.getch(this.id,2); + }else if((jQuery('#subchild').find('#'+(this.id)).find('#childimg').attr('src'))=='/base/static/src/img/collapse.gif'){ + jQuery('#subchild').find('#'+(this.id)).find('#childimg').attr('src','/base/static/src/img/expand.gif'); + //jQuery('#subchild').find('#'+(this.id)).find('#childsubchild').hide(); + jQuery('#subchild').find('#'+(this.id)).find('#childsubchild').css('display','none'); + }else{ + jQuery('#subchild').find('#'+(this.id)).find('#childsubchild').css('display','block'); + //jQuery('#subchild').find('#'+(this.id)).find('#childsubchild').show(); + }*/ /*else{ + jQuery('#subchild').find('#'+(this.id)).find('#childimg').attr('src','/base/static/src/img/expand.gif'); + jQuery('#subchild').find('#'+(this.id)).find('#childsubchild').hide(); + }*/ + }); + + }); } }, diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index 2a6a29d6aa5..e109dae7030 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -242,7 +242,7 @@ <t t-name="TreeView_Secondry"> <div id="child_id"> <t t-foreach="child_data" t-as="field" > - <div t-att-id="field.id"> + <div t-att-id="field.id" class="childclass"> <t t-if="(field.child_id).length>=1"> <img id="parentimg" src="/base/static/src/img/expand.gif" width="16" height="16" border="0"/> </t> @@ -264,7 +264,7 @@ <t t-name="TreeView_Children"> <div id="subchild" style="display:none"> <t t-foreach="childdata" t-as="child" > - <div t-att-id="child.id" > + <div t-att-id="child.id" class="subclass"> <t t-if="(child.child_id).length>=1"> <img id="childimg" src="/base/static/src/img/expand.gif" width="16" height="16" border="0"/> </t> @@ -275,7 +275,7 @@ </t> <t t-name="TreeView_SubChildren"> <div id="childsubchild" style="display:none"> - <t t-foreach="subchilddata" t-as="subchild" > + <t t-foreach="subchilddata" t-as="subchild" class="subchildclass"> <div t-att-id="subchild.id" > <t t-if="(subchild.child_id).length>=1"> <img id="subchildimg" src="/base/static/src/img/expand.gif" width="16" height="16" border="0"/> |
