Skip to content

Commit

Permalink
Plugin rewrite
Browse files Browse the repository at this point in the history
  • Loading branch information
nessthehero committed Sep 27, 2014
1 parent e30072d commit 448c53f
Show file tree
Hide file tree
Showing 32 changed files with 1,096 additions and 336 deletions.
3 changes: 3 additions & 0 deletions .bowerrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"directory": "bower_components"
}
13 changes: 13 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# http://editorconfig.org
root = true

[*]
indent_style = tab
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/node_modules/
/bower_components/
dist
21 changes: 21 additions & 0 deletions .jshintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"node": true,
"browser": true,
"esnext": true,
"bitwise": true,
"camelcase": true,
"curly": true,
"eqeqeq": true,
"immed": true,
"indent": 2,
"latedef": true,
"newcap": true,
"noarg": true,
"quotmark": "single",
"regexp": true,
"undef": true,
"unused": true,
"strict": true,
"trailing": true,
"smarttabs": true
}
4 changes: 4 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
language: node_js
node_js:
- '0.10'
- '0.8'
32 changes: 32 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Contributing

## Important notes
Please don't edit files in the `dist` subdirectory as they are generated via Grunt. You'll find source code in the `src` subdirectory!

### Code style
Regarding code style like indentation and whitespace, **follow the conventions you see used in the source already.**

### PhantomJS
While Grunt can run the included unit tests via [PhantomJS](http://phantomjs.org/), this shouldn't be considered a substitute for the real thing. Please be sure to test the `test/*.html` unit test file(s) in _actual_ browsers.

## Modifying the code
First, ensure that you have the latest [Node.js](http://nodejs.org/) and [npm](http://npmjs.org/) installed.

Test that Grunt's CLI and Bower are installed by running `grunt --version` and `bower --version`. If the commands aren't found, run `npm install -g grunt-cli bower`. For more information about installing the tools, see the [getting started with Grunt guide](http://gruntjs.com/getting-started) or [bower.io](http://bower.io/) respectively.

1. Fork and clone the repo.
1. Run `npm install` to install all build dependencies (including Grunt).
1. Run `bower install` to install the front-end dependencies.
1. Run `grunt` to grunt this project.

Assuming that you don't see any red, you're ready to go. Just be sure to run `grunt` after making any changes, to ensure that nothing is broken.

## Submitting pull requests

1. Create a new branch, please don't work in your `master` branch directly.
1. Add failing tests for the change you want to make. Run `grunt` to see the tests fail.
1. Fix stuff.
1. Run `grunt` to see if the tests pass. Repeat steps 2-4 until done.
1. Open `test/*.html` unit test file(s) in actual browser to ensure tests pass everywhere.
1. Update the documentation to reflect any changes.
1. Push to your fork and submit a pull request.
103 changes: 103 additions & 0 deletions Gruntfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
'use strict';

module.exports = function (grunt) {
// Load all grunt tasks
require('load-grunt-tasks')(grunt);
// Show elapsed time at the end
require('time-grunt')(grunt);

// Project configuration.
grunt.initConfig({
// Metadata.
pkg: grunt.file.readJSON('package.json'),
banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
'<%= grunt.template.today("yyyy-mm-dd") %>\n' +
'<%= pkg.homepage ? "* " + pkg.homepage + "\\n" : "" %>' +
'* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' +
' Licensed MIT */\n',
// Task configuration.
clean: {
files: ['dist']
},
concat: {
options: {
banner: '<%= banner %>',
stripBanners: true
},
dist: {
src: ['src/<%= pkg.name %>.js'],
dest: 'dist/jquery.<%= pkg.name %>.js'
}
},
uglify: {
options: {
banner: '<%= banner %>'
},
dist: {
src: '<%= concat.dist.dest %>',
dest: 'dist/jquery.<%= pkg.name %>.min.js'
}
},
qunit: {
all: {
options: {
urls: ['http://localhost:9000/test/<%= pkg.name %>.html']
}
}
},
jshint: {
options: {
reporter: require('jshint-stylish')
},
gruntfile: {
options: {
jshintrc: '.jshintrc'
},
src: 'Gruntfile.js'
},
src: {
options: {
jshintrc: 'src/.jshintrc'
},
src: ['src/**/*.js']
},
test: {
options: {
jshintrc: 'test/.jshintrc'
},
src: ['test/**/*.js']
}
},
watch: {
gruntfile: {
files: '<%= jshint.gruntfile.src %>',
tasks: ['jshint:gruntfile']
},
src: {
files: '<%= jshint.src.src %>',
tasks: ['jshint:src', 'qunit']
},
test: {
files: '<%= jshint.test.src %>',
tasks: ['jshint:test', 'qunit']
}
},
connect: {
server: {
options: {
hostname: '*',
port: 9000
}
}
}
});

// Default task.
grunt.registerTask('default', ['jshint', 'connect', 'qunit', 'clean', 'concat', 'uglify']);
grunt.registerTask('server', function () {
grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.');
grunt.task.run(['serve']);
});
grunt.registerTask('serve', ['connect', 'watch']);
grunt.registerTask('test', ['jshint', 'connect', 'qunit']);
};
85 changes: 81 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,83 @@
Static Pager
============
# Static Pager

This certainly needs documented.
Use static paging for unordered lists of content

[![githalytics.com alpha](https://cruel-carlota.pagodabox.com/4bab84c5f9758cf3b297626ddb4372da "githalytics.com")](http://githalytics.com/nessthehero/Pager)
## Getting Started

Download the [production version][min] or the [development version][max].

[min]: https://raw.github.com/nessthehero/jquery-staticpager/master/dist/jquery.staticpager.min.js
[max]: https://raw.github.com/nessthehero/jquery-staticpager/master/dist/jquery.staticpager.js

In your web page:

```html
<script src="jquery.js"></script>
<script src="staticpager.min.js"></script>
<script>
jQuery(function($) {
$("#pager").staticpager(); // target a container that contains an unordered list
});
</script>

<div id="pager">
<ul>
<li data-filter="2">Item 1</li>
<li data-filter="2|3">Item 2</li>
<li data-filter="4|6">Item 3</li>
<li data-filter="7">Item 4</li>
<li data-filter="">Item 5</li>
<li data-filter="8">Item 6</li>
<li data-filter="2">Item 7</li>
</ul>
</div>
```

## Documentation

### Options:

- **pageSize**: Amount of items to display per page. (Default: 25)
- **top**: Show paging above results (Default: true)
- **bottom**: Show paging below results (Default: true)
- **nextText**: Text for next button (Default: 'next')
- **prevText**: Text for previous button (Default: 'prev')
- **status**: Show status of paging, such as 'X of Y results' (Default: true)
- **statusLocation**: Where to display paging status (Default: 'bottom')
- **showAll**: Show a link to expand to all results and disable paging (Default: false)
- **truncate**: Truncate the page numbers to only show approximately 7 pages instead of all pages. Useful for large amounts of items. (Default: false)
- **evenodd**: Add classes to distinguish even and odd items (Default: true)
- **filter**: An array of strings to filter results, based on the `data-filter` attribute on each list item. Can be declared on load but also can be passed via a method for later sorting (Default: [])
- **delimiter**: Separator between each filter item in data attribute. (Default "|")
- **start**: Callback function fired before pager is built.
- **end**: Callback function fired after pager is built.
- **before**: Callback function before page is changed.
- **after**: Callback function after page is changed.

### Methods:

#### Destroy

Unset pager, remove any paging in place, and restore markup to original state.

```javascript
$("#pager").destroy();
```

#### Update

Pass an array of strings to the pager to filter it based on the data-filter attribute on each list item.

```javascript
$("#pager").update(["2", "3"]);
```

## Release History

### 1.0.0

Release of pager enhanced by Grunt, backed by Unit Tests, with enhanced functionality.

### Older

Original plugin written by Jay Del Greco
9 changes: 9 additions & 0 deletions bower.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"name": "staticpager",
"version": "1.0.0",
"dependencies": {},
"devDependencies": {
"qunit": "~1.12.0",
"jquery": "latest"
}
}
23 changes: 0 additions & 23 deletions css/paging.css

This file was deleted.

4 changes: 0 additions & 4 deletions js/jquery-1.7.1.min.js

This file was deleted.

Loading

0 comments on commit 448c53f

Please sign in to comment.