summaryrefslogtreecommitdiff
path: root/addons/base/static/src
diff options
context:
space:
mode:
authorBhumi Thakkar (Open ERP) <bth@tinyerp.com>2011-06-15 14:40:11 +0530
committerBhumi Thakkar (Open ERP) <bth@tinyerp.com>2011-06-15 14:40:11 +0530
commit4ea132637477dc93cfcbe20b261d8ba5f463fb1c (patch)
tree9a659591e58cf5c4bcbca7b0cad6e8b6a52c35c0 /addons/base/static/src
parent70177ae696e986a37a4cc3b7b726b0231c630a47 (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.css3
-rw-r--r--addons/base/static/src/js/tree.js45
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();
}