[demo][s]: allow loading of demo data viewer from a webstore url.

This commit is contained in:
rgrp 2011-11-08 16:12:56 +00:00
parent 5eb06b982e
commit 07275a8fcc
3 changed files with 34 additions and 2 deletions

View File

@ -16,6 +16,20 @@
</head>
<body class="bod">
<div class="container">
<div class="dataexplorer-tableview-nav">
<form>
<label for="source">Source</label>
<input type="text" name="source" size="50" />
<input type="submit" name="" value="Update" />
<br />
<span class="dataexplorer-tableview-nav-toggle">
<input type="radio" id="dataexplorer-tableview-nav-grid" name="dataexplorer-tableview-nav-toggle" value="grid" checked="checked" />
<label for="dataexplorer-tableview-nav-grid">Grid</label>
<input type="radio" id="dataexplorer-tableview-nav-graph" name="dataexplorer-tableview-nav-toggle" value="chart" />
<label for="dataexplorer-tableview-nav-graph">Graph</label>
</span>
</form>
</div>
<!-- <div class="menu-overlay" style="display: none; z-index: 101; ">&nbsp;</div>
<ul class="menu">
</ul>
@ -28,8 +42,9 @@
<div class="main_content">
<div class="left-panel"></div>
<div class="right-panel"></div>
</div> -->
</div>
<div class="data-table-container"></div>
-->
</div>
<div id="notification-container">

View File

@ -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 = {

View File

@ -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';