Priority File Manager

📁 public_html
Base Directory:
/home/ecedu/public_html/wp-admin/js
NameTypeSizeActions
📁 .. Folder -
📄 accordion.js File 2933
Edit Download
📄 accordion.min.js File 758
Edit Download
📄 application-passwords.js File 6394
Edit Download
📄 application-passwords.min.js File 3024
Edit Download
📄 auth-app.js File 5796
Edit Download
📄 auth-app.min.js File 2084
Edit Download
📄 code-editor.js File 11588
Edit Download
📄 code-editor.min.js File 3083
Edit Download
📄 color-picker.js File 9768
Edit Download
📄 color-picker.min.js File 3486
Edit Download
📄 comment.js File 2919
Edit Download
📄 comment.min.js File 1315
Edit Download
📄 common.js File 62618
Edit Download
📄 common.min.js File 23676
Edit Download
📄 custom-background.js File 3435
Edit Download
📄 custom-background.min.js File 1206
Edit Download
📄 custom-header.js File 2023
Edit Download
📄 customize-controls.js File 294257
Edit Download
📄 customize-controls.min.js File 111759
Edit Download
📄 customize-nav-menus.js File 113798
Edit Download
📄 customize-nav-menus.min.js File 48055
Edit Download
📄 customize-widgets.js File 71727
Edit Download
📄 customize-widgets.min.js File 28065
Edit Download
📄 dashboard.js File 27666
Edit Download
📄 dashboard.min.js File 8862
Edit Download
📄 edit-comments.js File 38006
Edit Download
📄 edit-comments.min.js File 15488
Edit Download
📄 editor-expand.js File 42606
Edit Download
📄 editor-expand.min.js File 13451
Edit Download
📄 editor.js File 45036
Edit Download
📄 editor.min.js File 13066
Edit Download
📄 farbtastic.js File 7849
Edit Download
📄 gallery.js File 5543
Edit Download
📄 gallery.min.js File 3741
Edit Download
📄 image-edit.js File 40936
Edit Download
📄 image-edit.min.js File 15515
Edit Download
📄 inline-edit-post.js File 20650
Edit Download
📄 inline-edit-post.min.js File 9639
Edit Download
📄 inline-edit-tax.js File 7797
Edit Download
📄 inline-edit-tax.min.js File 2997
Edit Download
📄 iris.min.js File 23643
Edit Download
📄 language-chooser.js File 890
Edit Download
📄 language-chooser.min.js File 423
Edit Download
📄 link.js File 3987
Edit Download
📄 link.min.js File 1742
Edit Download
📄 media-gallery.js File 1303
Edit Download
📄 media-gallery.min.js File 611
Edit Download
📄 media-upload.js File 3465
Edit Download
📄 media-upload.min.js File 1152
Edit Download
📄 media.js File 6765
Edit Download
📄 media.min.js File 2439
Edit Download
📄 nav-menu.js File 62177
Edit Download
📄 nav-menu.min.js File 30563
Edit Download
📄 password-strength-meter.js File 4236
Edit Download
📄 password-strength-meter.min.js File 1123
Edit Download
📄 password-toggle.js File 1339
Edit Download
📄 password-toggle.min.js File 847
Edit Download
📄 plugin-install.js File 7086
Edit Download
📄 plugin-install.min.js File 2403
Edit Download
📄 post.js File 39607
Edit Download
📄 post.min.js File 18845
Edit Download
📄 postbox.js File 18937
Edit Download
📄 postbox.min.js File 6761
Edit Download
📄 privacy-tools.js File 10923
Edit Download
📄 privacy-tools.min.js File 5154
Edit Download
📄 revisions.js File 34729
Edit Download
📄 revisions.min.js File 18401
Edit Download
📄 set-post-thumbnail.js File 876
Edit Download
📄 set-post-thumbnail.min.js File 620
Edit Download
📄 site-health.js File 13465
Edit Download
📄 site-health.min.js File 6282
Edit Download
📄 site-icon.js File 6243
Edit Download
📄 site-icon.min.js File 2254
Edit Download
📄 svg-painter.js File 3280
Edit Download
📄 svg-painter.min.js File 1567
Edit Download
📄 tags-box.js File 11140
Edit Download
📄 tags-box.min.js File 3077
Edit Download
📄 tags-suggest.js File 5771
Edit Download
📄 tags-suggest.min.js File 2269
Edit Download
📄 tags.js File 4967
Edit Download
📄 tags.min.js File 2091
Edit Download
📄 theme-plugin-editor.js File 25360
Edit Download
📄 theme-plugin-editor.min.js File 11709
Edit Download
📄 theme.js File 55979
Edit Download
📄 theme.min.js File 27051
Edit Download
📄 updates.js File 111959
Edit Download
📄 updates.min.js File 48407
Edit Download
📄 user-profile.js File 15355
Edit Download
📄 user-profile.min.js File 6862
Edit Download
📄 user-suggest.js File 2301
Edit Download
📄 user-suggest.min.js File 676
Edit Download
📁 widgets Folder -
📄 widgets.js File 23098
Edit Download
📄 widgets.min.js File 12609
Edit Download
📄 word-count.js File 7696
Edit Download
📄 word-count.min.js File 1530
Edit Download
📄 xfn.js File 740
Edit Download
📄 xfn.min.js File 458
Edit Download

View File: plugin-install.js

/**
 * @file Functionality for the plugin install screens.
 *
 * @output wp-admin/js/plugin-install.js
 */

/* global tb_click, tb_remove, tb_position */

jQuery( function( $ ) {

	var tbWindow,
		$iframeBody,
		$tabbables,
		$firstTabbable,
		$lastTabbable,
		$focusedBefore = $(),
		$uploadViewToggle = $( '.upload-view-toggle' ),
		$wrap = $ ( '.wrap' ),
		$body = $( document.body );

	window.tb_position = function() {
		var width = $( window ).width(),
			H = $( window ).height() - ( ( 792 < width ) ? 60 : 20 ),
			W = ( 792 < width ) ? 772 : width - 20;

		tbWindow = $( '#TB_window' );

		if ( tbWindow.length ) {
			tbWindow.width( W ).height( H );
			$( '#TB_iframeContent' ).width( W ).height( H );
			tbWindow.css({
				'margin-left': '-' + parseInt( ( W / 2 ), 10 ) + 'px'
			});
			if ( typeof document.body.style.maxWidth !== 'undefined' ) {
				tbWindow.css({
					'top': '30px',
					'margin-top': '0'
				});
			}
		}

		return $( 'a.thickbox' ).each( function() {
			var href = $( this ).attr( 'href' );
			if ( ! href ) {
				return;
			}
			href = href.replace( /&width=[0-9]+/g, '' );
			href = href.replace( /&height=[0-9]+/g, '' );
			$(this).attr( 'href', href + '&width=' + W + '&height=' + ( H ) );
		});
	};

	$( window ).on( 'resize', function() {
		tb_position();
	});

	/*
	 * Custom events: when a Thickbox iframe has loaded and when the Thickbox
	 * modal gets removed from the DOM.
	 */
	$body
		.on( 'thickbox:iframe:loaded', tbWindow, function() {
			/*
			 * Return if it's not the modal with the plugin details iframe. Other
			 * thickbox instances might want to load an iframe with content from
			 * an external domain. Avoid to access the iframe contents when we're
			 * not sure the iframe loads from the same domain.
			 */
			if ( ! tbWindow.hasClass( 'plugin-details-modal' ) ) {
				return;
			}

			iframeLoaded();
		})
		.on( 'thickbox:removed', function() {
			// Set focus back to the element that opened the modal dialog.
			// Note: IE 8 would need this wrapped in a fake setTimeout `0`.
			$focusedBefore.trigger( 'focus' );
		});

	function iframeLoaded() {
		var $iframe = tbWindow.find( '#TB_iframeContent' );

		// Get the iframe body.
		$iframeBody = $iframe.contents().find( 'body' );

		// Get the tabbable elements and handle the keydown event on first load.
		handleTabbables();

		// Set initial focus on the "Close" button.
		$firstTabbable.trigger( 'focus' );

		/*
		 * When the "Install" button is disabled (e.g. the Plugin is already installed)
		 * then we can't predict where the last focusable element is. We need to get
		 * the tabbable elements and handle the keydown event again and again,
		 * each time the active tab panel changes.
		 */
		$( '#plugin-information-tabs a', $iframeBody ).on( 'click', function() {
			handleTabbables();
		});

		// Close the modal when pressing Escape.
		$iframeBody.on( 'keydown', function( event ) {
			if ( 27 !== event.which ) {
				return;
			}
			tb_remove();
		});
	}

	/*
	 * Get the tabbable elements and detach/attach the keydown event.
	 * Called after the iframe has fully loaded so we have all the elements we need.
	 * Called again each time a Tab gets clicked.
	 * @todo Consider to implement a WordPress general utility for this and don't use jQuery UI.
	 */
	function handleTabbables() {
		var $firstAndLast;
		// Get all the tabbable elements.
		$tabbables = $( ':tabbable', $iframeBody );
		// Our first tabbable element is always the "Close" button.
		$firstTabbable = tbWindow.find( '#TB_closeWindowButton' );
		// Get the last tabbable element.
		$lastTabbable = $tabbables.last();
		// Make a jQuery collection.
		$firstAndLast = $firstTabbable.add( $lastTabbable );
		// Detach any previously attached keydown event.
		$firstAndLast.off( 'keydown.wp-plugin-details' );
		// Attach again the keydown event on the first and last focusable elements.
		$firstAndLast.on( 'keydown.wp-plugin-details', function( event ) {
			constrainTabbing( event );
		});
	}

	// Constrain tabbing within the plugin modal dialog.
	function constrainTabbing( event ) {
		if ( 9 !== event.which ) {
			return;
		}

		if ( $lastTabbable[0] === event.target && ! event.shiftKey ) {
			event.preventDefault();
			$firstTabbable.trigger( 'focus' );
		} else if ( $firstTabbable[0] === event.target && event.shiftKey ) {
			event.preventDefault();
			$lastTabbable.trigger( 'focus' );
		}
	}

	/*
	 * Open the Plugin details modal. The event is delegated to get also the links
	 * in the plugins search tab, after the Ajax search rebuilds the HTML. It's
	 * delegated on the closest ancestor and not on the body to avoid conflicts
	 * with other handlers, see Trac ticket #43082.
	 */
	$( '.wrap' ).on( 'click', '.thickbox.open-plugin-details-modal', function( e ) {
		// The `data-title` attribute is used only in the Plugin screens.
		var title = $( this ).data( 'title' ) ?
			wp.i18n.sprintf(
				// translators: %s: Plugin name.
				wp.i18n.__( 'Plugin: %s' ),
				$( this ).data( 'title' )
			) :
			wp.i18n.__( 'Plugin details' );

		e.preventDefault();
		e.stopPropagation();

		// Store the element that has focus before opening the modal dialog, i.e. the control which opens it.
		$focusedBefore = $( this );

		tb_click.call(this);

		// Set ARIA role, ARIA label, and add a CSS class.
		tbWindow
			.attr({
				'role': 'dialog',
				'aria-label': wp.i18n.__( 'Plugin details' )
			})
			.addClass( 'plugin-details-modal' );

		// Set title attribute on the iframe.
		tbWindow.find( '#TB_iframeContent' ).attr( 'title', title );
	});

	/* Plugin install related JS */
	$( '#plugin-information-tabs a' ).on( 'click', function( event ) {
		var tab = $( this ).attr( 'name' );
		event.preventDefault();

		// Flip the tab.
		$( '#plugin-information-tabs a.current' ).removeClass( 'current' );
		$( this ).addClass( 'current' );

		// Only show the fyi box in the description section, on smaller screen,
		// where it's otherwise always displayed at the top.
		if ( 'description' !== tab && $( window ).width() < 772 ) {
			$( '#plugin-information-content' ).find( '.fyi' ).hide();
		} else {
			$( '#plugin-information-content' ).find( '.fyi' ).show();
		}

		// Flip the content.
		$( '#section-holder div.section' ).hide(); // Hide 'em all.
		$( '#section-' + tab ).show();
	});

	/*
	 * When a user presses the "Upload Plugin" button, show the upload form in place
	 * rather than sending them to the devoted upload plugin page.
	 * The `?tab=upload` page still exists for no-js support and for plugins that
	 * might access it directly. When we're in this page, let the link behave
	 * like a link. Otherwise we're in the normal plugin installer pages and the
	 * link should behave like a toggle button.
	 */
	if ( ! $wrap.hasClass( 'plugin-install-tab-upload' ) ) {
		$uploadViewToggle
			.attr({
				role: 'button',
				'aria-expanded': 'false'
			})
			.on( 'click', function( event ) {
				event.preventDefault();
				$body.toggleClass( 'show-upload-view' );
				$uploadViewToggle.attr( 'aria-expanded', $body.hasClass( 'show-upload-view' ) );
			});
	}
});