| 
									
										
										
										
											2019-04-16 20:56:22 +01:00
										 |  |  | /** | 
					
						
							|  |  |  |  * @output wp-admin/js/gallery.js | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* global unescape, getUserSetting, setUserSetting, wpgallery, tinymce */ | 
					
						
							| 
									
										
										
										
											2019-03-12 09:27:46 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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(); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-16 20:56:22 +01:00
										 |  |  | jQuery(window).unload( function () { window.tinymce = window.tinyMCE = window.wpgallery = null; } ); // Cleanup
 | 
					
						
							| 
									
										
										
										
											2019-03-12 09:27:46 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* gallery settings */ | 
					
						
							| 
									
										
										
										
											2019-04-16 20:56:22 +01:00
										 |  |  | window.tinymce = null; | 
					
						
							| 
									
										
										
										
											2019-03-12 09:27:46 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-16 20:56:22 +01:00
										 |  |  | window.wpgallery = { | 
					
						
							| 
									
										
										
										
											2019-03-12 09:27:46 +00:00
										 |  |  | 	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
 | 
					
						
							| 
									
										
										
										
											2019-04-16 20:56:22 +01:00
										 |  |  | 		window.tinymce = w.tinymce; | 
					
						
							|  |  |  | 		window.tinyMCE = w.tinyMCE; | 
					
						
							| 
									
										
										
										
											2019-03-12 09:27:46 +00:00
										 |  |  | 		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; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | }; |