[ Index ] |
PHP Cross Reference of WordPress |
[Summary view] [Print] [Text view]
1 /* global tinymce */ 2 /** 3 * Included for back-compat. 4 * The default WindowManager in TinyMCE 4.0 supports three types of dialogs: 5 * - With HTML created from JS. 6 * - With inline HTML (like WPWindowManager). 7 * - Old type iframe based dialogs. 8 * For examples see the default plugins: https://github.com/tinymce/tinymce/tree/master/js/tinymce/plugins 9 */ 10 tinymce.WPWindowManager = tinymce.InlineWindowManager = function( editor ) { 11 if ( this.wp ) { 12 return this; 13 } 14 15 this.wp = {}; 16 this.parent = editor.windowManager; 17 this.editor = editor; 18 19 tinymce.extend( this, this.parent ); 20 21 this.open = function( args, params ) { 22 var $element, 23 self = this, 24 wp = this.wp; 25 26 if ( ! args.wpDialog ) { 27 return this.parent.open.apply( this, arguments ); 28 } else if ( ! args.id ) { 29 return; 30 } 31 32 if ( typeof jQuery === 'undefined' || ! jQuery.wp || ! jQuery.wp.wpdialog ) { 33 // wpdialog.js is not loaded. 34 if ( window.console && window.console.error ) { 35 window.console.error('wpdialog.js is not loaded. Please set "wpdialogs" as dependency for your script when calling wp_enqueue_script(). You may also want to enqueue the "wp-jquery-ui-dialog" stylesheet.'); 36 } 37 38 return; 39 } 40 41 wp.$element = $element = jQuery( '#' + args.id ); 42 43 if ( ! $element.length ) { 44 return; 45 } 46 47 if ( window.console && window.console.log ) { 48 window.console.log('tinymce.WPWindowManager is deprecated. Use the default editor.windowManager to open dialogs with inline HTML.'); 49 } 50 51 wp.features = args; 52 wp.params = params; 53 54 // Store selection. Takes a snapshot in the FocusManager of the selection before focus is moved to the dialog. 55 editor.nodeChanged(); 56 57 // Create the dialog if necessary. 58 if ( ! $element.data('wpdialog') ) { 59 $element.wpdialog({ 60 title: args.title, 61 width: args.width, 62 height: args.height, 63 modal: true, 64 dialogClass: 'wp-dialog', 65 zIndex: 300000 66 }); 67 } 68 69 $element.wpdialog('open'); 70 71 $element.on( 'wpdialogclose', function() { 72 if ( self.wp.$element ) { 73 self.wp = {}; 74 } 75 }); 76 }; 77 78 this.close = function() { 79 if ( ! this.wp.features || ! this.wp.features.wpDialog ) { 80 return this.parent.close.apply( this, arguments ); 81 } 82 83 this.wp.$element.wpdialog('close'); 84 }; 85 }; 86 87 tinymce.PluginManager.add( 'wpdialogs', function( editor ) { 88 // Replace window manager. 89 editor.on( 'init', function() { 90 editor.windowManager = new tinymce.WPWindowManager( editor ); 91 }); 92 });
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Dec 25 01:00:02 2024 | Cross-referenced by PHPXref 0.7.1 |