diff --git a/Brocfile.js b/Brocfile.js index 6dacdfe..5f79c11 100644 --- a/Brocfile.js +++ b/Brocfile.js @@ -22,5 +22,7 @@ var app = new EmberApp({ // along with the exports of each module as its value. app.import('bower_components/bootstrap/dist/css/bootstrap.css'); app.import('bower_components/bootstrap/dist/js/bootstrap.js'); +app.import('bower_components/jStorage/jStorage.js'); +app.import('bower_components/lz-string/libs/release/lz-string-1.3.3-min.js'); module.exports = app.toTree(); diff --git a/app/routes/decks.js b/app/routes/decks.js index 0b5cd4d..d9a19d9 100644 --- a/app/routes/decks.js +++ b/app/routes/decks.js @@ -4,15 +4,25 @@ import Deck from '../models/deck'; export default Ember.Route.extend({ beforeModel: function () { - var cardsController = this.controllerFor('cards'); - return Ember.$.get('/api/cards', function (data) { - var cards = [], - cardKeys = Ember.keys(data.cards[0]); - cardKeys.forEach(function (card) { - cards.push(Card.create(data.cards[0][card])); + var cardsController = this.controllerFor('cards'), + localStoreCards = Ember.$.jStorage.get('localStoreCards'); + + if (localStoreCards) { + var decompressedCards = JSON.parse(LZString.decompressFromUTF16(localStoreCards)); + debugger; + cardsController.set('model', decompressedCards); + } else { + return Ember.$.get('/api/cards', function (data) { + var cards = [], + cardKeys = Ember.keys(data.cards[0]); + cardKeys.forEach(function (card) { + cards.push(Card.create(data.cards[0][card])); + }); + + Ember.$.jStorage.set('localStoreCards', LZString.compressToUTF16(JSON.stringify(cards))); + cardsController.set('model', cards); }); - cardsController.set('model', cards); - }); + } }, actions: { diff --git a/bower.json b/bower.json index be8abac..0810dca 100644 --- a/bower.json +++ b/bower.json @@ -14,5 +14,9 @@ "ember-qunit": "0.1.8", "ember-qunit-notifications": "0.0.4", "qunit": "~1.15.0" + }, + "devDependencies": { + "jStorage": "~0.4.12", + "lz-string": "*" } }