diff --git a/src/model.js b/src/model.js index 137244d7..1464ec46 100644 --- a/src/model.js +++ b/src/model.js @@ -141,6 +141,36 @@ 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: {result of dataset.toJSON()}
+// ...
+// }
+my.Dataset.restore = function(state) {
+ // hack-y - restoring a memory dataset does not mean much ...
+ var dataset = null;
+ if (state.backend === 'memory') {
+ dataset = recline.Backend.createDataset(
+ [{stub: 'this is a stub dataset because we do not restore memory datasets'}],
+ [],
+ state.dataset
+ );
+ } else {
+ dataset = new recline.Model.Dataset(
+ state.dataset,
+ state.backend
+ );
+ }
+ return dataset;
+};
+
// ## A Document (aka Row)
//
// A single entry or row in the dataset
diff --git a/src/view.js b/src/view.js
index 6dedc111..5e3a4c02 100644
--- a/src/view.js
+++ b/src/view.js
@@ -140,6 +140,10 @@ this.recline.View = this.recline.View || {};
// readOnly: (default: false) run in read-only mode
// }
//
+//
+// Note that at present we do *not* serialize information about the actual set
+// of views in use -- e.g. those specified by the views argument. Instead we
+// expect the client to have initialized the DataExplorer with the relevant views.
my.DataExplorer = Backbone.View.extend({
template: ' \