summaryrefslogtreecommitdiff
path: root/addons/base/static/src
diff options
context:
space:
mode:
authorBhumi Thakkar (Open ERP) <bth@tinyerp.com>2011-06-08 19:07:06 +0530
committerBhumi Thakkar (Open ERP) <bth@tinyerp.com>2011-06-08 19:07:06 +0530
commit2e8aafae5066a758a3b6bf83448237a6b4b74a82 (patch)
tree67845250ccb6e2a376a8fc5f215612e7ace7aaf4 /addons/base/static/src
parent4b15c43c4336f597819e3f446b1cce93e77a9e8f (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.js105
-rw-r--r--addons/base/static/src/xml/base.xml6
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"/>