wp/wp-admin/js/media.js
changeset 5 5e2f62d02dcd
parent 0 d970ebf37754
child 7 cf61fcea0001
--- a/wp/wp-admin/js/media.js	Mon Jun 08 16:11:51 2015 +0000
+++ b/wp/wp-admin/js/media.js	Tue Jun 09 03:35:32 2015 +0200
@@ -1,12 +1,12 @@
+/* global ajaxurl, attachMediaBoxL10n, _wpMediaGridSettings */
 
 var findPosts;
-(function($){
+( function( $ ){
 	findPosts = {
-		open : function(af_name, af_val) {
-			var st = document.documentElement.scrollTop || $(document).scrollTop(),
-				overlay = $( '.ui-find-overlay' );
+		open: function( af_name, af_val ) {
+			var overlay = $( '.ui-find-overlay' );
 
-			if ( overlay.length == 0 ) {
+			if ( overlay.length === 0 ) {
 				$( 'body' ).append( '<div class="ui-find-overlay"></div>' );
 				findPosts.overlay();
 			}
@@ -14,14 +14,15 @@
 			overlay.show();
 
 			if ( af_name && af_val ) {
-				$('#affected').attr('name', af_name).val(af_val);
+				$( '#affected' ).attr( 'name', af_name ).val( af_val );
 			}
-			$('#find-posts').show().draggable({
-				handle: '#find-posts-head'
-			}).css({'top':st + 50 + 'px','left':'50%','marginLeft':'-328px'});
+
+			$( '#find-posts' ).show();
 
-			$('#find-posts-input').focus().keyup(function(e){
-				if (e.which == 27) { findPosts.close(); } // close on Escape
+			$('#find-posts-input').focus().keyup( function( event ){
+				if ( event.which == 27 ) {
+					findPosts.close();
+				} // close on Escape
 			});
 
 			// Pull some results up by default
@@ -30,95 +31,84 @@
 			return false;
 		},
 
-		close : function() {
-			$('#find-posts-response').html('');
-			$('#find-posts').draggable('destroy').hide();
+		close: function() {
+			$('#find-posts-response').empty();
+			$('#find-posts').hide();
 			$( '.ui-find-overlay' ).hide();
 		},
 
-		overlay : function() {
-			$( '.ui-find-overlay' ).css(
-				{ 'z-index': '999', 'width': $( document ).width() + 'px', 'height': $( document ).height() + 'px' }
-			).on('click', function () {
+		overlay: function() {
+			$( '.ui-find-overlay' ).on( 'click', function () {
 				findPosts.close();
 			});
 		},
 
-		send : function() {
+		send: function() {
 			var post = {
-					ps: $('#find-posts-input').val(),
+					ps: $( '#find-posts-input' ).val(),
 					action: 'find_posts',
 					_ajax_nonce: $('#_ajax_nonce').val()
 				},
 				spinner = $( '.find-box-search .spinner' );
 
-			spinner.show();
-
-			$.ajax({
-				type : 'POST',
-				url : ajaxurl,
-				data : post,
-				success : function(x) { findPosts.show(x); spinner.hide(); },
-				error : function(r) { findPosts.error(r); spinner.hide(); }
-			});
-		},
-
-		show : function(x) {
-
-			if ( typeof(x) == 'string' ) {
-				this.error({'responseText': x});
-				return;
-			}
-
-			var r = wpAjax.parseAjaxResponse(x);
+			spinner.addClass( 'is-active' );
 
-			if ( r.errors ) {
-				this.error({'responseText': wpAjax.broken});
-			}
-			r = r.responses[0];
-			$('#find-posts-response').html(r.data);
+			$.ajax( ajaxurl, {
+				type: 'POST',
+				data: post,
+				dataType: 'json'
+			}).always( function() {
+				spinner.removeClass( 'is-active' );
+			}).done( function( x ) {
+				if ( ! x.success ) {
+					$( '#find-posts-response' ).text( attachMediaBoxL10n.error );
+				}
 
-			// Enable whole row to be clicked
-			$( '.found-posts td' ).on( 'click', function () {
-				$( this ).parent().find( '.found-radio input' ).prop( 'checked', true );
+				$( '#find-posts-response' ).html( x.data );
+			}).fail( function() {
+				$( '#find-posts-response' ).text( attachMediaBoxL10n.error );
 			});
-		},
-
-		error : function(r) {
-			var er = r.statusText;
-
-			if ( r.responseText ) {
-				er = r.responseText.replace( /<.[^<>]*?>/g, '' );
-			}
-			if ( er ) {
-				$('#find-posts-response').html(er);
-			}
 		}
 	};
 
-	$(document).ready(function() {
-		$('#find-posts-submit').click(function(e) {
-			if ( '' == $('#find-posts-response').html() )
-				e.preventDefault();
+	$( document ).ready( function() {
+		var settings, $mediaGridWrap = $( '#wp-media-grid' );
+
+		// Open up a manage media frame into the grid.
+		if ( $mediaGridWrap.length && window.wp && window.wp.media ) {
+			settings = _wpMediaGridSettings;
+
+			window.wp.media({
+				frame: 'manage',
+				container: $mediaGridWrap,
+				library: settings.queryVars
+			}).open();
+		}
+
+		$( '#find-posts-submit' ).click( function( event ) {
+			if ( ! $( '#find-posts-response input[type="radio"]:checked' ).length )
+				event.preventDefault();
 		});
 		$( '#find-posts .find-box-search :input' ).keypress( function( event ) {
 			if ( 13 == event.which ) {
 				findPosts.send();
 				return false;
 			}
-		} );
+		});
 		$( '#find-posts-search' ).click( findPosts.send );
 		$( '#find-posts-close' ).click( findPosts.close );
-		$('#doaction, #doaction2').click(function(e){
-			$('select[name^="action"]').each(function(){
-				if ( $(this).val() == 'attach' ) {
-					e.preventDefault();
+		$( '#doaction, #doaction2' ).click( function( event ) {
+			$( 'select[name^="action"]' ).each( function() {
+				if ( $(this).val() === 'attach' ) {
+					event.preventDefault();
 					findPosts.open();
 				}
 			});
 		});
+
+		// Enable whole row to be clicked
+		$( '.find-box-inside' ).on( 'click', 'tr', function() {
+			$( this ).find( '.found-radio input' ).prop( 'checked', true );
+		});
 	});
-	$(window).resize(function() {
-		findPosts.overlay();
-	});
-})(jQuery);
+})( jQuery );