[#128,state][s]: move to simpler state serialization for backend/dataset in which we just store url attribute of dataset (if present).

This commit is contained in:
Rufus Pollock
2012-05-26 22:51:50 +01:00
parent ed4f315a97
commit 13d1a9e0bd
4 changed files with 14 additions and 7 deletions

View File

@@ -31,6 +31,11 @@ Running the tests by opening `test/index.html` in your browser.
In progress. 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 ### v0.4 - April 26th 2012
[23 closed issues](https://github.com/okfn/recline/issues?milestone=2&page=1&state=closed) including: [23 closed issues](https://github.com/okfn/recline/issues?milestone=2&page=1&state=closed) including:

View File

@@ -156,11 +156,8 @@ my.Dataset = Backbone.Model.extend({
// ... // ...
// } // }
my.Dataset.restore = function(state) { my.Dataset.restore = function(state) {
// hack-y - restoring a memory dataset does not mean much ...
var dataset = null; var dataset = null;
if (state.url && !state.dataset) { // hack-y - restoring a memory dataset does not mean much ...
state.dataset = {url: state.url};
}
if (state.backend === 'memory') { if (state.backend === 'memory') {
dataset = recline.Backend.Memory.createDataset( dataset = recline.Backend.Memory.createDataset(
[{stub: 'this is a stub dataset because we do not restore memory datasets'}], [{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 state.dataset // metadata
); );
} else { } else {
var datasetInfo = {
url: state.url
};
dataset = new recline.Model.Dataset( dataset = new recline.Model.Dataset(
state.dataset, datasetInfo,
state.backend state.backend
); );
} }

View File

@@ -363,7 +363,7 @@ my.DataExplorer = Backbone.View.extend({
query: query, query: query,
'view-graph': graphState, 'view-graph': graphState,
backend: this.model.backend.__type__, backend: this.model.backend.__type__,
dataset: this.model.toJSON(), url: this.model.get('url'),
currentView: null, currentView: null,
readOnly: false readOnly: false
}, },

View File

@@ -19,6 +19,8 @@ test('get State', function () {
var $el = $('<div class="test-view-explorer-getstate" />'); var $el = $('<div class="test-view-explorer-getstate" />');
$('.fixtures .data-explorer-here').append($el); $('.fixtures .data-explorer-here').append($el);
var dataset = Fixture.getDataset(); var dataset = Fixture.getDataset();
var url = 'xyz';
dataset.set({url: url});
var explorer = new recline.View.DataExplorer({ var explorer = new recline.View.DataExplorer({
model: dataset, model: dataset,
el: $el el: $el
@@ -31,7 +33,7 @@ test('get State', function () {
deepEqual(state.get('view-grid').hiddenFields, []); deepEqual(state.get('view-grid').hiddenFields, []);
deepEqual(state.get('view-graph').group, null); deepEqual(state.get('view-graph').group, null);
equal(state.get('backend'), 'memory'); equal(state.get('backend'), 'memory');
ok(state.get('dataset').id !== null); ok(state.get('url') === url);
$el.remove(); $el.remove();
}); });