[demo/js][s]: refactor demo js and add support for specifying url to load (and backend type) in the url query string.
* You can now do stuff like demo/index.html?url={path-to-your-elastic-search-instance}
This commit is contained in:
@@ -1,7 +1,54 @@
|
|||||||
$(function() {
|
$(function() {
|
||||||
|
var qs = recline.View.parseQueryString(window.location.search);
|
||||||
|
if (qs.url) {
|
||||||
|
var dataset = new recline.Model.Dataset({
|
||||||
|
id: 'my-dataset',
|
||||||
|
url: qs.url,
|
||||||
|
webstore_url: qs.url
|
||||||
|
},
|
||||||
|
qs.backend || 'elasticsearch'
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
dataset = localDataset();
|
||||||
|
}
|
||||||
|
|
||||||
|
createExplorer(dataset);
|
||||||
|
Backbone.history.start();
|
||||||
|
|
||||||
|
// setup the loader menu in top bar
|
||||||
|
setupLoader(createExplorer);
|
||||||
|
|
||||||
|
// set up readonly enabling in top bar
|
||||||
|
$('a.set-read-only').click(function() {
|
||||||
|
window.dataExplorer.setReadOnly();
|
||||||
|
alert('Read-only mode set');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// make Explorer creation / initialization in a function so we can call it
|
||||||
|
// again and again
|
||||||
|
function createExplorer(dataset) {
|
||||||
|
// remove existing data explorer view
|
||||||
|
if (window.dataExplorer) {
|
||||||
|
window.dataExplorer.remove();
|
||||||
|
}
|
||||||
|
window.dataExplorer = null;
|
||||||
var $el = $('<div />');
|
var $el = $('<div />');
|
||||||
$el.appendTo($('.data-explorer-here'));
|
$el.appendTo($('.data-explorer-here'));
|
||||||
var dataset = demoDataset();
|
var views = standardViews(dataset);
|
||||||
|
window.dataExplorer = new recline.View.DataExplorer({
|
||||||
|
el: $el
|
||||||
|
, model: dataset
|
||||||
|
, views: views
|
||||||
|
});
|
||||||
|
// HACK (a bit). Issue is that Backbone will not trigger the route
|
||||||
|
// if you are already at that location so we have to make sure we genuinely switch
|
||||||
|
window.dataExplorer.router.navigate('graph');
|
||||||
|
window.dataExplorer.router.navigate('', true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// convenience function
|
||||||
|
function standardViews(dataset) {
|
||||||
var views = [
|
var views = [
|
||||||
{
|
{
|
||||||
id: 'grid',
|
id: 'grid',
|
||||||
@@ -18,50 +65,11 @@ $(function() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
window.dataExplorer = new recline.View.DataExplorer({
|
return views;
|
||||||
el: $el
|
}
|
||||||
, model: dataset
|
|
||||||
, views: views
|
|
||||||
});
|
|
||||||
Backbone.history.start();
|
|
||||||
setupLoadFromWebstore(function(dataset) {
|
|
||||||
window.dataExplorer.remove();
|
|
||||||
var $el = $('<div />');
|
|
||||||
$el.appendTo($('.data-explorer-here'));
|
|
||||||
window.dataExplorer = null;
|
|
||||||
var views = [
|
|
||||||
{
|
|
||||||
id: 'grid',
|
|
||||||
label: 'Grid',
|
|
||||||
view: new recline.View.DataGrid({
|
|
||||||
model: dataset
|
|
||||||
})
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'graph',
|
|
||||||
label: 'Graph',
|
|
||||||
view: new recline.View.FlotGraph({
|
|
||||||
model: dataset
|
|
||||||
})
|
|
||||||
}
|
|
||||||
];
|
|
||||||
window.dataExplorer = new recline.View.DataExplorer({
|
|
||||||
el: $el
|
|
||||||
, model: dataset
|
|
||||||
, views: views
|
|
||||||
});
|
|
||||||
// HACK (a bit). Issue is that Backbone will not trigger the route
|
|
||||||
// if you are already at that location so we have to make sure we genuinely switch
|
|
||||||
window.dataExplorer.router.navigate('graph');
|
|
||||||
window.dataExplorer.router.navigate('', true);
|
|
||||||
});
|
|
||||||
$('a.set-read-only').click(function() {
|
|
||||||
window.dataExplorer.setReadOnly();
|
|
||||||
alert('Read-only mode set');
|
|
||||||
});
|
|
||||||
})
|
|
||||||
|
|
||||||
function demoDataset() {
|
// provide a demonstration in memory dataset
|
||||||
|
function localDataset() {
|
||||||
var datasetId = 'test-dataset';
|
var datasetId = 'test-dataset';
|
||||||
var inData = {
|
var inData = {
|
||||||
metadata: {
|
metadata: {
|
||||||
@@ -85,7 +93,8 @@ function demoDataset() {
|
|||||||
return dataset;
|
return dataset;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setupLoadFromWebstore(callback) {
|
// setup the loader menu in top bar
|
||||||
|
function setupLoader(callback) {
|
||||||
// pre-populate webstore load form with an example url
|
// pre-populate webstore load form with an example url
|
||||||
var demoUrl = 'http://thedatahub.org/api/data/b9aae52b-b082-4159-b46f-7bb9c158d013';
|
var demoUrl = 'http://thedatahub.org/api/data/b9aae52b-b082-4159-b46f-7bb9c158d013';
|
||||||
$('form.webstore-load input[name="source"]').val(demoUrl);
|
$('form.webstore-load input[name="source"]').val(demoUrl);
|
||||||
|
|||||||
Reference in New Issue
Block a user