1.0.2 • Published 10 years ago

infinite-table v1.0.2

Weekly downloads
1
License
MIT
Repository
github
Last release
10 years ago

infinite-table

An infinite scrolling table with editable features. No jQuery required. See the demo

Usage

Minimum required setup:

var InfiniteScroll = require('infinite-table');
new InfiniteScroll('<table element ID>', {
    url: <url to get data from>,
    fields: {
        <returned data property> : {}
    }
});

For the spinner, include

<link rel="stylesheet" href="/css/style.css"/>

Options:

new InfiniteScroll('<table element ID>', {
    url: <url to get data from>,
    fields: {
        <returned data property> : {
            data: {
                <data-attribute>: ':<returned data property>:'
                // for example:
                id: ':id:' // will create a data-attribute like data-id="1"
            },
            // setup listener, e.g. "click" listener (set as many as you wish):
            listener: [{
                handle: (e) => {alert(e.target.innerHTML)}, // callback
                on: 'click' // listen for event
            }],
            // if editable is provided, the td will be given contenteditable attribute,
            // same signature as above for listeners
            editable: [{
                handle: (e) => {alert(e.target.innerHTML)},
                on: 'blur'
            }]
        }
    },
    perPage: 20, // how many entries should be fetched per "page"
    loadTiming: 2, // when should the loading happen (defaults to the penultimate tr)
    transport: 'ajax', // possible transports: ajax/websockets,
    spinner: 0 // possible 0, 1, 2
});

An ajax (default) / websockets GET request is made whenever you hit the trigger. The signature is:

<url>?skip=<skip>&limit=<limit>

So your backend only has to GET skip and limit to query for the data. Example query

SELECT * FROM `foo` LIMIT <limit> OFFSET <skip>

If you're using sails.js you're in luck - simply create the contoller and model, everything else works out of the box.

The scroller expects json data as returned object.

INCLUDED DEPENDENCIES

lodash, bluebird
included: SpinKit from https://github.com/tobiasahlin/SpinKit

LICENSE

MIT

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago