From: Gabriel Dunne Date: Thu, 16 May 2013 23:22:54 +0000 (-0700) Subject: Experimenting with some Pagination. X-Git-Url: https://git.quilime.com/?a=commitdiff_plain;h=HEAD;p=visual-archive.git Experimenting with some Pagination. --- diff --git a/data/prelinger.db b/data/prelinger.db new file mode 100644 index 0000000..4c45e9d Binary files /dev/null and b/data/prelinger.db differ diff --git a/public/js/jquery.paginate.js b/public/js/jquery.paginate.js new file mode 100644 index 0000000..9dfeb95 --- /dev/null +++ b/public/js/jquery.paginate.js @@ -0,0 +1,110 @@ +/** + * Paginate - jQuery Plugin + * By Federico Cargnelutti + * + * Dual licensed under the MIT and GPL licenses: + * - http://www.opensource.org/licenses/mit-license.php + * - http://www.gnu.org/licenses/gpl.html + * + * Examples and documentation at: + * - http://github.com/fedecarg/jquery-htmlpaginate + * + * Usage: + * + * + * + * + * + * + */ +(function($) { + +$.fn.paginate = function(options) { + + var Paginator = function(self, options) { + + var defaults = { + itemsPerPage: 10, + selector: { + next: self.selector+'-next', + previous: self.selector+'-previous', + pagination: self.selector+'-pagination' + }, + cssClassName: { + disabled: 'disabled' + } + }; + var options = $.extend(defaults, options); + var currentPage = 1; + var numberOfPages = 1; + var numberOfItems = 0; + + var init = function() { + numberOfItems = self.children().size(); + numberOfPages = Math.ceil(numberOfItems / options.itemsPerPage); + if (numberOfPages > 1) { + $(options.selector.pagination).show(); + $(options.selector.previous).addClass(options.cssClassName.disabled); + } + + self.children().hide(); + self.children().slice(0, options.itemsPerPage).show(); + + $(options.selector.previous).click(function(e){ + e.preventDefault(); + previous(); + }); + $(options.selector.next).click(function(e){ + e.preventDefault(); + next(); + }); + + self.show(); + } + + var show = function(page) { + currentPage = page; + startPage = (currentPage - 1) * options.itemsPerPage; + endPage = startPage + options.itemsPerPage; + self.children().hide().slice(startPage, endPage).show(); + + var disabled = options.cssClassName.disabled; + $(options.selector.pagination + ' a').removeClass(disabled); + if (currentPage <= 1) { + $(options.selector.previous).addClass(disabled); + } else if (currentPage == numberOfPages) { + $(options.selector.next).addClass(disabled); + } + }; + + var next = function() { + if (currentPage < numberOfPages){ + show(currentPage + 1); + } + }; + + var previous = function() { + if (currentPage > 1) { + show(currentPage - 1); + } + }; + + init(); + return this; + } + + return new Paginator(this, options); +}; +})(jQuery); diff --git a/public/js/sc.coffee b/public/js/sc.coffee new file mode 100644 index 0000000..c0c28ec --- /dev/null +++ b/public/js/sc.coffee @@ -0,0 +1,25 @@ +extended_json = {} +$ = JQuery + +on_filter_change = () -> + query = $('#filter').val().toLowerCase(); + $('.thumbs li').hide() + d = $.grep(extended_json.clips + (clip, i) -> + clip_id = clip.id.toLowerCase() + clip_desc = clip.description.toLowerCase() if clip.description + if clip_id.indexOf(query) >= 0 or clip_desc.indexOf(query) >= 0 + true + if clip.subject + for subject in clip.subject + if q.toLowerCase().indexOf(query) >= 0 + true + ) + for filter in d + $('.thumbs li#' + filter.id).show() + false + +scrim = (visible, callback) -> + s = $('#script') + if visible = 1 then s.fadeIn(150, callback) + else s.fadeout(150, callback) diff --git a/public/js/sc.js b/public/js/sc.js new file mode 100644 index 0000000..ad785da --- /dev/null +++ b/public/js/sc.js @@ -0,0 +1,53 @@ +// Generated by CoffeeScript 1.6.1 +(function() { + var $, extended_json, on_filter_change, scrim; + + extended_json = {}; + + $ = JQuery; + + on_filter_change = function() { + var d, filter, query, _i, _len; + query = $('#filter').val().toLowerCase(); + $('.thumbs li').hide(); + d = $.grep(extended_json.clips, function(clip, i) { + var clip_desc, clip_id, subject, _i, _len, _ref, _results; + clip_id = clip.id.toLowerCase(); + if (clip.description) { + clip_desc = clip.description.toLowerCase(); + } + if (clip_id.indexOf(query) >= 0 || clip_desc.indexOf(query) >= 0) { + true; + } + if (clip.subject) { + _ref = clip.subject; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + subject = _ref[_i]; + if (q.toLowerCase().indexOf(query) >= 0) { + _results.push(true); + } else { + _results.push(void 0); + } + } + return _results; + } + }); + for (_i = 0, _len = d.length; _i < _len; _i++) { + filter = d[_i]; + $('.thumbs li#' + filter.id).show(); + } + return false; + }; + + scrim = function(visible, callback) { + var s; + s = $('#script'); + if (visible = 1) { + return s.fadeIn(150, callback); + } else { + return s.fadeout(150, callback); + } + }; + +}).call(this);