From 3acc2acb2b632ff769a6ce8c321f799bebb4e35b Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Thu, 11 Sep 2008 01:46:30 +0000 Subject: [PATCH] Column hiding for manage posts. see #7725 git-svn-id: https://develop.svn.wordpress.org/trunk@8858 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-admin/admin-ajax.php | 11 ++++ wp-admin/edit-post-rows.php | 18 +++++-- wp-admin/edit.php | 17 ++++++- wp-admin/includes/template.php | 91 ++++++++++++++++++++++++++-------- wp-admin/js/columns.js | 33 ++++++++++++ wp-admin/js/posts.js | 24 +++++++++ wp-includes/script-loader.php | 7 +++ 7 files changed, 174 insertions(+), 27 deletions(-) create mode 100644 wp-admin/js/columns.js create mode 100644 wp-admin/js/posts.js diff --git a/wp-admin/admin-ajax.php b/wp-admin/admin-ajax.php index a11b542699..b3732f80e7 100644 --- a/wp-admin/admin-ajax.php +++ b/wp-admin/admin-ajax.php @@ -704,6 +704,17 @@ case 'closed-postboxes' : if ( is_array($hidden) ) update_usermeta($current_user->ID, 'meta-box-hidden_'.$page, $hidden); break; +case 'hidden-columns' : + check_ajax_referer( 'hiddencolumns', 'hiddencolumnsnonce' ); + $hidden = isset( $_POST['hidden'] )? $_POST['hidden'] : ''; + $hidden = explode( ',', $_POST['hidden'] ); + $page = isset( $_POST['page'] )? $_POST['page'] : ''; + if ( !preg_match( '/^[a-z-]+$/', $page ) ) { + die(-1); + } + $current_user = wp_get_current_user(); + if ( is_array($hidden) ) + update_usermeta($current_user->ID, "manage-$page-columns-hidden", $hidden); case 'get-permalink': check_ajax_referer( 'getpermalink', 'getpermalinknonce' ); $post_id = isset($_POST['post_id'])? intval($_POST['post_id']) : 0; diff --git a/wp-admin/edit-post-rows.php b/wp-admin/edit-post-rows.php index 2319c760c3..a587564d31 100644 --- a/wp-admin/edit-post-rows.php +++ b/wp-admin/edit-post-rows.php @@ -12,16 +12,24 @@ if ( ! defined('ABSPATH') ) die(); - - $column_display_name) { + $column_display_name ) { if ( 'cb' === $post_column_key ) $class = ' class="check-column"'; elseif ( 'comments' === $post_column_key ) - $class = ' class="num"'; + $class = ' class="manage-column column-comments num"'; + elseif ( 'modified' === $post_column_key ) + $class = ' class="manage-column column-date"'; else - $class = ''; + $class = " class=\"manage-column column-$post_column_key\""; + + $style = ''; + if ( in_array($post_column_key, $hidden) ) + $style = ' style="display:none;"'; ?> - > + > diff --git a/wp-admin/edit.php b/wp-admin/edit.php index b8ffacf506..a822fd2d1f 100644 --- a/wp-admin/edit.php +++ b/wp-admin/edit.php @@ -51,7 +51,7 @@ $title = __('Posts'); $parent_file = 'edit.php'; wp_enqueue_script('admin-forms'); wp_enqueue_script('inline-edit'); - +wp_enqueue_script('posts'); list($post_stati, $avail_post_stati) = wp_edit_posts_query(); @@ -74,6 +74,19 @@ else
+ +
+
+ +
+
+
+
+ +
+
+
+

post_title)); @@ -226,6 +239,8 @@ do_action('restrict_manage_posts'); + +
diff --git a/wp-admin/includes/template.php b/wp-admin/includes/template.php index d4cfd977e6..0745603c53 100644 --- a/wp-admin/includes/template.php +++ b/wp-admin/includes/template.php @@ -416,7 +416,15 @@ function inline_edit_row( $type ) { echo ''; $columns = $type == 'post' ? wp_manage_posts_columns() : wp_manage_pages_columns(); + $hidden = (array) get_user_option( "manage-$type-columns-hidden" ); foreach($columns as $column_name=>$column_display_name) { + $class = "class=\"$column_name column-$column_name\""; + + $style = ''; + if ( in_array($column_name, $hidden) ) + $style = ' style="display:none;"'; + + $attributes = "$class$style"; switch($column_name) { @@ -426,20 +434,24 @@ function inline_edit_row( $type ) { break; case 'modified': - case 'date': ?> - + case 'date': + $attributes = 'class="date column-date"' . $style; + ?> + > - + case 'title': + $attributes = "class=\"$type-title column-title\"" . $style; + ?> + >

- +
- + case 'comments': + $attributes = 'class="comments column-comments num"' . $style; + ?> + >
@@ -499,7 +513,7 @@ function inline_edit_row( $type ) { break; case 'author': ?> - + > id ); // TODO: ROLE SYSTEM if ( $authors && count( $authors ) > 1 ) { @@ -513,7 +527,7 @@ function inline_edit_row( $type ) { break; case 'status': ?> - + > '; + echo "$title\n"; + } +} + ?> diff --git a/wp-admin/js/columns.js b/wp-admin/js/columns.js new file mode 100644 index 0000000000..7c9fc6ab5a --- /dev/null +++ b/wp-admin/js/columns.js @@ -0,0 +1,33 @@ +(function($) { + columns = { + init : function(page) { + $('.hide-column-tog').click( function() { + var column = jQuery(this).val(); + var show = jQuery(this).attr('checked'); + if ( show ) { + jQuery('.column-' + column).show(); + } else { + jQuery('.column-' + column).hide(); + } + save_manage_columns_state(page); + } ); + + if ( $.browser.msie ) { + $('#side-sortables').append( '
' ); + } else { + $('#side-sortables').append( '
' ); + } + $('#wpbody-content').css( 'overflow', 'hidden' ); + } + } +}(jQuery)); + +function save_manage_columns_state(page) { + var hidden = jQuery('.manage-column').filter(':hidden').map(function() { return this.id; }).get().join(','); + jQuery.post(columnsL10n.requestFile, { + action: 'hidden-columns', + hidden: hidden, + hiddencolumnsnonce: jQuery('#hiddencolumnsnonce').val(), + page: page + }); +} \ No newline at end of file diff --git a/wp-admin/js/posts.js b/wp-admin/js/posts.js new file mode 100644 index 0000000000..d76ec3f134 --- /dev/null +++ b/wp-admin/js/posts.js @@ -0,0 +1,24 @@ +jQuery(document).ready( function($) { + columns.init('post'); + + // Edit Settings + $('#show-settings-link').click(function () { + $('#edit-settings').slideDown('normal', function(){ + $('#show-settings-link').hide(); + $('#hide-settings-link').show(); + + }); + $('#show-settings').addClass('show-settings-opened'); + return false; + }); + + $('#hide-settings-link').click(function () { + $('#edit-settings').slideUp('normal', function(){ + $('#hide-settings-link').hide(); + $('#show-settings-link').show(); + $('#show-settings').removeClass('show-settings-opened'); + }); + + return false; + }); +}); \ No newline at end of file diff --git a/wp-includes/script-loader.php b/wp-includes/script-loader.php index b3ef41cdca..68f697cf96 100644 --- a/wp-includes/script-loader.php +++ b/wp-includes/script-loader.php @@ -257,6 +257,13 @@ function wp_default_scripts( &$scripts ) { 'uid' => $userid, 'time' => time() ) ); + + $scripts->add( 'posts', '/wp-admin/js/posts.js', array('columns'), '20080910' ); + + $scripts->add( 'columns', '/wp-admin/js/columns.js', false, '20080910' ); + $scripts->localize( 'columns', 'columnsL10n', array( + 'requestFile' => admin_url('admin-ajax.php'), + ) ); } }