From 4ff34a98bcefa96c908baae1646a5af8acd21913 Mon Sep 17 00:00:00 2001 From: Joren Van Onder Date: Tue, 19 Apr 2016 09:30:00 +0200 Subject: [PATCH] [FIX] point_of_sale: adapt to Chrome 50's new handling of cell heights Forward-port of saas-6 77dae4c9c54ac8341867f7b382a9be564f23d716. Chrome 50 treats percent-height divs inside of auto-height cells as auto [1]. So from now on it's important that an explicit 'height: 100%' CSS property is set on parent tds, otherwise you'll end up with elements with a height of 0. An extra difficulty is that this new height property on subwindow-container will result in the element being as high as his parent table. So the collapsed trick doesn't work anymore in the customer list. This has to be done conditionally. The proposed workaround of adding 100% height to parents of affected elements causes issues in IE/Edge because the effect of adding a height in percent to a table-{cell,row} element is not defined by CSS [2]. [1] https://chromium.googlesource.com/chromium/src/+/8876584335b48c99cf8df552ef4d8efebb131041 [2] http://stackoverflow.com/a/27384730 --- addons/point_of_sale/static/src/css/chrome50.css | 6 ++++++ addons/point_of_sale/static/src/css/pos.css | 3 +++ addons/point_of_sale/static/src/js/chrome.js | 9 +++++++++ addons/point_of_sale/static/src/xml/pos.xml | 2 +- 4 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 addons/point_of_sale/static/src/css/chrome50.css diff --git a/addons/point_of_sale/static/src/css/chrome50.css b/addons/point_of_sale/static/src/css/chrome50.css new file mode 100644 index 00000000000..67ecddccfde --- /dev/null +++ b/addons/point_of_sale/static/src/css/chrome50.css @@ -0,0 +1,6 @@ +.pos .screen .content-cell{ + height: 100%; +} +.pos .subwindow .subwindow-container{ + height: 100%; +} \ No newline at end of file diff --git a/addons/point_of_sale/static/src/css/pos.css b/addons/point_of_sale/static/src/css/pos.css index 42372a7fb6f..26594dd7214 100644 --- a/addons/point_of_sale/static/src/css/pos.css +++ b/addons/point_of_sale/static/src/css/pos.css @@ -198,6 +198,9 @@ td { .pos .window .subwindow.collapsed{ height: 0px; } +.pos .window .subwindow-container .collapsed{ + height: 0px; +} .pos .subwindow .subwindow-container{ display: table-cell; position: relative; diff --git a/addons/point_of_sale/static/src/js/chrome.js b/addons/point_of_sale/static/src/js/chrome.js index f260dd03d71..926fe23eee7 100644 --- a/addons/point_of_sale/static/src/js/chrome.js +++ b/addons/point_of_sale/static/src/js/chrome.js @@ -6,6 +6,7 @@ var gui = require('point_of_sale.gui'); var keyboard = require('point_of_sale.keyboard'); var models = require('point_of_sale.models'); var core = require('web.core'); +var ajax = require('web.ajax'); var CrashManager = require('web.CrashManager'); @@ -478,6 +479,14 @@ var Chrome = PosBaseWidget.extend({ build_chrome: function() { var self = this; FastClick.attach(document.body); + + if ($.browser.chrome) { + var chrome_version = $.browser.version.split('.')[0]; + if (parseInt(chrome_version, 10) >= 50) { + ajax.loadCSS('/point_of_sale/static/src/css/chrome50.css'); + } + } + this.renderElement(); this.$('.pos-logo').click(function(){ diff --git a/addons/point_of_sale/static/src/xml/pos.xml b/addons/point_of_sale/static/src/xml/pos.xml index 737d99c68c1..1f53f2b3ac0 100644 --- a/addons/point_of_sale/static/src/xml/pos.xml +++ b/addons/point_of_sale/static/src/xml/pos.xml @@ -437,7 +437,7 @@