WordPress.org

Plugin Directory

Changeset 595080


Ignore:
Timestamp:
09/05/12 18:36:11 (20 months ago)
Author:
andy
Message:

jetpack multiuser: add user unlink button

Location:
jetpack/branches/multiuser
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • jetpack/branches/multiuser

  • jetpack/branches/multiuser/_inc/jetpack.css

    r589031 r595080  
    2222        } 
    2323 
    24         #jp-header #jp-clouds #jp-disconnect { 
     24 
     25        #jp-header #jp-clouds #jp-disconnectors { 
    2526            font-size: 12px; 
    2627            color: #fff; 
    2728            float: right; 
    28             margin: -35px 25px 0 0; 
    29             text-align: right; 
    30         } 
    31  
    32         #jp-header #jp-clouds #jp-disconnect a { 
     29            margin-top: -35px; 
     30            text-align: left; 
     31            position: relative; 
     32            left: -45px; 
     33        } 
     34 
     35        #jp-header #jp-clouds .jp-disconnect a { 
    3336            background: #8caa46 url( images/status-light.png ) 3px 85% no-repeat; 
    3437            display: inline-block; 
    35             padding: 4px 10px 3px 30px; 
     38            position: relative; 
     39            width: 100%; 
     40            height: 1.7em; 
     41            overflow: hidden; 
     42            padding: 4px 0 3px 30px; 
     43            margin: 0 -20px 3px 0; 
    3644            color: #fff; 
    37             text-align: center; 
    3845            text-decoration: none; 
    3946            border: 1px solid #7a943d; 
     
    4653            text-shadow: 0px -1px 0px rgba( 0,0,0,0.3 ); 
    4754        } 
    48             #jp-header #jp-clouds #jp-disconnect a:hover { 
    49                 background: #8caa46 url( images/status-light.png ) 3px 5% no-repeat; 
     55            #jp-header #jp-clouds .jp-disconnect a:hover { 
     56                background: #8caa46 url( images/status-light.png ) 3px -2% no-repeat; 
    5057                background-color: #839f40; 
    5158                border-color: #6a8037; 
    5259            } 
    5360 
    54             #jp-header #jp-clouds #jp-disconnect span { display: none; } 
     61            #jp-header #jp-clouds .jp-disconnect div { 
     62                position: relative; 
     63                line-height: 1.7em; 
     64                height: 1.7em; 
     65            } 
     66 
     67            #jp-header #jp-clouds .jp-disconnect a:hover div, 
     68            #jp-header #jp-clouds .jp-disconnect a.clicked div { 
     69                top: -1.7em; 
     70            } 
    5571     
    5672    /* Retina Header Clouds & Status Light */ 
     
    6581            } 
    6682             
    67         #jp-header #jp-clouds #jp-disconnect a { 
     83        #jp-header #jp-clouds .jp-disconnect a { 
    6884            background: #8caa46 url( images/status-light-2x.png ) 3px 85% no-repeat; 
    6985            background-size:25px 57px; 
    7086        } 
    71             #jp-header #jp-clouds #jp-disconnect a:hover { 
    72                 background: #8caa46 url( images/status-light-2x.png ) 3px 5% no-repeat; 
     87            #jp-header #jp-clouds .jp-disconnect a:hover { 
     88                background: #8caa46 url( images/status-light-2x.png ) 3px -2% no-repeat; 
    7389                background-size:25px 57px; 
    7490            } 
  • jetpack/branches/multiuser/_inc/jetpack.js

    r541426 r595080  
    5858 
    5959        var widerWidth = 0; 
    60         jQuery( '#jp-disconnect' ).hover( function() { 
    61             var t = jQuery( this ), 
    62                 a = t.find( 'a' ), 
    63                 width = t.width(), 
    64                 changeWidth = widerWidth == 0; 
    65  
    66             if ( changeWidth && widerWidth < width ) { 
    67                 widerWidth = width; 
    68             } 
    69             jetpack.statusText = a.html(); 
    70             a.html( jQuery( '#jp-disconnect span' ).html() ); 
    71             width = t.width(); 
    72             if ( changeWidth && widerWidth < width ) { 
    73                 widerWidth = width + 15; 
    74             } 
    75             if ( changeWidth ) { 
    76                 t.width( widerWidth ); 
    77             } 
    78             a.hide().fadeIn(100); 
    79         }, function() { 
    80             var a = jQuery( 'a', this ); 
    81             a.html( jetpack.statusText ); 
    82             a.hide().fadeIn(100); 
    83             jetpack.statusText = null; 
    84         } ).find( 'a' ).click( function() { 
     60        jQuery( '#jp-disconnect a' ).click( function() { 
    8561            if ( confirm( jetpackL10n.ays_disconnect ) ) { 
    86                 jQuery( '#jp-disconnect' ).unbind( 'mouseenter mouseleave' ); 
     62                jQuery( this ).addClass( 'clicked' ).css( { 
     63                    "background-image": 'url( ' + userSettings.url + 'wp-admin/images/wpspin_light.gif )', 
     64                    "background-position": '9px 5px', 
     65                    "background-size": '16px 16px' 
     66                } ).unbind( 'click' ).click( function() { return false; } ); 
     67            } else { 
     68                return false; 
     69            } 
     70        } ); 
     71        jQuery( '#jp-unlink a' ).click( function() { 
     72            if ( confirm( jetpackL10n.ays_unlink ) ) { 
    8773                jQuery( this ).css( { 
    88                     "background-image": 'url( ' + userSettings.url + 'wp-admin/images/wpspin_dark.gif )', 
     74                    "background-image": 'url( ' + userSettings.url + 'wp-admin/images/wpspin_light.gif )', 
    8975                    "background-position": '9px 5px', 
     76                    "background-size": '16px 16px' 
    9077                } ).unbind( 'click' ).click( function() { return false; } ); 
    9178            } else { 
  • jetpack/branches/multiuser/jetpack.php

    r593080 r595080  
    10891089 
    10901090    /** 
     1091     * Unlinks the current user from the linked WordPress.com user 
     1092     */ 
     1093    function unlink_user() { 
     1094        if ( !$tokens = Jetpack::get_option( 'user_tokens' ) ) 
     1095            return false; 
     1096 
     1097        $user_id = get_current_user_id(); 
     1098 
     1099        if ( Jetpack::get_option( 'master_user' ) == $user_id ) 
     1100            return false; 
     1101 
     1102        if ( !isset( $tokens[$user_id] ) ) 
     1103            return false; 
     1104 
     1105        Jetpack::load_xml_rpc_client(); 
     1106        $xml = new Jetpack_IXR_Client( compact( 'user_id' ) ); 
     1107        $xml->query( 'jetpack.unlink_user', $user_id ); 
     1108 
     1109        unset( $tokens[$user_id] ); 
     1110 
     1111        Jetpack::update_option( 'user_tokens', $tokens ); 
     1112 
     1113        return true; 
     1114    } 
     1115 
     1116    /** 
    10911117     * Attempts Jetpack registration.  If it fail, a state flag is set: @see ::admin_page_load() 
    10921118     * @static 
     
    13601386    function admin_styles() { 
    13611387        global $wp_styles; 
    1362         wp_enqueue_style( 'jetpack', plugins_url( basename( dirname( __FILE__ ) ) . '/_inc/jetpack.css' ), false, JETPACK__VERSION . '-20120701' ); 
     1388        wp_enqueue_style( 'jetpack', plugins_url( basename( dirname( __FILE__ ) ) . '/_inc/jetpack.css' ), false, JETPACK__VERSION . '-20120805' ); 
    13631389        $wp_styles->add_data( 'jetpack', 'rtl', true ); 
    13641390    } 
    13651391 
    13661392    function admin_scripts() { 
    1367         wp_enqueue_script( 'jetpack-js', plugins_url( basename( dirname( __FILE__ ) ) ) . '/_inc/jetpack.js', array( 'jquery' ), JETPACK__VERSION . '-20111115' ); 
     1393        wp_enqueue_script( 'jetpack-js', plugins_url( basename( dirname( __FILE__ ) ) ) . '/_inc/jetpack.js', array( 'jquery' ), JETPACK__VERSION . '-20120805' ); 
    13681394        wp_localize_script( 'jetpack-js', 'jetpackL10n', array( 
    13691395                'ays_disconnect' => "This will deactivate all Jetpack modules.\nAre you sure you want to disconnect?", 
     1396                'ays_unlink'     => "This will stop sending notifications for this user.\nAre you sure you want to unlink?", 
    13701397                'ays_dismiss'    => "This will deactivate Jetpack.\nAre you sure you want to deactivate Jetpack?", 
    13711398            ) ); 
     
    15571584                Jetpack::state( 'message', 'module_deactivated' ); 
    15581585                Jetpack::state( 'module', $module ); 
     1586                wp_safe_redirect( Jetpack::admin_url() ); 
     1587                exit; 
     1588            case 'unlink' : 
     1589                check_admin_referer( 'jetpack-unlink' ); 
     1590                $this->unlink_user(); 
     1591                Jetpack::state( 'message', 'unlinked' ); 
    15591592                wp_safe_redirect( Jetpack::admin_url() ); 
    15601593                exit; 
     
    17361769            $this->message .= Jetpack::jetpack_comment_notice(); 
    17371770            break; 
     1771 
     1772        case 'linked' : 
     1773            $this->message  = __( "<strong>You&#8217;re fueled up and ready to go.</strong> ", 'jetpack' ); 
     1774            $this->message .= Jetpack::jetpack_comment_notice(); 
     1775            break; 
     1776 
     1777        case 'unlinked' : 
     1778            $user = wp_get_current_user(); 
     1779            $this->message = sprintf( __( '<strong>You have unlinked your account (%s) from WordPress.com.</strong>', 'jetpack' ), $user->user_login ); 
     1780            break; 
    17381781        } 
    17391782 
     
    19251968                <div id="jp-clouds"> 
    19261969                    <?php if ( $is_connected ) : ?> 
    1927                     <div id="jp-disconnect"> 
    1928                         <a href="<?php echo wp_nonce_url( Jetpack::admin_url( array( 'action' => 'disconnect' ) ), 'jetpack-disconnect' ); ?>"><?php _e( 'Connected to WordPress.com', 'jetpack' ); ?></a> 
    1929                         <span><?php _e( 'Disconnect from WordPress.com', 'jetpack' ) ?></span> 
     1970                    <div id="jp-disconnectors"> 
     1971                    <div id="jp-disconnect" class="jp-disconnect"> 
     1972                        <a href="<?php echo wp_nonce_url( Jetpack::admin_url( array( 'action' => 'disconnect' ) ), 'jetpack-disconnect' ); ?>"><div class="deftext"><?php _e( 'Connected to WordPress.com', 'jetpack' ); ?></div><div class="hovertext"><?php _e( 'Disconnect from WordPress.com', 'jetpack' ) ?></div></a> 
     1973                    </div> 
     1974                        <?php if ( $is_user_connected ) : ?> 
     1975                        <div id="jp-unlink" class="jp-disconnect"> 
     1976                            <a href="<?php echo wp_nonce_url( Jetpack::admin_url( array( 'action' => 'unlink' ) ), 'jetpack-unlink' ); ?>"><div class="deftext"><?php _e( 'User linked to WordPress.com', 'jetpack' ); ?></div><div class="hovertext"><?php _e( 'Unlink user from WordPress.com', 'jetpack' ) ?></div></a> 
     1977                        </div> 
     1978                        <?php endif; ?> 
    19301979                    </div> 
    19311980                    <?php endif; ?> 
     
    19762025                        </div> 
    19772026                        <div class="jetpack-install-container"> 
    1978                             <p class="submit"><a href="<?php echo $this->build_connect_url() ?>" class="button-connector" id="wpcom-connect"><?php _e( 'Connect to WordPress.com', 'jetpack' ); ?></a></p> 
     2027                            <p class="submit"><a href="<?php echo $this->build_connect_url() ?>" class="button-connector" id="wpcom-connect"><?php _e( 'Link accounts with WordPress.com', 'jetpack' ); ?></a></p> 
    19792028                        </div> 
    19802029                    </div> 
     
    30133062 
    30143063            Jetpack::update_user_token( $current_user_id, sprintf( '%s.%d', $token, $current_user_id ), $is_master_user ); 
    3015             Jetpack::state( 'message', 'authorized' ); 
    3016  
    3017             if ( ! $is_master_user ) { 
     3064 
     3065 
     3066            if ( $is_master_user ) { 
     3067                Jetpack::state( 'message', 'authorized' ); 
     3068            } else { 
     3069                Jetpack::state( 'message', 'linked' ); 
    30183070                // Don't activate anything since we are just connecting a user. 
    30193071                break; 
Note: See TracChangeset for help on using the changeset viewer.