From f7109dac6b3e611171ef3e5c9bf1cdd5934dec66 Mon Sep 17 00:00:00 2001 From: Mr Snow Date: Thu, 3 Oct 2013 15:39:29 +1000 Subject: [PATCH] Respect maximum size. --- js/jquery.multiDialog.js | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/js/jquery.multiDialog.js b/js/jquery.multiDialog.js index 0a4ecd5..05eb07e 100644 --- a/js/jquery.multiDialog.js +++ b/js/jquery.multiDialog.js @@ -170,7 +170,7 @@ function MultiDialog(){ // loading handler loadingHandler: function( data ){ this.isLoading = true; - this._defaultHandler( "

Loading content, please wait!

", "Loading...", data ); + this._defaultHandler( "

Loading...

", "Loading...", data ); }, // error handler @@ -548,7 +548,7 @@ $.extend( MultiDialog.prototype, { _createDialog: function( data ) { var that = this, // get size - size = this._getSize( data ); + size = this._getMaximumSize( data ); // prepare wrapper elements this.uiDialog = $( "
" ); @@ -772,8 +772,31 @@ $.extend( MultiDialog.prototype, { }; }, - _setSize: function( data ) { + _getMaximumSize: function( data ) { var size = this._getSize( data ); + if ( this.options.dialog.maxWidth ) { + var max_width = this.options.dialog.maxWidth; + var max_height = this.options.dialog.maxHeight; + if ( isNaN(max_width) && max_width.indexOf('%') ) { + max_width = parseInt(max_width) / 100 * $(window).width(); + } + if ( isNaN(max_height) && max_height.indexOf('%') ) { + max_height = parseInt(max_height) / 100 * $(window).height(); + } + if ( size.width > max_width ) { + size.height = parseInt(size.height * max_width / size.width); + size.width = parseInt(max_width); + } + } + if ( size.height > max_height ) { + size.width = parseInt(size.width * max_height / size.height); + size.height = parseInt(max_height); + } + return size; + }, + + _setSize: function( data ) { + var size = this._getMaximumSize( data ); this.uiDialog.dialog( "changeSize", size.width, size.height ); },