Plugin Directory

Changeset 507482


Ignore:
Timestamp:
02/20/2012 12:05:40 AM (14 years ago)
Author:
nickohrn
Message:

Pagination is now working appropriately and we've restored the transient setting so we're not fetching from google every time we do a backend AJAX call.

Location:
web-fonts/trunk/modules/google-web-fonts
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • web-fonts/trunk/modules/google-web-fonts/google-web-fonts.php

    r507471 r507482  
    112112       
    113113        public static function ajax_set_key($data) {
    114             $fonts = self::get_fonts($data['key'], '', 'alpha', 1, 0, true);
     114            $fonts = self::get_fonts($data['key'], '', 'alpha', 0, 1, true);
    115115           
    116116            if(is_wp_error($fonts)) {
     
    126126
    127127        public static function ajax_get_fonts($data) {
     128            $page = isset($data['page_number']) && is_numeric($data['page_number']) && $data['page_number'] >= 1 ? (intval($data['page_number']) - 1) : 0;
    128129            $page_limit = 12;
    129             $page_number = isset($data['page_number']) ? ($data['page_number'] - 1) : 0;
    130             $offset_number = $page_limit * $page_number;
    131130           
    132131            $search_keyword = $data['search_keyword'];
     
    134133            $settings = self::get_settings();
    135134           
    136             $font_search_response = self::get_fonts($settings['api-key'], $search_keyword, $search_sort, $page_limit, $offset_number);
     135            $font_search_response = self::get_fonts($settings['api-key'], $search_keyword, $search_sort, $page, $page_limit);
    137136           
    138137            if(is_wp_error($font_search_response)) {
     
    347346        }
    348347       
    349         private static function get_fonts($api_key, $search_keyword = '', $search_sort = 'alpha', $font_limit = 5, $font_offset = 0, $fresh = false) {
     348        private static function get_fonts($api_key, $search_keyword = '', $search_sort = 'alpha', $page = 0, $page_limit = 12, $fresh = false) {
    350349            if(!self::is_valid_sort($search_sort)) {
    351350                $search_sort = 'alpha';
     
    355354           
    356355            if(!$fresh) {
    357                 // $fonts = get_transient($key);
     356                $fonts = get_transient($key);
    358357            }
    359358           
     
    374373                   
    375374                    foreach($fonts as $font) {
    376                         if(false !== strpos($font->family, $search_keyword)) {
     375                        if(false !== strpos($font->family_name, $search_keyword)) {
    377376                            $filtered_fonts[] = $font;
    378377                        }
     
    386385                }
    387386               
    388                 return array('enabled_fonts' => self::get_font_data(), 'fonts' => array_slice($fonts, $font_offset, $font_limit), 'number_fonts' => count($fonts));
     387                // This has to stay here before we array_slice
     388                $number_fonts = count($fonts);
     389               
     390                $enabled_fonts = self::get_font_data();
     391                $fonts = array_slice($fonts, ($page * $page_limit), $page_limit);
     392                $pagination_links = paginate_links(array(
     393                    'base' => admin_url('admin-ajax.php') . '%_%', // http://example.com/all_posts.php%_% : %_% is replaced by format (below)
     394                    'format' => '?page_number=%#%', // ?page=%#% : %#% is replaced by the page number
     395                    'total' => ceil($number_fonts / $page_limit),
     396                    'current' => ($page + 1),
     397                    'show_all' => false,
     398                    'prev_next' => true,
     399                    'prev_text' => __('« Previous'),
     400                    'next_text' => __('Next »'),
     401                    'end_size' => 2,
     402                    'mid_size' => 3,
     403                    'type' => 'plain',
     404                    'add_args' => array(), // array of query args to add
     405                    'add_fragment' => ''
     406                ));
     407               
     408                return compact('enabled_fonts', 'fonts', 'number_fonts', 'pagination_links');
    389409            } else {
    390410                return $fonts;
  • web-fonts/trunk/modules/google-web-fonts/resources/backend/google-web-fonts.js

    r507471 r507482  
    6868        self.font_search_sort = ko.observable(initializer.font_search_sort);
    6969       
    70         self.get_fonts = function() {
    71             web_fonts_google_web_fonts.get_fonts(self.font_search_keyword(), self.font_search_sort(), 1, function(data) {
     70        self.get_fonts = function(search_keyword, search_sort, page_number) {
     71            self.font_search_keyword(search_keyword);
     72            self.font_search_sort(search_sort);
     73           
     74            web_fonts_google_web_fonts.get_fonts(search_keyword, search_sort, page_number, function(data) {
    7275                self.enabled_fonts.removeAll();
    7376                self.fonts.removeAll();
     
    8184                    self.fonts.push(web_fonts_google_view_model_font(font.family, font.family_name, font.is_enabled, font.style, font.style_string, font.weight, font.weight_string));
    8285                });
     86               
     87                $('#google-web-fonts-font-items-wrapper-container').attr('data-last-keyword', search_keyword).attr('data-last-sort', search_sort).find('.tablenav-fonts-pagination').html(data.pagination_links);
    8388            }, function(data) {
    8489               
     
    8792       
    8893        self.reset_search = function() {
    89             self.font_search_keyword('');
    90             self.font_search_sort('alpha');
    91            
    92             self.get_fonts();
     94            self.get_fonts('', 'alpha', 0);
    9395        };
    9496       
     
    119121       
    120122        /// On initialization
    121         self.get_fonts();
     123        self.get_fonts(self.font_search_keyword(), self.font_search_sort(), 0);
    122124       
    123125        return self;
     
    127129   
    128130    $('#google-web-fonts-font-search-sort, #google-web-fonts-font-search-keyword').change(function(event) {
    129         web_fonts_google_view_model.get_fonts();
     131        web_fonts_google_view_model.get_fonts(web_fonts_google_view_model.font_search_keyword(), web_fonts_google_view_model.font_search_sort(), 0);
    130132    });
    131133   
     
    138140       
    139141        tb_remove();
     142    });
     143   
     144    $('#google-web-fonts-font-items-wrapper-container .tablenav-fonts-pagination a').live('click', function(event) {
     145        event.preventDefault();
     146       
     147        var $this = $(this)
     148        , $container = $this.parents('#google-web-fonts-font-items-wrapper-container');
     149       
     150        var page_number_parts = $this.attr('href').match(/page_number=(\d+)/), page_number;
     151        if(page_number_parts && page_number_parts.length > 1) {
     152            page_number = page_number_parts[1];
     153        } else {
     154            page_number = 1;
     155        }
     156       
     157        web_fonts_google_view_model.get_fonts($container.attr('data-last-keyword'), $container.attr('data-last-sort'), page_number);
    140158    });
    141159});
     
    273291   
    274292    object.get_fonts = function(search_keyword, search_sort, page, success_callback, error_callback) {
    275         object.make_request('web_fonts_google_web_fonts_get_fonts', { search_keyword: search_keyword, search_sort: search_sort, page: page }, success_callback, error_callback, false);
     293        object.make_request('web_fonts_google_web_fonts_get_fonts', { search_keyword: search_keyword, search_sort: search_sort, page_number: page }, success_callback, error_callback, false);
    276294    };
    277295   
Note: See TracChangeset for help on using the changeset viewer.