Make WordPress Core

Ticket #25824: 25824.2.diff

File 25824.2.diff, 101.6 KB (added by lessbloat, 10 years ago)
  • wp-includes/default-widgets.php

     
    904904                if ( $link == '' ) {
    905905                        echo "<li>$title{$date}{$summary}{$author}</li>";
    906906                } else {
    907                         echo "<li><a class='rsswidget' href='$link' title='$desc'>$title</a>{$date}{$summary}{$author}</li>";
     907                        echo "<li><div class='rss-title-row'><a class='rsswidget' href='$link' title='$desc'>$title</a>{$date}</div>{$summary}{$author}</li>";
    908908                }
    909909        }
    910910        echo '</ul>';
  • 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.css
     13 * - add the styles in temporary-dash-styles-rtl.css to wp-admin-rtl.css
     14 * - and DELETE THIS FUNCTION,
     15 */
     16function temporary_dash_styles() {
     17        wp_add_inline_style( 'wp-admin', file_get_contents( ABSPATH . 'wp-admin/css/temporary-dash-styles.css' ) );
     18}
     19add_action( 'admin_enqueue_scripts', 'temporary_dash_styles' );
     20
    921/**
    1022 * Registers dashboard widgets.
    1123 *
     
    3749
    3850        // Right Now
    3951        if ( is_blog_admin() && current_user_can('edit_posts') )
    40                 wp_add_dashboard_widget( 'dashboard_right_now', __( 'Right Now' ), 'wp_dashboard_right_now' );
     52                add_meta_box( 'dash-right-now', 'Site Content', 'dashboard_new_right_now', 'dashboard', 'normal', 'high' );
    4153
    4254        if ( is_network_admin() )
    4355                wp_add_dashboard_widget( 'network_dashboard_right_now', __( 'Right Now' ), 'wp_network_dashboard_right_now' );
    4456
    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         }
     57        // Activity Widget
     58        add_meta_box( 'dashboard_activity', __( 'Activity' ), 'wp_dashboard_activity', 'dashboard', 'normal', 'high' );
    5659
    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 
    7760        // 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' );
     61        if ( is_blog_admin() && current_user_can( 'edit_posts' ) )
     62                add_meta_box( 'dashboard_quick_draft', __( 'Quick Draft' ), 'wp_dashboard_quick_draft', 'dashboard', 'side', 'high' );
     63       
     64        // WordPress News
     65        add_meta_box( 'dashboard_rss', __( 'WordPress News' ), 'wp_dashboard_rss', 'dashboard', 'side', 'low' );
    8066
    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 
    11567        // Hook to register new widgets
    11668        // Filter widget order
    11769        if ( is_network_admin() ) {
     
    165117        }
    166118
    167119        if ( is_blog_admin () )
    168                 $side_widgets = array('dashboard_quick_press', 'dashboard_recent_drafts', 'dashboard_primary', 'dashboard_secondary');
     120                $side_widgets = array('dashboard_quick_draft');
    169121        else if (is_network_admin() )
    170                 $side_widgets = array('dashboard_primary', 'dashboard_secondary');
     122                $side_widgets = array();
    171123        else
    172124                $side_widgets = array();
    173125
     
    224176
    225177/* Dashboard Widgets */
    226178
    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">';
     179function dashboard_new_right_now() {
    365180        $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);
     181        if ( current_user_can( 'switch_themes' ) )
     182                $theme_name = sprintf( '<a href="themes.php">%1$s</a>', $theme->display('Name') );
     183        else
     184                $theme_name = $theme->display('Name');
     185?>
     186        <div class="main">
     187        <ul>
     188        <?php
     189        do_action( 'rightnow_list_start' );
     190        // Using show_in_nav_menus as my arg for grabbing what post types should show, is there better?
     191        $post_types = get_post_types( array( 'show_in_nav_menus' => true ), 'objects' );
     192        $post_types = (array) apply_filters( 'rightnow_post_types', $post_types );
     193        foreach ( $post_types as $post_type => $post_type_obj ){
     194                $num_posts = wp_count_posts( $post_type );
     195                if ( $num_posts && $num_posts->publish ) {
     196                        printf(
     197                                '<li class="%1$s-count"><a href="edit.php?post_type=%1$s">%2$s %3$s</a></li>',
     198                                $post_type,
     199                                number_format_i18n( $num_posts->publish ),
     200                                $post_type_obj->label
     201                        );
    380202                }
    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);
     203        }
     204        // Comments
     205        $num_comm = wp_count_comments();
     206        if ( $num_comm && $num_comm->total_comments ) {
     207                $text = _n( 'comment', 'comments', $num_comm->total_comments );
     208                printf(
     209                        '<li class="comment-count"><a href="edit-comments.php">%1$s %2$s</a></li>',
     210                        number_format_i18n( $num_comm->total_comments ),
     211                        $text
     212                );
     213                if ( $num_comm->moderated ) {
     214                        $text = _n( 'in moderation', 'in moderation', $num_comm->total_comments );
     215                        printf(
     216                                '<li class="comment-mod-count"><a href="edit-comments.php?comment_status=moderated">%1$s %2$s</a></li>',
     217                                number_format_i18n( $num_comm->moderated ),
     218                                $text
     219                        );
    390220                }
    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') );
    396221        }
    397         echo '</p>';
     222        do_action( 'rightnow_list_end' );
     223        ?>
     224        </ul>
     225        <p><?php printf( __( 'WordPress %1$s running %2$s theme.' ), get_bloginfo( 'version', 'display' ), $theme_name ); ?></p>
     226        </div>
    398227
    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>';
     228        <?php
     229        // activity_box_end has a core action, but only prints content when multisite.
     230        // Using an output buffer is the only way to really check if anything's displayed here.
     231        ob_start();
    410232        do_action( 'rightnow_end' );
    411233        do_action( 'activity_box_end' );
     234        $actions = ob_get_clean();
     235
     236        if ( !empty( $actions ) ) : ?>
     237        <div class="sub">
     238                <?php echo $actions; ?>
     239        </div>
     240        <?php endif;
    412241}
    413242
    414243function wp_network_dashboard_right_now() {
     
    458287        do_action( 'mu_activity_box_end' );
    459288}
    460289
    461 function wp_dashboard_quick_press() {
     290/**
     291 * The Quick Draft widget display and creation of drafts
     292 *
     293 *
     294 *
     295 * @since 3.8.0
     296 *
     297 */
     298function wp_dashboard_quick_draft( $error_msg=false ) {
    462299        global $post_ID;
    463300
    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 
    491301        /* Check if a new auto-draft (= no new post_ID) is needed or if the old can be used */
    492302        $last_post_id = (int) get_user_option( 'dashboard_quick_press_last_post_id' ); // Get the last post_ID
    493303        if ( $last_post_id ) {
    494304                $post = get_post( $last_post_id );
    495305                if ( empty( $post ) || $post->post_status != 'auto-draft' ) { // auto-draft doesn't exists anymore
    496                         $post = get_default_post_to_edit('post', true);
     306                        $post = get_default_post_to_edit( 'post', true );
    497307                        update_user_option( get_current_user_id(), 'dashboard_quick_press_last_post_id', (int) $post->ID ); // Save post_ID
    498308                } else {
    499309                        $post->post_title = ''; // Remove the auto draft title
     
    507317        }
    508318
    509319        $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         }
     320       
     321        do_action( 'dashboard_quickdraft_beginning', $post );
    520322?>
    521323
    522         <form name="post" action="<?php echo esc_url( admin_url( 'post.php' ) ); ?>" method="post" id="quick-press">
     324        <form name="post" action="<?php echo esc_url( admin_url( 'post.php' ) ); ?>" method="post" id="quick-press" class="initial-form">
     325               
     326                <?php if ($error_msg) : ?>
     327                <div class="error"><?php _e( $error_msg ); ?></div>
     328                <?php endif; ?>
     329               
    523330                <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 ); ?>" />
     331                        <label class="screen-reader-text prompt" for="title" id="title-prompt-text"><?php _e( "What's on your mind?" ); ?></label>
     332                        <input type="text" name="post_title" id="title" autocomplete="off" />
    526333                </div>
    527334
    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' ); ?>
     335                <div class="textarea-wrap" id="description-wrap">
     336                        <label class="screen-reader-text prompt" for="content" id="content-prompt-text"><?php _e( 'Enter a description' ); ?></label>
     337                        <textarea name="content" id="content" class="mceEditor" rows="3" cols="15"></textarea>
    531338                </div>
    532                 <?php endif; ?>
    533339
    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 
    554340                <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" />
     341                        <input type="hidden" name="action" id="quickpost-action" value="post-quickdraft-save" />
    560342                        <input type="hidden" name="post_ID" value="<?php echo $post_ID; ?>" />
    561343                        <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" />
     344                        <?php wp_nonce_field( 'add-post' ); ?>
     345                        <?php submit_button( __( 'Save Draft' ), 'primary', 'save', false, array( 'id' => 'save-post' ) ); ?>
    565346                        <br class="clear" />
    566347                </p>
    567348
    568349        </form>
    569350
    570351<?php
    571         if ( $drafts )
    572                 wp_dashboard_recent_drafts( $drafts );
     352        wp_dashboard_recent_quickdrafts();
     353       
     354        do_action( 'dashboard_quickdraft_end' );
    573355}
    574356
    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         }
     357/**
     358 * Show `Recent Drafts` below Quick Draft form
     359 *
     360 *
     361 *
     362 * @since 3.8.0
     363 *
     364 */
     365function wp_dashboard_recent_quickdrafts() {
    587366
     367        $query_args = array(
     368                'post_type'      => 'post',
     369                'post_status'    => 'draft',
     370                'author'         => $GLOBALS['current_user']->ID,
     371                'posts_per_page' => 4,
     372                'orderby'        => 'modified',
     373                'order'          => 'DESC'
     374        );
     375        $query_args = apply_filters( 'dash_recent_quickdrafts_query_args', $query_args );
     376        $drafts_query = new WP_Query( $query_args );
     377        $drafts =& $drafts_query->posts;
     378
     379
    588380        if ( $drafts && is_array( $drafts ) ) {
    589381                $list = array();
     382                $draft_count = 0;
    590383                foreach ( $drafts as $draft ) {
     384                        if ( 3 == $draft_count )
     385                                break;
     386                       
     387                        $draft_count++;
     388                       
    591389                        $url = get_edit_post_link( $draft->ID );
    592390                        $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>';
     391                        $item = '<div class="draft-title"><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></div>';
    594392                        if ( $the_content = wp_trim_words( $draft->post_content, 10 ) )
    595393                                $item .= '<p>' . $the_content . '</p>';
    596394                        $list[] = $item;
    597395                }
     396               
     397                do_action( 'dashboard_quickdraft_drafts_list', $drafts );
    598398?>
    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         }
     399        <div class="drafts">
     400                <?php if ( 3 < count($drafts) ) { ?>
     401                <p class="view-all"><a href="edit.php?post_status=draft" ><?php _e( 'View all' ); ?></a></p>
     402                <?php } ?>
     403                <h4><?php _e('Drafts'); ?></h4>
     404                <ul id="draft-list">
     405                        <li><?php echo join( "</li>\n<li>", $list ); ?></li>
     406                </ul>
     407        </div>
     408<?php }
    607409}
    608410
    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 
    657411function _wp_dashboard_recent_comments_row( &$comment, $show_date = true ) {
    658412        $GLOBALS['comment'] =& $comment;
    659413
     
    748502}
    749503
    750504/**
    751  * The recent comments dashboard widget control.
     505 * callback function for `Activity` widget
    752506 *
    753  * @since 3.0.0
     507 *
     508 *
     509 * @since 3.8.0
     510 *
    754511 */
    755 function wp_dashboard_recent_comments_control() {
    756         if ( !$widget_options = get_option( 'dashboard_widget_options' ) )
    757                 $widget_options = array();
     512function wp_dashboard_activity() {
    758513
    759         if ( !isset($widget_options['dashboard_recent_comments']) )
    760                 $widget_options['dashboard_recent_comments'] = array();
     514        echo '<div id="activity-widget">';
    761515
    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 );
     516        do_action( 'dashboard_activity_beginning' );
     517
     518        $future_posts = dashboard_show_published_posts( array(
     519                'display' => 2,
     520                'max'     => 5,
     521                'status'  => 'future',
     522                'order'   => 'ASC',
     523                'title'   => __( 'Publishing Soon' ),
     524                'id'      => 'future-posts',
     525        ) );
     526        $recent_posts = dashboard_show_published_posts( array(
     527                'display' => 2,
     528                'max'     => 5,
     529                'status'  => 'publish',
     530                'order'   => 'DESC',
     531                'title'   => __( 'Recently Published' ),
     532                'id'      => 'published-posts',
     533        ) );
     534       
     535        do_action( 'dashboard_activity_middle' );
     536       
     537        $recent_comments = dashboard_comments();
     538       
     539        if ( !$future_posts && !$recent_posts && !$recent_comments ) {
     540                echo '<div class="no-activity">';
     541                echo '<p class="smiley"></p>';
     542                echo '<p>' . __( 'No activity yet!' ) . '</p>';
     543                echo '</div>';
    766544        }
     545       
     546        do_action( 'dashboard_activity_end' );
    767547
    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>';
     548        echo '</div>';
    772549}
    773550
    774 function wp_dashboard_incoming_links() {
    775         wp_dashboard_cached_rss_widget( 'dashboard_incoming_links', 'wp_dashboard_incoming_links_output' );
    776 }
    777 
    778551/**
    779  * Display incoming links dashboard widget content.
     552 * Generates `Publishing Soon` and `Recently Published` sections
    780553 *
    781  * @since 2.5.0
     554 *
     555 *
     556 * @since 3.8.0
     557 *
    782558 */
    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 );
     559function dashboard_show_published_posts( $args ) {
    787560
    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         }
     561        $query_args = array(
     562                'post_type'      => 'post',
     563                'post_status'    => $args['status'],
     564                'orderby'        => 'date',
     565                'order'          => $args['order'],
     566                'posts_per_page' => intval( $args['max'] ),
     567                'no_found_rows'  => true,
     568                'cache_results'  => false
     569        );
     570        $query_args = apply_filters( 'dash_show_published_posts_query_args', $query_args );
     571        $posts = new WP_Query( $query_args );
    796572
    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         }
     573        if ( $posts->have_posts() ) {
    803574
    804         echo "<ul>\n";
     575                echo '<div id="' . $args['id'] . '" class="activity-block">';
    805576
    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' );
     577                if ( $posts->post_count > $args['display'] ) {
     578                        echo '<small class="show-more"><a href="#">' . sprintf( __( 'See %s more&hellip;'), $posts->post_count - intval( $args['display'] ) ) . '</a></small>';
    825579                }
    826                 if ( $site_link )
    827                         $publisher = "<a href='$site_link'>$publisher</a>";
    828                 else
    829                         $publisher = "<strong>$publisher</strong>";
    830580
    831                 $content = $item->get_content();
    832                 $content = wp_html_excerpt( $content, 50, ' &hellip;' );
     581                echo '<h4>' . $args['title'] . '</h4>';
    833582
    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"' );
     583                echo '<ul>';
    840584
    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 );
     585                $i = 0;
     586                while ( $posts->have_posts() ) {
     587                        $posts->the_post();
     588                        printf(
     589                                '<li%s><span>%s, %s</span> <a href="%s">%s</a></li>',
     590                                ( $i >= intval ( $args['display'] ) ? ' class="hidden"' : '' ),
     591                                dashboard_relative_date( get_the_time( 'U' ) ),
     592                                get_the_time(),
     593                                get_edit_post_link(),
     594                                get_the_title()
     595                        );
     596                        $i++;
    851597                }
    852598
    853                 echo "\t<li>" . sprintf( $text, $publisher, $link, $content, $date ) . "</li>\n";
     599                echo '</ul>';
     600                echo '</div>';
     601
     602        } else {
     603                return false;
    854604        }
    855605
    856         echo "</ul>\n";
    857         $rss->__destruct();
    858         unset($rss);
    859 }
     606        wp_reset_postdata();
    860607
    861 function wp_dashboard_incoming_links_control() {
    862         wp_dashboard_rss_control( 'dashboard_incoming_links', array( 'title' => false, 'show_summary' => false, 'show_author' => false ) );
     608        return true;
    863609}
    864610
    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 
    873611/**
    874  * Display primary dashboard RSS widget feed.
     612 * Show `Comments` section
    875613 *
    876  * @since 2.5.0
    877614 *
    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.
    897615 *
    898  * @since 2.5.0
     616 * @since 3.8.0
    899617 *
    900  * @return unknown
    901618 */
    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 );
     619function dashboard_comments( $total_items = 5 ) {
     620        global $wpdb;
    906621
    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>';
     622        // Select all comment types and filter out spam later for better query performance.
     623        $comments = array();
     624        $start = 0;
     625
     626        $comments_query = array(
     627                'number' => $total_items * 5,
     628                'offset' => 0
     629        );
     630        if ( ! current_user_can( 'edit_posts' ) )
     631                $comments_query['status'] = 'approve';
     632
     633        while ( count( $comments ) < $total_items && $possible = get_comments( $comments_query ) ) {
     634                foreach ( $possible as $comment ) {
     635                        if ( ! current_user_can( 'read_post', $comment->comment_post_ID ) )
     636                                continue;
     637                        $comments[] = $comment;
     638                        if ( count( $comments ) == $total_items )
     639                                break 2;
    912640                }
    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'] );
     641                $comments_query['offset'] += $comments_query['number'];
     642                $comments_query['number'] = $total_items * 10;
     643        }
     644       
     645       
     646
     647        if ( $comments ) {
     648                echo '<div id="latest-comments" class="activity-block">';
     649                echo '<h4>' . __( 'Comments' ) . '</h4>';
     650               
     651                echo '<div id="the-comment-list" data-wp-lists="list:comment">';
     652                foreach ( $comments as $comment )
     653                        _wp_dashboard_recent_comments_row( $comment );
    920654                echo '</div>';
    921                 $rss->__destruct();
    922                 unset($rss);
     655
     656                if ( current_user_can('edit_posts') )
     657                        _get_list_table('WP_Comments_List_Table')->views();
     658
     659                wp_comment_reply( -1, false, 'dashboard', false );
     660                wp_comment_trashnotice();
     661               
     662                echo '</div>';
     663        } else {
     664                return false;
    923665        }
     666        return true;
    924667}
    925668
    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 
    933669/**
    934  * Display plugins most popular, newest plugins, and recently updated widget text.
     670 * return relative date for given timestamp
    935671 *
    936  * @since 2.5.0
     672 *
     673 *
     674 * @since 3.8.0
     675 *
    937676 */
    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/' );
     677function dashboard_relative_date( $time ) {
    941678
    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         }
     679        $diff = floor( ( $time - time() ) / DAY_IN_SECONDS );
    946680
    947         foreach ( array( 'popular' => __('Most Popular'), 'new' => __('Newest Plugins') ) as $feed => $label ) {
    948                 if ( is_wp_error($$feed) || !$$feed->get_item_quantity() )
    949                         continue;
     681        if ( $diff == 0 )
     682                return __( 'Today' );
    950683
    951                 $items = $$feed->get_items(0, 5);
     684        if ( $diff == 1 )
     685                return __( 'Tomorrow' );
    952686
    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;
     687        return date( 'M jS', $time);
    958688
    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         }
    1006689}
    1007690
    1008691/**
     
    1074757}
    1075758
    1076759/**
    1077  * The RSS dashboard widget control.
     760 * Returns default WordPress News feeds
    1078761 *
    1079  * Sets up $args to be used as input to wp_widget_rss_form(). Handles POST data
    1080  * from RSS-type widgets.
    1081762 *
    1082  * @since 2.5.0
    1083763 *
    1084  * @param string $widget_id
    1085  * @param array $form_inputs
     764 * @since 3.8.0
     765 *
    1086766 */
    1087 function wp_dashboard_rss_control( $widget_id, $form_inputs = array() ) {
    1088         if ( !$widget_options = get_option( 'dashboard_widget_options' ) )
     767function wp_dashboard_default_feeds() {
     768        return array(
     769                'news'   => array(
     770                        'link'         => apply_filters( 'dashboard_primary_link', __( 'http://wordpress.org/news/' ) ),
     771                        'url'          => apply_filters( 'dashboard_primary_feed', __( 'http://wordpress.org/news/feed/' ) ),
     772                        'title'        => '',
     773                        'items'        => 1,
     774                        'show_summary' => 1,
     775                        'show_author'  => 0,
     776                        'show_date'    => 1,
     777                ),
     778                'planet' => array(
     779                        'link'         => apply_filters( 'dashboard_secondary_link', __( 'http://planet.wordpress.org/' ) ),
     780                        'url'          => apply_filters( 'dashboard_secondary_feed', __( 'http://planet.wordpress.org/feed/' ) ),
     781                        'title'        => '',
     782                        'items'        => 3,
     783                        'show_summary' => 0,
     784                        'show_author'  => 0,
     785                        'show_date'    => 0,
     786                ),
     787                'plugins' => array(
     788                        'link'         => '',
     789                        'url'          => array(
     790                                        'popular' => 'http://wordpress.org/plugins/rss/browse/popular/',
     791                                        'new'     => 'http://wordpress.org/plugins/rss/browse/new/'
     792                        ),
     793                        'title'        => '',
     794                        'items'        => 1,
     795                        'show_summary' => 0,
     796                        'show_author'  => 0,
     797                        'show_date'    => 0,
     798                )
     799        );
     800}
     801
     802/**
     803 * Check for cached feeds
     804 *
     805 *
     806 *
     807 * @since 3.8.0
     808 *
     809 */
     810function wp_dashboard_rss() {
     811        $default_feeds = wp_dashboard_default_feeds();
     812
     813        $widget_options = get_option( 'dashboard_widget_options' );
     814
     815        if ( !$widget_options || !is_array($widget_options) )
    1089816                $widget_options = array();
    1090817
    1091         if ( !isset($widget_options[$widget_id]) )
    1092                 $widget_options[$widget_id] = array();
     818        if ( ! isset( $widget_options['dashboard_rss'] ) ) {
     819                $widget_options['dashboard_rss'] = $default_feeds;
     820                update_option( 'dashboard_widget_options', $widget_options );
     821        }
    1093822
    1094         $number = 1; // Hack to use wp_widget_rss_form()
    1095         $widget_options[$widget_id]['number'] = $number;
     823        foreach( $default_feeds as $key => $value ) {
     824                $default_urls[] = $value['url'];
     825        }
     826       
     827        do_action( 'dashboard_news_beginning' );
    1096828
    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);
     829        wp_dashboard_cached_rss_widget( 'dashboard_rss', 'wp_dashboard_news_output', $default_urls );
     830       
     831        do_action( 'dashboard_news_end' );
     832}
     833
     834/**
     835 * Display news feeds
     836 *
     837 *
     838 *
     839 * @since 3.8.0
     840 *
     841 */
     842function wp_dashboard_news_output() {
     843        $widgets = get_option( 'dashboard_widget_options' );
     844
     845        foreach( $widgets['dashboard_rss'] as $type => $args ) {
     846                $args['type'] = $type;
     847                echo '<div class="rss-widget">';
     848                wp_widget_news_output( $args['url'], $args );
     849                echo "</div>";
     850        }
     851}
     852
     853/**
     854 * Generate code for each news feed
     855 *
     856 *
     857 *
     858 * @since 3.8.0
     859 *
     860 */
     861function wp_widget_news_output( $rss, $args = array() ) {
     862       
     863        // Regular RSS feeds
     864        if ( isset( $args['type'] ) && 'plugins' != $args['type'] )     
     865                return wp_widget_rss_output( $rss, $args );
     866       
     867        // Plugin feeds plus link to install them
     868        if ( ! is_multisite() && current_user_can( 'install_plugins' ) ) {
     869                $popular = fetch_feed( $args['url']['popular'] );
     870                $new     = fetch_feed( $args['url']['new'] );
     871       
     872                if ( false === $plugin_slugs = get_transient( 'plugin_slugs' ) ) {
     873                        $plugin_slugs = array_keys( get_plugins() );
     874                        set_transient( 'plugin_slugs', $plugin_slugs, DAY_IN_SECONDS );
     875                }
     876       
     877                echo '<ul>';
     878       
     879                foreach ( array(
     880                        'popular' => __( 'Popular Plugin' ),
     881                        'new'     => __( 'Newest Plugin' )
     882                ) as $feed => $label ) {
     883                        if ( is_wp_error($$feed) || !$$feed->get_item_quantity() )
     884                                continue;
     885       
     886                        $items = $$feed->get_items(0, 5);
     887       
     888                        // Pick a random, non-installed plugin
     889                        while ( true ) {
     890                                // Abort this foreach loop iteration if there's no plugins left of this type
     891                                if ( 0 == count($items) )
     892                                        continue 2;
     893       
     894                                $item_key = array_rand($items);
     895                                $item = $items[$item_key];
     896       
     897                                list($link, $frag) = explode( '#', $item->get_link() );
     898       
     899                                $link = esc_url($link);
     900                                if ( preg_match( '|/([^/]+?)/?$|', $link, $matches ) )
     901                                        $slug = $matches[1];
     902                                else {
     903                                        unset( $items[$item_key] );
     904                                        continue;
     905                                }
     906       
     907                                // Is this random plugin's slug already installed? If so, try again.
     908                                reset( $plugin_slugs );
     909                                foreach ( $plugin_slugs as $plugin_slug ) {
     910                                        if ( $slug == substr( $plugin_slug, 0, strlen( $slug ) ) ) {
     911                                                unset( $items[$item_key] );
     912                                                continue 2;
     913                                        }
     914                                }
     915       
     916                                // If we get to this point, then the random plugin isn't installed and we can stop the while().
     917                                break;
    1110918                        }
     919       
     920                        // Eliminate some common badly formed plugin descriptions
     921                        while ( ( null !== $item_key = array_rand($items) ) && false !== strpos( $items[$item_key]->get_description(), 'Plugin Name:' ) )
     922                                unset($items[$item_key]);
     923       
     924                        if ( !isset($items[$item_key]) )
     925                                continue;
     926       
     927                        $title = esc_html( $item->get_title() );
     928       
     929                        $description = esc_html( strip_tags( @html_entity_decode( $item->get_description(), ENT_QUOTES, get_option( 'blog_charset' ) ) ) );
     930       
     931                        $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';
     932       
     933                        echo "<li class='dashboard-news-plugin'><span>$label:</span> <a href='$link' class='dashboard-news-plugin-link'>$title</a></h5>&nbsp;<span>(<a href='$ilink' class='thickbox' title='$title'>" . __( 'Install' ) . "</a>)</span></li>";
     934       
     935                        $$feed->__destruct();
     936                        unset( $$feed );
    1111937                }
    1112                 update_option( 'dashboard_widget_options', $widget_options );
    1113                 $cache_key = 'dash_' . md5( $widget_id );
    1114                 delete_transient( $cache_key );
     938               
     939                echo '</ul>';
    1115940        }
    1116 
    1117         wp_widget_rss_form( $widget_options[$widget_id], $form_inputs );
    1118941}
    1119942
    1120943/**
     
    1127950 * @return bool True if not multisite, user can't upload files, or the space check option is disabled.
    1128951*/
    1129952function wp_dashboard_quota() {
    1130         if ( !is_multisite() || !current_user_can('upload_files') || get_site_option( 'upload_space_check_disabled' ) )
     953        if ( !is_multisite() || !current_user_can( 'upload_files' ) || get_site_option( 'upload_space_check_disabled' ) )
    1131954                return true;
    1132955
    1133956        $quota = get_space_allowed();
     
    1137960                $percentused = '100';
    1138961        else
    1139962                $percentused = ( $used / $quota ) * 100;
    1140         $used_color = ( $percentused >= 70 ) ? ' spam' : '';
     963        $used_class = ( $percentused >= 70 ) ? ' warning' : '';
    1141964        $used = round( $used, 2 );
    1142965        $percentused = number_format( $percentused );
    1143966
    1144967        ?>
    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>
     968        <h4 class="mu-storage"><?php _e( 'Storage Space' ); ?></h4>
     969        <div class="mu-storage">
     970        <ul>
     971                <li class="storage-count">
     972                        <?php printf(
     973                                '<a href="%1$s" title="%3$s">%2$sMB %4$s</a>',
     974                                esc_url( admin_url( 'upload.php' ) ),
     975                                number_format_i18n( $quota ),
     976                                __( 'Manage Uploads' ),
     977                                __( 'Space Allowed' )
     978                        ); ?>
     979                </li><li class="storage-count <?php echo $used_class; ?>">
     980                        <?php printf(
     981                                '<a href="%1$s" title="%4$s" class="musublink">%2$sMB (%3$s%%) %5$s</a>',
     982                                esc_url( admin_url( 'upload.php' ) ),
     983                                number_format_i18n( $used, 2 ),
     984                                $percentused,
     985                                __( 'Manage Uploads' ),
     986                                __( 'Space Used' )
     987                        ); ?>
     988                </li>
     989        </ul>
    1153990        </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" />
    1163991        <?php
    1164992}
    1165993add_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        })
     125       
     126        // Dashboard columns
     127        jQuery(document).ready(function ($) {
     128                // Update main column count on load
     129                updateColumnCount();
     130               
     131                // Show dashed box only on sort
     132                var emptyContainers = $('.postbox-container .empty-container');
     133                $('.meta-box-sortables').on('sortstart', function(event, ui) {
     134                        emptyContainers.css('border', '3px dashed #CCCCCC');   
     135                }).on( 'sortbeforestop', function(event, ui) {
     136                        emptyContainers.css('border', 'none');
     137                }).on( 'sortover', function(event, ui) {
     138                        $(event.target).find(emptyContainers).css('border', 'none');
     139                }).on( 'sortout', function(event, ui) {
     140                        $(event.target).find(emptyContainers).css('border', '3px dashed #CCCCCC');
     141                });
     142        });
     143       
     144        jQuery(window).resize( _.debounce( function(){
     145                updateColumnCount();
     146        }, 30) );
     147       
     148        function updateColumnCount() {
     149                var cols = 1,
     150                        windowWidth = parseInt(jQuery(window).width());
     151                if (799 < windowWidth && 1299 > windowWidth)
     152                        cols = 2;
     153                if (1300 < windowWidth && 1799 > windowWidth)
     154                        cols = 3;
     155                if (1800 < windowWidth)
     156                        cols = 4;
     157                jQuery('.metabox-holder').attr('class', jQuery('.metabox-holder').attr('class').replace(/columns-\d+/, 'columns-' + cols));
     158        }
    116159
    117160} );
  • 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/index.php

     
    2929$title = __('Dashboard');
    3030$parent_file = 'index.php';
    3131
    32 if ( is_user_admin() )
    33         add_screen_option('layout_columns', array('max' => 4, 'default' => 1) );
    34 else
    35         add_screen_option('layout_columns', array('max' => 4, 'default' => 2) );
    36 
    3732$help = '<p>' . __( 'Welcome to your WordPress Dashboard! This is the screen you will see when you log in to your site, and gives you access to all the site management features of WordPress. You can get help for any screen by clicking the Help tab in the upper corner.' ) . '</p>';
    3833
    3934// Not using chaining here, so as to be parseable by PHP4.
     
    4742
    4843// Help tabs
    4944
    50 $help  = '<p>' . __('The left-hand navigation menu provides links to all of the WordPress administration screens, with submenu items displayed on hover. You can minimize this menu to a narrow icon strip by clicking on the Collapse Menu arrow at the bottom.') . '</p>';
    51 $help .= '<p>' . __('Links in the Toolbar at the top of the screen connect your dashboard and the front end of your site, and provide access to your profile and helpful WordPress information.') . '</p>';
    52 
     45$help  = '<p>' . __( 'The left-hand navigation menu provides links to all of the WordPress administration screens, with submenu items displayed on hover. You can minimize this menu to a narrow icon strip by clicking on the Collapse Menu arrow at the bottom.' ) . '</p>';
     46$help .= '<p>' . __( 'Links in the Toolbar at the top of the screen connect your dashboard and the front end of your site, and provide access to your profile and helpful WordPress information.' ) . '</p>';
     47 
    5348$screen->add_help_tab( array(
    5449        'id'      => 'help-navigation',
    55         'title'   => __('Navigation'),
     50        'title'   => __( 'Navigation' ),
    5651        'content' => $help,
    5752) );
    5853
    59 $help  = '<p>' . __('You can use the following controls to arrange your Dashboard screen to suit your workflow. This is true on most other administration screens as well.') . '</p>';
    60 $help .= '<p>' . __('<strong>Screen Options</strong> - Use the Screen Options tab to choose which Dashboard boxes to show, and how many columns to display.') . '</p>';
    61 $help .= '<p>' . __('<strong>Drag and Drop</strong> - To rearrange the boxes, drag and drop by clicking on the title bar of the selected box and releasing when you see a gray dotted-line rectangle appear in the location you want to place the box.') . '</p>';
    62 $help .= '<p>' . __('<strong>Box Controls</strong> - Click the title bar of the box to expand or collapse it. In addition, some boxes have configurable content, and will show a &#8220;Configure&#8221; link in the title bar if you hover over it.') . '</p>';
     54$help  = '<p>' . __( 'You can use the following controls to arrange your Dashboard screen to suit your workflow. This is true on most other administration screens as well.' ) . '</p>';
     55$help .= '<p>' . __( '<strong>Screen Options</strong> - Use the Screen Options tab to choose which Dashboard boxes to show.' ) . '</p>';
     56$help .= '<p>' . __( '<strong>Drag and Drop</strong> - To rearrange the boxes, drag and drop by clicking on the title bar of the selected box and releasing when you see a gray dotted-line rectangle appear in the location you want to place the box.' ) . '</p>';
     57$help .= '<p>' . __( '<strong>Box Controls</strong> - Click the title bar of the box to expand or collapse it. In addition, some boxes have configurable content, and will show a &#8220;Configure&#8221; link in the title bar if you hover over it.' ) . '</p>';
    6358
    6459$screen->add_help_tab( array(
    6560        'id'      => 'help-layout',
    66         'title'   => __('Layout'),
     61        'title'   => __( 'Layout' ),
    6762        'content' => $help,
    6863) );
    6964
    70 $help  = '<p>' . __('The boxes on your Dashboard screen are:') . '</p>';
     65$help  = '<p>' . __( 'The boxes on your Dashboard screen are:' ) . '</p>';
    7166if ( current_user_can( 'edit_posts' ) )
    72         $help .= '<p>' . __('<strong>Right Now</strong> - Displays a summary of the content on your site and identifies which theme and version of WordPress you are using.') . '</p>';
    73 if ( current_user_can( 'moderate_comments' ) )
    74         $help .= '<p>' . __('<strong>Recent Comments</strong> - Shows the most recent comments on your posts (configurable, up to 30) and allows you to moderate them.') . '</p>';
    75 if ( current_user_can( 'publish_posts' ) )
    76         $help .= '<p>' . __('<strong>Incoming Links</strong> - Shows links to your site found by Google Blog Search.') . '</p>';
    77 if ( current_user_can( get_post_type_object( 'post' )->cap->create_posts ) ) {
    78         $help .= '<p>' . __('<strong>QuickPress</strong> - Allows you to create a new post and either publish it or save it as a draft.') . '</p>';
    79         $help .= '<p>' . __('<strong>Recent Drafts</strong> - Displays links to the 5 most recent draft posts you&#8217;ve started.') . '</p>';
    80 }
    81 $help .= '<p>' . __('<strong>WordPress Blog</strong> - Latest news from the official WordPress project.') . '</p>';
    82 $help .= '<p>' . __('<strong>Other WordPress News</strong> - Shows the <a href="http://planet.wordpress.org" target="_blank">WordPress Planet</a> feed. You can configure it to show a different feed of your choosing.') . '</p>';
     67        $help .= '<p>' . __( '<strong>Site Content</strong> - Displays a summary of the content on your site and identifies which theme and version of WordPress you are using.' ) . '</p>';
     68$help .= '<p>' . __( '<strong>Activity</strong> - Shows the upcoming scheduled posts, recently published posts, and the most recent comments on your posts and allows you to moderate them.' ) . '</p>';
     69if ( is_blog_admin() && current_user_can( 'edit_posts' ) )
     70        $help .= '<p>' . __( "<strong>Quick Draft</strong> - Allows you to create a new post and save it as a draft. Also displays links to the 5 most recent draft posts you've started." ) . '</p>';
    8371if ( ! is_multisite() && current_user_can( 'install_plugins' ) )
    84         $help .= '<p>' . __('<strong>Plugins</strong> - Features the most popular, newest, and recently updated plugins from the WordPress.org Plugin Directory.') . '</p>';
     72        $help .= '<p>' . __( '<strong>WordPress News</strong> - Latest news from the official WordPress project, the <a href="http://planet.wordpress.org/">WordPress Planet</a>, and popular and recent plugins.' ) . '</p>';
     73else
     74        $help .= '<p>' . __( '<strong>WordPress News</strong> - Latest news from the official WordPress project, the <a href="http://planet.wordpress.org/">WordPress Planet</a>.' ) . '</p>';
    8575if ( current_user_can( 'edit_theme_options' ) )
    86         $help .= '<p>' . __('<strong>Welcome</strong> - Shows links for some of the most common tasks when setting up a new site.') . '</p>';
    87 
     76        $help .= '<p>' . __( '<strong>Welcome</strong> - Shows links for some of the most common tasks when setting up a new site.' ) . '</p>';
     77 
    8878$screen->add_help_tab( array(
    8979        'id'      => 'help-content',
    90         'title'   => __('Content'),
     80        'title'   => __( 'Content' ),
    9181        'content' => $help,
    9282) );
    9383
    9484unset( $help );
    95 
     85 
    9686$screen->set_help_sidebar(
    9787        '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
    9888        '<p>' . __( '<a href="http://codex.wordpress.org/Dashboard_Screen" target="_blank">Documentation on Dashboard</a>' ) . '</p>' .
    9989        '<p>' . __( '<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
    10090);
    10191
    102 include (ABSPATH . 'wp-admin/admin-header.php');
     92include ( ABSPATH . 'wp-admin/admin-header.php' );
    10393
    104 $today = current_time('mysql', 1);
     94$today = current_time( 'mysql', 1 );
    10595?>
    10696
    10797<div class="wrap">
    108 <?php screen_icon(); ?>
    109 <h2><?php echo esc_html( $title ); ?></h2>
     98        <?php screen_icon(); ?>
     99        <h2><?php $words = array( 'Hola', 'Bonjour', 'Aloha', 'Ahoy There', "G'day", "It's Go Time", 'Break a Leg', 'Go For Broke' ); echo esc_html( $words[ mt_rand( 0, count( $words) -1 ) ] ); ?></h2>
    110100
    111 <?php if ( has_action( 'welcome_panel' ) && current_user_can( 'edit_theme_options' ) ) :
     101        <?php if ( has_action( 'welcome_panel' ) && current_user_can( 'edit_theme_options' ) ) :
    112102        $classes = 'welcome-panel';
    113103
    114104        $option = get_user_meta( get_current_user_id(), 'show_welcome_panel', true );
     
    117107        if ( $hide )
    118108                $classes .= ' hidden'; ?>
    119109
    120         <div id="welcome-panel" class="<?php echo esc_attr( $classes ); ?>">
    121                 <?php wp_nonce_field( 'welcome-panel-nonce', 'welcomepanelnonce', false ); ?>
     110        <div id="welcome-panel" class="<?php echo esc_attr( $classes ); ?>">
     111                <?php wp_nonce_field( 'welcome-panel-nonce', 'welcomepanelnonce', false ); ?>
    122112                <a class="welcome-panel-close" href="<?php echo esc_url( admin_url( '?welcome=0' ) ); ?>"><?php _e( 'Dismiss' ); ?></a>
    123113                <?php
    124114                /**
     
    129119                 *
    130120                 * @since 3.5.0
    131121                 */
    132                 do_action( 'welcome_panel' );
     122                do_action( 'welcome_panel' ); 
    133123                ?>
    134124        </div>
    135 <?php endif; ?>
     125        <?php endif; ?>
    136126
    137 <div id="dashboard-widgets-wrap">
     127        <div id="dashboard-widgets-wrap">
     128        <?php wp_dashboard(); ?>
     129        </div><!-- dashboard-widgets-wrap -->
    138130
    139 <?php wp_dashboard(); ?>
    140 
    141 <div class="clear"></div>
    142 </div><!-- dashboard-widgets-wrap -->
    143 
    144131</div><!-- wrap -->
    145132
    146 <?php require(ABSPATH . 'wp-admin/admin-footer.php'); ?>
     133<?php require( ABSPATH . 'wp-admin/admin-footer.php' ); ?>
     134 No newline at end of file
  • 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

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