Spaces:
Sleeping
Sleeping
/** | |
* @output wp-admin/js/gallery.js | |
*/ | |
/* global unescape, getUserSetting, setUserSetting, wpgallery, tinymce */ | |
jQuery( 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').on( 'click', function( e ) { | |
e.preventDefault(); | |
desc = false; | |
sortIt(); | |
}); | |
$('#desc').on( 'click', function( e ) { | |
e.preventDefault(); | |
desc = true; | |
sortIt(); | |
}); | |
$('#clear').on( 'click', function( e ) { | |
e.preventDefault(); | |
clearAll(1); | |
}); | |
$('#showall').on( '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').on( '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(); | |
} | |
} | |
}); | |
/* 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; | |
} | |
}; | |