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 = /^([^?]+)(\?.*)?/;