From 13d1a9e0bde5fe41a4fd5a9f085b50c70c0bc7e3 Mon Sep 17 00:00:00 2001 From: Rufus Pollock Date: Sat, 26 May 2012 22:51:50 +0100 Subject: [PATCH] [#128,state][s]: move to simpler state serialization for backend/dataset in which we just store url attribute of dataset (if present). --- README.md | 5 +++++ src/model.js | 10 +++++----- src/view.js | 2 +- test/view.test.js | 4 +++- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index bcd93e3a..be7e8ce6 100755 --- a/README.md +++ b/README.md @@ -31,6 +31,11 @@ Running the tests by opening `test/index.html` in your browser. In progress. +Possible breaking changes: + +* State only stores backend (name) and dataset url (in url field) rather than entire dataset object +* Backends heavily reorganized + ### v0.4 - April 26th 2012 [23 closed issues](https://github.com/okfn/recline/issues?milestone=2&page=1&state=closed) including: diff --git a/src/model.js b/src/model.js index b1ec858b..9d4c690a 100644 --- a/src/model.js +++ b/src/model.js @@ -156,11 +156,8 @@ my.Dataset = Backbone.Model.extend({ // ... // } my.Dataset.restore = function(state) { - // hack-y - restoring a memory dataset does not mean much ... var dataset = null; - if (state.url && !state.dataset) { - state.dataset = {url: state.url}; - } + // hack-y - restoring a memory dataset does not mean much ... if (state.backend === 'memory') { dataset = recline.Backend.Memory.createDataset( [{stub: 'this is a stub dataset because we do not restore memory datasets'}], @@ -168,8 +165,11 @@ my.Dataset.restore = function(state) { state.dataset // metadata ); } else { + var datasetInfo = { + url: state.url + }; dataset = new recline.Model.Dataset( - state.dataset, + datasetInfo, state.backend ); } diff --git a/src/view.js b/src/view.js index 4324994e..89b74edf 100644 --- a/src/view.js +++ b/src/view.js @@ -363,7 +363,7 @@ my.DataExplorer = Backbone.View.extend({ query: query, 'view-graph': graphState, backend: this.model.backend.__type__, - dataset: this.model.toJSON(), + url: this.model.get('url'), currentView: null, readOnly: false }, diff --git a/test/view.test.js b/test/view.test.js index 4dec5d89..b00b7f1d 100644 --- a/test/view.test.js +++ b/test/view.test.js @@ -19,6 +19,8 @@ test('get State', function () { var $el = $('
'); $('.fixtures .data-explorer-here').append($el); var dataset = Fixture.getDataset(); + var url = 'xyz'; + dataset.set({url: url}); var explorer = new recline.View.DataExplorer({ model: dataset, el: $el @@ -31,7 +33,7 @@ test('get State', function () { deepEqual(state.get('view-grid').hiddenFields, []); deepEqual(state.get('view-graph').group, null); equal(state.get('backend'), 'memory'); - ok(state.get('dataset').id !== null); + ok(state.get('url') === url); $el.remove(); });