@@ -856,8 +856,8 @@ var Backend =
856856 this . hide ( ) ;
857857 } ) ;
858858 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 ;
861861 if ( frm === undefined ) {
862862 alert ( 'Could not find the SimpleModal frame' ) ;
863863 return ;
@@ -866,8 +866,8 @@ var Backend =
866866 alert ( Contao . lang . picker ) ;
867867 return ; // see #5704
868868 }
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 ++ ) {
871871 if ( ! inp [ i ] . checked || inp [ i ] . id . match ( / ^ c h e c k _ a l l _ / ) ) continue ;
872872 if ( ! inp [ i ] . id . match ( / ^ r e s e t _ / ) ) val . push ( inp [ i ] . get ( 'value' ) ) ;
873873 }
@@ -910,6 +910,15 @@ var Backend =
910910 * @param {object } win The window object
911911 */
912912 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+ }
913922 var M = new SimpleModal ( {
914923 'width' : 768 ,
915924 'btn_ok' : Contao . lang . close ,
@@ -922,34 +931,28 @@ var Backend =
922931 this . hide ( ) ;
923932 } ) ;
924933 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 ) {
934937 alert ( 'Could not find the SimpleModal frame' ) ;
935938 return ;
936939 }
937- var inp = frm . document . getElementById ( 'tl_listing' ) . getElementsByTagName ( 'input' ) ;
940+ inp = frm . document . getElementById ( 'tl_listing' ) . getElementsByTagName ( 'input' ) ;
938941 for ( i = 0 ; i < inp . length ; i ++ ) {
939942 if ( inp [ i ] . checked && ! inp [ i ] . id . match ( / ^ r e s e t _ / ) ) {
940943 val = inp [ i ] . get ( 'value' ) ;
941944 break ;
942945 }
943946 }
944- if ( type == 'file' ) {
947+ if ( ! isNaN ( val ) ) {
945948 val = '{{link_url::' + val + '}}' ;
946949 }
947950 win . document . getElementById ( field_name ) . value = val ;
948951 this . hide ( ) ;
949952 } ) ;
950953 M . show ( {
951954 '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>' ,
953956 'model' : 'modal'
954957 } ) ;
955958 } ,
0 commit comments