Ticket #32395: 32395.5.diff
File 32395.5.diff, 21.0 KB (added by , 10 years ago) |
---|
-
src/wp-admin/css/list-tables.css
427 427 content: '\f140'; 428 428 } 429 429 430 .wp-list-table .toggle-row { 431 position: absolute; 432 right: 8px; 433 top: 10px; 434 display: none; 435 padding: 0; 436 width: 40px; 437 height: 40px; 438 border: none; 439 outline: none; 440 background: transparent; 441 } 442 443 .wp-list-table .toggle-row:hover { 444 cursor: pointer; 445 } 446 447 .wp-list-table .toggle-row:focus { 448 -webkit-box-shadow: 449 0 0 0 1px #5b9dd9, 450 0 0 2px 1px rgba(30, 140, 190, .8); 451 box-shadow: 452 0 0 0 1px #5b9dd9, 453 0 0 2px 1px rgba(30, 140, 190, .8); 454 } 455 456 .ie8 .wp-list-table .toggle-row:focus { 457 outline: #5b9dd9 solid 1px; 458 } 459 460 .wp-list-table .toggle-row:active { 461 -webkit-box-shadow: none; 462 box-shadow: none; 463 } 464 465 .wp-list-table .toggle-row:before { 466 position: absolute; 467 top: 0; 468 left: 10px; 469 display: block; 470 padding: 0; 471 color: #666; 472 content: '\f140'; 473 font: normal 20px/1 'dashicons'; 474 line-height: 10px; 475 -webkit-font-smoothing: antialiased; 476 -moz-osx-font-smoothing: grayscale; 477 speak: none; 478 } 479 480 .wp-list-table .is-expanded .toggle-row:before { 481 content: '\f142'; 482 } 483 430 484 tr.wp-locked .locked-indicator { 431 485 margin-left: 6px; 432 486 height: 20px; … … 1647 1701 font-size: 14px; 1648 1702 } 1649 1703 1650 /* Columns to hide */ 1651 .fixed .column-date, 1652 .fixed .column-author, 1653 .column-categories, 1654 .column-tags, 1655 .tags .column-description, 1656 .media .column-parent, 1657 .media .column-comments, 1658 .users .column-email, 1659 .users .column-name, 1660 .sites .column-registered, 1661 .sites .column-users { 1704 .wp-list-table th:not(.column-primary), 1705 .wp-list-table th:not(.column-primary), 1706 .wp-list-table tr:not(.inline-edit-row) td:not(.column-primary) { 1662 1707 display: none; 1663 1708 } 1664 1709 1710 /* Checkboxes need to show */ 1711 .wp-list-table th.check-column { 1712 display: table-cell; 1713 width: 35px; 1714 } 1715 1716 .wp-list-table .toggle-row { 1717 display: block; 1718 } 1719 1720 .wp-list-table tr:not(.inline-edit-row) td { 1721 position: relative; 1722 clear: both; 1723 display: block; 1724 width: auto !important; /* needs to override some columns that are more specifically targeted */ 1725 } 1726 1727 .wp-list-table td.column-primary { 1728 padding-right: 50px; /* space for toggle button */ 1729 } 1730 1731 .wp-list-table tr:not(.inline-edit-row) td:not(.column-primary) { 1732 padding: 3px 8px 3px 35% !important; /* space for the label */ 1733 } 1734 1735 .wp-list-table tr:not(.inline-edit-row) td:not(.column-primary)::before { 1736 position: absolute; 1737 left: 10px; /* match padding of regular table cell */ 1738 display: block; 1739 overflow: hidden; 1740 width: 32%; /* leave a little space for a gutter */ 1741 content: attr(data-colname); 1742 white-space: nowrap; 1743 text-overflow: ellipsis; 1744 } 1745 1746 .wp-list-table .is-expanded td:not(.hidden) { 1747 display: block !important; 1748 overflow: hidden; /* clearfix */ 1749 } 1750 1751 /* Special cases */ 1752 .widefat .num, 1753 .column-posts { 1754 text-align: left; 1755 } 1756 1757 #comments-form .fixed .column-author { 1758 display: none !important; 1759 } 1760 1665 1761 .fixed .column-comment .comment-author { 1666 1762 display: block; 1667 1763 } 1668 1764 1669 /* Posts */1670 .column-title {1671 width: 85%;1765 #the-comment-list .is-expanded td { 1766 -webkit-box-shadow: none; 1767 box-shadow: none; 1672 1768 } 1673 1769 1674 .fixed .column-comments, .widefat .check-column { 1675 width: 35px 1770 #the-comment-list .is-expanded td:last-child { 1771 -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1); 1772 box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1); 1676 1773 } 1677 1774 1678 1775 .widefat thead .check-column, .widefat tfoot .check-column { … … 1683 1780 word-wrap: normal; 1684 1781 } 1685 1782 1686 /* Media */1687 .media .column-title {1688 width: auto;1689 }1690 1691 1783 /* Quick Edit and Bulk Edit */ 1692 1784 #wpbody-content .quick-edit-row-post .inline-edit-col-left, 1693 1785 #wpbody-content .quick-edit-row-post .inline-edit-col-right, … … 1763 1855 height: 22px; 1764 1856 } 1765 1857 1766 /* Taxonomies */1767 .tags .column-posts {1768 width: 74px;1769 }1770 1771 .tags .column-slug {1772 width: 30%;1773 }1774 1775 /* Comments */1776 .comments .column-response {1777 width: 35%;1778 }1779 1780 /* Users */1781 .users .column-role {1782 width: 35%;1783 }1784 1785 /* Network admin sites */1786 .sites .column-blogname {1787 width: 55%;1788 }1789 1790 1858 /* Updates */ 1791 1859 #wpbody-content #update-themes-table .plugin-title { 1792 1860 width: auto; -
src/wp-admin/includes/class-wp-comments-list-table.php
395 395 $this->display_tablenav( 'top' ); 396 396 397 397 ?> 398 <table class=" <?php echo implode( ' ', $this->get_table_classes() ); ?>">398 <table class="wp-list-table <?php echo implode( ' ', $this->get_table_classes() ); ?>"> 399 399 <thead> 400 400 <tr> 401 401 <?php $this->print_column_headers(); ?> … … 466 466 return; 467 467 } 468 468 469 if ( $primary !== $column_name ) { 470 return ''; 471 } 472 469 473 $post = get_post(); 470 474 471 475 $the_comment_status = wp_get_comment_status( $comment->comment_ID ); 472 476 473 477 $out = ''; 474 478 475 if ( $primary === $column_name ) { 476 $del_nonce = esc_html( '_wpnonce=' . wp_create_nonce( "delete-comment_$comment->comment_ID" ) ); 477 $approve_nonce = esc_html( '_wpnonce=' . wp_create_nonce( "approve-comment_$comment->comment_ID" ) ); 479 $del_nonce = esc_html( '_wpnonce=' . wp_create_nonce( "delete-comment_$comment->comment_ID" ) ); 480 $approve_nonce = esc_html( '_wpnonce=' . wp_create_nonce( "approve-comment_$comment->comment_ID" ) ); 478 481 479 482 $url = "comment.php?c=$comment->comment_ID"; 480 483 481 482 483 484 485 486 487 484 $approve_url = esc_url( $url . "&action=approvecomment&$approve_nonce" ); 485 $unapprove_url = esc_url( $url . "&action=unapprovecomment&$approve_nonce" ); 486 $spam_url = esc_url( $url . "&action=spamcomment&$del_nonce" ); 487 $unspam_url = esc_url( $url . "&action=unspamcomment&$del_nonce" ); 488 $trash_url = esc_url( $url . "&action=trashcomment&$del_nonce" ); 489 $untrash_url = esc_url( $url . "&action=untrashcomment&$del_nonce" ); 490 $delete_url = esc_url( $url . "&action=deletecomment&$del_nonce" ); 488 491 489 490 491 492 493 494 495 496 497 492 // Preorder it: Approve | Reply | Quick Edit | Edit | Spam | Trash. 493 $actions = array( 494 'approve' => '', 'unapprove' => '', 495 'reply' => '', 496 'quickedit' => '', 497 'edit' => '', 498 'spam' => '', 'unspam' => '', 499 'trash' => '', 'untrash' => '', 'delete' => '' 500 ); 498 501 499 // Not looking at all comments. 500 if ( $comment_status && 'all' != $comment_status ) { 501 if ( 'approved' == $the_comment_status ) { 502 $actions['unapprove'] = "<a href='$unapprove_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment&new=unapproved' class='vim-u vim-destructive' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>'; 503 } elseif ( 'unapproved' == $the_comment_status ) { 504 $actions['approve'] = "<a href='$approve_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment&new=approved' class='vim-a vim-destructive' title='" . esc_attr__( 'Approve this comment' ) . "'>" . __( 'Approve' ) . '</a>'; 505 } 506 } else { 507 $actions['approve'] = "<a href='$approve_url' data-wp-lists='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__( 'Approve this comment' ) . "'>" . __( 'Approve' ) . '</a>'; 508 $actions['unapprove'] = "<a href='$unapprove_url' data-wp-lists='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>'; 502 // Not looking at all comments. 503 if ( $comment_status && 'all' != $comment_status ) { 504 if ( 'approved' == $the_comment_status ) { 505 $actions['unapprove'] = "<a href='$unapprove_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment&new=unapproved' class='vim-u vim-destructive' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>'; 506 } elseif ( 'unapproved' == $the_comment_status ) { 507 $actions['approve'] = "<a href='$approve_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment&new=approved' class='vim-a vim-destructive' title='" . esc_attr__( 'Approve this comment' ) . "'>" . __( 'Approve' ) . '</a>'; 509 508 } 509 } else { 510 $actions['approve'] = "<a href='$approve_url' data-wp-lists='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__( 'Approve this comment' ) . "'>" . __( 'Approve' ) . '</a>'; 511 $actions['unapprove'] = "<a href='$unapprove_url' data-wp-lists='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>'; 512 } 510 513 511 512 513 514 515 514 if ( 'spam' != $the_comment_status ) { 515 $actions['spam'] = "<a href='$spam_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID::spam=1' class='vim-s vim-destructive' title='" . esc_attr__( 'Mark this comment as spam' ) . "'>" . /* translators: mark as spam link */ _x( 'Spam', 'verb' ) . '</a>'; 516 } elseif ( 'spam' == $the_comment_status ) { 517 $actions['unspam'] = "<a href='$unspam_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID:66cc66:unspam=1' class='vim-z vim-destructive'>" . _x( 'Not Spam', 'comment' ) . '</a>'; 518 } 516 519 517 518 519 520 if ( 'trash' == $the_comment_status ) { 521 $actions['untrash'] = "<a href='$untrash_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID:66cc66:untrash=1' class='vim-z vim-destructive'>" . __( 'Restore' ) . '</a>'; 522 } 520 523 521 522 523 524 525 524 if ( 'spam' == $the_comment_status || 'trash' == $the_comment_status || !EMPTY_TRASH_DAYS ) { 525 $actions['delete'] = "<a href='$delete_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID::delete=1' class='delete vim-d vim-destructive'>" . __( 'Delete Permanently' ) . '</a>'; 526 } else { 527 $actions['trash'] = "<a href='$trash_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__( 'Move this comment to the trash' ) . "'>" . _x( 'Trash', 'verb' ) . '</a>'; 528 } 526 529 527 528 530 if ( 'spam' != $the_comment_status && 'trash' != $the_comment_status ) { 531 $actions['edit'] = "<a href='comment.php?action=editcomment&c={$comment->comment_ID}' title='" . esc_attr__( 'Edit comment' ) . "'>". __( 'Edit' ) . '</a>'; 529 532 530 533 $format = '<a data-comment-id="%d" data-post-id="%d" data-action="%s" class="%s" title="%s" href="#">%s</a>'; 531 534 532 535 $actions['quickedit'] = sprintf( $format, $comment->comment_ID, $post->ID, 'edit', 'vim-q comment-inline',esc_attr__( 'Edit this item inline' ), __( 'Quick Edit' ) ); 533 536 534 535 537 $actions['reply'] = sprintf( $format, $comment->comment_ID, $post->ID, 'replyto', 'vim-r comment-inline', esc_attr__( 'Reply to this comment' ), __( 'Reply' ) ); 538 } 536 539 537 538 540 /** This filter is documented in wp-admin/includes/dashboard.php */ 541 $actions = apply_filters( 'comment_row_actions', array_filter( $actions ), $comment ); 539 542 540 541 542 543 544 543 $i = 0; 544 $out .= '<div class="row-actions">'; 545 foreach ( $actions as $action => $link ) { 546 ++$i; 547 ( ( ( 'approve' == $action || 'unapprove' == $action ) && 2 === $i ) || 1 === $i ) ? $sep = '' : $sep = ' | '; 545 548 546 547 548 549 550 551 552 553 554 549 // Reply and quickedit need a hide-if-no-js span when not added with ajax 550 if ( ( 'reply' == $action || 'quickedit' == $action ) && ! defined('DOING_AJAX') ) 551 $action .= ' hide-if-no-js'; 552 elseif ( ( $action == 'untrash' && $the_comment_status == 'trash' ) || ( $action == 'unspam' && $the_comment_status == 'spam' ) ) { 553 if ( '1' == get_comment_meta( $comment->comment_ID, '_wp_trash_meta_status', true ) ) 554 $action .= ' approve'; 555 else 556 $action .= ' unapprove'; 557 } 555 558 556 $out .= "<span class='$action'>$sep$link</span>"; 557 } 558 $out .= '</div>'; 559 $out .= "<span class='$action'>$sep$link</span>"; 559 560 } 561 $out .= '</div>'; 560 562 563 $out .= '<button type="button" class="toggle-row"><span class="screen-reader-text">Show more details</span></button>'; 564 561 565 return $out; 562 566 } 563 567 -
src/wp-admin/includes/class-wp-list-table.php
497 497 } 498 498 $out .= '</div>'; 499 499 500 $out .= '<button type="button" class="toggle-row"><span class="screen-reader-text">Show more details</span></button>'; 501 500 502 return $out; 501 503 } 502 504 … … 921 923 * @param bool $with_id Whether to set the id attribute or not 922 924 */ 923 925 public function print_column_headers( $with_id = true ) { 924 list( $columns, $hidden, $sortable ) = $this->get_column_info();926 list( $columns, $hidden, $sortable, $primary ) = $this->get_column_info(); 925 927 926 928 $current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ); 927 929 $current_url = remove_query_arg( 'paged', $current_url ); … … 955 957 elseif ( in_array( $column_key, array( 'posts', 'comments', 'links' ) ) ) 956 958 $class[] = 'num'; 957 959 960 if ( $column_key === $primary ) { 961 $class[] = 'column-primary'; 962 } 963 958 964 if ( isset( $sortable[$column_key] ) ) { 959 965 list( $orderby, $desc_first ) = $sortable[$column_key]; 960 966 … … 1139 1145 $classes .= ' hidden'; 1140 1146 } 1141 1147 1142 $ attributes = "class='$classes'";1148 $data = 'data-colname="' . esc_attr( $column_display_name ) . '"'; 1143 1149 1150 $attributes = "class='$classes' $data"; 1151 1144 1152 if ( 'cb' == $column_name ) { 1145 1153 echo '<th scope="row" class="check-column">'; 1146 1154 echo $this->column_cb( $item ); -
src/wp-admin/includes/class-wp-ms-sites-list-table.php
403 403 $classes .= ' hidden'; 404 404 } 405 405 406 $ attributes = "class='$classes'";406 $data = 'data-colname="' . esc_attr( $column_display_name ) . '"'; 407 407 408 $attributes = "class='$classes' $data"; 409 408 410 if ( 'cb' === $column_name ) { 409 411 echo '<th scope="row" class="check-column">'; 410 412 -
src/wp-admin/includes/class-wp-ms-users-list-table.php
336 336 $classes .= ' hidden'; 337 337 } 338 338 339 $ attributes = "class='$classes'";339 $data = 'data-colname="' . esc_attr( $column_display_name ) . '"'; 340 340 341 $attributes = "class='$classes' $data"; 342 341 343 if ( 'cb' === $column_name ) { 342 344 echo '<th scope="row" class="check-column">'; 343 345 -
src/wp-admin/includes/class-wp-posts-list-table.php
973 973 $classes .= ' hidden'; 974 974 } 975 975 976 $attributes = "class='$classes'"; 976 // Comments is a special case, as its column display name contains HTML 977 if ( 'comments' === $column_name ) { 978 $data = 'data-colname="' . esc_attr__( 'Comments' ) . '"'; 979 } else { 980 $data = 'data-colname="' . esc_attr( $column_display_name ) . '"'; 981 } 977 982 983 $attributes = "class='$classes' $data"; 984 978 985 if ( 'cb' === $column_name ) { 979 986 echo '<th scope="row" class="check-column">'; 980 987 -
src/wp-admin/includes/class-wp-users-list-table.php
419 419 $classes .= ' hidden'; 420 420 } 421 421 422 $ attributes = "class='$classes'";422 $data = 'data-colname="' . esc_attr( $column_display_name ) . '"'; 423 423 424 $attributes = "class='$classes' $data"; 425 424 426 if ( 'cb' === $column_name ) { 425 427 $r .= "<th scope='row' class='check-column'>$checkbox</th>"; 426 428 } else { -
src/wp-admin/js/common.js
481 481 } 482 482 }, 'td.has-row-actions' ); 483 483 484 // Toggle list table rows on small screens 485 $( 'tbody' ).on( 'click', '.toggle-row', function() { 486 $( this ).closest( 'tr' ).toggleClass( 'is-expanded' ); 487 }); 488 484 489 $('#default-password-nag-no').click( function() { 485 490 setUserSetting('default_password_nag', 'hide'); 486 491 $('div.default-password-nag').hide(); -
src/wp-admin/js/inline-edit-post.js
133 133 editRow = $('#inline-edit').clone(true); 134 134 $('td', editRow).attr('colspan', $('.widefat:first thead th:visible').length); 135 135 136 $(t.what+id). hide().after(editRow).after('<tr class="hidden"></tr>');136 $(t.what+id).removeClass('is-expanded').hide().after(editRow).after('<tr class="hidden"></tr>'); 137 137 138 138 // populate the data 139 139 rowData = $('#inline_'+id);