27
27
28
28
<http://opensource.org/licenses/MIT>.
29
29
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
32
35
*/
33
36
34
37
"use strict" ;
@@ -42,7 +45,7 @@ if (!$.fn.jquery || !$.fn.uniqueId || !$.widget || !$.ui.mouse || !$.ui.draggabl
42
45
}
43
46
44
47
var jsPanel = {
45
- version : '2.5.5 2015-10-08 15:47 ' ,
48
+ version : '2.6.0 2015-12-04 14:15 ' ,
46
49
device : ( function ( ) {
47
50
try {
48
51
// requires "mobile-detect.js" to be loaded
@@ -314,6 +317,12 @@ var jsPanel = {
314
317
var context = panel . parent ( ) ,
315
318
panelID = panel . attr ( 'id' ) ;
316
319
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
+ }
317
326
// delete childpanels ...
318
327
this . closeChildpanels ( panel ) ;
319
328
// if present remove tooltip wrapper
@@ -339,6 +348,9 @@ var jsPanel = {
339
348
jsPanel . reposHints ( "jsPanel-hint-tr" , panel . parentElmtTagname ) ;
340
349
}
341
350
}
351
+ if ( $ . isFunction ( panel . option . onclosed ) ) {
352
+ panel . option . onclosed . call ( panel , panel ) ;
353
+ }
342
354
return context ;
343
355
} ,
344
356
@@ -808,19 +820,34 @@ var jsPanel = {
808
820
// calls functions to maximize a jsPanel
809
821
maximize : function ( panel ) {
810
822
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
+ }
811
829
if ( panel . parentElmtTagname === 'body' || panel . option . controls . maxtoScreen === true ) {
812
830
this . maxWithinBody ( panel ) ;
813
831
} else {
814
832
this . maxWithinElement ( panel ) ;
815
833
}
816
834
panel . trigger ( 'jspanelmaximized' , panel . attr ( 'id' ) ) ;
817
835
panel . trigger ( 'jspanelstatechange' , panel . attr ( 'id' ) ) ;
836
+ if ( $ . isFunction ( panel . option . onmaximized ) ) {
837
+ panel . option . onmaximized . call ( panel , panel ) ;
838
+ }
818
839
return panel ;
819
840
} ,
820
841
821
842
// minimizes a jsPanel to the lower left corner of the browser viewport
822
843
minimize : function ( panel ) {
823
844
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
+ }
824
851
panel . data ( { // needed for method exportPanels()
825
852
"paneltop" : parseInt ( panel . option . position . top ) ,
826
853
"panelleft" : parseInt ( panel . option . position . left ) ,
@@ -850,6 +877,9 @@ var jsPanel = {
850
877
} ) ;
851
878
}
852
879
} ) ;
880
+ if ( $ . isFunction ( panel . option . onminimized ) ) {
881
+ panel . option . onminimized . call ( panel , panel ) ;
882
+ }
853
883
return panel ;
854
884
} ,
855
885
@@ -879,6 +909,12 @@ var jsPanel = {
879
909
var panelTop ,
880
910
interactions = [ "resizable" , "draggable" ] ;
881
911
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
+ }
882
918
// remove window.scroll handler, is added again later in this function
883
919
$ ( window ) . off ( 'scroll' , panel . jsPanelfixPos ) ;
884
920
// restore minimized panel to initial container if necessary
@@ -910,6 +946,9 @@ var jsPanel = {
910
946
if ( panel . parentElmtTagname === 'body' ) {
911
947
this . fixPosition ( panel ) ;
912
948
}
949
+ if ( $ . isFunction ( panel . option . onnormalized ) ) {
950
+ panel . option . onnormalized . call ( panel , panel ) ;
951
+ }
913
952
return panel ;
914
953
} ,
915
954
@@ -1889,7 +1928,7 @@ console.log("jsPanel version: " + jsPanel.version);
1889
1928
display : 'block' ,
1890
1929
opacity : 1
1891
1930
} ) ;
1892
- $ ( jsP ) . trigger ( 'jspanelloaded' , jsP . attr ( 'id' ) )
1931
+ $ ( jsP ) . trigger ( 'jspanelloaded' , jsP . attr ( 'id' ) ) ;
1893
1932
$ ( jsP ) . trigger ( 'jspanelstatechange' , jsP . attr ( 'id' ) ) ;
1894
1933
jsP . option . size = {
1895
1934
width : jsP . outerWidth ( ) ,
@@ -1914,8 +1953,8 @@ console.log("jsPanel version: " + jsPanel.version);
1914
1953
display : 'block' ,
1915
1954
opacity : 1
1916
1955
} ) ;
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' ) ) ;
1919
1958
$ ( jsP ) . trigger ( 'jspanelstatechange' , jsP . attr ( 'id' ) ) ;
1920
1959
jsP . option . size = {
1921
1960
width : jsP . outerWidth ( ) ,
@@ -2027,7 +2066,7 @@ console.log("jsPanel version: " + jsPanel.version);
2027
2066
jsPanel . shiftTooltipVertical ( jsP , jsP . option . paneltype . shiftwithin ) ;
2028
2067
}
2029
2068
2030
- /* option.panelstatus -------------------------------------------------------------------------------------------- */
2069
+ /* option.panelstatus --------------------------------------------------------------------------------------- */
2031
2070
if ( jsP . option . panelstatus ) {
2032
2071
switch ( jsP . option . panelstatus ) {
2033
2072
case "minimized" :
@@ -2110,9 +2149,17 @@ console.log("jsPanel version: " + jsPanel.version);
2110
2149
top : 0 ,
2111
2150
left : 0
2112
2151
} ,
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' ,
2113
2161
"panelstatus" : false ,
2114
2162
"paneltype" : false ,
2115
- "overflow" : 'hidden' ,
2116
2163
"position" : 'auto' ,
2117
2164
"removeHeader" : false ,
2118
2165
"resizable" : {
0 commit comments