[IMP] remove bunch of crummy padding-fiddling JS, replace with slightly less crummy (but still pretty bad) padding code in template + CSS

bzr revid: xmo@openerp.com-20110809112527-tb4ycvd6d254duvn
This commit is contained in:
Xavier Morel
2011-08-09 13:25:27 +02:00
parent 605326208d
commit 680aeb0ae2
3 changed files with 48 additions and 105 deletions
+7 -11
View File
@@ -1076,22 +1076,18 @@ background: linear-gradient(top, #ffffff 0%,#ebe9e9 100%); /* W3C */
font-size: 1.2em;
font-weight: bold;
}
.mouse-over {
color: #0000FF;
}
.treeview-tr {
.treeview-tr, .treeview-td {
cursor: pointer;
text-align: left;
vertical-align: top;
}
.treeview-td {
text-align: left;
vertical-align: top;
padding-left: 15px;
}
.treeview-td:first-of-type span {
padding-left: 21px;
}
.treeview-header {
text-align: left;
padding-left: 15px;
padding-left: 21px;
font-weight: bold;
vertical-align: top;
}
}
+18 -72
View File
@@ -71,7 +71,9 @@ openerp.base.TreeView = openerp.base.View.extend({
this.dataset.read_slice(this.fields_list(), 0, false, function (records) {
self.$element.html(QWeb.render('TreeView', {
'title': self.fields_view.arch.attrs.string
'title': self.fields_view.arch.attrs.string,
'fields_view': self.fields_view.arch.children,
'fields': self.fields
}));
var $select = self.$element.find('select')
.change(function () {
@@ -122,7 +124,7 @@ openerp.base.TreeView = openerp.base.View.extend({
});
},
// get child data of selected value
getdata: function (id, children_ids, flag) {
getdata: function (id, children_ids) {
var self = this;
self.dataset.read_ids(children_ids, this.fields_list(), function (records) {
@@ -130,80 +132,24 @@ openerp.base.TreeView = openerp.base.View.extend({
self.records[record.id] = record;
});
var is_padding, row_id;
var curr_node = $('tr #treerow_' + id);
var $curr_node = self.$element.find('#treerow_' + id);
var children_rows = QWeb.render('TreeView.rows', {
'records': records,
'children_field': self.children_field,
'fields_view': self.fields_view.arch.children,
'field': self.fields,
'level': $curr_node.data('level') || 0
});
if (curr_node.length == 1) {
curr_node.find('td:first').children(':first-child').attr('src','/base/static/src/img/collapse.gif');
curr_node.after(QWeb.render('TreeView.rows', {
'records': records,
'children_field': self.children_field,
'fields_view' : self.fields_view.arch.children,
'field' : self.fields
}));
for (var i = 0; i < records.length; i++) {
row_id = $('tr #treerow_' + records[i].id);
if (row_id && row_id.find('td:first').children(':first-child').attr('id') == 'parentimg_' + records[i].id) {
row_id.find('td:first').append('<span>'+row_id.find('td:eq(1)').text()+'</span>');
row_id.find('td:eq(1)').remove();
is_padding = true;
}
}
var padding = curr_node.find('td').css('paddingLeft');
var padd = parseInt(padding.replace('px',''), 10);
var fixpadding;
for (var i = 0; i < records.length; i++) {
row_id = $('tr #treerow_' + records[i].id);
if (row_id) {
if (!is_padding) {
fixpadding = padd + 40;
row_id.find('td:first').css('paddingLeft', fixpadding);
} else {
if (padd == 1) {
fixpadding = padd + 17;
} else {
fixpadding = padd + 20;
}
var curr_node_elem = row_id.find('td:first');
curr_node_elem.children(':first-child').addClass("parent_top");
if (curr_node_elem.children(':first-child').attr('id') == "parentimg_" + records[i].id) {
curr_node_elem.css('paddingLeft', fixpadding );
} else {
curr_node_elem.css('paddingLeft', (fixpadding + 20));
}
}
}
}
if ($curr_node.length) {
$curr_node.find('td:first > :first-child').attr('src','/base/static/src/img/collapse.gif');
$curr_node.after(children_rows);
} else {
if (!flag) {
self.$element.find('table').remove();
}
self.$element.append(QWeb.render('TreeView.architecture', {
'records': records,
'children_field': self.children_field,
'fields_view': self.fields_view.arch.children,
'fields': self.fields
}));
self.$element.find('tr[id ^= treerow_]').each( function() {
if ($(this).find('td:first').children(':first-child').attr('id')) {
$(this).find('td:first').append('<span>' + $(this).find('td:eq(1)').text() + '</span>');
$(this).find('td:eq(1)').remove();
}
$(this).find('td').children(':first-child').addClass("parent_top");
if (!($(this).find('td').children(':first-child').attr('id'))) {
$(this).find('td:first').css('paddingLeft', '20px');
}
});
self.$element.find('tbody').html(children_rows);
}
self.$element.find('tr[id ^= treerow_]').find('td').children(':last-child').click( function(e) {
row_id = $(this).parent().parent().attr('id');
self.$element.find('tr[id ^= treerow_] td > :last-child').click( function(e) {
var row_id = $(this).parent().parent().attr('id');
var record_id = row_id.split('_')[1];
self.showrecord(record_id, self.model);
e.stopImmediatePropagation();
+23 -22
View File
@@ -240,35 +240,36 @@
<h2 class="oe_view_title"><t t-esc="title"/></h2>
<select name="parent" style="width: 30%">
</select>
<table>
<thead>
<tr>
<th t-foreach="fields_view" t-as="field"
t-if="!field.attrs.modifiers.tree_invisible"
class="treeview-header">
<t t-esc="fields[field.attrs.name].string" />
</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</t>
<table t-name="TreeView.architecture">
<thead>
<tr>
<th t-foreach="fields_view" t-as="field"
t-if="!field.attrs.modifiers.tree_invisible"
class="treeview-header">
<t t-esc="fields[field.attrs.name].string" />
</th>
</tr>
</thead>
<tbody>
<t t-call="TreeView.rows"/>
</tbody>
</table>
<tr t-name="TreeView.rows"
t-foreach="records" t-as="record"
t-att-id="'treerow_' + record.id">
t-att-id="'treerow_' + record.id"
t-att-data-level="level + 1">
<t t-set="children" t-value="record[children_field]"/>
<td t-if="children and children.length"
class="treeview-tr">
<img t-att-id="'parentimg_' + record.id"
<t t-set="has_children" t-value="children and children.length"/>
<td t-foreach="fields_view" t-as="field"
t-if="!field.attrs.modifiers.tree_invisible"
t-att-style="!field_index ? 'padding-left: ' + 19*level + 'px' : undefined"
t-att-class="!field_index and has_children ? 'treeview-tr' : 'treeview-td'">
<img t-if="!field_index and has_children"
t-att-id="'parentimg_' + record.id"
t-att-data-id="record.id"
src="/base/static/src/img/expand.gif"
width="16" height="16" border="0"/>
</td>
<td t-foreach="fields_view" t-as="field"
t-if="!field.attrs.modifiers.tree_invisible"
class="treeview-td">
<span t-if="!field.attrs.modifiers.invisible">
<t t-esc="record[field.attrs.name]" />
</span>