Вход Регистрация
Файл: style/themes/material/js/jquery.simplePagination.js
Строк: 368
<?php
/**
* simplePagination.js v1.6
* A simple jQuery pagination plugin.
* http://flaviusmatis.github.com/simplePagination.js/
*
* Copyright 2012, Flavius Matis
* Released under the MIT license.
* http://flaviusmatis.github.com/license.html
*/

(function($){

    var 
methods = {
        
init: function(options) {
            var 
= $.extend({
                
items1,
                
itemsOnPage1,
                
pages0,
                
displayedPages5,
                
edges2,
                
currentPage0,
                
hrefTextPrefix'#page-',
                
hrefTextSuffix'',
                
prevText'Prev',
                
nextText'Next',
                
ellipseText'&hellip;',
                
cssStyle'light-theme',
                
labelMap: [],
                
selectOnClicktrue,
                
nextAtFrontfalse,
                
invertPageOrderfalse,
                
onPageClick: function(pageNumberevent) {
                    
// Callback triggered when a page is clicked
                    // Page number is given as an optional parameter
                
},
                
onInit: function() {
                    
// Callback triggered immediately after initialization
                
}
            }, 
options || {});

            var 
self this;

            
o.pages o.pages o.pages Math.ceil(o.items o.itemsOnPage) ? Math.ceil(o.items o.itemsOnPage) : 1;
            if (
o.currentPage)
                
o.currentPage o.currentPage 1;
            else
                
o.currentPage = !o.invertPageOrder o.pages 1;
            
o.halfDisplayed o.displayedPages 2;

            
this.each(function() {
                
self.addClass(o.cssStyle ' simple-pagination').data('pagination'o);
                
methods._draw.call(self);
            });

            
o.onInit();

            return 
this;
        },

        
selectPage: function(page) {
            
methods._selectPage.call(thispage 1);
            return 
this;
        },

        
prevPage: function() {
            var 
this.data('pagination');
            if (!
o.invertPageOrder) {
                if (
o.currentPage 0) {
                    
methods._selectPage.call(thiso.currentPage 1);
                }
            } else {
                if (
o.currentPage o.pages 1) {
                    
methods._selectPage.call(thiso.currentPage 1);
                }
            }
            return 
this;
        },

        
nextPage: function() {
            var 
this.data('pagination');
            if (!
o.invertPageOrder) {
                if (
o.currentPage o.pages 1) {
                    
methods._selectPage.call(thiso.currentPage 1);
                }
            } else {
                if (
o.currentPage 0) {
                    
methods._selectPage.call(thiso.currentPage 1);
                }
            }
            return 
this;
        },

        
getPagesCount: function() {
            return 
this.data('pagination').pages;
        },

        
getCurrentPage: function () {
            return 
this.data('pagination').currentPage 1;
        },

        
destroy: function(){
            
this.empty();
            return 
this;
        },

        
drawPage: function (page) {
            var 
this.data('pagination');
            
o.currentPage page 1;
            
this.data('pagination'o);
            
methods._draw.call(this);
            return 
this;
        },

        
redraw: function(){
            
methods._draw.call(this);
            return 
this;
        },

        
disable: function(){
            var 
this.data('pagination');
            
o.disabled true;
            
this.data('pagination'o);
            
methods._draw.call(this);
            return 
this;
        },

        
enable: function(){
            var 
this.data('pagination');
            
o.disabled false;
            
this.data('pagination'o);
            
methods._draw.call(this);
            return 
this;
        },

        
updateItems: function (newItems) {
            var 
this.data('pagination');
            
o.items newItems;
            
o.pages methods._getPages(o);
            
this.data('pagination'o);
            
methods._draw.call(this);
        },

        
updateItemsOnPage: function (itemsOnPage) {
            var 
this.data('pagination');
            
o.itemsOnPage itemsOnPage;
            
o.pages methods._getPages(o);
            
this.data('pagination'o);
            
methods._selectPage.call(this0);
            return 
this;
        },

        
_draw: function() {
            var    
this.data('pagination'),
                
interval methods._getInterval(o),
                
i,
                
tagName;

            
methods.destroy.call(this);
            
            
tagName = (typeof this.prop === 'function') ? this.prop('tagName') : this.attr('tagName');

            var 
$panel tagName === 'UL' this : $('<ul></ul>').appendTo(this);

            
// Generate Prev link
            
if (o.prevText) {
                
methods._appendItem.call(this, !o.invertPageOrder o.currentPage o.currentPage 1, {texto.prevTextclasses'prev'});
            }

            
// Generate Next link (if option set for at front)
            
if (o.nextText && o.nextAtFront) {
                
methods._appendItem.call(this, !o.invertPageOrder o.currentPage o.currentPage 1, {texto.nextTextclasses'next'});
            }

            
// Generate start edges
            
if (!o.invertPageOrder) {
                if (
interval.start && o.edges 0) {
                    var 
end Math.min(o.edgesinterval.start);
                    for (
0endi++) {
                        
methods._appendItem.call(thisi);
                    }
                    if (
o.edges interval.start && (interval.start o.edges != 1)) {
                        
$panel.append('<li class="disabled"><span class="ellipse">' o.ellipseText '</span></li>');
                    } else if (
interval.start o.edges == 1) {
                        
methods._appendItem.call(thiso.edges);
                    }
                }
            } else {
                if (
interval.end o.pages && o.edges 0) {
                    var 
begin Math.max(o.pages o.edgesinterval.end);
                    for (
o.pages 1>= begini--) {
                        
methods._appendItem.call(thisi);
                    }
                    if (
o.pages o.edges interval.end && (o.pages o.edges interval.end != 1)) {
                        
$panel.append('<li class="disabled"><span class="ellipse">' o.ellipseText '</span></li>');
                    } else if (
o.pages o.edges interval.end == 1) {
                        
methods._appendItem.call(thisinterval.end);
                    }
                }
            }

            
// Generate interval links
            
if (!o.invertPageOrder) {
                for (
interval.startinterval.endi++) {
                    
methods._appendItem.call(thisi);
                }
            } else {
                for (
interval.end 1>= interval.starti--) {
                    
methods._appendItem.call(thisi);
                }
            }

            
// Generate end edges
            
if (!o.invertPageOrder) {
                if (
interval.end o.pages && o.edges 0) {
                    if (
o.pages o.edges interval.end && (o.pages o.edges interval.end != 1)) {
                        
$panel.append('<li class="disabled"><span class="ellipse">' o.ellipseText '</span></li>');
                    } else if (
o.pages o.edges interval.end == 1) {
                        
methods._appendItem.call(thisinterval.end);
                    }
                    var 
begin Math.max(o.pages o.edgesinterval.end);
                    for (
begino.pagesi++) {
                        
methods._appendItem.call(thisi);
                    }
                }
            } else {
                if (
interval.start && o.edges 0) {
                    if (
o.edges interval.start && (interval.start o.edges != 1)) {
                        
$panel.append('<li class="disabled"><span class="ellipse">' o.ellipseText '</span></li>');
                    } else if (
interval.start o.edges == 1) {
                        
methods._appendItem.call(thiso.edges);
                    }
                    var 
end Math.min(o.edgesinterval.start);
                    for (
end 1>= 0i--) {
                        
methods._appendItem.call(thisi);
                    }
                }
            }

            
// Generate Next link (unless option is set for at front)
            
if (o.nextText && !o.nextAtFront) {
                
methods._appendItem.call(this, !o.invertPageOrder o.currentPage o.currentPage 1, {texto.nextTextclasses'next'});
            }
        },

        
_getPages: function(o) {
            var 
pages Math.ceil(o.items o.itemsOnPage);
            return 
pages || 1;
        },

        
_getInterval: function(o) {
            return {
                
startMath.ceil(o.currentPage o.halfDisplayed Math.max(Math.min(o.currentPage o.halfDisplayed, (o.pages o.displayedPages)), 0) : 0),
                
endMath.ceil(o.currentPage o.halfDisplayed Math.min(o.currentPage o.halfDisplayedo.pages) : Math.min(o.displayedPageso.pages))
            };
        },

        
_appendItem: function(pageIndexopts) {
            var 
self thisoptions$linkself.data('pagination'), $linkWrapper = $('<li></li>'), $ul self.find('ul');

            
pageIndex pageIndex : (pageIndex o.pages pageIndex o.pages 1);

            
options = {
                
textpageIndex 1,
                
classes''
            
};

            if (
o.labelMap.length && o.labelMap[pageIndex]) {
                
options.text o.labelMap[pageIndex];
            }

            
options = $.extend(optionsopts || {});

            if (
pageIndex == o.currentPage || o.disabled) {
                if (
o.disabled) {
                    
$linkWrapper.addClass('disabled');
                } else {
                    
$linkWrapper.addClass('active');
                }
                
$link = $('<span class="current">' + (options.text) + '</span>');
            } else {
                
$link = $('<a href="' o.hrefTextPrefix + (pageIndex 1) + o.hrefTextSuffix '" class="page-link">' + (options.text) + '</a>');
                
$link.click(function(event){
                    return 
methods._selectPage.call(selfpageIndexevent);
                });
            }

            if (
options.classes) {
                
$link.addClass(options.classes);
            }

            
$linkWrapper.append($link);

            if (
$ul.length) {
                
$ul.append($linkWrapper);
            } else {
                
self.append($linkWrapper);
            }
        },

        
_selectPage: function(pageIndexevent) {
            var 
this.data('pagination');
            
o.currentPage pageIndex;
            if (
o.selectOnClick) {
                
methods._draw.call(this);
            }
            return 
o.onPageClick(pageIndex 1event);
        }

    };

    $.fn.
pagination = function(method) {

        
// Method calling logic
        
if (methods[method] && method.charAt(0) != '_') {
            return 
methods[method].apply(this, Array.prototype.slice.call(arguments1));
        } else if (
typeof method === 'object' || !method) {
            return 
methods.init.apply(thisarguments);
        } else {
            $.
error('Method ' +  method ' does not exist on jQuery.pagination');
        }

    };

})(
jQuery);
?>
Онлайн: 2
Реклама