GitXplorerGitXplorer
t

meteor-paginated-subscription

public
64 stars
18 forks
2 issues

Commits

List of commits on branch master.
Unverified
60c5d5bd1ba0c1636bf439da0545039fd9948c41

Figured out a way to solve the subscription in autorun problem.

ttmeasday committed 11 years ago
Unverified
35e0c6112df2b4cfeb60b559276a93cac5ee2dd6

Version bump

ttmeasday committed 12 years ago
Unverified
7714ab72d267af91f4ddd54f2f134c8699141172

Added a reset method to go back to the beginning.

ttmeasday committed 12 years ago
Unverified
1ba670364ddac149f404158407b2afc89db42ce5

Brought API in line with core.

ttmeasday committed 12 years ago
Unverified
623fe77698dbfdfdfdb52855c1ba19f29aca8047

Initial commit

ttmeasday committed 12 years ago

README

The README file for this repository.

THIS PACKAGE HAS MOVED

percolate:paginated-subscription

Meteor Paginated Subscription

This package is an experiment that adds pagination to Meteor's standard subscriptions. It's a byproduct of the Telescope project.

Installation

Install via Meteorite:

$ mrt add paginated-subscription

Usage

This package makes available a single function Meteor.subscribeWithPagination. Like the built in Meteor.subscribe, it returns a handle, which should be used to keep track of the state of the subscription:

var handle = Meteor.subscribeWithPagination('posts', 10);

The arguments are as usual to Meteor.subscribe, with an exception:

  1. The last argument must be a number, indicating the number of documents per page. This can be followed by callback functions in style of Meteor.subscribe.

The paginated subscription expects you to have a publication setup, as normal, which expects as a final argument the current number of documents to display (which will be incremented, in a infinite scroll fashion):

Meteor.publish('posts', function(limit) {
  return Posts.find({}, {limit: limit});
});

The important part of all this is the handle, which has the following API:

  • handle.loaded() - how many documents are currently loaded via the sub
  • handle.limit() - how many have we asked for
  • handle.ready() - are we waiting on the server right now?
  • handle.loadNextPage() - fetch the next page of results

The first three functions are reactive and thus can be used to correctly display an 'infinite-scroll' like list of results. Please see the telescope project for an example of real-world usage.

TODO

Contributions are heavily encouraged. The obvious things to fix are:

  1. Do actual "pagination" rather than "infinite scroll" -- i.e. have an option to pass around an offset as well as limit.
  2. Tests, tests, tests

Please contact me if you want to have a go at these and I'll be happy to help in what ways I can.

LICENSE

MIT (c) Tom Coleman