diff --git a/README.md b/README.md index 98d0d049..27bd9b63 100755 --- a/README.md +++ b/README.md @@ -24,6 +24,10 @@ Running the tests by opening `test/index.html` in your browser. [v0.6 milestone](https://github.com/okfn/recline/issues?milestone=5) +Possible breaking changes + +* Dataset.restore method removed (not used internally except from Multiview.restore) +* Views no longer call render in initialize but must be called client code ### v0.5 - July 5th 2012 (first public release) diff --git a/dist/recline.dataset.js b/dist/recline.dataset.js index 6922abe2..04f1985e 100644 --- a/dist/recline.dataset.js +++ b/dist/recline.dataset.js @@ -291,36 +291,6 @@ my.Dataset = Backbone.Model.extend({ }); -// ### Dataset.restore -// -// Restore a Dataset instance from a serialized state. Serialized state for a -// Dataset is an Object like: -// -//
-// {
-// backend: {backend type - i.e. value of dataset.backend.__type__}
-// dataset: {dataset info needed for loading -- result of dataset.toJSON() would be sufficient but can be simpler }
-// // convenience - if url provided and dataste not this be used as dataset url
-// url: {dataset url}
-// ...
-// }
-my.Dataset.restore = function(state) {
- var dataset = null;
- // hack-y - restoring a memory dataset does not mean much ...
- if (state.backend === 'memory') {
- var datasetInfo = {
- records: [{stub: 'this is a stub dataset because we do not restore memory datasets'}]
- };
- } else {
- var datasetInfo = {
- url: state.url,
- backend: state.backend
- };
- }
- dataset = new recline.Model.Dataset(datasetInfo);
- return dataset;
-};
-
// ## A Record
//
// A single record (or row) in the dataset
diff --git a/dist/recline.js b/dist/recline.js
index fc4f7b22..29e86b69 100644
--- a/dist/recline.js
+++ b/dist/recline.js
@@ -1320,36 +1320,6 @@ my.Dataset = Backbone.Model.extend({
});
-// ### Dataset.restore
-//
-// Restore a Dataset instance from a serialized state. Serialized state for a
-// Dataset is an Object like:
-//
-//
-// {
-// backend: {backend type - i.e. value of dataset.backend.__type__}
-// dataset: {dataset info needed for loading -- result of dataset.toJSON() would be sufficient but can be simpler }
-// // convenience - if url provided and dataste not this be used as dataset url
-// url: {dataset url}
-// ...
-// }
-my.Dataset.restore = function(state) {
- var dataset = null;
- // hack-y - restoring a memory dataset does not mean much ...
- if (state.backend === 'memory') {
- var datasetInfo = {
- records: [{stub: 'this is a stub dataset because we do not restore memory datasets'}]
- };
- } else {
- var datasetInfo = {
- url: state.url,
- backend: state.backend
- };
- }
- dataset = new recline.Model.Dataset(datasetInfo);
- return dataset;
-};
-
// ## A Record
//
// A single record (or row) in the dataset
@@ -3255,11 +3225,13 @@ my.MultiView = Backbone.View.extend({
graphState = graphState ? JSON.parse(graphState) : {};
// now get default data + hash url plus initial state and initial our state object with it
+ console.log(this.model.toJSON());
var stateData = _.extend({
query: query,
'view-graph': graphState,
backend: this.model.backend.__type__,
url: this.model.get('url'),
+ dataset: this.model.toJSON(),
currentView: null,
readOnly: false
},
@@ -3352,8 +3324,24 @@ my.MultiView = Backbone.View.extend({
// ### MultiView.restore
//
// Restore a MultiView instance from a serialized state including the associated dataset
+//
+// This inverts the state serialization process in Multiview
my.MultiView.restore = function(state) {
- var dataset = recline.Model.Dataset.restore(state);
+ // hack-y - restoring a memory dataset does not mean much ... (but useful for testing!)
+ if (state.backend === 'memory') {
+ var datasetInfo = {
+ backend: 'memory',
+ records: [{stub: 'this is a stub dataset because we do not restore memory datasets'}]
+ };
+ } else {
+ var datasetInfo = _.extend({
+ url: state.url,
+ backend: state.backend
+ },
+ state.dataset
+ );
+ }
+ var dataset = new recline.Model.Dataset(datasetInfo);
var explorer = new my.MultiView({
model: dataset,
state: state
@@ -3361,7 +3349,6 @@ my.MultiView.restore = function(state) {
return explorer;
}
-
// ## Miscellaneous Utilities
var urlPathRegex = /^([^?]+)(\?.*)?/;