2727
2828 <http://opensource.org/licenses/MIT>.
2929
30- CHANGES IN 2.5.5:
31- + option.ajax bugfix (unnecessary get requests)
30+ CHANGES IN 2.6.0:
31+ + new options onbeforeclose, onclosed
32+ + new options onbeforemaximize, onmaximized
33+ + new options onbeforeminimize, onminimized
34+ + new options onbefornormalize, onnormalized
3235 */
3336
3437"use strict" ;
@@ -42,7 +45,7 @@ if (!$.fn.jquery || !$.fn.uniqueId || !$.widget || !$.ui.mouse || !$.ui.draggabl
4245}
4346
4447var jsPanel = {
45- version : '2.5.5 2015-10-08 15:47 ' ,
48+ version : '2.6.0 2015-12-04 14:15 ' ,
4649 device : ( function ( ) {
4750 try {
4851 // requires "mobile-detect.js" to be loaded
@@ -314,6 +317,12 @@ var jsPanel = {
314317 var context = panel . parent ( ) ,
315318 panelID = panel . attr ( 'id' ) ;
316319 panel . trigger ( 'jspanelbeforeclose' , panelID ) ;
320+ if ( $ . isFunction ( panel . option . onbeforeclose ) ) {
321+ var close = panel . option . onbeforeclose . call ( panel , panel ) ;
322+ if ( close === false ) {
323+ return panel ;
324+ }
325+ }
317326 // delete childpanels ...
318327 this . closeChildpanels ( panel ) ;
319328 // if present remove tooltip wrapper
@@ -339,6 +348,9 @@ var jsPanel = {
339348 jsPanel . reposHints ( "jsPanel-hint-tr" , panel . parentElmtTagname ) ;
340349 }
341350 }
351+ if ( $ . isFunction ( panel . option . onclosed ) ) {
352+ panel . option . onclosed . call ( panel , panel ) ;
353+ }
342354 return context ;
343355 } ,
344356
@@ -808,19 +820,34 @@ var jsPanel = {
808820 // calls functions to maximize a jsPanel
809821 maximize : function ( panel ) {
810822 panel . trigger ( 'jspanelbeforemaximize' , panel . attr ( 'id' ) ) ;
823+ if ( $ . isFunction ( panel . option . onbeforemaximize ) ) {
824+ var maximize = panel . option . onbeforemaximize . call ( panel , panel ) ;
825+ if ( maximize === false ) {
826+ return panel ;
827+ }
828+ }
811829 if ( panel . parentElmtTagname === 'body' || panel . option . controls . maxtoScreen === true ) {
812830 this . maxWithinBody ( panel ) ;
813831 } else {
814832 this . maxWithinElement ( panel ) ;
815833 }
816834 panel . trigger ( 'jspanelmaximized' , panel . attr ( 'id' ) ) ;
817835 panel . trigger ( 'jspanelstatechange' , panel . attr ( 'id' ) ) ;
836+ if ( $ . isFunction ( panel . option . onmaximized ) ) {
837+ panel . option . onmaximized . call ( panel , panel ) ;
838+ }
818839 return panel ;
819840 } ,
820841
821842 // minimizes a jsPanel to the lower left corner of the browser viewport
822843 minimize : function ( panel ) {
823844 panel . trigger ( 'jspanelbeforeminimize' , panel . attr ( 'id' ) ) ;
845+ if ( $ . isFunction ( panel . option . onbeforeminimize ) ) {
846+ var minimize = panel . option . onbeforeminimize . call ( panel , panel ) ;
847+ if ( minimize === false ) {
848+ return panel ;
849+ }
850+ }
824851 panel . data ( { // needed for method exportPanels()
825852 "paneltop" : parseInt ( panel . option . position . top ) ,
826853 "panelleft" : parseInt ( panel . option . position . left ) ,
@@ -850,6 +877,9 @@ var jsPanel = {
850877 } ) ;
851878 }
852879 } ) ;
880+ if ( $ . isFunction ( panel . option . onminimized ) ) {
881+ panel . option . onminimized . call ( panel , panel ) ;
882+ }
853883 return panel ;
854884 } ,
855885
@@ -879,6 +909,12 @@ var jsPanel = {
879909 var panelTop ,
880910 interactions = [ "resizable" , "draggable" ] ;
881911 panel . trigger ( 'jspanelbeforenormalize' , panel . attr ( 'id' ) ) ;
912+ if ( $ . isFunction ( panel . option . onbeforenormalize ) ) {
913+ var normalize = panel . option . onbeforenormalize . call ( panel , panel ) ;
914+ if ( normalize === false ) {
915+ return panel ;
916+ }
917+ }
882918 // remove window.scroll handler, is added again later in this function
883919 $ ( window ) . off ( 'scroll' , panel . jsPanelfixPos ) ;
884920 // restore minimized panel to initial container if necessary
@@ -910,6 +946,9 @@ var jsPanel = {
910946 if ( panel . parentElmtTagname === 'body' ) {
911947 this . fixPosition ( panel ) ;
912948 }
949+ if ( $ . isFunction ( panel . option . onnormalized ) ) {
950+ panel . option . onnormalized . call ( panel , panel ) ;
951+ }
913952 return panel ;
914953 } ,
915954
@@ -1889,7 +1928,7 @@ console.log("jsPanel version: " + jsPanel.version);
18891928 display : 'block' ,
18901929 opacity : 1
18911930 } ) ;
1892- $ ( jsP ) . trigger ( 'jspanelloaded' , jsP . attr ( 'id' ) )
1931+ $ ( jsP ) . trigger ( 'jspanelloaded' , jsP . attr ( 'id' ) ) ;
18931932 $ ( jsP ) . trigger ( 'jspanelstatechange' , jsP . attr ( 'id' ) ) ;
18941933 jsP . option . size = {
18951934 width : jsP . outerWidth ( ) ,
@@ -1914,8 +1953,8 @@ console.log("jsPanel version: " + jsPanel.version);
19141953 display : 'block' ,
19151954 opacity : 1
19161955 } ) ;
1917- $ ( jsP ) . addClass ( jsP . option . show )
1918- $ ( jsP ) . trigger ( 'jspanelloaded' , jsP . attr ( 'id' ) )
1956+ $ ( jsP ) . addClass ( jsP . option . show ) ;
1957+ $ ( jsP ) . trigger ( 'jspanelloaded' , jsP . attr ( 'id' ) ) ;
19191958 $ ( jsP ) . trigger ( 'jspanelstatechange' , jsP . attr ( 'id' ) ) ;
19201959 jsP . option . size = {
19211960 width : jsP . outerWidth ( ) ,
@@ -2027,7 +2066,7 @@ console.log("jsPanel version: " + jsPanel.version);
20272066 jsPanel . shiftTooltipVertical ( jsP , jsP . option . paneltype . shiftwithin ) ;
20282067 }
20292068
2030- /* option.panelstatus -------------------------------------------------------------------------------------------- */
2069+ /* option.panelstatus --------------------------------------------------------------------------------------- */
20312070 if ( jsP . option . panelstatus ) {
20322071 switch ( jsP . option . panelstatus ) {
20332072 case "minimized" :
@@ -2110,9 +2149,17 @@ console.log("jsPanel version: " + jsPanel.version);
21102149 top : 0 ,
21112150 left : 0
21122151 } ,
2152+ "onbeforeclose" : false ,
2153+ "onbeforemaximize" : false ,
2154+ "onbeforeminimize" : false ,
2155+ "onbeforenormalize" : false ,
2156+ "onclosed" : false ,
2157+ "oncmaximized" : false ,
2158+ "onminimized" : false ,
2159+ "onnormalized" : false ,
2160+ "overflow" : 'hidden' ,
21132161 "panelstatus" : false ,
21142162 "paneltype" : false ,
2115- "overflow" : 'hidden' ,
21162163 "position" : 'auto' ,
21172164 "removeHeader" : false ,
21182165 "resizable" : {
0 commit comments