Making WordPress.org

Changeset 2753


Ignore:
Timestamp:
03/15/2016 09:11:27 PM (9 years ago)
Author:
obenland
Message:

Plugin Directory: After [2752], improve error handling and docs.

See #1571.

Location:
sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/admin/class-committers-list-table.php

    r2752 r2753  
    122122                <p class="wp-hidden-child">
    123123                    <?php wp_nonce_field( 'add-committer', '_ajax_nonce', false ); ?>
     124                    <span id="committer-error" class="notice notice-alt notice-error" style="display:none;"></span>
    124125                    <input type="text" name="add_committer" class="form-required" value="" aria-required="true">
    125126                    <input type="button" id="add-committer-submit" class="button" data-wp-lists="add:the-committer-list:add-committer::post_id=<?php echo get_post()->ID; ?>" value="<?php _e( 'Add Committer', 'wporg-plugins' ); ?>">
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/admin/metabox/class-committers.php

    r2752 r2753  
    2222    }
    2323
     24    /**
     25     * Displays a list of committers for the current plugin.
     26     */
    2427    public static function display() {
    2528        $list = new Committers_List_Table();
     
    2831    }
    2932
     33    /**
     34     * Ajax handler for adding a new committer.
     35     */
    3036    public static function add_committer() {
    3137        check_ajax_referer( 'add-committer' );
    3238
    33         $login   = isset( $_POST['add_committer'] ) ? sanitize_user( $_POST['add_committer'] ) : '';
    34         $post_id = isset( $_POST['post_id'] ) ? (int) $_POST['post_id'] : 0;
     39        $login    = isset( $_POST['add_committer'] ) ? sanitize_user( $_POST['add_committer'] ) : '';
     40        $post_id  = isset( $_POST['post_id'] ) ? (int) $_POST['post_id'] : 0;
     41        $response = new \WP_Ajax_Response();
    3542
    3643        if ( ! $committer = get_user_by( 'login', $login ) ) {
    37             wp_die( time() );
     44            $response->add( array(
     45                'what' => 'committer',
     46                'data' => new \WP_Error( 'error', sprintf( __( 'The user %s does not exist.', 'wporg-plugins' ), '<code>' . $login . '</code>' ) ),
     47            ) );
     48            $response->send();
    3849        }
    3950
    40         if ( ! current_user_can( 'manage_committers', $post_id ) ) {
    41         //  wp_die( -1 );
     51        // @todo: Capabilities.
     52        if ( ! current_user_can( 'add_committers', $post_id ) ) {
     53            //  wp_die( -1 );
    4254        }
    4355        global $post, $wpdb;
    4456
    45         $response = new \WP_Ajax_Response();
    46         $post     = get_post( $post_id );
    47 
     57        $post   = get_post( $post_id );
    4858        $result = $wpdb->insert( PLUGINS_TABLE_PREFIX . 'svn_access', array(
    4959            'path'   => "/{$post->post_name}",
     
    5161            'access' => 'rw',
    5262        ) );
    53 
    5463        if ( ! $result ) {
    55             $message = __( 'An error has occurred. Please reload the page and try again.' );
    56             if ( is_wp_error( $result ) && $result->get_error_message() ) {
    57                 $message = $result->get_error_message();
     64            if ( 'Duplicate entry' === substr( $wpdb->last_error, 0, 15 ) ) {
     65                $message = __( 'Duplicate committer detected.', 'wporg-plugins' );
     66            } else {
     67                $message = __( 'An error has occurred. Please reload the page and try again.', 'wporg-plugins' );
    5868            }
    5969
     
    7686    }
    7787
     88    /**
     89     * Ajax handler for removing a committer.
     90     */
    7891    public static function remove_committer() {
    7992        $id      = isset( $_POST['id'] )      ? (int) $_POST['id']      : 0;
     
    8295        check_ajax_referer( "remove-committer-$id" );
    8396
     97        $response = new \WP_Ajax_Response();
     98
    8499        if ( ! $committer = get_user_by( 'id', $id ) ) {
    85             wp_die( time() );
     100            $response->add( array(
     101                'what' => 'committer',
     102                'data' => new \WP_Error( 'error', sprintf( __( 'The user %s does not exist.', 'wporg-plugins' ), '<code>' . $login . '</code>' ) ),
     103            ) );
     104            $response->send();
    86105        }
    87106
    88         if ( ! current_user_can( 'manage_committers', $post_id ) ) {
    89         //  wp_die( -1 );
     107        // @todo: Capabilities.
     108        if ( ! current_user_can( 'remove_committers', $post_id ) ) {
     109            //  wp_die( -1 );
    90110        }
    91111
     
    93113
    94114        $result = $GLOBALS['wpdb']->delete( PLUGINS_TABLE_PREFIX . 'svn_access', array(
    95             'path'   => "/{$plugin_slug}",
    96             'user'   => $committer->user_login,
     115            'path' => "/{$plugin_slug}",
     116            'user' => $committer->user_login,
    97117        ) );
    98118
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/css/edit-form.css

    r2752 r2753  
    149149    width: 100%;
    150150}
     151
     152.add-committer .notice {
     153    display: block;
     154    padding: 0.5em 0 0.5em 1em;
     155}
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/js/edit-form.js

    r2752 r2753  
    3333                    }
    3434                    return true;
    35                 }
     35                },
     36                addAfter: PluginEdit.committerRequestAfter,
     37                delAfter: PluginEdit.committerRequestAfter
    3638            }).on( 'wpListAddEnd', function() {
    3739                $( 'input[name="add_committer"]', '#add-committer' ).val( '' ).focus();
     
    125127                }
    126128            } );
     129        },
     130
     131        committerRequestAfter: function( response, data ) {
     132            if ( data.parsed.errors ) {
     133                $( '#committer-error' ).text( data.parsed.responses[0].errors[0].message ).show();
     134            } else {
     135                $( '#committer-error' ).empty().hide();
     136            }
    127137        }
    128138    };
Note: See TracChangeset for help on using the changeset viewer.