]> git.quilime.com - visual-archive.git/commitdiff
Experimenting with some Pagination. master
authorGabriel Dunne <gdunne@quilime.com>
Thu, 16 May 2013 23:22:54 +0000 (16:22 -0700)
committerGabriel Dunne <gdunne@quilime.com>
Thu, 16 May 2013 23:22:54 +0000 (16:22 -0700)
data/prelinger.db [new file with mode: 0644]
public/js/jquery.paginate.js [new file with mode: 0644]
public/js/sc.coffee [new file with mode: 0644]
public/js/sc.js [new file with mode: 0644]

diff --git a/data/prelinger.db b/data/prelinger.db
new file mode 100644 (file)
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 (file)
index 0000000..9dfeb95
--- /dev/null
@@ -0,0 +1,110 @@
+/**
+ * Paginate - jQuery Plugin
+ * By Federico Cargnelutti <fedecarg@gmail.com>
+ *
+ * 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:
+ *
+ * <ul id="items">
+ *     <li>Item 1</li>
+ *     <li>Item 2</li>
+ *     <li>Item 3</li>
+ *     <li>Item 4</li>
+ *     <li>Item 5</li>
+ *     <li>Item 6</li>
+ * </ul>
+ * <div id="items-pagination" style="display:none">
+ *     <a id="items-previous" href="#">&laquo; Previous</a>
+ *     <a id="items-next" href="#">Next &raquo;</a>
+ * </div>
+ *
+ * <script type="text/javascript">
+ * $('#items').paginate({itemsPerPage: 2});
+ * </script>
+ *
+ */
+(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 (file)
index 0000000..c0c28ec
--- /dev/null
@@ -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 (file)
index 0000000..ad785da
--- /dev/null
@@ -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);