diff options
| author | Bhumi Thakkar (Open ERP) <bth@tinyerp.com> | 2011-06-15 14:40:11 +0530 |
|---|---|---|
| committer | Bhumi Thakkar (Open ERP) <bth@tinyerp.com> | 2011-06-15 14:40:11 +0530 |
| commit | 4ea132637477dc93cfcbe20b261d8ba5f463fb1c (patch) | |
| tree | 9a659591e58cf5c4bcbca7b0cad6e8b6a52c35c0 /addons/base/static/src | |
| parent | 70177ae696e986a37a4cc3b7b726b0231c630a47 (diff) | |
[FIX]Collapsing for multilevel child & indentation of parent-child node
bzr revid: bth@tinyerp.com-20110615091011-rga72omvbva1ufec
Diffstat (limited to 'addons/base/static/src')
| -rw-r--r-- | addons/base/static/src/css/base.css | 3 | ||||
| -rw-r--r-- | addons/base/static/src/js/tree.js | 45 |
2 files changed, 43 insertions, 5 deletions
diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index 681dba3e1af..3b98ac57bbe 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -1030,3 +1030,6 @@ background: linear-gradient(top, #ffffff 0%,#ebe9e9 100%); /* W3C */ .openerp .oe-m2o-disabled-cm { color: grey; } +.parent_top { + vertical-align: text-top; +}
\ No newline at end of file diff --git a/addons/base/static/src/js/tree.js b/addons/base/static/src/js/tree.js index cdee2e1b809..2d2887d8201 100644 --- a/addons/base/static/src/js/tree.js +++ b/addons/base/static/src/js/tree.js @@ -42,6 +42,7 @@ openerp.base.TreeView = openerp.base.View.extend({ // get child data of selected value getdata: function (id, flag) { var self = this; + var paddingflag = 0; self.dataset.domain = [['parent_id', '=', parseInt(id, 10)]]; self.dataset.read_slice([], 0, false, function (response) { if (($('tr #treerow_' + id).length) == 1) { @@ -60,12 +61,39 @@ openerp.base.TreeView = openerp.base.View.extend({ for (i in response) { if ($('tr #treerow_' + response[i].id)) { childlen = $('tr #treerow_' + response[i].id).find('td').length; + if ($('tr #treerow_' + response[i].id).find('td:eq('+ (childlen - 2) +')').find('#parentimg').length > 0){ + paddingflag=1; + } + } + } + + tdlen = $('tr #treerow_' + id).find('td').length; + paddingno = $('tr #treerow_' + id).find('td:eq('+ (tdlen - 1) +')').css('paddingLeft'); + padd = paddingno.split('px'); + for (i in response) { + if ($('tr #treerow_' + response[i].id)) { + childlen = $('tr #treerow_' + response[i].id).find('td').length; textoftd = $('tr #treerow_' + response[i].id).find('td:eq('+ (childlen - 1) +')').text(); - if ($('tr #treerow_' + response[i].id).find('td:eq('+ (childlen - 2) +')').find('#parentimg').length > 0) { - $('tr #treerow_' + response[i].id).find('td:eq('+ (childlen - 2) +')').css({ paddingLeft : '2px' }); - $('tr #treerow_' + response[i].id).find('td:eq('+ (childlen - 2) +')').find('#parentimg').addClass("parent_top"); + if (paddingflag == 0) { + if (parseInt(padd[0], 10) == 1) { + fix = (parseInt(padd[0], 10) + 20); + } else { + fix = (parseInt(padd[0], 10) + 40); + } + $('tr #treerow_' + response[i].id).find('td:eq('+ (childlen - 2) +')').css({ paddingLeft : fix }); + } else { - $('tr #treerow_' + response[i].id).find('td:eq('+ (childlen - 2) +')').css({ paddingLeft : '35px' }); + if (parseInt(padd[0], 10) == 1) { + fix = (parseInt(padd[0],10) + 2); + } else { + fix = (parseInt(padd[0], 10) + 20); + } + if ($('tr #treerow_' + response[i].id).find('td:eq('+ (childlen - 2) +')').find('#parentimg').length == 0) { + $('tr #treerow_' + response[i].id).find('td:eq('+ (childlen - 2) +')').css({ paddingLeft : (fix+20) }); + }else{ + $('tr #treerow_' + response[i].id).find('td:eq('+ (childlen - 2) +')').find('#parentimg').addClass("parent_top"); + $('tr #treerow_' + response[i].id).find('td:eq('+ (childlen - 2) +')').css({ paddingLeft : fix }); + } } $('tr #treerow_' + response[i].id).find('td:eq('+ (childlen - 2) +')').attr('colspan', '2'); $('tr #treerow_' + response[i].id).find('td:eq('+ (childlen - 2) +')').append(textoftd); @@ -122,7 +150,8 @@ openerp.base.TreeView = openerp.base.View.extend({ // show & hide the contents showcontent: function (id, flag, childid) { - var self=this; + var self = this; + var subchildids = ""; if (flag == 1) { $('tr #treerow_' + id).find('td #parentimg').attr('src', '/base/static/src/img/expand.gif'); } @@ -138,12 +167,18 @@ openerp.base.TreeView = openerp.base.View.extend({ if (childimg == "/base/static/src/img/collapse.gif") { $('tr #treerow_' + childid[i]).find('td').find('#parentimg').attr('src','/base/static/src/img/expand.gif'); } + self.dataset.read_slice([], 0, false, function (response) { for (j in response) { if (jQuery('tr #treerow_' + response[j].id).length > 0) { jQuery('tr #treerow_' + response[j].id).hide(); + subchildids = response[j].child_id; + if (subchildids.length > 0) { + self.showcontent(response[j].id, 1, subchildids); + } } } + }); jQuery ('tr #treerow_' + childid[i]).hide(); } |
