WordPress.org

Make WordPress Core

Ticket #25824: 25824.1.diff

File 25824.1.diff, 86.9 KB (added by lessbloat, 8 years ago)
  • wp-admin/includes/ajax-actions.php

     
    234234        require_once ABSPATH . 'wp-admin/includes/dashboard.php';
    235235
    236236        switch ( $_GET['widget'] ) {
    237                 case 'dashboard_incoming_links' :
    238                         wp_dashboard_incoming_links();
     237                case 'dashboard_rss' :
     238                        wp_dashboard_rss();
    239239                        break;
    240                 case 'dashboard_primary' :
    241                         wp_dashboard_primary();
    242                         break;
    243                 case 'dashboard_secondary' :
    244                         wp_dashboard_secondary();
    245                         break;
    246                 case 'dashboard_plugins' :
    247                         wp_dashboard_plugins();
    248                         break;
    249240        }
    250241        wp_die();
    251242}
  • wp-admin/includes/dashboard.php

     
    66 * @subpackage Administration
    77 */
    88
     9/* Temporary hack until MP6 is in core
     10 * MP6 currently unenqueues wp-admin/css/wp-admin.css
     11 * After MP6 merges:
     12 * - add the styles in temporary-dash-styles.css to wp-admin
     13 * - and DELETE THIS FUNCTION,
     14 */
     15function temporary_dash_styles() {
     16        wp_add_inline_style( 'wp-admin', file_get_contents( ABSPATH . 'wp-admin/css/temporary-dash-styles.css' ) );
     17}
     18add_action( 'admin_enqueue_scripts', 'temporary_dash_styles' );
     19
    920/**
    1021 * Registers dashboard widgets.
    1122 *
     
    3748
    3849        // Right Now
    3950        if ( is_blog_admin() && current_user_can('edit_posts') )
    40                 wp_add_dashboard_widget( 'dashboard_right_now', __( 'Right Now' ), 'wp_dashboard_right_now' );
     51                add_meta_box( 'dash-right-now', 'Site Content', 'dashboard_new_right_now', 'dashboard', 'normal', 'high' );
    4152
    4253        if ( is_network_admin() )
    4354                wp_add_dashboard_widget( 'network_dashboard_right_now', __( 'Right Now' ), 'wp_network_dashboard_right_now' );
    4455
    45         // Recent Comments Widget
    46         if ( is_blog_admin() && current_user_can('moderate_comments') ) {
    47                 if ( !isset( $widget_options['dashboard_recent_comments'] ) || !isset( $widget_options['dashboard_recent_comments']['items'] ) ) {
    48                         $update = true;
    49                         $widget_options['dashboard_recent_comments'] = array(
    50                                 'items' => 5,
    51                         );
    52                 }
    53                 $recent_comments_title = __( 'Recent Comments' );
    54                 wp_add_dashboard_widget( 'dashboard_recent_comments', $recent_comments_title, 'wp_dashboard_recent_comments', 'wp_dashboard_recent_comments_control' );
    55         }
     56        // Activity Widget
     57        add_meta_box( 'dashboard_activity', __( 'Activity' ), 'wp_dashboard_activity', 'dashboard', 'normal', 'high' );
    5658
    57         // Incoming Links Widget
    58         if ( is_blog_admin() && current_user_can('publish_posts') ) {
    59                 if ( !isset( $widget_options['dashboard_incoming_links'] ) || !isset( $widget_options['dashboard_incoming_links']['home'] ) || $widget_options['dashboard_incoming_links']['home'] != get_option('home') ) {
    60                         $update = true;
    61                         $num_items = isset($widget_options['dashboard_incoming_links']['items']) ? $widget_options['dashboard_incoming_links']['items'] : 10;
    62                         $widget_options['dashboard_incoming_links'] = array(
    63                                 'home' => get_option('home'),
    64                                 'link' => apply_filters( 'dashboard_incoming_links_link', 'http://blogsearch.google.com/blogsearch?scoring=d&partner=wordpress&q=link:' . trailingslashit( get_option('home') ) ),
    65                                 'url' => isset($widget_options['dashboard_incoming_links']['url']) ? apply_filters( 'dashboard_incoming_links_feed', $widget_options['dashboard_incoming_links']['url'] ) : apply_filters( 'dashboard_incoming_links_feed', 'http://blogsearch.google.com/blogsearch_feeds?scoring=d&ie=utf-8&num=' . $num_items . '&output=rss&partner=wordpress&q=link:' . trailingslashit( get_option('home') ) ),
    66                                 'items' => $num_items,
    67                                 'show_date' => isset($widget_options['dashboard_incoming_links']['show_date']) ? $widget_options['dashboard_incoming_links']['show_date'] : false
    68                         );
    69                 }
    70                 wp_add_dashboard_widget( 'dashboard_incoming_links', __( 'Incoming Links' ), 'wp_dashboard_incoming_links', 'wp_dashboard_incoming_links_control' );
    71         }
    72 
    73         // WP Plugins Widget
    74         if ( ( ! is_multisite() && is_blog_admin() && current_user_can( 'install_plugins' ) ) || ( is_network_admin() && current_user_can( 'manage_network_plugins' ) && current_user_can( 'install_plugins' ) ) )
    75                 wp_add_dashboard_widget( 'dashboard_plugins', __( 'Plugins' ), 'wp_dashboard_plugins' );
    76 
    7759        // QuickPress Widget
    78         if ( is_blog_admin() && current_user_can('edit_posts') )
    79                 wp_add_dashboard_widget( 'dashboard_quick_press', __( 'QuickPress' ), 'wp_dashboard_quick_press' );
     60        if ( is_blog_admin() && current_user_can( 'edit_posts' ) )
     61                add_meta_box( 'dashboard_quick_draft', __( 'Quick Draft' ), 'wp_dashboard_quick_draft', 'dashboard', 'side', 'high' );
     62       
     63        // WordPress News
     64        add_meta_box( 'dashboard_rss', __( 'WordPress News' ), 'wp_dashboard_rss', 'dashboard', 'side', 'low' );
    8065
    81         // Recent Drafts
    82         if ( is_blog_admin() && current_user_can('edit_posts') )
    83                 wp_add_dashboard_widget( 'dashboard_recent_drafts', __('Recent Drafts'), 'wp_dashboard_recent_drafts' );
    84 
    85         // Primary feed (Dev Blog) Widget
    86         if ( !isset( $widget_options['dashboard_primary'] ) ) {
    87                 $update = true;
    88                 $widget_options['dashboard_primary'] = array(
    89                         'link' => apply_filters( 'dashboard_primary_link', __( 'http://wordpress.org/news/' ) ),
    90                         'url' => apply_filters( 'dashboard_primary_feed', __( 'http://wordpress.org/news/feed/' ) ),
    91                         'title' => apply_filters( 'dashboard_primary_title', __( 'WordPress Blog' ) ),
    92                         'items' => 2,
    93                         'show_summary' => 1,
    94                         'show_author' => 0,
    95                         'show_date' => 1,
    96                 );
    97         }
    98         wp_add_dashboard_widget( 'dashboard_primary', $widget_options['dashboard_primary']['title'], 'wp_dashboard_primary', 'wp_dashboard_primary_control' );
    99 
    100         // Secondary Feed (Planet) Widget
    101         if ( !isset( $widget_options['dashboard_secondary'] ) ) {
    102                 $update = true;
    103                 $widget_options['dashboard_secondary'] = array(
    104                         'link' => apply_filters( 'dashboard_secondary_link', __( 'http://planet.wordpress.org/' ) ),
    105                         'url' => apply_filters( 'dashboard_secondary_feed', __( 'http://planet.wordpress.org/feed/' ) ),
    106                         'title' => apply_filters( 'dashboard_secondary_title', __( 'Other WordPress News' ) ),
    107                         'items' => 5,
    108                         'show_summary' => 0,
    109                         'show_author' => 0,
    110                         'show_date' => 0,
    111                 );
    112         }
    113         wp_add_dashboard_widget( 'dashboard_secondary', $widget_options['dashboard_secondary']['title'], 'wp_dashboard_secondary', 'wp_dashboard_secondary_control' );
    114 
    11566        // Hook to register new widgets
    11667        // Filter widget order
    11768        if ( is_network_admin() ) {
     
    165116        }
    166117
    167118        if ( is_blog_admin () )
    168                 $side_widgets = array('dashboard_quick_press', 'dashboard_recent_drafts', 'dashboard_primary', 'dashboard_secondary');
     119                $side_widgets = array('dashboard_quick_draft');
    169120        else if (is_network_admin() )
    170                 $side_widgets = array('dashboard_primary', 'dashboard_secondary');
     121                $side_widgets = array();
    171122        else
    172123                $side_widgets = array();
    173124
     
    224175
    225176/* Dashboard Widgets */
    226177
    227 function wp_dashboard_right_now() {
    228         global $wp_registered_sidebars;
    229 
    230         $num_posts = wp_count_posts( 'post' );
    231         $num_pages = wp_count_posts( 'page' );
    232 
    233         $num_cats  = wp_count_terms('category');
    234 
    235         $num_tags = wp_count_terms('post_tag');
    236 
    237         $num_comm = wp_count_comments();
    238 
    239         echo "\n\t".'<div class="table table_content">';
    240         echo "\n\t".'<p class="sub">' . __('Content') . '</p>'."\n\t".'<table>';
    241         echo "\n\t".'<tr class="first">';
    242 
    243         // Posts
    244         $num = number_format_i18n( $num_posts->publish );
    245         $text = _n( 'Post', 'Posts', intval($num_posts->publish) );
    246         if ( current_user_can( 'edit_posts' ) ) {
    247                 $num = "<a href='edit.php'>$num</a>";
    248                 $text = "<a href='edit.php'>$text</a>";
    249         }
    250         echo '<td class="first b b-posts">' . $num . '</td>';
    251         echo '<td class="t posts">' . $text . '</td>';
    252 
    253         echo '</tr><tr>';
    254         /* TODO: Show status breakdown on hover
    255         if ( $can_edit_pages && !empty($num_pages->publish) ) { // how many pages is not exposed in feeds. Don't show if !current_user_can
    256                 $post_type_texts[] = '<a href="edit-pages.php">'.sprintf( _n( '%s page', '%s pages', $num_pages->publish ), number_format_i18n( $num_pages->publish ) ).'</a>';
    257         }
    258         if ( $can_edit_posts && !empty($num_posts->draft) ) {
    259                 $post_type_texts[] = '<a href="edit.php?post_status=draft">'.sprintf( _n( '%s draft', '%s drafts', $num_posts->draft ), number_format_i18n( $num_posts->draft ) ).'</a>';
    260         }
    261         if ( $can_edit_posts && !empty($num_posts->future) ) {
    262                 $post_type_texts[] = '<a href="edit.php?post_status=future">'.sprintf( _n( '%s scheduled post', '%s scheduled posts', $num_posts->future ), number_format_i18n( $num_posts->future ) ).'</a>';
    263         }
    264         if ( current_user_can('publish_posts') && !empty($num_posts->pending) ) {
    265                 $pending_text = sprintf( _n( 'There is <a href="%1$s">%2$s post</a> pending your review.', 'There are <a href="%1$s">%2$s posts</a> pending your review.', $num_posts->pending ), 'edit.php?post_status=pending', number_format_i18n( $num_posts->pending ) );
    266         } else {
    267                 $pending_text = '';
    268         }
    269         */
    270 
    271         // Pages
    272         $num = number_format_i18n( $num_pages->publish );
    273         $text = _n( 'Page', 'Pages', $num_pages->publish );
    274         if ( current_user_can( 'edit_pages' ) ) {
    275                 $num = "<a href='edit.php?post_type=page'>$num</a>";
    276                 $text = "<a href='edit.php?post_type=page'>$text</a>";
    277         }
    278         echo '<td class="first b b_pages">' . $num . '</td>';
    279         echo '<td class="t pages">' . $text . '</td>';
    280 
    281         echo '</tr><tr>';
    282 
    283         // Categories
    284         $num = number_format_i18n( $num_cats );
    285         $text = _n( 'Category', 'Categories', $num_cats );
    286         if ( current_user_can( 'manage_categories' ) ) {
    287                 $num = "<a href='edit-tags.php?taxonomy=category'>$num</a>";
    288                 $text = "<a href='edit-tags.php?taxonomy=category'>$text</a>";
    289         }
    290         echo '<td class="first b b-cats">' . $num . '</td>';
    291         echo '<td class="t cats">' . $text . '</td>';
    292 
    293         echo '</tr><tr>';
    294 
    295         // Tags
    296         $num = number_format_i18n( $num_tags );
    297         $text = _n( 'Tag', 'Tags', $num_tags );
    298         if ( current_user_can( 'manage_categories' ) ) {
    299                 $num = "<a href='edit-tags.php'>$num</a>";
    300                 $text = "<a href='edit-tags.php'>$text</a>";
    301         }
    302         echo '<td class="first b b-tags">' . $num . '</td>';
    303         echo '<td class="t tags">' . $text . '</td>';
    304 
    305         echo "</tr>";
    306         do_action('right_now_content_table_end');
    307         echo "\n\t</table>\n\t</div>";
    308 
    309         echo "\n\t".'<div class="table table_discussion">';
    310         echo "\n\t".'<p class="sub">' . __('Discussion') . '</p>'."\n\t".'<table>';
    311         echo "\n\t".'<tr class="first">';
    312 
    313         // Total Comments
    314         $num = '<span class="total-count">' . number_format_i18n($num_comm->total_comments) . '</span>';
    315         $text = _n( 'Comment', 'Comments', $num_comm->total_comments );
    316         if ( current_user_can( 'moderate_comments' ) ) {
    317                 $num = '<a href="edit-comments.php">' . $num . '</a>';
    318                 $text = '<a href="edit-comments.php">' . $text . '</a>';
    319         }
    320         echo '<td class="b b-comments">' . $num . '</td>';
    321         echo '<td class="last t comments">' . $text . '</td>';
    322 
    323         echo '</tr><tr>';
    324 
    325         // Approved Comments
    326         $num = '<span class="approved-count">' . number_format_i18n($num_comm->approved) . '</span>';
    327         $text = _nx( 'Approved', 'Approved', $num_comm->approved, 'Right Now' );
    328         if ( current_user_can( 'moderate_comments' ) ) {
    329                 $num = "<a href='edit-comments.php?comment_status=approved'>$num</a>";
    330                 $text = "<a class='approved' href='edit-comments.php?comment_status=approved'>$text</a>";
    331         }
    332         echo '<td class="b b_approved">' . $num . '</td>';
    333         echo '<td class="last t">' . $text . '</td>';
    334 
    335         echo "</tr>\n\t<tr>";
    336 
    337         // Pending Comments
    338         $num = '<span class="pending-count">' . number_format_i18n($num_comm->moderated) . '</span>';
    339         $text = _n( 'Pending', 'Pending', $num_comm->moderated );
    340         if ( current_user_can( 'moderate_comments' ) ) {
    341                 $num = "<a href='edit-comments.php?comment_status=moderated'>$num</a>";
    342                 $text = "<a class='waiting' href='edit-comments.php?comment_status=moderated'>$text</a>";
    343         }
    344         echo '<td class="b b-waiting">' . $num . '</td>';
    345         echo '<td class="last t">' . $text . '</td>';
    346 
    347         echo "</tr>\n\t<tr>";
    348 
    349         // Spam Comments
    350         $num = number_format_i18n($num_comm->spam);
    351         $text = _nx( 'Spam', 'Spam', $num_comm->spam, 'comment' );
    352         if ( current_user_can( 'moderate_comments' ) ) {
    353                 $num = "<a href='edit-comments.php?comment_status=spam'><span class='spam-count'>$num</span></a>";
    354                 $text = "<a class='spam' href='edit-comments.php?comment_status=spam'>$text</a>";
    355         }
    356         echo '<td class="b b-spam">' . $num . '</td>';
    357         echo '<td class="last t">' . $text . '</td>';
    358 
    359         echo "</tr>";
    360         do_action('right_now_table_end');
    361         do_action('right_now_discussion_table_end');
    362         echo "\n\t</table>\n\t</div>";
    363 
    364         echo "\n\t".'<div class="versions">';
     178function dashboard_new_right_now() {
    365179        $theme = wp_get_theme();
    366 
    367         echo "\n\t<p>";
    368 
    369         if ( $theme->errors() ) {
    370                 if ( ! is_multisite() || is_super_admin() )
    371                         echo '<span class="error-message">' . sprintf( __( 'ERROR: %s' ), $theme->errors()->get_error_message() ) . '</span>';
    372         } elseif ( ! empty($wp_registered_sidebars) ) {
    373                 $sidebars_widgets = wp_get_sidebars_widgets();
    374                 $num_widgets = 0;
    375                 foreach ( (array) $sidebars_widgets as $k => $v ) {
    376                         if ( 'wp_inactive_widgets' == $k || 'orphaned_widgets' == substr( $k, 0, 16 ) )
    377                                 continue;
    378                         if ( is_array($v) )
    379                                 $num_widgets = $num_widgets + count($v);
     180        if ( current_user_can( 'switch_themes' ) )
     181                $theme_name = sprintf( '<a href="themes.php">%1$s</a>', $theme->display('Name') );
     182        else
     183                $theme_name = $theme->display('Name');
     184?>
     185        <div class="main">
     186        <ul>
     187        <?php
     188        do_action( 'rightnow_list_start' );
     189        // Using show_in_nav_menus as my arg for grabbing what post types should show, is there better?
     190        $post_types = get_post_types( array( 'show_in_nav_menus' => true ), 'objects' );
     191        $post_types = (array) apply_filters( 'rightnow_post_types', $post_types );
     192        foreach ( $post_types as $post_type => $post_type_obj ){
     193                $num_posts = wp_count_posts( $post_type );
     194                if ( $num_posts && $num_posts->publish ) {
     195                        printf(
     196                                '<li class="%1$s-count"><a href="edit.php?post_type=%1$s">%2$s %3$s</a></li>',
     197                                $post_type,
     198                                number_format_i18n( $num_posts->publish ),
     199                                $post_type_obj->label
     200                        );
    380201                }
    381                 $num = number_format_i18n( $num_widgets );
    382 
    383                 $switch_themes = $theme->display('Name');
    384                 if ( current_user_can( 'switch_themes') )
    385                         $switch_themes = '<a href="themes.php">' . $switch_themes . '</a>';
    386                 if ( current_user_can( 'edit_theme_options' ) ) {
    387                         printf(_n('Theme <span class="b">%1$s</span> with <span class="b"><a href="widgets.php">%2$s Widget</a></span>', 'Theme <span class="b">%1$s</span> with <span class="b"><a href="widgets.php">%2$s Widgets</a></span>', $num_widgets), $switch_themes, $num);
    388                 } else {
    389                         printf(_n('Theme <span class="b">%1$s</span> with <span class="b">%2$s Widget</span>', 'Theme <span class="b">%1$s</span> with <span class="b">%2$s Widgets</span>', $num_widgets), $switch_themes, $num);
     202        }
     203        // Comments
     204        $num_comm = wp_count_comments();
     205        if ( $num_comm && $num_comm->total_comments ) {
     206                $text = _n( 'comment', 'comments', $num_comm->total_comments );
     207                printf(
     208                        '<li class="comment-count"><a href="edit-comments.php">%1$s %2$s</a></li>',
     209                        number_format_i18n( $num_comm->total_comments ),
     210                        $text
     211                );
     212                if ( $num_comm->moderated ) {
     213                        $text = _n( 'in moderation', 'in moderation', $num_comm->total_comments );
     214                        printf(
     215                                '<li class="comment-mod-count"><a href="edit-comments.php?comment_status=moderated">%1$s %2$s</a></li>',
     216                                number_format_i18n( $num_comm->moderated ),
     217                                $text
     218                        );
    390219                }
    391         } else {
    392                 if ( current_user_can( 'switch_themes' ) )
    393                         printf( __('Theme <span class="b"><a href="themes.php">%1$s</a></span>'), $theme->display('Name') );
    394                 else
    395                         printf( __('Theme <span class="b">%1$s</span>'), $theme->display('Name') );
    396220        }
    397         echo '</p>';
     221        do_action( 'rightnow_list_end' );
     222        ?>
     223        </ul>
     224        <p><?php printf( __( 'WordPress %1$s running %2$s theme.' ), get_bloginfo( 'version', 'display' ), $theme_name ); ?></p>
     225        </div>
    398226
    399         // Check if search engines are asked not to index this site.
    400         if ( !is_network_admin() && !is_user_admin() && current_user_can('manage_options') && '1' != get_option('blog_public') ) {
    401                 $title = apply_filters('privacy_on_link_title', __('Your site is asking search engines not to index its content') );
    402                 $content = apply_filters('privacy_on_link_text', __('Search Engines Discouraged') );
    403 
    404                 echo "<p><a href='options-reading.php' title='$title'>$content</a></p>";
    405         }
    406 
    407         update_right_now_message();
    408 
    409         echo "\n\t".'<br class="clear" /></div>';
     227        <?php
     228        // activity_box_end has a core action, but only prints content when multisite.
     229        // Using an output buffer is the only way to really check if anything's displayed here.
     230        ob_start();
    410231        do_action( 'rightnow_end' );
    411232        do_action( 'activity_box_end' );
     233        $actions = ob_get_clean();
     234
     235        if ( !empty( $actions ) ) : ?>
     236        <div class="sub">
     237                <?php echo $actions; ?>
     238        </div>
     239        <?php endif;
    412240}
    413241
    414242function wp_network_dashboard_right_now() {
     
    458286        do_action( 'mu_activity_box_end' );
    459287}
    460288
    461 function wp_dashboard_quick_press() {
     289/**
     290 * The Quick Draft widget display and creation of drafts
     291 *
     292 *
     293 *
     294 * @since 3.8.0
     295 *
     296 */
     297function wp_dashboard_quick_draft( $error_msg=false ) {
    462298        global $post_ID;
    463299
    464         $drafts = false;
    465         if ( 'post' === strtolower( $_SERVER['REQUEST_METHOD'] ) && isset( $_POST['action'] ) && 0 === strpos( $_POST['action'], 'post-quickpress' ) && (int) $_POST['post_ID'] ) {
    466                 $view = get_permalink( $_POST['post_ID'] );
    467                 $edit = esc_url( get_edit_post_link( $_POST['post_ID'] ) );
    468                 if ( 'post-quickpress-publish' == $_POST['action'] ) {
    469                         if ( current_user_can('publish_posts') )
    470                                 printf( '<div class="updated"><p>' . __( 'Post published. <a href="%s">View post</a> | <a href="%s">Edit post</a>' ) . '</p></div>', esc_url( $view ), $edit );
    471                         else
    472                                 printf( '<div class="updated"><p>' . __( 'Post submitted. <a href="%s">Preview post</a> | <a href="%s">Edit post</a>' ) . '</p></div>', esc_url( add_query_arg( 'preview', 1, $view ) ), $edit );
    473                 } else {
    474                         printf( '<div class="updated"><p>' . __( 'Draft saved. <a href="%s">Preview post</a> | <a href="%s">Edit post</a>' ) . '</p></div>', esc_url( add_query_arg( 'preview', 1, $view ) ), $edit );
    475                         $drafts_query = new WP_Query( array(
    476                                 'post_type' => 'post',
    477                                 'post_status' => 'draft',
    478                                 'author' => $GLOBALS['current_user']->ID,
    479                                 'posts_per_page' => 1,
    480                                 'orderby' => 'modified',
    481                                 'order' => 'DESC'
    482                         ) );
    483 
    484                         if ( $drafts_query->posts )
    485                                 $drafts =& $drafts_query->posts;
    486                 }
    487                 printf('<p class="easy-blogging">' . __('You can also try %s, easy blogging from anywhere on the Web.') . '</p>', '<a href="' . esc_url( admin_url( 'tools.php' ) ) . '">' . __('Press This') . '</a>' );
    488                 $_REQUEST = array(); // hack for get_default_post_to_edit()
    489         }
    490 
    491300        /* Check if a new auto-draft (= no new post_ID) is needed or if the old can be used */
    492301        $last_post_id = (int) get_user_option( 'dashboard_quick_press_last_post_id' ); // Get the last post_ID
    493302        if ( $last_post_id ) {
    494303                $post = get_post( $last_post_id );
    495304                if ( empty( $post ) || $post->post_status != 'auto-draft' ) { // auto-draft doesn't exists anymore
    496                         $post = get_default_post_to_edit('post', true);
     305                        $post = get_default_post_to_edit( 'post', true );
    497306                        update_user_option( get_current_user_id(), 'dashboard_quick_press_last_post_id', (int) $post->ID ); // Save post_ID
    498307                } else {
    499308                        $post->post_title = ''; // Remove the auto draft title
     
    507316        }
    508317
    509318        $post_ID = (int) $post->ID;
    510 
    511         $media_settings = array(
    512                 'id' => $post->ID,
    513                 'nonce' => wp_create_nonce( 'update-post_' . $post->ID ),
    514         );
    515 
    516         if ( current_theme_supports( 'post-thumbnails', $post->post_type ) && post_type_supports( $post->post_type, 'thumbnail' ) ) {
    517                 $featured_image_id = get_post_meta( $post->ID, '_thumbnail_id', true );
    518                 $media_settings['featuredImageId'] = $featured_image_id ? $featured_image_id : -1;
    519         }
     319       
     320        do_action( 'dashboard_quickdraft_beginning', $post );
    520321?>
    521322
    522         <form name="post" action="<?php echo esc_url( admin_url( 'post.php' ) ); ?>" method="post" id="quick-press">
     323        <form name="post" action="<?php echo esc_url( admin_url( 'post.php' ) ); ?>" method="post" id="quick-press" class="initial-form">
     324               
     325                <?php if ($error_msg) : ?>
     326                <div class="error"><?php _e( $error_msg ); ?></div>
     327                <?php endif; ?>
     328               
    523329                <div class="input-text-wrap" id="title-wrap">
    524                         <label class="screen-reader-text prompt" for="title" id="title-prompt-text"><?php _e( 'Enter title here' ); ?></label>
    525                         <input type="text" name="post_title" id="title" autocomplete="off" value="<?php echo esc_attr( $post->post_title ); ?>" />
     330                        <label class="screen-reader-text prompt" for="title" id="title-prompt-text"><?php _e( "What's on your mind?" ); ?></label>
     331                        <input type="text" name="post_title" id="title" autocomplete="off" />
    526332                </div>
    527333
    528                 <?php if ( current_user_can( 'upload_files' ) ) : ?>
    529                 <div id="wp-content-wrap" class="wp-editor-wrap hide-if-no-js wp-media-buttons">
    530                         <?php do_action( 'media_buttons', 'content' ); ?>
     334                <div class="textarea-wrap" id="description-wrap">
     335                        <label class="screen-reader-text prompt" for="content" id="content-prompt-text"><?php _e( 'Enter a description' ); ?></label>
     336                        <textarea name="content" id="content" class="mceEditor" rows="3" cols="15"></textarea>
    531337                </div>
    532                 <?php endif; ?>
    533338
    534                 <div class="textarea-wrap">
    535                         <label class="screen-reader-text" for="content"><?php _e( 'Content' ); ?></label>
    536                         <textarea name="content" id="content" class="mceEditor" rows="3" cols="15"><?php echo esc_textarea( $post->post_content ); ?></textarea>
    537                 </div>
    538 
    539                 <script type="text/javascript">
    540                 edCanvas = document.getElementById('content');
    541                 edInsertContent = null;
    542                 <?php if ( $_POST ) : ?>
    543                 wp.media.editor.remove('content');
    544                 wp.media.view.settings.post = <?php echo json_encode( $media_settings ); // big juicy hack. ?>;
    545                 wp.media.editor.add('content');
    546                 <?php endif; ?>
    547                 </script>
    548 
    549                 <div class="input-text-wrap" id="tags-input-wrap">
    550                         <label class="screen-reader-text prompt" for="tags-input" id="tags-input-prompt-text"><?php _e( 'Tags (separate with commas)' ); ?></label>
    551                         <input type="text" name="tags_input" id="tags-input" value="<?php echo get_tags_to_edit( $post->ID ); ?>" />
    552                 </div>
    553 
    554339                <p class="submit">
    555                         <span id="publishing-action">
    556                                 <input type="submit" name="publish" id="publish" accesskey="p" class="button-primary" value="<?php current_user_can('publish_posts') ? esc_attr_e('Publish') : esc_attr_e('Submit for Review'); ?>" />
    557                                 <span class="spinner"></span>
    558                         </span>
    559                         <input type="hidden" name="action" id="quickpost-action" value="post-quickpress-save" />
     340                        <input type="hidden" name="action" id="quickpost-action" value="post-quickdraft-save" />
    560341                        <input type="hidden" name="post_ID" value="<?php echo $post_ID; ?>" />
    561342                        <input type="hidden" name="post_type" value="post" />
    562                         <?php wp_nonce_field('add-post'); ?>
    563                         <?php submit_button( __( 'Save Draft' ), 'button', 'save', false, array( 'id' => 'save-post' ) ); ?>
    564                         <input type="reset" value="<?php esc_attr_e( 'Reset' ); ?>" class="button" />
     343                        <?php wp_nonce_field( 'add-post' ); ?>
     344                        <?php submit_button( __( 'Save Draft' ), 'primary', 'save', false, array( 'id' => 'save-post' ) ); ?>
    565345                        <br class="clear" />
    566346                </p>
    567347
    568348        </form>
    569349
    570350<?php
    571         if ( $drafts )
    572                 wp_dashboard_recent_drafts( $drafts );
     351        wp_dashboard_recent_quickdrafts();
     352       
     353        do_action( 'dashboard_quickdraft_end' );
    573354}
    574355
    575 function wp_dashboard_recent_drafts( $drafts = false ) {
    576         if ( !$drafts ) {
    577                 $drafts_query = new WP_Query( array(
    578                         'post_type' => 'post',
    579                         'post_status' => 'draft',
    580                         'author' => $GLOBALS['current_user']->ID,
    581                         'posts_per_page' => 5,
    582                         'orderby' => 'modified',
    583                         'order' => 'DESC'
    584                 ) );
    585                 $drafts =& $drafts_query->posts;
    586         }
     356/**
     357 * Show `Recent Drafts` below Quick Draft form
     358 *
     359 *
     360 *
     361 * @since 3.8.0
     362 *
     363 */
     364function wp_dashboard_recent_quickdrafts() {
    587365
     366        $query_args = array(
     367                'post_type'      => 'post',
     368                'post_status'    => 'draft',
     369                'author'         => $GLOBALS['current_user']->ID,
     370                'posts_per_page' => 4,
     371                'orderby'        => 'modified',
     372                'order'          => 'DESC'
     373        );
     374        $query_args = apply_filters( 'dash_recent_quickdrafts_query_args', $query_args );
     375        $drafts_query = new WP_Query( $query_args );
     376        $drafts =& $drafts_query->posts;
     377
     378
    588379        if ( $drafts && is_array( $drafts ) ) {
    589380                $list = array();
     381                $draft_count = 0;
    590382                foreach ( $drafts as $draft ) {
     383                        if ( 3 == $draft_count )
     384                                break;
     385                       
     386                        $draft_count++;
     387                       
    591388                        $url = get_edit_post_link( $draft->ID );
    592389                        $title = _draft_or_post_title( $draft->ID );
    593                         $item = "<h4><a href='$url' title='" . sprintf( __( 'Edit &#8220;%s&#8221;' ), esc_attr( $title ) ) . "'>" . esc_html($title) . "</a> <abbr title='" . get_the_time(__('Y/m/d g:i:s A'), $draft) . "'>" . get_the_time( get_option( 'date_format' ), $draft ) . '</abbr></h4>';
     390                        $item = '<a href="' . $url . '" title="' . sprintf( __( 'Edit &#8220;%s&#8221;' ), esc_attr( $title ) ) . '">' . esc_html( $title ) . '</a> <time datetime="' . get_the_time( 'c', $draft) . '">' . get_the_time( get_option( 'date_format' ), $draft ) . '</time>';
    594391                        if ( $the_content = wp_trim_words( $draft->post_content, 10 ) )
    595392                                $item .= '<p>' . $the_content . '</p>';
    596393                        $list[] = $item;
    597394                }
     395               
     396                do_action( 'dashboard_quickdraft_drafts_list', $drafts );
    598397?>
    599         <ul>
    600                 <li><?php echo join( "</li>\n<li>", $list ); ?></li>
    601         </ul>
    602         <p class="textright"><a href="edit.php?post_status=draft" ><?php _e('View all'); ?></a></p>
    603 <?php
    604         } else {
    605                 _e('There are no drafts at the moment');
    606         }
     398        <div class="drafts">
     399                <?php if ( 3 < count($drafts) ) { ?>
     400                <p class="view-all"><a href="edit.php?post_status=draft" ><?php _e( 'View all' ); ?></a></p>
     401                <?php } ?>
     402                <h4><?php _e('Drafts'); ?></h4>
     403                <ul id="draft-list">
     404                        <li><?php echo join( "</li>\n<li>", $list ); ?></li>
     405                </ul>
     406        </div>
     407<?php }
    607408}
    608409
    609 /**
    610  * Display recent comments dashboard widget content.
    611  *
    612  * @since 2.5.0
    613  */
    614 function wp_dashboard_recent_comments() {
    615         global $wpdb;
    616 
    617         // Select all comment types and filter out spam later for better query performance.
    618         $comments = array();
    619         $start = 0;
    620 
    621         $widgets = get_option( 'dashboard_widget_options' );
    622         $total_items = isset( $widgets['dashboard_recent_comments'] ) && isset( $widgets['dashboard_recent_comments']['items'] )
    623                 ? absint( $widgets['dashboard_recent_comments']['items'] ) : 5;
    624 
    625         $comments_query = array( 'number' => $total_items * 5, 'offset' => 0 );
    626         if ( ! current_user_can( 'edit_posts' ) )
    627                 $comments_query['status'] = 'approve';
    628 
    629         while ( count( $comments ) < $total_items && $possible = get_comments( $comments_query ) ) {
    630                 foreach ( $possible as $comment ) {
    631                         if ( ! current_user_can( 'read_post', $comment->comment_post_ID ) )
    632                                 continue;
    633                         $comments[] = $comment;
    634                         if ( count( $comments ) == $total_items )
    635                                 break 2;
    636                 }
    637                 $comments_query['offset'] += $comments_query['number'];
    638                 $comments_query['number'] = $total_items * 10;
    639         }
    640 
    641         if ( $comments ) {
    642                 echo '<div id="the-comment-list" data-wp-lists="list:comment">';
    643                 foreach ( $comments as $comment )
    644                         _wp_dashboard_recent_comments_row( $comment );
    645                 echo '</div>';
    646 
    647                 if ( current_user_can('edit_posts') )
    648                         _get_list_table('WP_Comments_List_Table')->views();
    649 
    650                 wp_comment_reply( -1, false, 'dashboard', false );
    651                 wp_comment_trashnotice();
    652         } else {
    653                 echo '<p>' . __( 'No comments yet.' ) . '</p>';
    654         }
    655 }
    656 
    657410function _wp_dashboard_recent_comments_row( &$comment, $show_date = true ) {
    658411        $GLOBALS['comment'] =& $comment;
    659412
     
    748501}
    749502
    750503/**
    751  * The recent comments dashboard widget control.
     504 * callback function for `Activity` widget
    752505 *
    753  * @since 3.0.0
     506 *
     507 *
     508 * @since 3.8.0
     509 *
    754510 */
    755 function wp_dashboard_recent_comments_control() {
    756         if ( !$widget_options = get_option( 'dashboard_widget_options' ) )
    757                 $widget_options = array();
     511function wp_dashboard_activity() {
    758512
    759         if ( !isset($widget_options['dashboard_recent_comments']) )
    760                 $widget_options['dashboard_recent_comments'] = array();
     513        echo '<div id="activity-widget">';
    761514
    762         if ( 'POST' == $_SERVER['REQUEST_METHOD'] && isset($_POST['widget-recent-comments']) ) {
    763                 $number = absint( $_POST['widget-recent-comments']['items'] );
    764                 $widget_options['dashboard_recent_comments']['items'] = $number;
    765                 update_option( 'dashboard_widget_options', $widget_options );
     515        do_action( 'dashboard_activity_beginning' );
     516
     517        $future_posts = dashboard_show_published_posts( array(
     518                'display' => 2,
     519                'max'     => 5,
     520                'status'  => 'future',
     521                'order'   => 'ASC',
     522                'title'   => __( 'Publishing Soon' ),
     523                'id'      => 'future-posts',
     524        ) );
     525        $recent_posts = dashboard_show_published_posts( array(
     526                'display' => 2,
     527                'max'     => 5,
     528                'status'  => 'publish',
     529                'order'   => 'DESC',
     530                'title'   => __( 'Recently Published' ),
     531                'id'      => 'published-posts',
     532        ) );
     533       
     534        do_action( 'dashboard_activity_middle' );
     535       
     536        $recent_comments = dashboard_comments();
     537       
     538        if ( !$future_posts && !$recent_posts && !$recent_comments ) {
     539                echo '<div class="no-activity">';
     540                echo '<p class="smiley"></p>';
     541                echo '<p>' . __( 'No activity yet!' ) . '</p>';
     542                echo '</div>';
    766543        }
     544       
     545        do_action( 'dashboard_activity_end' );
    767546
    768         $number = isset( $widget_options['dashboard_recent_comments']['items'] ) ? (int) $widget_options['dashboard_recent_comments']['items'] : '';
    769 
    770         echo '<p><label for="comments-number">' . __('Number of comments to show:') . '</label>';
    771         echo '<input id="comments-number" name="widget-recent-comments[items]" type="text" value="' . $number . '" size="3" /></p>';
     547        echo '</div>';
    772548}
    773549
    774 function wp_dashboard_incoming_links() {
    775         wp_dashboard_cached_rss_widget( 'dashboard_incoming_links', 'wp_dashboard_incoming_links_output' );
    776 }
    777 
    778550/**
    779  * Display incoming links dashboard widget content.
     551 * Generates `Publishing Soon` and `Recently Published` sections
    780552 *
    781  * @since 2.5.0
     553 *
     554 *
     555 * @since 3.8.0
     556 *
    782557 */
    783 function wp_dashboard_incoming_links_output() {
    784         $widgets = get_option( 'dashboard_widget_options' );
    785         @extract( @$widgets['dashboard_incoming_links'], EXTR_SKIP );
    786         $rss = fetch_feed( $url );
     558function dashboard_show_published_posts( $args ) {
    787559
    788         if ( is_wp_error($rss) ) {
    789                 if ( is_admin() || current_user_can('manage_options') ) {
    790                         echo '<p>';
    791                         printf(__('<strong>RSS Error</strong>: %s'), $rss->get_error_message());
    792                         echo '</p>';
    793                 }
    794                 return;
    795         }
     560        $query_args = array(
     561                'post_type'      => 'post',
     562                'post_status'    => $args['status'],
     563                'orderby'        => 'date',
     564                'order'          => $args['order'],
     565                'posts_per_page' => intval( $args['max'] ),
     566                'no_found_rows'  => true,
     567                'cache_results'  => false
     568        );
     569        $query_args = apply_filters( 'dash_show_published_posts_query_args', $query_args );
     570        $posts = new WP_Query( $query_args );
    796571
    797         if ( !$rss->get_item_quantity() ) {
    798                 echo '<p>' . __('This dashboard widget queries <a href="http://blogsearch.google.com/">Google Blog Search</a> so that when another blog links to your site it will show up here. It has found no incoming links&hellip; yet. It&#8217;s okay &#8212; there is no rush.') . "</p>\n";
    799                 $rss->__destruct();
    800                 unset($rss);
    801                 return;
    802         }
     572        if ( $posts->have_posts() ) {
    803573
    804         echo "<ul>\n";
     574                echo '<div id="' . $args['id'] . '" class="activity-block">';
    805575
    806         if ( !isset($items) )
    807                 $items = 10;
    808 
    809         foreach ( $rss->get_items(0, $items) as $item ) {
    810                 $publisher = '';
    811                 $site_link = '';
    812                 $link = '';
    813                 $content = '';
    814                 $date = '';
    815                 $link = esc_url( strip_tags( $item->get_link() ) );
    816 
    817                 $author = $item->get_author();
    818                 if ( $author ) {
    819                         $site_link = esc_url( strip_tags( $author->get_link() ) );
    820 
    821                         if ( !$publisher = esc_html( strip_tags( $author->get_name() ) ) )
    822                                 $publisher = __( 'Somebody' );
    823                 } else {
    824                   $publisher = __( 'Somebody' );
     576                if ( $posts->post_count > $args['display'] ) {
     577                        echo '<small class="show-more"><a href="#">' . sprintf( __( 'See %s more&hellip;'), $posts->post_count - intval( $args['display'] ) ) . '</a></small>';
    825578                }
    826                 if ( $site_link )
    827                         $publisher = "<a href='$site_link'>$publisher</a>";
    828                 else
    829                         $publisher = "<strong>$publisher</strong>";
    830579
    831                 $content = $item->get_content();
    832                 $content = wp_html_excerpt( $content, 50, ' &hellip;' );
     580                echo '<h4>' . $args['title'] . '</h4>';
    833581
    834                 if ( $link )
    835                         /* translators: incoming links feed, %1$s is other person, %3$s is content */
    836                         $text = __( '%1$s linked here <a href="%2$s">saying</a>, "%3$s"' );
    837                 else
    838                         /* translators: incoming links feed, %1$s is other person, %3$s is content */
    839                         $text = __( '%1$s linked here saying, "%3$s"' );
     582                echo '<ul>';
    840583
    841                 if ( !empty( $show_date ) ) {
    842                         if ( $link )
    843                                 /* translators: incoming links feed, %1$s is other person, %3$s is content, %4$s is the date */
    844                                 $text = __( '%1$s linked here <a href="%2$s">saying</a>, "%3$s" on %4$s' );
    845                         else
    846                                 /* translators: incoming links feed, %1$s is other person, %3$s is content, %4$s is the date */
    847                                 $text = __( '%1$s linked here saying, "%3$s" on %4$s' );
    848                         $date = esc_html( strip_tags( $item->get_date() ) );
    849                         $date = strtotime( $date );
    850                         $date = gmdate( get_option( 'date_format' ), $date );
     584                $i = 0;
     585                while ( $posts->have_posts() ) {
     586                        $posts->the_post();
     587                        printf(
     588                                '<li%s><span>%s, %s</span> <a href="%s">%s</a></li>',
     589                                ( $i >= intval ( $args['display'] ) ? ' class="hidden"' : '' ),
     590                                dashboard_relative_date( get_the_time( 'U' ) ),
     591                                get_the_time(),
     592                                get_edit_post_link(),
     593                                get_the_title()
     594                        );
     595                        $i++;
    851596                }
    852597
    853                 echo "\t<li>" . sprintf( $text, $publisher, $link, $content, $date ) . "</li>\n";
     598                echo '</ul>';
     599                echo '</div>';
     600
     601        } else {
     602                return false;
    854603        }
    855604
    856         echo "</ul>\n";
    857         $rss->__destruct();
    858         unset($rss);
    859 }
     605        wp_reset_postdata();
    860606
    861 function wp_dashboard_incoming_links_control() {
    862         wp_dashboard_rss_control( 'dashboard_incoming_links', array( 'title' => false, 'show_summary' => false, 'show_author' => false ) );
     607        return true;
    863608}
    864609
    865 function wp_dashboard_primary() {
    866         wp_dashboard_cached_rss_widget( 'dashboard_primary', 'wp_dashboard_rss_output' );
    867 }
    868 
    869 function wp_dashboard_primary_control() {
    870         wp_dashboard_rss_control( 'dashboard_primary' );
    871 }
    872 
    873610/**
    874  * Display primary dashboard RSS widget feed.
     611 * Show `Comments` section
    875612 *
    876  * @since 2.5.0
    877613 *
    878  * @param string $widget_id
    879  */
    880 function wp_dashboard_rss_output( $widget_id ) {
    881         $widgets = get_option( 'dashboard_widget_options' );
    882         echo '<div class="rss-widget">';
    883         wp_widget_rss_output( $widgets[$widget_id] );
    884         echo "</div>";
    885 }
    886 
    887 function wp_dashboard_secondary() {
    888         wp_dashboard_cached_rss_widget( 'dashboard_secondary', 'wp_dashboard_secondary_output' );
    889 }
    890 
    891 function wp_dashboard_secondary_control() {
    892         wp_dashboard_rss_control( 'dashboard_secondary' );
    893 }
    894 
    895 /**
    896  * Display secondary dashboard RSS widget feed.
    897614 *
    898  * @since 2.5.0
     615 * @since 3.8.0
    899616 *
    900  * @return unknown
    901617 */
    902 function wp_dashboard_secondary_output() {
    903         $widgets = get_option( 'dashboard_widget_options' );
    904         @extract( @$widgets['dashboard_secondary'], EXTR_SKIP );
    905         $rss = @fetch_feed( $url );
     618function dashboard_comments( $total_items = 5 ) {
     619        global $wpdb;
    906620
    907         if ( is_wp_error($rss) ) {
    908                 if ( is_admin() || current_user_can('manage_options') ) {
    909                         echo '<div class="rss-widget"><p>';
    910                         printf(__('<strong>RSS Error</strong>: %s'), $rss->get_error_message());
    911                         echo '</p></div>';
     621        // Select all comment types and filter out spam later for better query performance.
     622        $comments = array();
     623        $start = 0;
     624
     625        $comments_query = array(
     626                'number' => $total_items * 5,
     627                'offset' => 0
     628        );
     629        if ( ! current_user_can( 'edit_posts' ) )
     630                $comments_query['status'] = 'approve';
     631
     632        while ( count( $comments ) < $total_items && $possible = get_comments( $comments_query ) ) {
     633                foreach ( $possible as $comment ) {
     634                        if ( ! current_user_can( 'read_post', $comment->comment_post_ID ) )
     635                                continue;
     636                        $comments[] = $comment;
     637                        if ( count( $comments ) == $total_items )
     638                                break 2;
    912639                }
    913         } elseif ( !$rss->get_item_quantity() ) {
    914                 $rss->__destruct();
    915                 unset($rss);
    916                 return false;
    917         } else {
    918                 echo '<div class="rss-widget">';
    919                 wp_widget_rss_output( $rss, $widgets['dashboard_secondary'] );
     640                $comments_query['offset'] += $comments_query['number'];
     641                $comments_query['number'] = $total_items * 10;
     642        }
     643       
     644       
     645
     646        if ( $comments ) {
     647                echo '<div id="latest-comments" class="activity-block">';
     648                echo '<h4>' . __( 'Comments' ) . '</h4>';
     649               
     650                echo '<div id="the-comment-list" data-wp-lists="list:comment">';
     651                foreach ( $comments as $comment )
     652                        _wp_dashboard_recent_comments_row( $comment );
    920653                echo '</div>';
    921                 $rss->__destruct();
    922                 unset($rss);
     654
     655                if ( current_user_can('edit_posts') )
     656                        _get_list_table('WP_Comments_List_Table')->views();
     657
     658                wp_comment_reply( -1, false, 'dashboard', false );
     659                wp_comment_trashnotice();
     660               
     661                echo '</div>';
     662        } else {
     663                return false;
    923664        }
     665        return true;
    924666}
    925667
    926 function wp_dashboard_plugins() {
    927         wp_dashboard_cached_rss_widget( 'dashboard_plugins', 'wp_dashboard_plugins_output', array(
    928                 'http://wordpress.org/plugins/rss/browse/popular/',
    929                 'http://wordpress.org/plugins/rss/browse/new/'
    930         ) );
    931 }
    932 
    933668/**
    934  * Display plugins most popular, newest plugins, and recently updated widget text.
     669 * return relative date for given timestamp
    935670 *
    936  * @since 2.5.0
     671 *
     672 *
     673 * @since 3.8.0
     674 *
    937675 */
    938 function wp_dashboard_plugins_output() {
    939         $popular = fetch_feed( 'http://wordpress.org/plugins/rss/browse/popular/' );
    940         $new     = fetch_feed( 'http://wordpress.org/plugins/rss/browse/new/' );
     676function dashboard_relative_date( $time ) {
    941677
    942         if ( false === $plugin_slugs = get_transient( 'plugin_slugs' ) ) {
    943                 $plugin_slugs = array_keys( get_plugins() );
    944                 set_transient( 'plugin_slugs', $plugin_slugs, DAY_IN_SECONDS );
    945         }
     678        $diff = floor( ( $time - time() ) / DAY_IN_SECONDS );
    946679
    947         foreach ( array( 'popular' => __('Most Popular'), 'new' => __('Newest Plugins') ) as $feed => $label ) {
    948                 if ( is_wp_error($$feed) || !$$feed->get_item_quantity() )
    949                         continue;
     680        if ( $diff == 0 )
     681                return __( 'Today' );
    950682
    951                 $items = $$feed->get_items(0, 5);
     683        if ( $diff == 1 )
     684                return __( 'Tomorrow' );
    952685
    953                 // Pick a random, non-installed plugin
    954                 while ( true ) {
    955                         // Abort this foreach loop iteration if there's no plugins left of this type
    956                         if ( 0 == count($items) )
    957                                 continue 2;
     686        return date( 'M jS', $time);
    958687
    959                         $item_key = array_rand($items);
    960                         $item = $items[$item_key];
    961 
    962                         list($link, $frag) = explode( '#', $item->get_link() );
    963 
    964                         $link = esc_url($link);
    965                         if ( preg_match( '|/([^/]+?)/?$|', $link, $matches ) )
    966                                 $slug = $matches[1];
    967                         else {
    968                                 unset( $items[$item_key] );
    969                                 continue;
    970                         }
    971 
    972                         // Is this random plugin's slug already installed? If so, try again.
    973                         reset( $plugin_slugs );
    974                         foreach ( $plugin_slugs as $plugin_slug ) {
    975                                 if ( $slug == substr( $plugin_slug, 0, strlen( $slug ) ) ) {
    976                                         unset( $items[$item_key] );
    977                                         continue 2;
    978                                 }
    979                         }
    980 
    981                         // If we get to this point, then the random plugin isn't installed and we can stop the while().
    982                         break;
    983                 }
    984 
    985                 // Eliminate some common badly formed plugin descriptions
    986                 while ( ( null !== $item_key = array_rand($items) ) && false !== strpos( $items[$item_key]->get_description(), 'Plugin Name:' ) )
    987                         unset($items[$item_key]);
    988 
    989                 if ( !isset($items[$item_key]) )
    990                         continue;
    991 
    992                 $title = esc_html( $item->get_title() );
    993 
    994                 $description = esc_html( strip_tags(@html_entity_decode($item->get_description(), ENT_QUOTES, get_option('blog_charset'))) );
    995 
    996                 $ilink = wp_nonce_url('plugin-install.php?tab=plugin-information&plugin=' . $slug, 'install-plugin_' . $slug) .
    997                                                         '&amp;TB_iframe=true&amp;width=600&amp;height=800';
    998 
    999                 echo "<h4>$label</h4>\n";
    1000                 echo "<h5><a href='$link'>$title</a></h5>&nbsp;<span>(<a href='$ilink' class='thickbox' title='$title'>" . __( 'Install' ) . "</a>)</span>\n";
    1001                 echo "<p>$description</p>\n";
    1002 
    1003                 $$feed->__destruct();
    1004                 unset($$feed);
    1005         }
    1006688}
    1007689
    1008690/**
     
    1074756}
    1075757
    1076758/**
    1077  * The RSS dashboard widget control.
     759 * Returns default WordPress News feeds
    1078760 *
    1079  * Sets up $args to be used as input to wp_widget_rss_form(). Handles POST data
    1080  * from RSS-type widgets.
    1081761 *
    1082  * @since 2.5.0
    1083762 *
    1084  * @param string $widget_id
    1085  * @param array $form_inputs
     763 * @since 3.8.0
     764 *
    1086765 */
    1087 function wp_dashboard_rss_control( $widget_id, $form_inputs = array() ) {
    1088         if ( !$widget_options = get_option( 'dashboard_widget_options' ) )
     766function wp_dashboard_default_feeds() {
     767        return array(
     768                'news'   => array(
     769                        'link'         => apply_filters( 'dashboard_primary_link', __( 'http://wordpress.org/news/' ) ),
     770                        'url'          => apply_filters( 'dashboard_primary_feed', __( 'http://wordpress.org/news/feed/' ) ),
     771                        'title'        => '',
     772                        'items'        => 1,
     773                        'show_summary' => 1,
     774                        'show_author'  => 0,
     775                        'show_date'    => 1,
     776                ),
     777                'planet' => array(
     778                        'link'         => apply_filters( 'dashboard_secondary_link', __( 'http://planet.wordpress.org/' ) ),
     779                        'url'          => apply_filters( 'dashboard_secondary_feed', __( 'http://planet.wordpress.org/feed/' ) ),
     780                        'title'        => '',
     781                        'items'        => 3,
     782                        'show_summary' => 0,
     783                        'show_author'  => 0,
     784                        'show_date'    => 0,
     785                ),
     786                'plugins' => array(
     787                        'link'         => '',
     788                        'url'          => array(
     789                                        'popular' => 'http://wordpress.org/plugins/rss/browse/popular/',
     790                                        'new'     => 'http://wordpress.org/plugins/rss/browse/new/'
     791                        ),
     792                        'title'        => '',
     793                        'items'        => 1,
     794                        'show_summary' => 0,
     795                        'show_author'  => 0,
     796                        'show_date'    => 0,
     797                )
     798        );
     799}
     800
     801/**
     802 * Check for cached feeds
     803 *
     804 *
     805 *
     806 * @since 3.8.0
     807 *
     808 */
     809function wp_dashboard_rss() {
     810        $default_feeds = wp_dashboard_default_feeds();
     811
     812        $widget_options = get_option( 'dashboard_widget_options' );
     813
     814        if ( !$widget_options || !is_array($widget_options) )
    1089815                $widget_options = array();
    1090816
    1091         if ( !isset($widget_options[$widget_id]) )
    1092                 $widget_options[$widget_id] = array();
     817        if ( ! isset( $widget_options['dashboard_rss'] ) ) {
     818                $widget_options['dashboard_rss'] = $default_feeds;
     819                update_option( 'dashboard_widget_options', $widget_options );
     820        }
    1093821
    1094         $number = 1; // Hack to use wp_widget_rss_form()
    1095         $widget_options[$widget_id]['number'] = $number;
     822        foreach( $default_feeds as $key => $value ) {
     823                $default_urls[] = $value['url'];
     824        }
     825       
     826        do_action( 'dashboard_news_beginning' );
    1096827
    1097         if ( 'POST' == $_SERVER['REQUEST_METHOD'] && isset($_POST['widget-rss'][$number]) ) {
    1098                 $_POST['widget-rss'][$number] = wp_unslash( $_POST['widget-rss'][$number] );
    1099                 $widget_options[$widget_id] = wp_widget_rss_process( $_POST['widget-rss'][$number] );
    1100                 $widget_options[$widget_id]['number'] = $number;
    1101                 // title is optional. If black, fill it if possible
    1102                 if ( !$widget_options[$widget_id]['title'] && isset($_POST['widget-rss'][$number]['title']) ) {
    1103                         $rss = fetch_feed($widget_options[$widget_id]['url']);
    1104                         if ( is_wp_error($rss) ) {
    1105                                 $widget_options[$widget_id]['title'] = htmlentities(__('Unknown Feed'));
    1106                         } else {
    1107                                 $widget_options[$widget_id]['title'] = htmlentities(strip_tags($rss->get_title()));
    1108                                 $rss->__destruct();
    1109                                 unset($rss);
     828        wp_dashboard_cached_rss_widget( 'dashboard_rss', 'wp_dashboard_news_output', $default_urls );
     829       
     830        do_action( 'dashboard_news_end' );
     831}
     832
     833/**
     834 * Display news feeds
     835 *
     836 *
     837 *
     838 * @since 3.8.0
     839 *
     840 */
     841function wp_dashboard_news_output() {
     842        $widgets = get_option( 'dashboard_widget_options' );
     843
     844        foreach( $widgets['dashboard_rss'] as $type => $args ) {
     845                $args['type'] = $type;
     846                echo '<div class="rss-widget">';
     847                wp_widget_news_output( $args['url'], $args );
     848                echo "</div>";
     849        }
     850}
     851
     852/**
     853 * Generate code for each news feed
     854 *
     855 *
     856 *
     857 * @since 3.8.0
     858 *
     859 */
     860function wp_widget_news_output( $rss, $args = array() ) {
     861       
     862        // Regular RSS feeds
     863        if ( isset( $args['type'] ) && 'plugins' != $args['type'] )     
     864                return wp_widget_rss_output( $rss, $args );
     865       
     866        // Plugin feeds plus link to install them
     867        if ( ! is_multisite() && current_user_can( 'install_plugins' ) ) {
     868                $popular = fetch_feed( $args['url']['popular'] );
     869                $new     = fetch_feed( $args['url']['new'] );
     870       
     871                if ( false === $plugin_slugs = get_transient( 'plugin_slugs' ) ) {
     872                        $plugin_slugs = array_keys( get_plugins() );
     873                        set_transient( 'plugin_slugs', $plugin_slugs, DAY_IN_SECONDS );
     874                }
     875       
     876                echo '<ul>';
     877       
     878                foreach ( array(
     879                        'popular' => __( 'Popular Plugin' ),
     880                        'new'     => __( 'Newest Plugin' )
     881                ) as $feed => $label ) {
     882                        if ( is_wp_error($$feed) || !$$feed->get_item_quantity() )
     883                                continue;
     884       
     885                        $items = $$feed->get_items(0, 5);
     886       
     887                        // Pick a random, non-installed plugin
     888                        while ( true ) {
     889                                // Abort this foreach loop iteration if there's no plugins left of this type
     890                                if ( 0 == count($items) )
     891                                        continue 2;
     892       
     893                                $item_key = array_rand($items);
     894                                $item = $items[$item_key];
     895       
     896                                list($link, $frag) = explode( '#', $item->get_link() );
     897       
     898                                $link = esc_url($link);
     899                                if ( preg_match( '|/([^/]+?)/?$|', $link, $matches ) )
     900                                        $slug = $matches[1];
     901                                else {
     902                                        unset( $items[$item_key] );
     903                                        continue;
     904                                }
     905       
     906                                // Is this random plugin's slug already installed? If so, try again.
     907                                reset( $plugin_slugs );
     908                                foreach ( $plugin_slugs as $plugin_slug ) {
     909                                        if ( $slug == substr( $plugin_slug, 0, strlen( $slug ) ) ) {
     910                                                unset( $items[$item_key] );
     911                                                continue 2;
     912                                        }
     913                                }
     914       
     915                                // If we get to this point, then the random plugin isn't installed and we can stop the while().
     916                                break;
    1110917                        }
     918       
     919                        // Eliminate some common badly formed plugin descriptions
     920                        while ( ( null !== $item_key = array_rand($items) ) && false !== strpos( $items[$item_key]->get_description(), 'Plugin Name:' ) )
     921                                unset($items[$item_key]);
     922       
     923                        if ( !isset($items[$item_key]) )
     924                                continue;
     925       
     926                        $title = esc_html( $item->get_title() );
     927       
     928                        $description = esc_html( strip_tags( @html_entity_decode( $item->get_description(), ENT_QUOTES, get_option( 'blog_charset' ) ) ) );
     929       
     930                        $ilink = wp_nonce_url('plugin-install.php?tab=plugin-information&plugin=' . $slug, 'install-plugin_' . $slug) . '&amp;TB_iframe=true&amp;width=600&amp;height=800';
     931       
     932                        echo "<li><span>$label:</span> <a href='$link'>$title</a></h5>&nbsp;<span>(<a href='$ilink' class='thickbox' title='$title'>" . __( 'Install' ) . "</a>)</span></li>";
     933       
     934                        $$feed->__destruct();
     935                        unset( $$feed );
    1111936                }
    1112                 update_option( 'dashboard_widget_options', $widget_options );
    1113                 $cache_key = 'dash_' . md5( $widget_id );
    1114                 delete_transient( $cache_key );
     937               
     938                echo '</ul>';
    1115939        }
    1116 
    1117         wp_widget_rss_form( $widget_options[$widget_id], $form_inputs );
    1118940}
    1119941
    1120942/**
     
    1127949 * @return bool True if not multisite, user can't upload files, or the space check option is disabled.
    1128950*/
    1129951function wp_dashboard_quota() {
    1130         if ( !is_multisite() || !current_user_can('upload_files') || get_site_option( 'upload_space_check_disabled' ) )
     952        if ( !is_multisite() || !current_user_can( 'upload_files' ) || get_site_option( 'upload_space_check_disabled' ) )
    1131953                return true;
    1132954
    1133955        $quota = get_space_allowed();
     
    1137959                $percentused = '100';
    1138960        else
    1139961                $percentused = ( $used / $quota ) * 100;
    1140         $used_color = ( $percentused >= 70 ) ? ' spam' : '';
     962        $used_class = ( $percentused >= 70 ) ? ' warning' : '';
    1141963        $used = round( $used, 2 );
    1142964        $percentused = number_format( $percentused );
    1143965
    1144966        ?>
    1145         <p class="sub musub"><?php _e( 'Storage Space' ); ?></p>
    1146         <div class="table table_content musubtable">
    1147         <table>
    1148                 <tr class="first">
    1149                         <td class="first b b-posts"><?php printf( __( '<a href="%1$s" title="Manage Uploads" class="musublink">%2$sMB</a>' ), esc_url( admin_url( 'upload.php' ) ), number_format_i18n( $quota ) ); ?></td>
    1150                         <td class="t posts"><?php _e( 'Space Allowed' ); ?></td>
    1151                 </tr>
    1152         </table>
     967        <h4 class="mu-storage"><?php _e( 'Storage Space' ); ?></h4>
     968        <div class="mu-storage">
     969        <ul>
     970                <li class="storage-count">
     971                        <?php printf(
     972                                '<a href="%1$s" title="%3$s">%2$sMB %4$s</a>',
     973                                esc_url( admin_url( 'upload.php' ) ),
     974                                number_format_i18n( $quota ),
     975                                __( 'Manage Uploads' ),
     976                                __( 'Space Allowed' )
     977                        ); ?>
     978                </li><li class="storage-count <?php echo $used_class; ?>">
     979                        <?php printf(
     980                                '<a href="%1$s" title="%4$s" class="musublink">%2$sMB (%3$s%%) %5$s</a>',
     981                                esc_url( admin_url( 'upload.php' ) ),
     982                                number_format_i18n( $used, 2 ),
     983                                $percentused,
     984                                __( 'Manage Uploads' ),
     985                                __( 'Space Used' )
     986                        ); ?>
     987                </li>
     988        </ul>
    1153989        </div>
    1154         <div class="table table_discussion musubtable">
    1155         <table>
    1156                 <tr class="first">
    1157                         <td class="b b-comments"><?php printf( __( '<a href="%1$s" title="Manage Uploads" class="musublink">%2$sMB (%3$s%%)</a>' ), esc_url( admin_url( 'upload.php' ) ), number_format_i18n( $used, 2 ), $percentused ); ?></td>
    1158                         <td class="last t comments<?php echo $used_color;?>"><?php _e( 'Space Used' );?></td>
    1159                 </tr>
    1160         </table>
    1161         </div>
    1162         <br class="clear" />
    1163990        <?php
    1164991}
    1165992add_action( 'activity_box_end', 'wp_dashboard_quota' );
  • wp-admin/includes/deprecated.php

     
    730730 */
    731731function wp_dashboard_quick_press_output() {
    732732        _deprecated_function( __FUNCTION__, '3.2', 'wp_dashboard_quick_press()' );
    733         wp_dashboard_quick_press();
     733        wp_dashboard_quick_draft();
    734734}
    735735
    736736/**
  • wp-admin/post.php

     
    6666                $location = add_query_arg( 'message', 3, wp_get_referer() );
    6767                $location = explode('#', $location);
    6868                $location = $location[0] . '#postcustom';
    69         } elseif ( 'post-quickpress-save-cont' == $_POST['action'] ) {
    70                 $location = "post.php?action=edit&post=$post_id&message=7";
    7169        } else {
    7270                $location = add_query_arg( 'message', 4, get_edit_post_link( $post_id, 'url' ) );
    7371        }
     
    9694}
    9795
    9896switch($action) {
     97case 'post-quickdraft-save':
     98        // Check nonce and capabilities
     99        $nonce = $_REQUEST['_wpnonce'];
     100        $error_msg = false;
     101        if ( ! wp_verify_nonce( $nonce, 'add-post' ) )
     102                $error_msg = 'Unable to submit this form, please refresh and try again.';
     103               
     104        if ( ! current_user_can( 'edit_posts' ) )
     105                $error_msg = "Oops, you don't have access to add new drafts.";
     106               
     107        if ( $error_msg )
     108                return wp_dashboard_quick_draft( $error_msg );
     109               
     110        $post = get_post( $_REQUEST['post_ID'] );
     111        check_admin_referer( 'add-' . $post->post_type );
     112        edit_post();
     113        // output the quickdraft dashboard widget
     114        require_once(ABSPATH . 'wp-admin/includes/dashboard.php');
     115        wp_dashboard_quick_draft();
     116        exit;
     117        break;
     118       
    99119case 'postajaxpost':
    100120case 'post':
    101 case 'post-quickpress-publish':
    102 case 'post-quickpress-save':
    103         check_admin_referer('add-' . $post_type);
     121        // Check nonce and capabilities
     122        $nonce = $_REQUEST['_wpnonce'];
     123        $error_msg = false;
     124        if ( ! wp_verify_nonce( $nonce, 'add-post' ) )
     125                $error_msg = 'Unable to submit this form, please refresh and try again.';
     126               
     127        if ( ! current_user_can( 'edit_posts' ) )
     128                $error_msg = "Oops, you don't have access to add new drafts.";
    104129
    105         if ( 'post-quickpress-publish' == $action )
    106                 $_POST['publish'] = 'publish'; // tell write_post() to publish
     130        $post_id = 'postajaxpost' == $action ? edit_post() : write_post();
    107131
    108         if ( 'post-quickpress-publish' == $action || 'post-quickpress-save' == $action ) {
    109                 $_POST['comment_status'] = get_option('default_comment_status');
    110                 $_POST['ping_status'] = get_option('default_ping_status');
    111                 $post_id = edit_post();
    112         } else {
    113                 $post_id = 'postajaxpost' == $action ? edit_post() : write_post();
    114         }
    115 
    116         if ( 0 === strpos( $action, 'post-quickpress' ) ) {
    117                 $_POST['post_ID'] = $post_id;
    118                 // output the quickpress dashboard widget
    119                 require_once(ABSPATH . 'wp-admin/includes/dashboard.php');
    120                 wp_dashboard_quick_press();
    121                 exit;
    122         }
    123 
    124132        redirect_post($post_id);
    125133        exit();
    126134        break;
  • wp-admin/js/dashboard.js

     
    2929
    3030        // These widgets are sometimes populated via ajax
    3131        ajaxWidgets = [
    32                 'dashboard_incoming_links',
    33                 'dashboard_primary',
    34                 'dashboard_secondary',
    35                 'dashboard_plugins'
     32                'dashboard_rss'
    3633        ];
    3734
    3835        ajaxPopulateWidgets = function(el) {
     
    6158        ajaxPopulateWidgets();
    6259
    6360        postboxes.add_postbox_toggles(pagenow, { pbshow: ajaxPopulateWidgets } );
    64 
     61       
    6562        /* QuickPress */
    6663        quickPressLoad = function() {
    6764                var act = $('#quickpost-action'), t;
    6865                t = $('#quick-press').submit( function() {
    69                         $('#dashboard_quick_press #publishing-action .spinner').show();
     66                        $('#dashboard_quick_draft #publishing-action .spinner').show();
    7067                        $('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').prop('disabled', true);
    7168
    72                         if ( 'post' == act.val() ) {
    73                                 act.val( 'post-quickpress-publish' );
     69                        $.post( t.attr( 'action' ), t.serializeArray(), function( data ) {
     70                                // Replace the form, and prepend the published post.
     71                                $('#dashboard_quick_draft .inside').html( data );
     72                                $('#quick-press').removeClass('initial-form');
     73                                quickPressLoad();
     74                                highlightLatestPost();
     75                                $('#title').focus();
     76                        });
     77                       
     78                        function highlightLatestPost () {
     79                                var latestPost = $('#draft-list li').first();
     80                                latestPost.css('background', '#fffbe5');
     81                                setTimeout(function () {
     82                                        latestPost.css('background', 'none');
     83                                }, 1000);
    7484                        }
    75 
    76                         $('#dashboard_quick_press div.inside').load( t.attr( 'action' ), t.serializeArray(), function() {
    77                                 $('#dashboard_quick_press #publishing-action .spinner').hide();
    78                                 $('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').prop('disabled', false);
    79                                 $('#dashboard_quick_press ul').next('p').remove();
    80                                 $('#dashboard_quick_press ul').find('li').each( function() {
    81                                         $('#dashboard_recent_drafts ul').prepend( this );
    82                                 } ).end().remove();
    83                                 quickPressLoad();
    84                         } );
     85                       
    8586                        return false;
    8687                } );
    87 
     88       
    8889                $('#publish').click( function() { act.val( 'post-quickpress-publish' ); } );
    8990
    90                 $('#title, #tags-input').each( function() {
     91                $('#title, #tags-input, #content').each( function() {
    9192                        var input = $(this), prompt = $('#' + this.id + '-prompt-text');
    9293
    9394                        if ( '' === this.value )
     
    109110                });
    110111
    111112                $('#quick-press').on( 'click focusin', function() {
     113                        $(this).addClass("quickpress-open");
     114                        $("#description-wrap, p.submit").slideDown(200);
    112115                        wpActiveEditor = 'content';
    113116                });
    114117        };
    115118        quickPressLoad();
     119       
     120        // Activity Widget
     121        $( '.show-more a' ).on( 'click', function(e) {
     122                $( this ).fadeOut().closest('.activity-block').find( 'li.hidden' ).fadeIn().removeClass( 'hidden' );
     123                e.preventDefault();
     124        })
    116125
    117126} );
  • wp-admin/js/plugin-install.js

     
    2727
    2828        $(window).resize(function(){ tb_position(); });
    2929
    30         $('#dashboard_plugins, .plugins').on( 'click', 'a.thickbox', function() {
     30        $('.plugins').on( 'click', 'a.thickbox', function() {
    3131                tb_click.call(this);
    3232
    3333                $('#TB_title').css({'background-color':'#222','color':'#cfcfcf'});
  • wp-admin/css/ie-rtl.css

     
    8686        margin-right: 335px !important;
    8787}
    8888
    89 #dashboard_plugins {
    90         direction: ltr;
    91 }
    92 
    93 #dashboard_plugins h3.hndle {
    94         direction: rtl;
    95 }
    96 
    97 #dashboard_incoming_links ul li,
    98 #dashboard_secondary ul li,
    99 #dashboard_primary ul li,
    10089p.row-actions {
    10190        width: 100%;
    10291}
  • wp-admin/css/ie.css

     
    141141        overflow: visible;
    142142}
    143143
    144 #dashboard-widgets #dashboard_quick_press form p.submit #publish {
    145         float: none;
    146 }
    147 
    148144#dashboard-widgets h3 a {
    149145        height: 14px;
    150146        line-height: 14px;
  • wp-admin/css/colors-fresh.css

     
    126126        border-right-color: #eee;
    127127}
    128128
    129 #dashboard_right_now .t,
    130 #dashboard_right_now .b {
    131         color: #777;
    132 }
    133 
    134129#the-comment-list .comment-item p.row-actions,
    135 #dashboard_recent_comments .subsubsub,
    136130.plugins .row-actions-visible,
    137131.row-actions {
    138132        color: #ddd;
     
    552546        color: #2ea2cc;
    553547}
    554548
    555 #the-comment-list .comment-item,
    556 #dashboard-widgets #dashboard_quick_press form p.submit {
     549#the-comment-list .comment-item {
    557550        border: none;
    558551}
    559552
     
    580573table.widefat span.delete a,
    581574table.widefat span.trash a,
    582575table.widefat span.spam a,
    583 #dashboard_recent_comments .delete a,
    584 #dashboard_recent_comments .trash a,
    585 #dashboard_recent_comments .spam a,
    586576.plugins a.delete,
    587577#all-plugins-table .plugins a.delete,
    588578#search-plugins-table .plugins a.delete,
     
    596586table.widefat span.delete a:hover,
    597587table.widefat span.trash a:hover,
    598588table.widefat span.spam a:hover,
    599 #dashboard_recent_comments .delete a:hover,
    600 #dashboard_recent_comments .trash a:hover,
    601 #dashboard_recent_comments .spam a:hover,
    602589.plugins a.delete:hover,
    603590#all-plugins-table .plugins a.delete:hover,
    604591#search-plugins-table .plugins a.delete:hover,
     
    771758        border-color: #666;
    772759}
    773760
    774 #dashboard_secondary div.dashboard-widget-content ul li a {
    775         background-color: #f9f9f9;
    776 }
    777 
    778761input.readonly, textarea.readonly {
    779762        background-color: #ddd;
    780763}
     
    929912}
    930913
    931914#the-comment-list .unapproved th,
    932 #the-comment-list .unapproved td,
    933 #dashboard_recent_comments #the-comment-list .unapproved {
     915#the-comment-list .unapproved td {
    934916        background-color: #fefaf7;
    935917}
    936918
    937 #the-comment-list .unapproved th.check-column,
    938 #dashboard_recent_comments #the-comment-list .unapproved {
     919#the-comment-list .unapproved th.check-column {
    939920        border-left: 4px solid #d54e21;
    940921}
    941922
    942 #dashboard_recent_comments #the-comment-list .unapproved .avatar {
    943         margin-left: -4px;
    944 }
    945 
    946923#the-comment-list .approve a {
    947924        color: #006505;
    948925}
     
    10381015
    10391016.postbox h3,
    10401017#namediv h3,
    1041 #submitdiv h3,
    1042 #dashboard_recent_comments .comment {
     1018#submitdiv h3 {
    10431019        color: #555;
    10441020        border-bottom: 1px solid #eeeeee;
    10451021}
     
    11651141.widget-control-remove:hover,
    11661142table.widefat .delete a:hover,
    11671143table.widefat .trash a:hover,
    1168 table.widefat .spam a:hover,
    1169 #dashboard_recent_comments .delete a:hover,
    1170 #dashboard_recent_comments .trash a:hover
    1171 #dashboard_recent_comments .spam a:hover {
     1144table.widefat .spam a:hover {
    11721145        color: #f00;
    11731146}
    11741147
     
    21972170        border-right: 4px solid #d54e21;
    21982171}
    21992172
    2200 .rtl #the-comment-list .unapproved th.check-column,
    2201 .rtl #dashboard_recent_comments #the-comment-list .unapproved {
     2173.rtl #the-comment-list .unapproved th.check-column {
    22022174    border-left: none;
    22032175    border-right: 4px solid #d54e21;
    22042176}
    2205 
    2206 .rtl #dashboard_recent_comments #the-comment-list .unapproved .avatar {
    2207         margin-left: 10px;
    2208     margin-right: -4px;
    2209 }
  • wp-admin/css/wp-admin-rtl.css

     
    22272227#dashboard_right_now p.sub,
    22282228#dashboard-widgets h4,
    22292229a.rsswidget,
    2230 #dashboard_plugins h4,
    2231 #dashboard_plugins h5,
    2232 #dashboard_recent_comments .comment-meta .approve,
    22332230#dashboard_right_now td.b,
    22342231#dashboard_right_now .versions a {
    22352232        font-family: Tahoma, Arial, sans-serif;
     
    22642261        clear: left;
    22652262}
    22662263
    2267 #dashboard_plugins .inside span {
    2268          padding-left: 0;
    2269          padding-right: 5px;
    2270 }
    2271 
    22722264#dashboard-widgets h3 .postbox-title-action {
    22732265        right: auto;
    22742266        left: 10px;
     
    23062298        margin-right: 3px;
    23072299}
    23082300
    2309 /* QuickPress */
    2310 #dashboard-widgets #dashboard_quick_press form p.submit input {
    2311         float: right;
    2312 }
    2313 
    2314 #dashboard-widgets #dashboard_quick_press form p.submit #save-post {
    2315         margin: 0 1px 0 0.7em;
    2316 }
    2317 
    2318 #dashboard-widgets #dashboard_quick_press form p.submit #publish {
    2319         float: left;
    2320 }
    2321 
    2322 #dashboard-widgets #dashboard_quick_press form p.submit .spinner {
    2323         margin: 4px 0 0 6px;
    2324 }
    2325 
    2326 #dashboard_quick_press .input-text-wrap {
    2327         margin-right: 0;
    2328         margin-left: 1px;
    2329 }
    2330 
    2331 #dashboard_quick_press .wp-media-buttons,
    2332 #dashboard_quick_press .textarea-wrap {
    2333         margin-left: 0;
    2334         margin-right: 1px;
    2335 }
    2336 
    2337 /* Recent Drafts */
    2338 #dashboard_recent_drafts h4 abbr {
    2339         font-family: Tahoma, Arial, sans-serif;
    2340         margin-left:0;
    2341         margin-right: 3px;
    2342 }
    2343 
    23442301/* login */
    23452302body.login {
    23462303        font-family: Tahoma, Arial, sans-serif;
     
    30132970.locale-he-il #dashboard_right_now p.sub,
    30142971.locale-he-il #dashboard-widgets h4,
    30152972.locale-he-il a.rsswidget,
    3016 .locale-he-il #dashboard_plugins h4,
    3017 .locale-he-il #dashboard_plugins h5,
    3018 .locale-he-il #dashboard_recent_comments .comment-meta .approve,
    30192973.locale-he-il #dashboard_right_now td.b,
    30202974.locale-he-il #dashboard_right_now .versions a,
    30212975.locale-he-il .rss-widget span.rss-date,
    3022 .locale-he-il #dashboard_recent_drafts h4 abbr,
    30232976body.login.locale-he-il,
    30242977.locale-he-il #login form .submit input,
    30252978.locale-he-il #menu-management .nav-tabs-arrow-right,
  • wp-admin/css/wp-admin.css

     
    905905
    906906div.sidebar-name h3,
    907907#menu-management .nav-tab,
    908 #dashboard_plugins h5,
    909908a.rsswidget,
    910909#dashboard_right_now td.b,
    911910#dashboard-widgets h4,
     
    26272626        margin: 0 8px;
    26282627}
    26292628
    2630 #dashboard_recent_comments div.undo {
    2631         margin: 0 -12px;
    2632         padding: 6px 12px;
    2633         font-size: 11px;
    2634 }
    2635 
    2636 #dashboard_recent_comments div.undo .avatar {
    2637         float: left;
    2638 }
    2639 
    2640 #dashboard_recent_comments div.undo div {
    2641         min-height: 20px;
    2642 }
    2643 
    26442629#the-comment-list td.comment p.comment-author {
    26452630        margin-top: 0;
    26462631        margin-left: 0;
     
    76587643}
    76597644
    76607645/* Recent Comments */
    7661 #dashboard_recent_comments h3 {
    7662         margin-bottom: 0;
    7663 }
    76647646
    7665 #dashboard_recent_comments .inside {
    7666         margin-top: 0;
    7667 }
    7668 
    7669 #dashboard_recent_comments .comment-meta .approve {
    7670         font-family: "Open Sans", sans-serif;
    7671         font-size: 13px;
    7672         line-height: 1;
    7673         margin: 0 10px;
    7674 }
    7675 
    7676 #dashboard_recent_comments .subsubsub {
    7677         float: none;
    7678         white-space: normal;
    7679 }
    7680 
    76817647#the-comment-list {
    76827648        position: relative;
    76837649}
     
    77237689        display: inline;
    77247690}
    77257691
    7726 #dashboard_recent_comments #the-comment-list .trackback blockquote,
    7727 #dashboard_recent_comments #the-comment-list .pingback blockquote {
    7728         display: block;
    7729 }
    7730 
    77317692#the-comment-list .comment-item p.row-actions {
    77327693        margin: 3px 0 0;
    77337694        padding: 0;
    77347695        font-size: 13px;
    77357696}
    77367697
    7737 /* QuickPress */
    7738 #header-logo {
    7739         display: none;
    7740 }
     7698/* QuickDraft */
    77417699
    7742 #site-heading:before {
    7743         top: 3px;
    7744         position: relative;
    7745         display: inline-block;
    7746         font: normal 18px/1 'dashicons';
    7747         speak: none;
    7748         color: #727272;
    7749         content: '\f120';
    7750         -webkit-font-smoothing: antialiased;
    7751         -moz-osx-font-smoothing: grayscale;
    7752 }
    7753 .no-js #dashboard_quick_press {
    7754         display: none;
    7755 }
    7756 
    7757 #dashboard_quick_press .easy-blogging {
    7758         padding: 0 8px;
    7759         text-align: left;
    7760 }
    7761 
    7762 #dashboard_quick_press .input-text-wrap {
    7763         position: relative;
    7764 }
    7765 
    7766 #dashboard_quick_press .prompt {
    7767         color: #bbb;
    7768         position: absolute;
    7769 }
    7770 
    7771 #dashboard_quick_press div.updated  {
    7772         padding: 0 5px;
    7773 }
    7774 
    7775 #title-wrap label,
    7776 #tags-input-wrap label {
     7700#title-wrap label {
    77777701        cursor: text;
    77787702}
    77797703
     
    77847708        outline: none;
    77857709}
    77867710
    7787 #tags-input-wrap #tags-input {
    7788         outline: none;
    7789         padding: 3px 6px;
    7790 }
    7791 
    77927711#title-wrap #title-prompt-text {
    77937712        font-size: 1.3em;
    77947713        padding: 5px 8px;
    77957714}
    77967715
    7797 #tags-input-wrap #tags-input-prompt-text {
    7798         font-size: 1em;
    7799         padding: 5px 8px;
    7800 }
    7801 
    7802 #dashboard_quick_press .input-text-wrap,
    7803 #dashboard_quick_press .textarea-wrap {
    7804         margin: 0 0 .7em 0;
    7805 }
    7806 
    7807 #dashboard_quick_press .input-text-wrap {
    7808         margin-right: 1px;
    7809 }
    7810 
    7811 #dashboard_quick_press .textarea-wrap {
    7812         margin-left: 1px;
    7813 }
    7814 
    7815 #dashboard_quick_press .wp-media-buttons {
    7816         margin: 0 0 2px 1px;
    7817         padding: 0;
    7818 }
    7819 
    7820 #dashboard_quick_press .wp-media-buttons a {
    7821         color: #777;
    7822         margin-bottom: 0;
    7823 }
    7824 
    7825 #dashboard-widgets #dashboard_quick_press form p.submit input {
    7826         float: left;
    7827 }
    7828 
    7829 #dashboard-widgets #dashboard_quick_press form p.submit #save-post {
    7830         margin: 0 0.7em 0 1px;
    7831 }
    7832 
    7833 #dashboard-widgets #dashboard_quick_press form p.submit #publish {
    7834         float: right;
    7835 }
    7836 
    7837 #dashboard-widgets #dashboard_quick_press form p.submit .spinner {
    7838         vertical-align: middle;
    7839         margin: 4px 6px 0 0;
    7840 }
    7841 
    7842 /* Recent Drafts */
    7843 #dashboard_recent_drafts ul,
    7844 #dashboard_recent_drafts p {
    7845         margin: 0;
    7846         padding: 0;
    7847         word-wrap: break-word;
    7848 }
    7849 
    7850 #dashboard_recent_drafts ul {
    7851         list-style: none;
    7852 }
    7853 
    7854 #dashboard_recent_drafts ul li {
    7855         margin-bottom: 1em;
    7856 }
    7857 
    7858 #dashboard_recent_drafts h4 {
    7859         line-height: 1.7em;
    7860         word-wrap: break-word;
    7861 }
    7862 
    7863 #dashboard_recent_drafts h4 abbr {
    7864         font-weight: normal;
    7865         font-family: "Open Sans", sans-serif;
    7866         font-size: 12px;
    7867         color: #999;
    7868         margin-left: 3px;
    7869 }
    7870 
    78717716/* Feeds */
    78727717.rss-widget ul {
    78737718        margin: 0;
     
    79037748        content: '\2014';
    79047749}
    79057750
    7906 /* Plugins */
    7907 #dashboard_plugins h4 {
    7908         line-height: 1.7em;
    7909 }
    7910 
    7911 #dashboard_plugins h5 {
    7912         font-weight: normal;
    7913         font-size: 13px;
    7914         margin: 0;
    7915         display: inline;
    7916         line-height: 1.4em;
    7917 }
    7918 
    7919 #dashboard_plugins h5 a {
    7920         line-height: 1.4em;
    7921 }
    7922 
    7923 #dashboard_plugins .inside span {
    7924         font-size: 12px;
    7925         padding-left: 5px;
    7926 }
    7927 
    7928 #dashboard_plugins p {
    7929         margin: 0.3em 0 1.4em;
    7930         line-height: 1.4em;
    7931 }
    7932 
    79337751.dashboard-comment-wrap {
    79347752        overflow: hidden;
    79357753        word-wrap: break-word;
  • wp-admin/css/temporary-dash-styles.css

     
     1/* Dashboard WordPress news */
     2
     3#dashboard_rss .inside {
     4        margin: 0;
     5        padding: 0;
     6}
     7
     8#dashboard_rss .widget-loading,
     9#dashboard_rss .dashboard-widget-control-form {
     10        padding: 12px 12px 0;
     11}
     12
     13body #dashboard-widgets .postbox form .submit {
     14        margin: 0;
     15}
     16
     17.dashboard-widget-control-form {
     18        overflow: hidden;
     19}
     20
     21.dashboard-widget-control-form p {
     22        margin-top: 0;
     23}
     24
     25.rssSummary {
     26        color: #999;
     27        margin-top: 4px;
     28}
     29
     30.rss-widget {
     31        border-bottom: 1px solid #eee;
     32        font-size: 13px;
     33        padding: 8px 12px 12px;
     34}
     35
     36.rss-widget:last-child {
     37        border-bottom: none;
     38        padding-bottom: 0;
     39}
     40
     41.rss-widget a {
     42        font-weight: normal;
     43}
     44
     45.rss-widget span,
     46.rss-widget span.rss-date {
     47        color: #bbb;
     48}
     49
     50.rss-widget span.rss-date {
     51        margin-left: 12px;
     52}
     53
     54.rss-widget ul li {
     55        margin-bottom: 8px;
     56}
     57
     58/* Dashboard right now */
     59
     60#dash-right-now ul {
     61        margin: 0;
     62        overflow: hidden;
     63}
     64
     65#dash-right-now li {
     66        width: 50%;
     67        float: left;
     68        margin-bottom: 10px;
     69}
     70
     71#dash-right-now .inside {
     72        margin-bottom: 0;
     73        overflow: hidden;
     74        padding: 0;
     75}
     76
     77#dash-right-now .main {
     78        padding: 0 12px;
     79}
     80
     81#dash-right-now .main p {
     82        margin: 0;
     83}
     84
     85.mu-storage {
     86        overflow: hidden;
     87}
     88
     89/* Dashboard right now - Colors */
     90
     91#dash-right-now li a:before {
     92        color: #888;
     93}
     94
     95#dash-right-now .sub {
     96        color: #bfbbbb;
     97        background: #f5f5f5;
     98        border-top-color: #dedede;
     99        padding: 12px 12px 6px 12px;
     100        border-top: 1px solid;
     101}
     102
     103#dash-right-now .sub h4 {
     104        color: #555;
     105}
     106
     107#dash-right-now .sub p {
     108        margin: 0 0 .5em;
     109        font-size: 11px;
     110}
     111
     112#dash-right-now .warning a:before {
     113        color: #d54e21;
     114}
     115
     116/* Dashboard right now - Icons */
     117#dash-right-now li a:before {
     118        content: '\f159';
     119        font: normal 20px/1 'dashicons';
     120        speak: none;
     121        display: block;
     122        float: left;
     123        margin: 0 5px 0 0;
     124        padding: 0;
     125        text-indent: 0;
     126        text-align: center;
     127        position: relative;
     128        -webkit-font-smoothing: antialiased;
     129        text-decoration: none !important;
     130}
     131
     132#dash-right-now .page-count a:before {
     133        content: '\f105';
     134}
     135
     136#dash-right-now .post-count a:before {
     137        content: '\f109';
     138}
     139
     140#dash-right-now .comment-count a:before {
     141        content: '\f101';
     142}
     143
     144#dash-right-now .comment-mod-count a:before {
     145        content: '\f125';
     146}
     147
     148#dash-right-now .storage-count a:before {
     149        content: '\f104';
     150}
     151
     152#dash-right-now .storage-count.warning a:before {
     153        content: '\f153';
     154}
     155
     156/* Dashboard Quick Draft */
     157
     158#dashboard_quick_draft div.updated {
     159        margin-bottom: 10px;
     160        border: 1px solid #eee;
     161        border-width: 1px 1px 1px 0;
     162}
     163
     164#dashboard_quick_draft form {
     165        padding: 0 12px 1px 12px;
     166        overflow: hidden;
     167}
     168
     169#dashboard_quick_draft .drafts,
     170#dashboard_quick_draft .easy-blogging {
     171        padding: 8px 12px 0;
     172}
     173
     174#dashboard-widgets .postbox .inside {
     175        margin: 10px 0;
     176        padding: 0;
     177}
     178
     179/* Dashboard Quick Draft - Form styling */
     180
     181input#save-post {
     182        float: right;
     183}
     184
     185form.initial-form label.prompt {
     186        font-style: italic;
     187}
     188
     189form.initial-form input#title {
     190        height: 3em;
     191}
     192
     193form.initial-form.quickpress-open label.prompt {
     194        font-style: normal;
     195}
     196
     197form.initial-form.quickpress-open input#title {
     198        height: auto;
     199}
     200
     201#dashboard_quick_draft input,
     202#dashboard_quick_draft textarea {
     203        box-sizing: border-box;
     204        -moz-box-sizing:border-box;
     205        -webkit-box-sizing:border-box;
     206        margin: 0;
     207}
     208
     209#dashboard_quick_draft textarea {
     210        resize: vertical;
     211}
     212
     213#dashboard-widgets .postbox form .submit {
     214        margin: -39px 0;
     215        float: right;
     216}
     217
     218#description-wrap {
     219        margin-top: 12px;
     220}
     221
     222#title-wrap #title-prompt-text,
     223.textarea-wrap #content-prompt-text {
     224        color: #BBB;
     225}
     226
     227#title-wrap #title-prompt-text {
     228        font-size: 1.1em;
     229        padding: 7px 8px;
     230}
     231
     232.initial-form #description-wrap,
     233.initial-form p.submit {
     234        display: none;
     235}
     236
     237.input-text-wrap,
     238.textarea-wrap {
     239        position: relative;
     240}
     241
     242.input-text-wrap .prompt,
     243.textarea-wrap .prompt {
     244        position: absolute;
     245}
     246
     247.textarea-wrap #content-prompt-text {
     248        font-size: 1.1em;
     249        padding: 7px 8px;
     250}
     251
     252.textarea-wrap textarea#content {
     253        margin: 0 0 8px;
     254        padding: 6px 7px;
     255}
     256
     257/* Dashboard Quick Draft - Drafts list */
     258
     259#dashboard_quick_draft .drafts {
     260        border-top: 1px solid #eee;
     261        margin-top: 12px;
     262}
     263
     264#dashboard_quick_draft .drafts abbr {
     265        border: none;
     266}
     267
     268#dashboard_quick_draft .drafts h4 {
     269        margin: 0 0 8px 0;
     270        font-weight: normal;
     271}
     272
     273#dashboard_quick_draft .drafts .view-all {
     274        float: right;
     275        margin-top: 0;
     276}
     277
     278#draft-list {
     279        margin: 0;
     280}
     281
     282#draft-list li {
     283        margin-bottom: 1em;
     284}
     285#draft-list li time {
     286        color: #bbb;
     287}
     288
     289#draft-list p {
     290        margin: 0;
     291}
     292
     293/* Dashboard activity widget */
     294
     295#dashboard_activity h4 {
     296        margin: 0 12px 8px;
     297        font-weight: normal;
     298}
     299
     300#dashboard_activity h4.comment-meta {
     301        overflow: hidden;
     302        text-overflow: ellipsis;
     303        white-space: nowrap;
     304        margin-bottom: 4px;
     305}
     306
     307#dashboard_activity ul {
     308        padding: 0 12px;
     309}
     310
     311#dashboard_activity .comment-meta span.approve:before {
     312        content: '\f227';
     313        font: 20px/.5 "dashicons";
     314        margin-left: 12px;
     315        vertical-align: middle;
     316        position: relative;
     317        top: -1px;
     318        margin-right: 2px;
     319}
     320
     321#dashboard_activity .inside {
     322        padding: 0;
     323        margin: 0;
     324}
     325
     326#dashboard_activity .no-activity {
     327        overflow: hidden;
     328        padding: 0 12px 12px;
     329        text-align: center;
     330}
     331
     332#dashboard_activity .no-activity p {
     333        color: #999;
     334        font-size: 16px;
     335}
     336
     337#dashboard_activity .no-activity .smiley {
     338        margin-top: 0;
     339}
     340
     341#dashboard_activity .no-activity .smiley:before {
     342        content: '\f328';
     343        font: normal 120px/1 'dashicons';
     344        speak: none;
     345        display: block;
     346        margin: 0 5px 0 0;
     347        padding: 0;
     348        text-indent: 0;
     349        text-align: center;
     350        position: relative;
     351        -webkit-font-smoothing: antialiased;
     352        text-decoration: none !important;
     353}
     354
     355#dashboard_activity .subsubsub {
     356        float: none;
     357        border-top: 1px solid #eeeeee;
     358        margin-top: 0;
     359        padding: 8px 12px 0 12px;
     360}
     361
     362#future-posts .show-more,
     363#published-posts .show-more {
     364        float: right;
     365}
     366
     367#future-posts ul,
     368#published-posts ul {
     369        clear: both;
     370        margin-bottom: 0;
     371}
     372
     373#future-posts li,
     374#published-posts li {
     375        overflow: hidden;
     376        margin-bottom: 8px;
     377}
     378
     379#future-posts ul span,
     380#published-posts ul span {
     381        color: #bbb;
     382        float: left;
     383        margin-right: 8px;
     384        min-width: 150px;
     385}
     386
     387.activity-block {
     388        border-bottom: 1px solid #eee;
     389        overflow: hidden;
     390        padding: 8px 0 0;
     391}
     392
     393.activity-block:last-child {
     394        border-bottom: none;
     395}
     396
     397.activity-block .subsubsub li {
     398        color: #ddd;
     399}
     400
     401/* Dashboard activity widget - Comments */
     402
     403#the-comment-list tr.undo, #the-comment-list div.undo {
     404        background: none;
     405        padding: 6px 0;
     406}
     407
     408#the-comment-list .alternate,
     409#the-comment-list .alt {
     410        background: none;
     411}
     412
     413#the-comment-list .comment {
     414        background: #f5f5f5;
     415        padding: 12px;
     416        position: relative;
     417        border-top: 1px solid #eeeeee;
     418}
     419
     420#the-comment-list img {
     421        position: absolute;
     422        left: 13px;
     423        top: 13px;
     424}
     425
     426#the-comment-list .dashboard-comment-wrap {
     427        padding-left: 63px;
     428}
     429
     430#the-comment-list .dashboard-comment-wrap blockquote {
     431        margin: 1em 0;
     432}
     433
     434#the-comment-list .comment-item h4 {
     435        font-size: 13px;
     436        color: #999;
     437}
     438
     439#the-comment-list .comment-item p.row-actions {
     440        margin: 4px 0 0 0;
     441}
     442
     443#the-comment-list .comment-item:first-child {
     444        border-top: 1px solid #eeeeee;
     445}
     446
     447#the-comment-list .unapproved {
     448        background: #f7fcfe;
     449}
     450
     451#the-comment-list .unapproved:before {
     452        content: "";
     453        display: block;
     454        position: absolute;
     455        left: 0;
     456        top: 0;
     457        bottom: 0;
     458        background: #d54e21;
     459        width: 4px;
     460}
     461/* Dashboard WordPress news */
     462
     463#dashboard_rss .inside {
     464        margin: 0;
     465        padding: 0;
     466}
     467
     468#dashboard_rss .widget-loading,
     469#dashboard_rss .dashboard-widget-control-form {
     470        padding: 12px 12px 0;
     471}
     472
     473body #dashboard-widgets .postbox form .submit {
     474        margin: 0;
     475}
     476
     477.dashboard-widget-control-form {
     478        overflow: hidden;
     479}
     480
     481.dashboard-widget-control-form p {
     482        margin-top: 0;
     483}
     484
     485.rssSummary {
     486        color: #999;
     487        margin-top: 4px;
     488}
     489
     490.rss-widget {
     491        border-bottom: 1px solid #eee;
     492        font-size: 13px;
     493        padding: 8px 12px 12px;
     494}
     495
     496.rss-widget:last-child {
     497        border-bottom: none;
     498        padding-bottom: 0;
     499}
     500
     501.rss-widget a {
     502        font-weight: normal;
     503}
     504
     505.rss-widget span,
     506.rss-widget span.rss-date {
     507        color: #bbb;
     508}
     509
     510.rss-widget span.rss-date {
     511        margin-left: 12px;
     512}
     513
     514.rss-widget ul li {
     515        margin-bottom: 8px;
     516}
     517
     518/* Dashboard right now */
     519
     520#dash-right-now ul {
     521        margin: 0;
     522        overflow: hidden;
     523}
     524
     525#dash-right-now li {
     526        width: 50%;
     527        float: left;
     528        margin-bottom: 10px;
     529}
     530
     531#dash-right-now .inside {
     532        margin-bottom: 0;
     533        overflow: hidden;
     534        padding: 0;
     535}
     536
     537#dash-right-now .main {
     538        padding: 0 12px;
     539}
     540
     541#dash-right-now .main p {
     542        margin: 0;
     543}
     544
     545.mu-storage {
     546        overflow: hidden;
     547}
     548
     549/* Dashboard right now - Colors */
     550
     551#dash-right-now li a:before {
     552        color: #888;
     553}
     554
     555#dash-right-now .sub {
     556        color: #bfbbbb;
     557        background: #f5f5f5;
     558        border-top-color: #dedede;
     559        padding: 12px 12px 6px 12px;
     560        border-top: 1px solid;
     561}
     562
     563#dash-right-now .sub h4 {
     564        color: #555;
     565}
     566
     567#dash-right-now .sub p {
     568        margin: 0 0 .5em;
     569        font-size: 11px;
     570}
     571
     572#dash-right-now .warning a:before {
     573        color: #d54e21;
     574}
     575
     576/* Dashboard right now - Icons */
     577#dash-right-now li a:before {
     578        content: '\f159';
     579        font: normal 20px/1 'dashicons';
     580        speak: none;
     581        display: block;
     582        float: left;
     583        margin: 0 5px 0 0;
     584        padding: 0;
     585        text-indent: 0;
     586        text-align: center;
     587        position: relative;
     588        -webkit-font-smoothing: antialiased;
     589        text-decoration: none !important;
     590}
     591
     592#dash-right-now .page-count a:before {
     593        content: '\f105';
     594}
     595
     596#dash-right-now .post-count a:before {
     597        content: '\f109';
     598}
     599
     600#dash-right-now .comment-count a:before {
     601        content: '\f101';
     602}
     603
     604#dash-right-now .comment-mod-count a:before {
     605        content: '\f125';
     606}
     607
     608#dash-right-now .storage-count a:before {
     609        content: '\f104';
     610}
     611
     612#dash-right-now .storage-count.warning a:before {
     613        content: '\f153';
     614}
     615
     616/* Dashboard Quick Draft */
     617
     618#dashboard_quick_draft div.updated {
     619        margin-bottom: 10px;
     620        border: 1px solid #eee;
     621        border-width: 1px 1px 1px 0;
     622}
     623
     624#dashboard_quick_draft form {
     625        padding: 0 12px 1px 12px;
     626        overflow: hidden;
     627}
     628
     629#dashboard_quick_draft .drafts,
     630#dashboard_quick_draft .easy-blogging {
     631        padding: 8px 12px 0;
     632}
     633
     634#dashboard-widgets .postbox .inside {
     635        margin: 10px 0;
     636        padding: 0;
     637}
     638
     639/* Dashboard Quick Draft - Form styling */
     640
     641input#save-post {
     642        float: right;
     643}
     644
     645form.initial-form label.prompt {
     646        font-style: italic;
     647}
     648
     649form.initial-form input#title {
     650        height: 3em;
     651}
     652
     653form.initial-form.quickpress-open label.prompt {
     654        font-style: normal;
     655}
     656
     657form.initial-form.quickpress-open input#title {
     658        height: auto;
     659}
     660
     661#dashboard_quick_draft input,
     662#dashboard_quick_draft textarea {
     663        box-sizing: border-box;
     664        -moz-box-sizing:border-box;
     665        -webkit-box-sizing:border-box;
     666        margin: 0;
     667}
     668
     669#dashboard_quick_draft textarea {
     670        resize: vertical;
     671}
     672
     673#dashboard-widgets .postbox form .submit {
     674        margin: -39px 0;
     675        float: right;
     676}
     677
     678#description-wrap {
     679        margin-top: 12px;
     680}
     681
     682#title-wrap #title-prompt-text,
     683.textarea-wrap #content-prompt-text {
     684        color: #BBB;
     685}
     686
     687#title-wrap #title-prompt-text {
     688        font-size: 1.1em;
     689        padding: 7px 8px;
     690}
     691
     692.initial-form #description-wrap,
     693.initial-form p.submit {
     694        display: none;
     695}
     696
     697.input-text-wrap,
     698.textarea-wrap {
     699        position: relative;
     700}
     701
     702.input-text-wrap .prompt,
     703.textarea-wrap .prompt {
     704        position: absolute;
     705}
     706
     707.textarea-wrap #content-prompt-text {
     708        font-size: 1.1em;
     709        padding: 7px 8px;
     710}
     711
     712.textarea-wrap textarea#content {
     713        margin: 0 0 8px;
     714        padding: 6px 7px;
     715}
     716
     717/* Dashboard Quick Draft - Drafts list */
     718
     719#dashboard_quick_draft .drafts {
     720        border-top: 1px solid #eee;
     721        margin-top: 12px;
     722}
     723
     724#dashboard_quick_draft .drafts abbr {
     725        border: none;
     726}
     727
     728#dashboard_quick_draft .drafts h4 {
     729        margin: 0 0 8px 0;
     730        font-weight: normal;
     731}
     732
     733#dashboard_quick_draft .drafts .view-all {
     734        float: right;
     735        margin-top: 0;
     736}
     737
     738#draft-list {
     739        margin: 0;
     740}
     741
     742#draft-list li {
     743        margin-bottom: 1em;
     744}
     745#draft-list li time {
     746        color: #bbb;
     747}
     748
     749#draft-list p {
     750        margin: 0;
     751}
     752
     753/* Dashboard activity widget */
     754
     755#dashboard_activity h4 {
     756        margin: 0 12px 8px;
     757        font-weight: normal;
     758}
     759
     760#dashboard_activity h4.comment-meta {
     761        overflow: hidden;
     762        text-overflow: ellipsis;
     763        white-space: nowrap;
     764        margin-bottom: 4px;
     765}
     766
     767#dashboard_activity ul {
     768        padding: 0 12px;
     769}
     770
     771#dashboard_activity .comment-meta span.approve:before {
     772        content: '\f227';
     773        font: 20px/.5 "dashicons";
     774        margin-left: 12px;
     775        vertical-align: middle;
     776        position: relative;
     777        top: -1px;
     778        margin-right: 2px;
     779}
     780
     781#dashboard_activity .inside {
     782        padding: 0;
     783        margin: 0;
     784}
     785
     786#dashboard_activity .no-activity {
     787        overflow: hidden;
     788        padding: 0 12px 12px;
     789        text-align: center;
     790}
     791
     792#dashboard_activity .no-activity p {
     793        color: #999;
     794        font-size: 16px;
     795}
     796
     797#dashboard_activity .no-activity .smiley {
     798        margin-top: 0;
     799}
     800
     801#dashboard_activity .no-activity .smiley:before {
     802        content: '\f328';
     803        font: normal 120px/1 'dashicons';
     804        speak: none;
     805        display: block;
     806        margin: 0 5px 0 0;
     807        padding: 0;
     808        text-indent: 0;
     809        text-align: center;
     810        position: relative;
     811        -webkit-font-smoothing: antialiased;
     812        text-decoration: none !important;
     813}
     814
     815#dashboard_activity .subsubsub {
     816        float: none;
     817        border-top: 1px solid #eeeeee;
     818        margin-top: 0;
     819        padding: 8px 12px 0 12px;
     820}
     821
     822#future-posts .show-more,
     823#published-posts .show-more {
     824        float: right;
     825}
     826
     827#future-posts ul,
     828#published-posts ul {
     829        clear: both;
     830        margin-bottom: 0;
     831}
     832
     833#future-posts li,
     834#published-posts li {
     835        overflow: hidden;
     836        margin-bottom: 8px;
     837}
     838
     839#future-posts ul span,
     840#published-posts ul span {
     841        color: #bbb;
     842        float: left;
     843        margin-right: 8px;
     844        min-width: 150px;
     845}
     846
     847.activity-block {
     848        border-bottom: 1px solid #eee;
     849        overflow: hidden;
     850        padding: 8px 0 0;
     851}
     852
     853.activity-block:last-child {
     854        border-bottom: none;
     855}
     856
     857.activity-block .subsubsub li {
     858        color: #ddd;
     859}
     860
     861/* Dashboard activity widget - Comments */
     862
     863#the-comment-list tr.undo, #the-comment-list div.undo {
     864        background: none;
     865        padding: 6px 0;
     866}
     867
     868#the-comment-list .alternate,
     869#the-comment-list .alt {
     870        background: none;
     871}
     872
     873#the-comment-list .comment {
     874        background: #f5f5f5;
     875        padding: 12px;
     876        position: relative;
     877        border-top: 1px solid #eeeeee;
     878}
     879
     880#the-comment-list img {
     881        position: absolute;
     882        left: 13px;
     883        top: 13px;
     884}
     885
     886#the-comment-list .dashboard-comment-wrap {
     887        padding-left: 63px;
     888}
     889
     890#the-comment-list .dashboard-comment-wrap blockquote {
     891        margin: 1em 0;
     892}
     893
     894#the-comment-list .comment-item h4 {
     895        font-size: 13px;
     896        color: #999;
     897}
     898
     899#the-comment-list .comment-item p.row-actions {
     900        margin: 4px 0 0 0;
     901}
     902
     903#the-comment-list .comment-item:first-child {
     904        border-top: 1px solid #eeeeee;
     905}
     906
     907#the-comment-list .unapproved {
     908        background: #f7fcfe;
     909}
     910
     911#the-comment-list .unapproved:before {
     912        content: "";
     913        display: block;
     914        position: absolute;
     915        left: 0;
     916        top: 0;
     917        bottom: 0;
     918        background: #d54e21;
     919        width: 4px;
     920}
     921/* Dashboard WordPress news */
     922
     923#dashboard_rss .inside {
     924        margin: 0;
     925        padding: 0;
     926}
     927
     928#dashboard_rss .widget-loading,
     929#dashboard_rss .dashboard-widget-control-form {
     930        padding: 12px 12px 0;
     931}
     932
     933body #dashboard-widgets .postbox form .submit {
     934        margin: 0;
     935}
     936
     937.dashboard-widget-control-form {
     938        overflow: hidden;
     939}
     940
     941.dashboard-widget-control-form p {
     942        margin-top: 0;
     943}
     944
     945.rssSummary {
     946        color: #999;
     947        margin-top: 4px;
     948}
     949
     950.rss-widget {
     951        border-bottom: 1px solid #eee;
     952        font-size: 13px;
     953        padding: 8px 12px 12px;
     954}
     955
     956.rss-widget:last-child {
     957        border-bottom: none;
     958        padding-bottom: 0;
     959}
     960
     961.rss-widget a {
     962        font-weight: normal;
     963}
     964
     965.rss-widget span,
     966.rss-widget span.rss-date {
     967        color: #bbb;
     968}
     969
     970.rss-widget span.rss-date {
     971        margin-left: 12px;
     972}
     973
     974.rss-widget ul li {
     975        margin-bottom: 8px;
     976}
     977
     978/* Dashboard right now */
     979
     980#dash-right-now ul {
     981        margin: 0;
     982        overflow: hidden;
     983}
     984
     985#dash-right-now li {
     986        width: 50%;
     987        float: left;
     988        margin-bottom: 10px;
     989}
     990
     991#dash-right-now .inside {
     992        margin-bottom: 0;
     993        overflow: hidden;
     994        padding: 0;
     995}
     996
     997#dash-right-now .main {
     998        padding: 0 12px;
     999}
     1000
     1001#dash-right-now .main p {
     1002        margin: 0;
     1003}
     1004
     1005.mu-storage {
     1006        overflow: hidden;
     1007}
     1008
     1009/* Dashboard right now - Colors */
     1010
     1011#dash-right-now li a:before {
     1012        color: #888;
     1013}
     1014
     1015#dash-right-now .sub {
     1016        color: #bfbbbb;
     1017        background: #f5f5f5;
     1018        border-top-color: #dedede;
     1019        padding: 12px 12px 6px 12px;
     1020        border-top: 1px solid;
     1021}
     1022
     1023#dash-right-now .sub h4 {
     1024        color: #555;
     1025}
     1026
     1027#dash-right-now .sub p {
     1028        margin: 0 0 .5em;
     1029        font-size: 11px;
     1030}
     1031
     1032#dash-right-now .warning a:before {
     1033        color: #d54e21;
     1034}
     1035
     1036/* Dashboard right now - Icons */
     1037#dash-right-now li a:before {
     1038        content: '\f159';
     1039        font: normal 20px/1 'dashicons';
     1040        speak: none;
     1041        display: block;
     1042        float: left;
     1043        margin: 0 5px 0 0;
     1044        padding: 0;
     1045        text-indent: 0;
     1046        text-align: center;
     1047        position: relative;
     1048        -webkit-font-smoothing: antialiased;
     1049        text-decoration: none !important;
     1050}
     1051
     1052#dash-right-now .page-count a:before {
     1053        content: '\f105';
     1054}
     1055
     1056#dash-right-now .post-count a:before {
     1057        content: '\f109';
     1058}
     1059
     1060#dash-right-now .comment-count a:before {
     1061        content: '\f101';
     1062}
     1063
     1064#dash-right-now .comment-mod-count a:before {
     1065        content: '\f125';
     1066}
     1067
     1068#dash-right-now .storage-count a:before {
     1069        content: '\f104';
     1070}
     1071
     1072#dash-right-now .storage-count.warning a:before {
     1073        content: '\f153';
     1074}
     1075
     1076/* Dashboard Quick Draft */
     1077
     1078#dashboard_quick_draft div.updated {
     1079        margin-bottom: 10px;
     1080        border: 1px solid #eee;
     1081        border-width: 1px 1px 1px 0;
     1082}
     1083
     1084#dashboard_quick_draft form {
     1085        padding: 0 12px 1px 12px;
     1086        overflow: hidden;
     1087}
     1088
     1089#dashboard_quick_draft .drafts,
     1090#dashboard_quick_draft .easy-blogging {
     1091        padding: 8px 12px 0;
     1092}
     1093
     1094#dashboard-widgets .postbox .inside {
     1095        margin: 10px 0;
     1096        padding: 0;
     1097}
     1098
     1099/* Dashboard Quick Draft - Form styling */
     1100
     1101input#save-post {
     1102        float: right;
     1103}
     1104
     1105form.initial-form label.prompt {
     1106        font-style: italic;
     1107}
     1108
     1109form.initial-form input#title {
     1110        height: 3em;
     1111}
     1112
     1113form.initial-form.quickpress-open label.prompt {
     1114        font-style: normal;
     1115}
     1116
     1117form.initial-form.quickpress-open input#title {
     1118        height: auto;
     1119}
     1120
     1121#dashboard_quick_draft input,
     1122#dashboard_quick_draft textarea {
     1123        box-sizing: border-box;
     1124        -moz-box-sizing:border-box;
     1125        -webkit-box-sizing:border-box;
     1126        margin: 0;
     1127}
     1128
     1129#dashboard_quick_draft textarea {
     1130        resize: vertical;
     1131}
     1132
     1133#dashboard-widgets .postbox form .submit {
     1134        margin: -39px 0;
     1135        float: right;
     1136}
     1137
     1138#description-wrap {
     1139        margin-top: 12px;
     1140}
     1141
     1142#title-wrap #title-prompt-text,
     1143.textarea-wrap #content-prompt-text {
     1144        color: #BBB;
     1145}
     1146
     1147#title-wrap #title-prompt-text {
     1148        font-size: 1.1em;
     1149        padding: 7px 8px;
     1150}
     1151
     1152.initial-form #description-wrap,
     1153.initial-form p.submit {
     1154        display: none;
     1155}
     1156
     1157.input-text-wrap,
     1158.textarea-wrap {
     1159        position: relative;
     1160}
     1161
     1162.input-text-wrap .prompt,
     1163.textarea-wrap .prompt {
     1164        position: absolute;
     1165}
     1166
     1167.textarea-wrap #content-prompt-text {
     1168        font-size: 1.1em;
     1169        padding: 7px 8px;
     1170}
     1171
     1172.textarea-wrap textarea#content {
     1173        margin: 0 0 8px;
     1174        padding: 6px 7px;
     1175}
     1176
     1177/* Dashboard Quick Draft - Drafts list */
     1178
     1179#dashboard_quick_draft .drafts {
     1180        border-top: 1px solid #eee;
     1181        margin-top: 12px;
     1182}
     1183
     1184#dashboard_quick_draft .drafts abbr {
     1185        border: none;
     1186}
     1187
     1188#dashboard_quick_draft .drafts h4 {
     1189        margin: 0 0 8px 0;
     1190        font-weight: normal;
     1191}
     1192
     1193#dashboard_quick_draft .drafts .view-all {
     1194        float: right;
     1195        margin-top: 0;
     1196}
     1197
     1198#draft-list {
     1199        margin: 0;
     1200}
     1201
     1202#draft-list li {
     1203        margin-bottom: 1em;
     1204}
     1205#draft-list li time {
     1206        color: #bbb;
     1207}
     1208
     1209#draft-list p {
     1210        margin: 0;
     1211}
     1212
     1213/* Dashboard activity widget */
     1214
     1215#dashboard_activity h4 {
     1216        margin: 0 12px 8px;
     1217        font-weight: normal;
     1218}
     1219
     1220#dashboard_activity h4.comment-meta {
     1221        overflow: hidden;
     1222        text-overflow: ellipsis;
     1223        white-space: nowrap;
     1224        margin-bottom: 4px;
     1225}
     1226
     1227#dashboard_activity ul {
     1228        padding: 0 12px;
     1229}
     1230
     1231#dashboard_activity .comment-meta span.approve:before {
     1232        content: '\f227';
     1233        font: 20px/.5 "dashicons";
     1234        margin-left: 12px;
     1235        vertical-align: middle;
     1236        position: relative;
     1237        top: -1px;
     1238        margin-right: 2px;
     1239}
     1240
     1241#dashboard_activity .inside {
     1242        padding: 0;
     1243        margin: 0;
     1244}
     1245
     1246#dashboard_activity .no-activity {
     1247        overflow: hidden;
     1248        padding: 0 12px 12px;
     1249        text-align: center;
     1250}
     1251
     1252#dashboard_activity .no-activity p {
     1253        color: #999;
     1254        font-size: 16px;
     1255}
     1256
     1257#dashboard_activity .no-activity .smiley {
     1258        margin-top: 0;
     1259}
     1260
     1261#dashboard_activity .no-activity .smiley:before {
     1262        content: '\f328';
     1263        font: normal 120px/1 'dashicons';
     1264        speak: none;
     1265        display: block;
     1266        margin: 0 5px 0 0;
     1267        padding: 0;
     1268        text-indent: 0;
     1269        text-align: center;
     1270        position: relative;
     1271        -webkit-font-smoothing: antialiased;
     1272        text-decoration: none !important;
     1273}
     1274
     1275#dashboard_activity .subsubsub {
     1276        float: none;
     1277        border-top: 1px solid #eeeeee;
     1278        margin-top: 0;
     1279        padding: 8px 12px 0 12px;
     1280}
     1281
     1282#future-posts .show-more,
     1283#published-posts .show-more {
     1284        float: right;
     1285}
     1286
     1287#future-posts ul,
     1288#published-posts ul {
     1289        clear: both;
     1290        margin-bottom: 0;
     1291}
     1292
     1293#future-posts li,
     1294#published-posts li {
     1295        overflow: hidden;
     1296        margin-bottom: 8px;
     1297}
     1298
     1299#future-posts ul span,
     1300#published-posts ul span {
     1301        color: #bbb;
     1302        float: left;
     1303        margin-right: 8px;
     1304        min-width: 150px;
     1305}
     1306
     1307.activity-block {
     1308        border-bottom: 1px solid #eee;
     1309        overflow: hidden;
     1310        padding: 8px 0 0;
     1311}
     1312
     1313.activity-block:last-child {
     1314        border-bottom: none;
     1315}
     1316
     1317.activity-block .subsubsub li {
     1318        color: #ddd;
     1319}
     1320
     1321/* Dashboard activity widget - Comments */
     1322
     1323#the-comment-list tr.undo, #the-comment-list div.undo {
     1324        background: none;
     1325        padding: 6px 0;
     1326}
     1327
     1328#the-comment-list .alternate,
     1329#the-comment-list .alt {
     1330        background: none;
     1331}
     1332
     1333#the-comment-list .comment {
     1334        background: #f5f5f5;
     1335        padding: 12px;
     1336        position: relative;
     1337        border-top: 1px solid #eeeeee;
     1338}
     1339
     1340#the-comment-list img {
     1341        position: absolute;
     1342        left: 13px;
     1343        top: 13px;
     1344}
     1345
     1346#the-comment-list .dashboard-comment-wrap {
     1347        padding-left: 63px;
     1348}
     1349
     1350#the-comment-list .dashboard-comment-wrap blockquote {
     1351        margin: 1em 0;
     1352}
     1353
     1354#the-comment-list .comment-item h4 {
     1355        font-size: 13px;
     1356        color: #999;
     1357}
     1358
     1359#the-comment-list .comment-item p.row-actions {
     1360        margin: 4px 0 0 0;
     1361}
     1362
     1363#the-comment-list .comment-item:first-child {
     1364        border-top: 1px solid #eeeeee;
     1365}
     1366
     1367#the-comment-list .unapproved {
     1368        background: #f7fcfe;
     1369}
     1370
     1371#the-comment-list .unapproved:before {
     1372        content: "";
     1373        display: block;
     1374        position: absolute;
     1375        left: 0;
     1376        top: 0;
     1377        bottom: 0;
     1378        background: #d54e21;
     1379        width: 4px;
     1380}