Diff: STRATO-apps/wordpress_03/app/wp-admin/js/media-upload.js
Keine Baseline-Datei – Diff nur gegen leer.
1
-
1
+
/**
2
+
* Contains global functions for the media upload within the post edit screen.
3
+
*
4
+
* Updates the ThickBox anchor href and the ThickBox's own properties in order
5
+
* to set the size and position on every resize event. Also adds a function to
6
+
* send HTML or text to the currently active editor.
7
+
*
8
+
* @file
9
+
* @since 2.5.0
10
+
* @output wp-admin/js/media-upload.js
11
+
*
12
+
* @requires jQuery
13
+
*/
14
+
15
+
/* global tinymce, QTags, wpActiveEditor, tb_position */
16
+
17
+
/**
18
+
* Sends the HTML passed in the parameters to TinyMCE.
19
+
*
20
+
* @since 2.5.0
21
+
*
22
+
* @global
23
+
*
24
+
* @param {string} html The HTML to be sent to the editor.
25
+
* @return {void|boolean} Returns false when both TinyMCE and QTags instances
26
+
* are unavailable. This means that the HTML was not
27
+
* sent to the editor.
28
+
*/
29
+
window.send_to_editor = function( html ) {
30
+
var editor,
31
+
hasTinymce = typeof tinymce !== 'undefined',
32
+
hasQuicktags = typeof QTags !== 'undefined';
33
+
34
+
// If no active editor is set, try to set it.
35
+
if ( ! wpActiveEditor ) {
36
+
if ( hasTinymce && tinymce.activeEditor ) {
37
+
editor = tinymce.activeEditor;
38
+
window.wpActiveEditor = editor.id;
39
+
} else if ( ! hasQuicktags ) {
40
+
return false;
41
+
}
42
+
} else if ( hasTinymce ) {
43
+
editor = tinymce.get( wpActiveEditor );
44
+
}
45
+
46
+
// If the editor is set and not hidden,
47
+
// insert the HTML into the content of the editor.
48
+
if ( editor && ! editor.isHidden() ) {
49
+
editor.execCommand( 'mceInsertContent', false, html );
50
+
} else if ( hasQuicktags ) {
51
+
// If quick tags are available, insert the HTML into its content.
52
+
QTags.insertContent( html );
53
+
} else {
54
+
// If neither the TinyMCE editor and the quick tags are available,
55
+
// add the HTML to the current active editor.
56
+
document.getElementById( wpActiveEditor ).value += html;
57
+
}
58
+
59
+
// If the old thickbox remove function exists, call it.
60
+
if ( window.tb_remove ) {
61
+
try { window.tb_remove(); } catch( e ) {}
62
+
}
63
+
};
64
+
65
+
(function($) {
66
+
/**
67
+
* Recalculates and applies the new ThickBox position based on the current
68
+
* window size.
69
+
*
70
+
* @since 2.6.0
71
+
*
72
+
* @global
73
+
*
74
+
* @return {Object[]} Array containing jQuery objects for all the found
75
+
* ThickBox anchors.
76
+
*/
77
+
window.tb_position = function() {
78
+
var tbWindow = $('#TB_window'),
79
+
width = $(window).width(),
80
+
H = $(window).height(),
81
+
W = ( 833 < width ) ? 833 : width,
82
+
adminbar_height = 0;
83
+
84
+
if ( $('#wpadminbar').length ) {
85
+
adminbar_height = parseInt( $('#wpadminbar').css('height'), 10 );
86
+
}
87
+
88
+
if ( tbWindow.length ) {
89
+
tbWindow.width( W - 50 ).height( H - 45 - adminbar_height );
90
+
$('#TB_iframeContent').width( W - 50 ).height( H - 75 - adminbar_height );
91
+
tbWindow.css({'margin-left': '-' + parseInt( ( ( W - 50 ) / 2 ), 10 ) + 'px'});
92
+
if ( typeof document.body.style.maxWidth !== 'undefined' )
93
+
tbWindow.css({'top': 20 + adminbar_height + 'px', 'margin-top': '0'});
94
+
}
95
+
96
+
/**
97
+
* Recalculates the new height and width for all links with a ThickBox class.
98
+
*
99
+
* @since 2.6.0
100
+
*/
101
+
return $('a.thickbox').each( function() {
102
+
var href = $(this).attr('href');
103
+
if ( ! href ) return;
104
+
href = href.replace(/&width=[0-9]+/g, '');
105
+
href = href.replace(/&height=[0-9]+/g, '');
106
+
$(this).attr( 'href', href + '&width=' + ( W - 80 ) + '&height=' + ( H - 85 - adminbar_height ) );
107
+
});
108
+
};
109
+
110
+
// Add handler to recalculates the ThickBox position when the window is resized.
111
+
$(window).on( 'resize', function(){ tb_position(); });
112
+
113
+
})(jQuery);
114
+