mirror of
https://github.com/WordPress/WordPress.git
synced 2024-11-13 22:26:06 +01:00
bdbaccce37
Many variables in the JavaScript were defined in the global scope without being explicitly assigned to the window. When built with Webpack, the code gets encapsulated in anonymous functions and those implicit globals get assigned to the wrong scope. This patch prevents that from happening. Fixes #44371. See #43731. Built from https://develop.svn.wordpress.org/trunk@43577 git-svn-id: http://core.svn.wordpress.org/trunk@43406 1a063a9b-81f0-0310-95a4-ce76da25c4cd
242 lines
5.5 KiB
JavaScript
242 lines
5.5 KiB
JavaScript
/**
|
|
* @output wp-admin/js/gallery.js
|
|
*/
|
|
|
|
/* global unescape, getUserSetting, setUserSetting, wpgallery, tinymce */
|
|
|
|
jQuery(document).ready(function($) {
|
|
var gallerySortable, gallerySortableInit, sortIt, clearAll, w, desc = false;
|
|
|
|
gallerySortableInit = function() {
|
|
gallerySortable = $('#media-items').sortable( {
|
|
items: 'div.media-item',
|
|
placeholder: 'sorthelper',
|
|
axis: 'y',
|
|
distance: 2,
|
|
handle: 'div.filename',
|
|
stop: function() {
|
|
// When an update has occurred, adjust the order for each item
|
|
var all = $('#media-items').sortable('toArray'), len = all.length;
|
|
$.each(all, function(i, id) {
|
|
var order = desc ? (len - i) : (1 + i);
|
|
$('#' + id + ' .menu_order input').val(order);
|
|
});
|
|
}
|
|
} );
|
|
};
|
|
|
|
sortIt = function() {
|
|
var all = $('.menu_order_input'), len = all.length;
|
|
all.each(function(i){
|
|
var order = desc ? (len - i) : (1 + i);
|
|
$(this).val(order);
|
|
});
|
|
};
|
|
|
|
clearAll = function(c) {
|
|
c = c || 0;
|
|
$('.menu_order_input').each( function() {
|
|
if ( this.value === '0' || c ) {
|
|
this.value = '';
|
|
}
|
|
});
|
|
};
|
|
|
|
$('#asc').click( function( e ) {
|
|
e.preventDefault();
|
|
desc = false;
|
|
sortIt();
|
|
});
|
|
$('#desc').click( function( e ) {
|
|
e.preventDefault();
|
|
desc = true;
|
|
sortIt();
|
|
});
|
|
$('#clear').click( function( e ) {
|
|
e.preventDefault();
|
|
clearAll(1);
|
|
});
|
|
$('#showall').click( function( e ) {
|
|
e.preventDefault();
|
|
$('#sort-buttons span a').toggle();
|
|
$('a.describe-toggle-on').hide();
|
|
$('a.describe-toggle-off, table.slidetoggle').show();
|
|
$('img.pinkynail').toggle(false);
|
|
});
|
|
$('#hideall').click( function( e ) {
|
|
e.preventDefault();
|
|
$('#sort-buttons span a').toggle();
|
|
$('a.describe-toggle-on').show();
|
|
$('a.describe-toggle-off, table.slidetoggle').hide();
|
|
$('img.pinkynail').toggle(true);
|
|
});
|
|
|
|
// initialize sortable
|
|
gallerySortableInit();
|
|
clearAll();
|
|
|
|
if ( $('#media-items>*').length > 1 ) {
|
|
w = wpgallery.getWin();
|
|
|
|
$('#save-all, #gallery-settings').show();
|
|
if ( typeof w.tinyMCE !== 'undefined' && w.tinyMCE.activeEditor && ! w.tinyMCE.activeEditor.isHidden() ) {
|
|
wpgallery.mcemode = true;
|
|
wpgallery.init();
|
|
} else {
|
|
$('#insert-gallery').show();
|
|
}
|
|
}
|
|
});
|
|
|
|
jQuery(window).unload( function () { window.tinymce = window.tinyMCE = window.wpgallery = null; } ); // Cleanup
|
|
|
|
/* gallery settings */
|
|
window.tinymce = null;
|
|
|
|
window.wpgallery = {
|
|
mcemode : false,
|
|
editor : {},
|
|
dom : {},
|
|
is_update : false,
|
|
el : {},
|
|
|
|
I : function(e) {
|
|
return document.getElementById(e);
|
|
},
|
|
|
|
init: function() {
|
|
var t = this, li, q, i, it, w = t.getWin();
|
|
|
|
if ( ! t.mcemode ) {
|
|
return;
|
|
}
|
|
|
|
li = ('' + document.location.search).replace(/^\?/, '').split('&');
|
|
q = {};
|
|
for (i=0; i<li.length; i++) {
|
|
it = li[i].split('=');
|
|
q[unescape(it[0])] = unescape(it[1]);
|
|
}
|
|
|
|
if ( q.mce_rdomain ) {
|
|
document.domain = q.mce_rdomain;
|
|
}
|
|
|
|
// Find window & API
|
|
window.tinymce = w.tinymce;
|
|
window.tinyMCE = w.tinyMCE;
|
|
t.editor = tinymce.EditorManager.activeEditor;
|
|
|
|
t.setup();
|
|
},
|
|
|
|
getWin : function() {
|
|
return window.dialogArguments || opener || parent || top;
|
|
},
|
|
|
|
setup : function() {
|
|
var t = this, a, ed = t.editor, g, columns, link, order, orderby;
|
|
if ( ! t.mcemode ) {
|
|
return;
|
|
}
|
|
|
|
t.el = ed.selection.getNode();
|
|
|
|
if ( t.el.nodeName !== 'IMG' || ! ed.dom.hasClass(t.el, 'wpGallery') ) {
|
|
if ( ( g = ed.dom.select('img.wpGallery') ) && g[0] ) {
|
|
t.el = g[0];
|
|
} else {
|
|
if ( getUserSetting('galfile') === '1' ) {
|
|
t.I('linkto-file').checked = 'checked';
|
|
}
|
|
if ( getUserSetting('galdesc') === '1' ) {
|
|
t.I('order-desc').checked = 'checked';
|
|
}
|
|
if ( getUserSetting('galcols') ) {
|
|
t.I('columns').value = getUserSetting('galcols');
|
|
}
|
|
if ( getUserSetting('galord') ) {
|
|
t.I('orderby').value = getUserSetting('galord');
|
|
}
|
|
jQuery('#insert-gallery').show();
|
|
return;
|
|
}
|
|
}
|
|
|
|
a = ed.dom.getAttrib(t.el, 'title');
|
|
a = ed.dom.decode(a);
|
|
|
|
if ( a ) {
|
|
jQuery('#update-gallery').show();
|
|
t.is_update = true;
|
|
|
|
columns = a.match(/columns=['"]([0-9]+)['"]/);
|
|
link = a.match(/link=['"]([^'"]+)['"]/i);
|
|
order = a.match(/order=['"]([^'"]+)['"]/i);
|
|
orderby = a.match(/orderby=['"]([^'"]+)['"]/i);
|
|
|
|
if ( link && link[1] ) {
|
|
t.I('linkto-file').checked = 'checked';
|
|
}
|
|
if ( order && order[1] ) {
|
|
t.I('order-desc').checked = 'checked';
|
|
}
|
|
if ( columns && columns[1] ) {
|
|
t.I('columns').value = '' + columns[1];
|
|
}
|
|
if ( orderby && orderby[1] ) {
|
|
t.I('orderby').value = orderby[1];
|
|
}
|
|
} else {
|
|
jQuery('#insert-gallery').show();
|
|
}
|
|
},
|
|
|
|
update : function() {
|
|
var t = this, ed = t.editor, all = '', s;
|
|
|
|
if ( ! t.mcemode || ! t.is_update ) {
|
|
s = '[gallery' + t.getSettings() + ']';
|
|
t.getWin().send_to_editor(s);
|
|
return;
|
|
}
|
|
|
|
if ( t.el.nodeName !== 'IMG' ) {
|
|
return;
|
|
}
|
|
|
|
all = ed.dom.decode( ed.dom.getAttrib( t.el, 'title' ) );
|
|
all = all.replace(/\s*(order|link|columns|orderby)=['"]([^'"]+)['"]/gi, '');
|
|
all += t.getSettings();
|
|
|
|
ed.dom.setAttrib(t.el, 'title', all);
|
|
t.getWin().tb_remove();
|
|
},
|
|
|
|
getSettings : function() {
|
|
var I = this.I, s = '';
|
|
|
|
if ( I('linkto-file').checked ) {
|
|
s += ' link="file"';
|
|
setUserSetting('galfile', '1');
|
|
}
|
|
|
|
if ( I('order-desc').checked ) {
|
|
s += ' order="DESC"';
|
|
setUserSetting('galdesc', '1');
|
|
}
|
|
|
|
if ( I('columns').value !== 3 ) {
|
|
s += ' columns="' + I('columns').value + '"';
|
|
setUserSetting('galcols', I('columns').value);
|
|
}
|
|
|
|
if ( I('orderby').value !== 'menu_order' ) {
|
|
s += ' orderby="' + I('orderby').value + '"';
|
|
setUserSetting('galord', I('orderby').value);
|
|
}
|
|
|
|
return s;
|
|
}
|
|
};
|