Make WordPress Core

Ticket #15503: garyc40-15503-rev2.patch

File garyc40-15503-rev2.patch, 7.9 KB (added by garyc40, 14 years ago)

fixed some bugs introduced in rev1, also fixed disabled span's styles so that pagination links do not jump around

  • wp-admin/css/colors-classic.dev.css

    diff --git wp-admin/css/colors-classic.dev.css wp-admin/css/colors-classic.dev.css
    index 681a7a0..11647b2 100644
    body.press-this .stuffbox:hover .handlediv, 
    13991399        color: #555;
    14001400}
    14011401
    1402 .tablenav .tablenav-pages a {
     1402.tablenav .tablenav-pages a, .tablenav .tablenav-pages span.disabled {
    14031403        border-color: #D1E5EE;
    14041404        background: #eee url('../images/menu-bits-vs.gif?ver=20101102') repeat-x scroll left -379px;
    14051405}
    14061406
     1407.tablenav .tablenav-pages span.disabled {
     1408        color:#ccc;
     1409}
     1410
    14071411.tablenav .tablenav-pages a:hover {
    14081412        color: #d54e21;
    14091413        border-color: #d54321;
  • wp-admin/css/colors-fresh.dev.css

    diff --git wp-admin/css/colors-fresh.dev.css wp-admin/css/colors-fresh.dev.css
    index 73242a6..199542c 100644
    fieldset.inline-edit-col-right .inline-edit-col { 
    13941394        color: #555;
    13951395}
    13961396
    1397 .tablenav .tablenav-pages a {
     1397.tablenav .tablenav-pages a, .tablenav .tablenav-pages span.disabled {
    13981398        border-color: #e3e3e3;
    13991399        background: #eee url('../images/menu-bits.gif?ver=20100610') repeat-x scroll left -379px;
    14001400}
    14011401
     1402.tablenav .tablenav-pages span.disabled {
     1403        color: #ccc;
     1404}
     1405
    14021406.tablenav .tablenav-pages a:hover {
    14031407        color: #d54e21;
    14041408        border-color: #d54321;
  • wp-admin/css/wp-admin.dev.css

    diff --git wp-admin/css/wp-admin.dev.css wp-admin/css/wp-admin.dev.css
    index 07836e4..0d558d5 100644
    th.asc:hover span.sorting-indicator { 
    14411441
    14421442/* Bulk Actions */
    14431443
    1444 .tablenav-pages a {
     1444.tablenav-pages a, .tablenav-pages span.disabled {
    14451445        border-bottom-style: solid;
    14461446        border-bottom-width: 2px;
    14471447        font-weight: bold;
    th.asc:hover span.sorting-indicator { 
    14811481}
    14821482
    14831483.tablenav .tablenav-pages a,
    1484 .tablenav-pages span.current  {
     1484.tablenav-pages span.current,
     1485.tablenav-pages span.disabled  {
    14851486        text-decoration: none;
    14861487        border: none;
    14871488        padding: 3px 6px;
    th.asc:hover span.sorting-indicator { 
    14911492        -khtml-border-radius: 5px;
    14921493        -webkit-border-radius: 5px;
    14931494        border-radius: 5px;
     1495        font-weight:bold;
    14941496}
    14951497
    14961498.tablenav .displaying-num {
  • wp-admin/includes/class-wp-list-table.php

    diff --git wp-admin/includes/class-wp-list-table.php wp-admin/includes/class-wp-list-table.php
    index a8aaa8f..ddb39e5 100644
    class WP_List_Table { 
    479479                $current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    480480
    481481                $page_links = array();
    482 
    483                 $page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
    484                         'first-page',
    485                         esc_attr__( 'Go to the first page' ),
    486                         esc_url( remove_query_arg( 'paged', $current_url ) ),
    487                         '&laquo;'
    488                 );
    489 
    490                 $page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
    491                         'prev-page',
    492                         esc_attr__( 'Go to the previous page' ),
    493                         esc_url( add_query_arg( 'paged', max( 1, $current-1 ), $current_url ) ),
    494                         '&lsaquo;'
    495                 );
     482               
     483                if ( $current == 1 ) {
     484                        $page_links[] = sprintf( "<span class='%s'>%s</span>",
     485                                'first-page disabled',
     486                                '&laquo;&laquo;'
     487                        );
     488                        $page_links[] = sprintf( "<span class='%s'>%s</span>",
     489                                'prev-page disabled',
     490                                '&laquo;'
     491                        );
     492                } else {
     493                        $page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
     494                                'first-page',
     495                                esc_attr__( 'Go to the first page' ),
     496                                esc_url( remove_query_arg( 'paged', $current_url ) ),
     497                                '&laquo;&laquo;'
     498                        );
     499                        $page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
     500                                'prev-page',
     501                                esc_attr__( 'Go to the previous page' ),
     502                                esc_url( add_query_arg( 'paged', max( 1, $current-1 ), $current_url ) ),
     503                                '&laquo;'
     504                        );
     505                }
    496506
    497507                $html_current_page = sprintf( "<input class='current-page' title='%s' type='text' name='%s' value='%s' size='%d' />",
    498508                        esc_attr__( 'Current page' ),
    class WP_List_Table { 
    503513                $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
    504514                $page_links[] = '<span class="paging-input">' . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . '</span>';
    505515
    506                 $page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
    507                         'next-page',
    508                         esc_attr__( 'Go to the next page' ),
    509                         esc_url( add_query_arg( 'paged', min( $total_pages, $current+1 ), $current_url ) ),
    510                         '&rsaquo;'
    511                 );
     516                if ( $current == $total_pages ) {
     517                        $page_links[] = sprintf( "<span class='%s'>%s</span>",
     518                                'next-page disabled',
     519                                '&raquo;'
     520                        );
    512521
    513                 $page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
    514                         'last-page',
    515                         esc_attr__( 'Go to the last page' ),
    516                         esc_url( add_query_arg( 'paged', $total_pages, $current_url ) ),
    517                         '&raquo;'
    518                 );
     522                        $page_links[] = sprintf( "<span class='%s'>%s</span>",
     523                                'last-page disabled',
     524                                '&raquo;&raquo;'
     525                        );
     526                } else {
     527                        $page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
     528                                'next-page',
     529                                esc_attr__( 'Go to the next page' ),
     530                                esc_url( add_query_arg( 'paged', min( $total_pages, $current+1 ), $current_url ) ),
     531                                '&raquo;'
     532                        );
     533
     534                        $page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
     535                                'last-page',
     536                                esc_attr__( 'Go to the last page' ),
     537                                esc_url( add_query_arg( 'paged', $total_pages, $current_url ) ),
     538                                '&raquo;&raquo;'
     539                        );
     540                }
    519541
    520542                $output .= "\n" . join( "\n", $page_links );
    521543
  • wp-admin/js/list-table.dev.js

    diff --git wp-admin/js/list-table.dev.js wp-admin/js/list-table.dev.js
    index e92f453..2a41ae8 100644
    window.listTable = { 
    1818
    1919        // paging
    2020        set_total_pages: function(num) {
    21                 var last_page_url = $('.last-page').attr('href');
    22 
    23                 if ( last_page_url )
    24                         this.total_pages = num || $.query.load( last_page_url ).get('paged');
     21                this.total_pages = num || $('span.total-pages').eq(0).text();
    2522        },
    2623
    2724        get_total_pages: function() {
    listTable.init(); 
    143140
    144141// Ajaxify various UI elements
    145142
    146         function change_page(paged, $el) {
     143        var spanify = function(selectors) {
     144                $('.tablenav-pages a').
     145                        filter(selectors).
     146                        each(function(){
     147                                var $this = $(this), span = $('<span />');
     148                                span.
     149                                        addClass($this.attr('class') + ' disabled').
     150                                        text($this.text());
     151                                $this.replaceWith(span);
     152                        });
     153        };
     154       
     155        var linkify = function() {
     156                $('.tablenav-pages span.disabled').each(function(){
     157                        var $this = $(this), a = $('<a />');
     158                        a.
     159                                addClass($this.attr('class')).
     160                                removeClass('disabled').
     161                                text($this.text());
     162                               
     163                        $this.replaceWith(a);
     164                });
     165        }
     166       
     167        var updatePageLinks = function(paged) {                 
     168                $('.tablenav-pages a').each(function(){
     169                        var a = $(this), href = '#';
     170
     171                        switch (a.attr('class')) {
     172                                case 'first-page':
     173                                        href = $.query.set('paged', 1).toString();
     174                                        break;
     175                                case 'prev-page':
     176                                        href = $.query.set('paged', paged - 1).toString();
     177                                        break;
     178                                case 'next-page':
     179                                        href = $.query.set('paged', paged + 1).toString();
     180                                        break;
     181                                case 'last-page':
     182                                        href = $.query.set('paged', listTable.get_total_pages()).toString();
     183                                        break;
     184                        }
     185                       
     186                        a.attr('href', href);
     187                });
     188        };
     189
     190        function change_page(paged, $el) {             
    147191                if ( paged < 1 )
    148192                        paged = 1;
    149193
    listTable.init(); 
    154198                listTable.update_rows({'paged': paged}, false, function() {
    155199                        if ( $el.parents('.tablenav.bottom').length )
    156200                                scrollTo(0, 0);
     201                       
     202                        // convert disabled buttons to links
     203                        linkify();
     204                               
     205                        // disable pagination links in case of first or last page
     206                        if ( paged == 1 ) {
     207                                spanify('.prev-page, .first-page');
     208                        } else if ( paged == listTable.get_total_pages() ) {
     209                                spanify('.next-page, .last-page');
     210                        }
     211                       
     212                        // update href attribute of pagination links
     213                        updatePageLinks(paged);
    157214                               
    158215                        $(listTable).trigger('changePage');
    159216                });
    160217        }
    161218
    162219        // pagination
    163         $('.tablenav-pages a').click(function() {
     220        $('.tablenav-pages a').live('click', function() {
    164221                var $el = $(this),
    165222                        paged = $.query.GET('paged');
    166223