From 7f80626fc49cc73c4e62b8dd0e5cc8eceb322081 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Wed, 6 Apr 2016 20:33:56 +0200 Subject: [PATCH] [IMP] web_dialog_size: Select default dialog size by config * [IMP] web_dialog_size: Put dialog size expanded by default * [REM] web_popup_large: By duplication of the functionality * [IMP] web_dialog_size: README and contributors * [ADD] configuration parameter for default behavior [FIX] return super's promise [IMP] use fontawesome icons for buttons --- web_dialog_size/README.rst | 27 ++++---- web_dialog_size/__openerp__.py | 5 +- .../static/src/css/web_dialog_size.css | 14 ++-- .../static/src/js/web_dialog_size.js | 68 +++++++++++++------ .../static/src/xml/web_dialog_size.xml | 11 +-- 5 files changed, 77 insertions(+), 48 deletions(-) diff --git a/web_dialog_size/README.rst b/web_dialog_size/README.rst index f508aa0a..c7e30bf0 100644 --- a/web_dialog_size/README.rst +++ b/web_dialog_size/README.rst @@ -1,19 +1,16 @@ Expand Dialog ============= -A module that lets the user expand a dialog box to the full screen width. +A module that lets the user expand/restore the dialog box size through a button +in the upper right corner (mimicking most windows managers). By default, +all dialog boxes are expanded. -It is named web_dialog_size as it could be extended to propose other dialog size management feature. - - -Bug Tracker -=========== - -Bugs are tracked on `GitHub Issues `_. -In case of trouble, please check there if your issue has already been reported. -If you spotted it first, help us smashing it by providing a detailed and welcomed feedback -`here `_. +Configuration +============= +By default, the module respects the caller's `dialog_size` option. If you want +to override this and have all dialogs maximized by default, set the configuration +parameter `web_dialog_size.default_maximize` to `1`. Credits ======= @@ -23,6 +20,8 @@ Contributors * Anthony Muschang * Stéphane Bidoul +* Pedro M. Baeza +* Holger Brunn Maintainer ---------- @@ -33,6 +32,8 @@ Maintainer This module is maintained by the OCA. -OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. -To contribute to this module, please visit http://odoo-community.org. \ No newline at end of file +To contribute to this module, please visit http://odoo-community.org. diff --git a/web_dialog_size/__openerp__.py b/web_dialog_size/__openerp__.py index e0d53fb1..a1d3db35 100644 --- a/web_dialog_size/__openerp__.py +++ b/web_dialog_size/__openerp__.py @@ -28,7 +28,10 @@ A module that lets the user expand a dialog box to the full screen width.""", - 'author': "ACSONE SA/NV,Odoo Community Association (OCA)", + 'author': "ACSONE SA/NV," + "Serv. Tecnol. Avanzados - Pedro M. Baeza," + "Therp BV," + "Odoo Community Association (OCA)", 'website': "http://acsone.eu", 'category': 'web', diff --git a/web_dialog_size/static/src/css/web_dialog_size.css b/web_dialog_size/static/src/css/web_dialog_size.css index 10fba0f0..74f829ec 100644 --- a/web_dialog_size/static/src/css/web_dialog_size.css +++ b/web_dialog_size/static/src/css/web_dialog_size.css @@ -1,17 +1,15 @@ .modal .modal-header button.dialog_button_extend { - padding-top: 0px; padding-right: 3px; } .modal .modal-header button.dialog_button_restore { - padding-top: 1px; - padding-right: 5px; -} - -.modal .modal-header .dialog_button_hide { - display: none; + padding-right: 3px; } .dialog_full_screen { width: calc(100% - 50px); -} \ No newline at end of file +} + +.modal .modal-header button.close { + font-size: 14px; +} diff --git a/web_dialog_size/static/src/js/web_dialog_size.js b/web_dialog_size/static/src/js/web_dialog_size.js index d1d0299c..c2d1910c 100644 --- a/web_dialog_size/static/src/js/web_dialog_size.js +++ b/web_dialog_size/static/src/js/web_dialog_size.js @@ -1,34 +1,58 @@ openerp.web_dialog_size= function (instance) { instance.web.Dialog = instance.web.Dialog.extend({ - init_dialog: function () { - var self = this; - this._super(); - self.$dialog_box.find('.dialog_button_restore').addClass('dialog_button_hide'); - if (this.dialog_options.size !== 'large'){ - self.$dialog_box.find('.dialog_button_extend').addClass('dialog_button_hide'); - } - else{ - self.$dialog_box.find('.dialog_button_extend').on('click', self._extending); - self.$dialog_box.find('.dialog_button_restore').on('click', self._restore); + var self = this, + result = this._super(); + self.$dialog_box.find('.dialog_button_extend') + .on('click', self.proxy('_extending')); + self.$dialog_box.find('.dialog_button_restore') + .on('click', self.proxy('_restore')); + if(this.dialog_options.size == 'large') + { + self._extending(); + return result; } + return jQuery.when(result).then(function() + { + var deferred = null; + if(openerp.web_dialog_size.default_maximize === undefined) + { + deferred = (new openerp.web.Model('ir.config_parameter')) + .call('get_param', + ['web_dialog_size.default_maximize']) + .then(function(default_maximize) + { + openerp.web_dialog_size.default_maximize = + default_maximize; + }); + } + return jQuery.when(deferred).then(function() + { + if(openerp.web_dialog_size.default_maximize) + { + self._extending(); + } + else + { + self._restore(); + } + }); + }); }, - _extending: function() { - var self = this; - $(this).parents('.modal-dialog').addClass('dialog_full_screen'); - $(this).addClass('dialog_button_hide'); - - $(this).parents('.modal-dialog').find('.dialog_button_restore').removeClass('dialog_button_hide') + _extending: function(e) { + var dialog = this.$el.parents('.modal-dialog'); + dialog.addClass('dialog_full_screen'); + dialog.find('.dialog_button_extend').hide(); + dialog.find('.dialog_button_restore').show(); }, - _restore: function() { - var self = this; - $(this).parents('.modal-dialog').removeClass('dialog_full_screen'); - $(this).addClass('dialog_button_hide'); - - $(this).parents('.modal-dialog').find('.dialog_button_extend').removeClass('dialog_button_hide') + _restore: function(e) { + var dialog = this.$el.parents('.modal-dialog'); + dialog.removeClass('dialog_full_screen'); + dialog.find('.dialog_button_restore').hide(); + dialog.find('.dialog_button_extend').show(); }, }); diff --git a/web_dialog_size/static/src/xml/web_dialog_size.xml b/web_dialog_size/static/src/xml/web_dialog_size.xml index 1808dd2a..51e6fd6a 100644 --- a/web_dialog_size/static/src/xml/web_dialog_size.xml +++ b/web_dialog_size/static/src/xml/web_dialog_size.xml @@ -1,9 +1,12 @@ - - - + + + + + + - \ No newline at end of file +