From 07275a8fccbb1cbd5b2471ad576291bf35b6a0f8 Mon Sep 17 00:00:00 2001 From: rgrp Date: Tue, 8 Nov 2011 16:12:56 +0000 Subject: [PATCH] [demo][s]: allow loading of demo data viewer from a webstore url. --- demo/index.html | 17 ++++++++++++++++- demo/js/app.js | 18 +++++++++++++++++- src/model.js | 1 + 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/demo/index.html b/demo/index.html index a0e0b426..5c55e2c2 100755 --- a/demo/index.html +++ b/demo/index.html @@ -16,6 +16,20 @@
+
+
+ + + +
+ + + + + + +
+
+
+ -->
diff --git a/demo/js/app.js b/demo/js/app.js index 7a5c6b77..9c2ba936 100755 --- a/demo/js/app.js +++ b/demo/js/app.js @@ -1,4 +1,6 @@ $(function() { + var demoUrl = 'http://webstore.test.ckan.org/rufuspollock/demo/data'; + $('.dataexplorer-tableview-nav form input[name="source"]').val(demoUrl); var datasetId = 'test-dataset'; var metadata = { title: 'My Test Dataset' @@ -17,7 +19,7 @@ $(function() { ] }; // this is all rather artificial here but would make more sense with more complex backend - backend = new recline.BackendMemory(); + var backend = new recline.BackendMemory(); backend.addDataset({ metadata: metadata, data: indata @@ -32,6 +34,20 @@ $(function() { $('.container').append(dataTable.el) }); + $('.dataexplorer-tableview-nav form').submit(function(e) { + e.preventDefault(); + var $form = $(e.target); + var source = $form.find('input[name="source"]').val(); + var backend = new recline.BackendWebstore({ + url: source + }); + recline.setBackend(backend); + var dataset = backend.getDataset(); + var dataTable = new recline.DataTable({ + model: dataset + }) + $('.container').append(dataTable.el) + }); }) // app.after = { diff --git a/src/model.js b/src/model.js index 1699a8f5..83f4a49a 100644 --- a/src/model.js +++ b/src/model.js @@ -101,6 +101,7 @@ recline.BackendWebstore = Backbone.Model.extend({ // this switching on object type is rather horrible // think may make more sense to do work in individual objects rather than in central Backbone.sync if (this.__type__ == 'Dataset') { + var dataset = this; // get the schema and return var base = this.backend.get('url'); var schemaUrl = base + '/schema.json';