@@ -856,8 +856,8 @@ var Backend =
856
856
this . hide ( ) ;
857
857
} ) ;
858
858
M . addButton ( Contao . lang . apply , 'btn primary' , function ( ) {
859
- var val = [ ] ,
860
- frm = window . frames [ 'simple-modal-iframe' ] ;
859
+ var frm = window . frames [ 'simple-modal-iframe' ] ,
860
+ val = [ ] , inp , i ;
861
861
if ( frm === undefined ) {
862
862
alert ( 'Could not find the SimpleModal frame' ) ;
863
863
return ;
@@ -866,8 +866,8 @@ var Backend =
866
866
alert ( Contao . lang . picker ) ;
867
867
return ; // see #5704
868
868
}
869
- var inp = frm . document . getElementById ( 'tl_listing' ) . getElementsByTagName ( 'input' ) ;
870
- for ( var i = 0 ; i < inp . length ; i ++ ) {
869
+ inp = frm . document . getElementById ( 'tl_listing' ) . getElementsByTagName ( 'input' ) ;
870
+ for ( i = 0 ; i < inp . length ; i ++ ) {
871
871
if ( ! inp [ i ] . checked || inp [ i ] . id . match ( / ^ c h e c k _ a l l _ / ) ) continue ;
872
872
if ( ! inp [ i ] . id . match ( / ^ r e s e t _ / ) ) val . push ( inp [ i ] . get ( 'value' ) ) ;
873
873
}
@@ -910,6 +910,15 @@ var Backend =
910
910
* @param {object } win The window object
911
911
*/
912
912
openModalBrowser : function ( field_name , url , type , win ) {
913
+ var file = 'file.php' ,
914
+ swtch = ( type == 'file' ? '&switch=1' : '' ) ,
915
+ isLink = ( url . indexOf ( '{{link_url::' ) != - 1 ) ;
916
+ if ( type == 'file' && ( url == '' || isLink ) ) {
917
+ file = 'page.php' ;
918
+ }
919
+ if ( isLink ) {
920
+ url = url . replace ( / ^ \{ \{ l i n k _ u r l : : ( [ 0 - 9 ] + ) \} \} $ / , '$1' ) ;
921
+ }
913
922
var M = new SimpleModal ( {
914
923
'width' : 768 ,
915
924
'btn_ok' : Contao . lang . close ,
@@ -922,34 +931,28 @@ var Backend =
922
931
this . hide ( ) ;
923
932
} ) ;
924
933
M . addButton ( Contao . lang . apply , 'btn primary' , function ( ) {
925
- var frms = window . frames ,
926
- frm , val , prev , i ;
927
- for ( i = 0 ; i < frms . length ; i ++ ) {
928
- if ( frms [ i ] . name == 'simple-modal-iframe' ) {
929
- frm = frms [ i ] ;
930
- break ;
931
- }
932
- }
933
- if ( frm === null ) {
934
+ var frm = window . frames [ 'simple-modal-iframe' ] ,
935
+ val , inp , i ;
936
+ if ( frm === undefined ) {
934
937
alert ( 'Could not find the SimpleModal frame' ) ;
935
938
return ;
936
939
}
937
- var inp = frm . document . getElementById ( 'tl_listing' ) . getElementsByTagName ( 'input' ) ;
940
+ inp = frm . document . getElementById ( 'tl_listing' ) . getElementsByTagName ( 'input' ) ;
938
941
for ( i = 0 ; i < inp . length ; i ++ ) {
939
942
if ( inp [ i ] . checked && ! inp [ i ] . id . match ( / ^ r e s e t _ / ) ) {
940
943
val = inp [ i ] . get ( 'value' ) ;
941
944
break ;
942
945
}
943
946
}
944
- if ( type == 'file' ) {
947
+ if ( ! isNaN ( val ) ) {
945
948
val = '{{link_url::' + val + '}}' ;
946
949
}
947
950
win . document . getElementById ( field_name ) . value = val ;
948
951
this . hide ( ) ;
949
952
} ) ;
950
953
M . show ( {
951
954
'title' : win . document . getElement ( 'div.mce-title' ) . get ( 'text' ) ,
952
- 'contents' : '<iframe src="contao/' + ( ( type == ' file' ) ? 'page.php' : 'file.php' ) + '?table=tl_content&field=singleSRC&value=' + ( ( type == 'file' ) ? url . replace ( '{{link_url::' , '' ) . replace ( '}}' , '' ) : url ) + '" name="simple-modal-iframe" width="100%" height="' + ( window . getSize ( ) . y - 180 ) . toInt ( ) + '" frameborder="0"></iframe>' ,
955
+ 'contents' : '<iframe src="contao/' + file + '?table=tl_content&field=singleSRC&value=' + url + swtch + '" name="simple-modal-iframe" width="100%" height="' + ( window . getSize ( ) . y - 180 ) . toInt ( ) + '" frameborder="0"></iframe>' ,
953
956
'model' : 'modal'
954
957
} ) ;
955
958
} ,
0 commit comments