diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 6b334f10c15..07861d4e6e8 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -347,3 +347,32 @@ width: 100%; white-space: nowrap; } +.openerp2 .oe_form_group_cell { + position: relative; +} +.openerp2 .oe_form_group_cell .oe_field_char, .openerp2 .oe_form_group_cell .oe_form_field_selection select { + width: 99%; +} +.openerp2 .oe_form_group_cell .oe_form_field_selection select { + min-width: 90px; +} +.openerp2 .oe_layout_debugging .oe_form_group { + border: 1px solid red; +} +.openerp2 .oe_layout_debugging .oe_form_group_cell { + border: 1px solid blue; + padding-bottom: 1em; +} +.openerp2 .oe_layout_debugging .oe_layout_debug_cell { + position: absolute; + color: white; + bottom: 0; + left: 0; + background: green; +} +.openerp2 .oe_layout_debugging .oe_layout_debug_cell { + display: block; +} +.openerp2 .oe_layout_debug_cell { + display: none; +} diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index fe9408c18a1..746bc5d32b4 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -340,6 +340,28 @@ $colour4: #8a89ba .oe_form_button width: 100% white-space: nowrap + .oe_form_group_cell + position: relative + .oe_field_char, .oe_form_field_selection select + width: 99% + .oe_form_field_selection select + min-width: 90px + .oe_layout_debugging + .oe_form_group + border: 1px solid red + .oe_form_group_cell + border: 1px solid blue + padding-bottom: 1em + .oe_layout_debug_cell + position: absolute + color: white + bottom: 0 + left: 0 + background: green + .oe_layout_debug_cell + display: block + .oe_layout_debug_cell + display: none // }}} .openerp diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index a7684712d1f..c03d75f59f8 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -758,6 +758,17 @@ openerp.web.FormRenderingEngine = openerp.web.Widget.extend({ w.replace($elem); } }); + $('').appendTo(this.$element).click(this.do_toggle_layout_debugging); + }, + do_toggle_layout_debugging: function() { + if (!this.$element.has('.oe_layout_debug_cell:first').length) { + this.$element.find('.oe_form_group_cell').each(function() { + var $span = $('').text($(this).attr('width')); + $span.prependTo($(this)); + }); + } + this.$element.toggleClass('oe_layout_debugging'); + }, process_any: function($tag) { var self = this; @@ -858,6 +869,7 @@ openerp.web.FormRenderingEngine = openerp.web.Widget.extend({ // Now compute width of cells $table.find('tbody > tr').each(function() { var to_compute = [], + row_cols = cols, total = 100; $(this).children().each(function() { var $td = $(this), @@ -867,13 +879,13 @@ openerp.web.FormRenderingEngine = openerp.web.Widget.extend({ if ($child.attr('orientation') === 'vertical') { $td.addClass('oe_vertical_separator').attr('width', '1'); $td.empty(); - cols--; + row_cols--; } break; case 'label': if ($child.attr('for')) { $td.attr('width', '1%'); - cols--; + row_cols--; total--; } break; @@ -881,7 +893,7 @@ openerp.web.FormRenderingEngine = openerp.web.Widget.extend({ to_compute.push($td); } }); - var unit = Math.floor(total / cols); + var unit = Math.floor(total / row_cols); _.each(to_compute, function($td, i) { var width = parseInt($td.attr('colspan'), 10) * unit; $td.attr('width', ((i == to_compute.length - 1) ? total : width) + '%'); diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 069f48fb48e..3f5e067285c 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -948,7 +948,7 @@