odoo.define('web_dialog_size.web_dialog_size', function (require) { 'use strict'; var rpc = require('web.rpc'); var Dialog = require('web.Dialog'); var config = rpc.query({ model: 'ir.config_parameter', method: 'get_web_dialog_size_config', }); Dialog.include({ willStart: function () { var self = this; return this._super.apply(this, arguments).then(function () { self.$modal.find('.dialog_button_extend').on('click', self.proxy('_extending')); self.$modal.find('.dialog_button_restore').on('click', self.proxy('_restore')); return config.done(function(r) { if (r.default_maximize) { self._extending(); } else { self._restore(); } }); }); }, opened: function(handler) { return this._super.apply(this, arguments).then(function(){ if (this.$modal) { this.$modal.draggable({ handle: '.modal-header', helper: false }); } }.bind(this)); }, close: function() { if (this.$modal) { var draggable = this.$modal.draggable("instance"); if (draggable) { this.$modal.draggable("destroy"); } } return this._super.apply(this, arguments); }, _extending: function() { var dialog = this.$modal.find('.modal-dialog'); dialog.addClass('dialog_full_screen'); dialog.find('.dialog_button_extend').hide(); dialog.find('.dialog_button_restore').show(); }, _restore: function() { var dialog = this.$modal.find('.modal-dialog'); dialog.removeClass('dialog_full_screen'); dialog.find('.dialog_button_restore').hide(); dialog.find('.dialog_button_extend').show(); }, }); });