WordPress 4.2.3
[autoinstalls/wordpress.git] / wp-admin / upload.php
index 646381e94a49695c13f0869313cdf339791dceea..39fa165fb2b6f25f5160bb30811bf81c7819354f 100644 (file)
@@ -24,8 +24,21 @@ if ( 'grid' === $mode ) {
        wp_enqueue_media();
        wp_enqueue_script( 'media-grid' );
        wp_enqueue_script( 'media' );
+
+       $q = $_GET;
+       // let JS handle this
+       unset( $q['s'] );
+       $vars = wp_edit_attachments_query_vars( $q );
+       $ignore = array( 'mode', 'post_type', 'post_status', 'posts_per_page' );
+       foreach ( $vars as $key => $value ) {
+               if ( ! $value || in_array( $key, $ignore ) ) {
+                       unset( $vars[ $key ] );
+               }
+       }
+
        wp_localize_script( 'media-grid', '_wpMediaGridSettings', array(
                'adminUrl' => parse_url( self_admin_url(), PHP_URL_PATH ),
+               'queryVars' => (object) $vars
        ) );
 
        get_current_screen()->add_help_tab( array(
@@ -48,7 +61,7 @@ if ( 'grid' === $mode ) {
 
        get_current_screen()->set_help_sidebar(
                '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
-               '<p>' . __( '<a href="http://codex.wordpress.org/Media_Library_Screen" target="_blank">Documentation on Media Library</a>' ) . '</p>' .
+               '<p>' . __( '<a href="https://codex.wordpress.org/Media_Library_Screen" target="_blank">Documentation on Media Library</a>' ) . '</p>' .
                '<p>' . __( '<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
        );
 
@@ -57,7 +70,7 @@ if ( 'grid' === $mode ) {
 
        require_once( ABSPATH . 'wp-admin/admin-header.php' );
        ?>
-       <div class="wrap">
+       <div class="wrap" id="wp-media-grid" data-search="<?php _admin_search_query() ?>">
                <h2>
                <?php
                echo esc_html( $title );
@@ -100,45 +113,14 @@ if ( $doaction ) {
        }
 
        switch ( $doaction ) {
-               case 'attach':
-                       $parent_id = (int) $_REQUEST['found_post_id'];
-                       if ( !$parent_id )
-                               return;
-
-                       $parent = get_post( $parent_id );
-                       if ( !current_user_can( 'edit_post', $parent_id ) )
-                               wp_die( __( 'You are not allowed to edit this post.' ) );
-
-                       $attach = array();
-                       foreach ( (array) $_REQUEST['media'] as $att_id ) {
-                               $att_id = (int) $att_id;
-
-                               if ( !current_user_can( 'edit_post', $att_id ) )
-                                       continue;
-
-                               $attach[] = $att_id;
-                       }
-
-                       if ( ! empty( $attach ) ) {
-                               $attach_string = implode( ',', $attach );
-                               $attached = $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_parent = %d WHERE post_type = 'attachment' AND ID IN ( $attach_string )", $parent_id ) );
-                               foreach ( $attach as $att_id ) {
-                                       clean_attachment_cache( $att_id );
-                               }
-                       }
-
-                       if ( isset( $attached ) ) {
-                               $location = 'upload.php';
-                               if ( $referer = wp_get_referer() ) {
-                                       if ( false !== strpos( $referer, 'upload.php' ) )
-                                               $location = $referer;
-                               }
+               case 'detach':
+                       wp_media_attach_action( $_REQUEST['parent_post_id'], 'detach' );
+                       break;
 
-                               $location = add_query_arg( array( 'attached' => $attached ) , $location );
-                               wp_redirect( $location );
-                               exit;
-                       }
+               case 'attach':
+                       wp_media_attach_action( $_REQUEST['found_post_id'] );
                        break;
+
                case 'trash':
                        if ( !isset( $post_ids ) )
                                break;
@@ -191,7 +173,7 @@ $parent_file = 'upload.php';
 
 wp_enqueue_script( 'media' );
 
-add_screen_option( 'per_page', array('label' => _x( 'Media items', 'items per page (screen options)' )) );
+add_screen_option( 'per_page' );
 
 get_current_screen()->add_help_tab( array(
 'id'           => 'overview',
@@ -216,7 +198,7 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
        '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
-       '<p>' . __( '<a href="http://codex.wordpress.org/Media_Library_Screen" target="_blank">Documentation on Media Library</a>' ) . '</p>' .
+       '<p>' . __( '<a href="https://codex.wordpress.org/Media_Library_Screen" target="_blank">Documentation on Media Library</a>' ) . '</p>' .
        '<p>' . __( '<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
 );
 
@@ -237,28 +219,48 @@ if ( ! empty( $_REQUEST['s'] ) )
 <?php
 $message = '';
 if ( ! empty( $_GET['posted'] ) ) {
-       $message = __('Media attachment updated.');
+       $message = __( 'Media attachment updated.' );
        $_SERVER['REQUEST_URI'] = remove_query_arg(array('posted'), $_SERVER['REQUEST_URI']);
 }
 
 if ( ! empty( $_GET['attached'] ) && $attached = absint( $_GET['attached'] ) ) {
-       $message = sprintf( _n('Reattached %d attachment.', 'Reattached %d attachments.', $attached), $attached );
-       $_SERVER['REQUEST_URI'] = remove_query_arg(array('attached'), $_SERVER['REQUEST_URI']);
+       $message = sprintf( _n( 'Reattached %d attachment.', 'Reattached %d attachments.', $attached ), $attached );
+       $_SERVER['REQUEST_URI'] = remove_query_arg( array( 'detach', 'attached' ), $_SERVER['REQUEST_URI'] );
+}
+
+if ( ! empty( $_GET['detach'] ) && $detached = absint( $_GET['detach'] ) ) {
+       $message = sprintf( _n( 'Detached %d attachment.', 'Detached %d attachments.', $detached ), $detached );
+       $_SERVER['REQUEST_URI'] = remove_query_arg( array( 'detach', 'attached' ), $_SERVER['REQUEST_URI'] );
 }
 
 if ( ! empty( $_GET['deleted'] ) && $deleted = absint( $_GET['deleted'] ) ) {
-       $message = sprintf( _n( 'Media attachment permanently deleted.', '%d media attachments permanently deleted.', $deleted ), number_format_i18n( $_GET['deleted'] ) );
+       if ( 1 == $deleted ) {
+               $message = __( 'Media attachment permanently deleted.' );
+       } else {
+               $message = _n( '%d media attachment permanently deleted.', '%d media attachments permanently deleted.', $deleted );
+       }
+       $message = sprintf( $message, number_format_i18n( $deleted ) );
        $_SERVER['REQUEST_URI'] = remove_query_arg(array('deleted'), $_SERVER['REQUEST_URI']);
 }
 
 if ( ! empty( $_GET['trashed'] ) && $trashed = absint( $_GET['trashed'] ) ) {
-       $message = sprintf( _n( 'Media attachment moved to the trash.', '%d media attachments moved to the trash.', $trashed ), number_format_i18n( $_GET['trashed'] ) );
+       if ( 1 == $trashed ) {
+               $message = __( 'Media attachment moved to the trash.' );
+       } else {
+               $message = _n( '%d media attachment moved to the trash.', '%d media attachments moved to the trash.', $trashed );
+       }
+       $message = sprintf( $message, number_format_i18n( $trashed ) );
        $message .= ' <a href="' . esc_url( wp_nonce_url( 'upload.php?doaction=undo&action=untrash&ids='.(isset($_GET['ids']) ? $_GET['ids'] : ''), "bulk-media" ) ) . '">' . __('Undo') . '</a>';
        $_SERVER['REQUEST_URI'] = remove_query_arg(array('trashed'), $_SERVER['REQUEST_URI']);
 }
 
 if ( ! empty( $_GET['untrashed'] ) && $untrashed = absint( $_GET['untrashed'] ) ) {
-       $message = sprintf( _n( 'Media attachment restored from the trash.', '%d media attachments restored from the trash.', $untrashed ), number_format_i18n( $_GET['untrashed'] ) );
+       if ( 1 == $untrashed ) {
+               $message = __( 'Media attachment restored from the trash.' );
+       } else {
+               $message = _n( '%d media attachment restored from the trash.', '%d media attachments restored from the trash.', $untrashed );
+       }
+       $message = sprintf( $message, number_format_i18n( $untrashed ) );
        $_SERVER['REQUEST_URI'] = remove_query_arg(array('untrashed'), $_SERVER['REQUEST_URI']);
 }
 
@@ -274,10 +276,10 @@ if ( ! empty( $_GET['message'] ) && isset( $messages[ $_GET['message'] ] ) ) {
 }
 
 if ( !empty($message) ) { ?>
-<div id="message" class="updated"><p><?php echo $message; ?></p></div>
+<div id="message" class="updated notice is-dismissible"><p><?php echo $message; ?></p></div>
 <?php } ?>
 
-<form id="posts-filter" action="" method="get">
+<form id="posts-filter" method="get">
 
 <?php $wp_list_table->views(); ?>