[#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.
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:

View File

@ -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
);
}

View File

@ -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
},

View File

@ -19,6 +19,8 @@ test('get State', function () {
var $el = $('<div class="test-view-explorer-getstate" />');
$('.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();
});