Skip to content

Commit

Permalink
Update for Ember Data 1.13.x, closes #32
Browse files Browse the repository at this point in the history
  • Loading branch information
hhff committed Jun 28, 2015
1 parent 0aac67a commit 36b3138
Show file tree
Hide file tree
Showing 9 changed files with 203 additions and 16 deletions.
153 changes: 153 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
# Change Log

## [v0.0.10](https://github.com/hhff/ember-infinity/tree/v0.0.10) (2015-06-22)

[Full Changelog](https://github.com/hhff/ember-infinity/compare/v0.0.9...v0.0.10)

**Closed issues:**

- customizations not persisting [\#34](https://github.com/hhff/ember-infinity/issues/34)

- Babel ES6 Polyfill required? [\#33](https://github.com/hhff/ember-infinity/issues/33)

- Possibility to reset infinityloader via controller [\#31](https://github.com/hhff/ember-infinity/issues/31)

- documentation of infinityModelUpdated and infinityModelLoaded [\#28](https://github.com/hhff/ember-infinity/issues/28)

- upgrade from 0.0.4 to 0.0.8 causes Cannot find module 'ember-cli-version-checker' [\#27](https://github.com/hhff/ember-infinity/issues/27)

- Incorrect error message in addon/mixins/route.js [\#25](https://github.com/hhff/ember-infinity/issues/25)

- Will not load more if still in view [\#10](https://github.com/hhff/ember-infinity/issues/10)

**Merged pull requests:**

- check if in view on resize events [\#45](https://github.com/hhff/ember-infinity/pull/45) ([kellyselden](https://github.com/kellyselden))

- keep loading until you are out of view [\#44](https://github.com/hhff/ember-infinity/pull/44) ([kellyselden](https://github.com/kellyselden))

- Updated with documentation on `infinityModelLoaded` and `infinityMode… [\#41](https://github.com/hhff/ember-infinity/pull/41) ([ashrafhasson](https://github.com/ashrafhasson))

- More badges for readme [\#39](https://github.com/hhff/ember-infinity/pull/39) ([truenorth](https://github.com/truenorth))

- Update to ember-cli 0.2.7 [\#38](https://github.com/hhff/ember-infinity/pull/38) ([truenorth](https://github.com/truenorth))

- \[gh-pages\] Add babel.js polyfill to demo [\#37](https://github.com/hhff/ember-infinity/pull/37) ([truenorth](https://github.com/truenorth))

- Babel.js polyfill in demo app [\#36](https://github.com/hhff/ember-infinity/pull/36) ([truenorth](https://github.com/truenorth))

- uses the override properties when loading more [\#35](https://github.com/hhff/ember-infinity/pull/35) ([kellyselden](https://github.com/kellyselden))

- Document events [\#40](https://github.com/hhff/ember-infinity/pull/40) ([ashrafhasson](https://github.com/ashrafhasson))

- Document event hooks [\#30](https://github.com/hhff/ember-infinity/pull/30) ([ashrafhasson](https://github.com/ashrafhasson))

- Update README.md [\#29](https://github.com/hhff/ember-infinity/pull/29) ([ashrafhasson](https://github.com/ashrafhasson))

## [v0.0.9](https://github.com/hhff/ember-infinity/tree/v0.0.9) (2015-06-12)

[Full Changelog](https://github.com/hhff/ember-infinity/compare/v0.0.8...v0.0.9)

**Merged pull requests:**

- fixed wrong error message [\#26](https://github.com/hhff/ember-infinity/pull/26) ([cgwic](https://github.com/cgwic))

## [v0.0.8](https://github.com/hhff/ember-infinity/tree/v0.0.8) (2015-06-01)

[Full Changelog](https://github.com/hhff/ember-infinity/compare/v0.0.7...v0.0.8)

**Merged pull requests:**

- Add Demo URL to package.json [\#24](https://github.com/hhff/ember-infinity/pull/24) ([hhff](https://github.com/hhff))

- Update ember-cli-github-pages & Readme [\#23](https://github.com/hhff/ember-infinity/pull/23) ([truenorth](https://github.com/truenorth))

- GitHub pages demo [\#22](https://github.com/hhff/ember-infinity/pull/22) ([truenorth](https://github.com/truenorth))

## [v0.0.7](https://github.com/hhff/ember-infinity/tree/v0.0.7) (2015-05-21)

[Full Changelog](https://github.com/hhff/ember-infinity/compare/v0.0.6...v0.0.7)

**Merged pull requests:**

- ES6-ification [\#21](https://github.com/hhff/ember-infinity/pull/21) ([truenorth](https://github.com/truenorth))

- Ember cli 0.2.5 [\#20](https://github.com/hhff/ember-infinity/pull/20) ([truenorth](https://github.com/truenorth))

- adds json response to README.md [\#19](https://github.com/hhff/ember-infinity/pull/19) ([mockra](https://github.com/mockra))

- Allow customization of pagination API [\#18](https://github.com/hhff/ember-infinity/pull/18) ([truenorth](https://github.com/truenorth))

## [v0.0.6](https://github.com/hhff/ember-infinity/tree/v0.0.6) (2015-05-18)

[Full Changelog](https://github.com/hhff/ember-infinity/compare/v0.0.5...v0.0.6)

**Closed issues:**

- ember-cli-version-checker dependency [\#16](https://github.com/hhff/ember-infinity/issues/16)

**Merged pull requests:**

- Add version checker to deps, closes \#16 [\#17](https://github.com/hhff/ember-infinity/pull/17) ([hhff](https://github.com/hhff))

## [v0.0.5](https://github.com/hhff/ember-infinity/tree/v0.0.5) (2015-04-30)

[Full Changelog](https://github.com/hhff/ember-infinity/compare/v0.0.4...v0.0.5)

**Closed issues:**

- \[Suggestion\] For integration with backends other than Kaminari [\#12](https://github.com/hhff/ember-infinity/issues/12)

**Merged pull requests:**

- Adding ability to change default model path [\#15](https://github.com/hhff/ember-infinity/pull/15) ([Keeo](https://github.com/Keeo))

- Fixes install command for new ember-cli [\#14](https://github.com/hhff/ember-infinity/pull/14) ([Keeo](https://github.com/Keeo))

- Add descriptive error message when running ember-cli < 0.2.0 [\#13](https://github.com/hhff/ember-infinity/pull/13) ([amedrz](https://github.com/amedrz))

## [v0.0.4](https://github.com/hhff/ember-infinity/tree/v0.0.4) (2015-04-08)

[Full Changelog](https://github.com/hhff/ember-infinity/compare/v0.0.3...v0.0.4)

**Closed issues:**

- Normalize parameters passed to infinityModel [\#11](https://github.com/hhff/ember-infinity/issues/11)

- Unable to send along extra options [\#6](https://github.com/hhff/ember-infinity/issues/6)

- \_bindScroll in infinity-loader.js sets wrong scroll element [\#5](https://github.com/hhff/ember-infinity/issues/5)

- Cannot read property 'name' of undefined [\#3](https://github.com/hhff/ember-infinity/issues/3)

**Merged pull requests:**

- Support additional parameters for infinityModel\(\) [\#9](https://github.com/hhff/ember-infinity/pull/9) ([bruce](https://github.com/bruce))

- Fixed h2 tag [\#8](https://github.com/hhff/ember-infinity/pull/8) ([Mak-Di](https://github.com/Mak-Di))

- Allow params in store.find [\#7](https://github.com/hhff/ember-infinity/pull/7) ([joshudev](https://github.com/joshudev))

## [v0.0.3](https://github.com/hhff/ember-infinity/tree/v0.0.3) (2015-03-25)

[Full Changelog](https://github.com/hhff/ember-infinity/compare/v0.0.2...v0.0.3)

**Merged pull requests:**

- Add scrollable to README [\#4](https://github.com/hhff/ember-infinity/pull/4) ([hhff](https://github.com/hhff))

- Add option to specify scrollable element [\#2](https://github.com/hhff/ember-infinity/pull/2) ([greis](https://github.com/greis))

## [v0.0.2](https://github.com/hhff/ember-infinity/tree/v0.0.2) (2015-03-22)

[Full Changelog](https://github.com/hhff/ember-infinity/compare/v0.0.1...v0.0.2)

**Merged pull requests:**

- infiniteModel -\> infinityModel [\#1](https://github.com/hhff/ember-infinity/pull/1) ([hhff](https://github.com/hhff))

## [v0.0.1](https://github.com/hhff/ember-infinity/tree/v0.0.1) (2015-03-22)



\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
28 changes: 24 additions & 4 deletions addon/mixins/route.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import Ember from 'ember';
import { emberDataVersionIs } from 'ember-version-is';

/**
The Ember Infinity Route Mixin enables an application route to load paginated
Expand Down Expand Up @@ -88,9 +89,18 @@ export default Ember.Mixin.create({
* Path of the "total pages" param in
* the HTTP response
* @type {String}
* @default "meta.total_pages"
* @default "meta.total_pages"
*/
totalPagesParam: 'meta.total_pages',

/**
* The supported findMethod name for
* the developers Ember Data version.
* Provided here for backwards compat.
* @type {String}
* @default "query"
*/
_storeFindMethod: 'query',

/**
@private
Expand All @@ -115,7 +125,15 @@ export default Ember.Mixin.create({
*/
infinityModel(modelName, options) {

if (Ember.isEmpty(this.store) || Ember.isEmpty(this.store.find)){
if (emberDataVersionIs('greaterThan', '1.0.0-beta.19.2') && emberDataVersionIs('lessThan', '1.13.4')) {
throw new Ember.Error("Ember Infinity: You are using an unsupported version of Ember Data. Please upgrade to at least 1.13.4 or downgrade to 1.0.0-beta.19.2");
}

if (emberDataVersionIs('lessThan', '1.13.0')) {
this._storeFindMethod = "find";
}

if (Ember.isEmpty(this.store) || Ember.isEmpty(this.store[this._storeFindMethod])){
throw new Ember.Error("Ember Data store is not available to infinityModel");
} else if (modelName === undefined) {
throw new Ember.Error("You must pass a Model Name to infinityModel");
Expand All @@ -141,7 +159,8 @@ export default Ember.Mixin.create({
requestPayloadBase[this.get('pageParam')] = startingPage;

var params = Ember.merge(requestPayloadBase, options);
var promise = this.store.find(modelName, params);

let promise = this.store[this._storeFindMethod](modelName, params);

promise.then(
infinityModel => {
Expand Down Expand Up @@ -184,7 +203,8 @@ export default Ember.Mixin.create({
requestPayloadBase[this.get('pageParam')] = nextPage;

var params = Ember.merge(requestPayloadBase, this.get('_extraParams'));
var promise = this.store.find(modelName, params);

let promise = this.store[this._storeFindMethod](modelName, params);

promise.then(
infinityModel => {
Expand Down
4 changes: 2 additions & 2 deletions bower.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"name": "ember-infinity",
"dependencies": {
"ember": "1.10.0",
"ember": "1.13.0",
"ember-cli-shims": "ember-cli/ember-cli-shims#0.0.3",
"ember-cli-test-loader": "ember-cli-test-loader#0.1.3",
"ember-data": "1.0.0-beta.19.1",
"ember-data": "1.13.4",
"ember-load-initializers": "ember-cli/ember-load-initializers#0.1.4",
"ember-qunit": "0.3.3",
"ember-qunit-notifications": "0.0.7",
Expand Down
8 changes: 8 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,13 @@ module.exports = {

init: function() {
checker.assertAbove(this, '0.2.0');
},

included: function(app) {
this.addons.forEach(function(addon){
if (addon.name === "ember-version-is") {
addon.included.apply(addon, [app]);
}
});
}
};
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
"ember-addon"
],
"dependencies": {
"ember-version-is": "0.0.2",
"ember-cli-babel": "^5.0.0",
"ember-cli-htmlbars": "0.7.8",
"ember-cli-version-checker": "^1.0.2"
Expand Down
3 changes: 3 additions & 0 deletions tests/dummy/app/adapters/application.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import DS from 'ember-data';

export default DS.RESTAdapter;
4 changes: 2 additions & 2 deletions tests/dummy/app/templates/demo.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
<h2 id="title">ember-infinity</h2>
</div>
<ul class="demo-items">
{{#each content as |item|}}
{{#each content key="@guid" as |item|}}
<li>{{item.id}}. {{item.name}}</li>
{{/each}}
{{infinity-loader
infinityModel=content
loadingText="Loading more awesome records..."
loadedText="Loaded all the records!"}}
</ul>
</div>
</div>
4 changes: 3 additions & 1 deletion tests/unit/components/infinity-loader-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ import {
import Ember from 'ember';
import $ from 'jquery';

moduleForComponent('infinity-loader');
moduleForComponent('infinity-loader', {
unit: true
});

test('it renders', function(assert) {
assert.expect(2);
Expand Down
14 changes: 7 additions & 7 deletions tests/unit/mixins/route-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ test('it can not use infinityModel without a Model Name', assert => {
});
var route = RouteObject.create();
route.store = {
find() {}
query() {}
};

var infinityError;
Expand All @@ -61,7 +61,7 @@ test('it sets state before it reaches the end', assert => {
var route = RouteObject.create();

var dummyStore = {
find() {
query() {
return new Ember.RSVP.Promise(resolve => {
Ember.run(this, resolve, Ember.Object.create({
items: [{id: 1, name: 'Test'}],
Expand Down Expand Up @@ -100,7 +100,7 @@ test('it allows customizations of request params', assert => {
var route = RouteObject.create();

var dummyStore = {
find(modelType, findQuery) {
query(modelType, findQuery) {
assert.deepEqual(findQuery, {per: 25, p: 1});
return new Ember.RSVP.Promise(resolve => {
Ember.run(this, resolve, Ember.Object.create({
Expand Down Expand Up @@ -130,7 +130,7 @@ test('it allows customizations of meta parsing params', assert => {
var route = RouteObject.create();

var dummyStore = {
find(modelType, findQuery) {
query(modelType, findQuery) {
return new Ember.RSVP.Promise(resolve => {
Ember.run(this, resolve, Ember.Object.create({
items: [{id: 1, name: 'Walter White'}],
Expand Down Expand Up @@ -164,7 +164,7 @@ test('it sets state when it reaches the end', assert => {
var route = RouteObject.create();

var dummyStore = {
find() {
query() {
return new Ember.RSVP.Promise(resolve => {
Ember.run(this, resolve, Ember.Object.create({
items: [{id: 1, name: 'Test'}],
Expand Down Expand Up @@ -204,7 +204,7 @@ test('it uses extra params when loading more data', assert => {
var route = RouteObject.create();

var dummyStore = {
find(name, params) {
query(name, params) {
assert.equal('param', params.extra);
return new Ember.RSVP.Promise(resolve => {
Ember.run(this, resolve, Ember.Object.create({
Expand Down Expand Up @@ -265,7 +265,7 @@ test('it uses overridden params when loading more data', assert => {
var route = RouteObject.create();

var dummyStore = {
find(name, params) {
query(name, params) {
assert.equal(1, params.testPerPage);
assert.ok(params.testPage);
return new Ember.RSVP.Promise(resolve => {
Expand Down

0 comments on commit 36b3138

Please sign in to comment.