123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /**
- * Controller for the embedded Qonsole component.
- *
- * Note: unlike some Qonsole installations, the endpoint URL selector dropdown
- * has been removed in favour of the dataset selector control higher up the page.
- **/
- define(
- function( require ) {
- var Marionette = require( "marionette" ),
- Backbone = require( "backbone" ),
- _ = require( "underscore" ),
- fui = require( "app/fui" ),
- qonsole = require( "qonsole" ),
- pageUtils = require( "app/util/page-utils" );
- var QueryController = function() {
- this.initEvents();
- };
- // add the behaviours defined on the controller
- _.extend( QueryController.prototype, {
- initEvents: function() {
- _.bindAll( this, "onServerModelReady", "onDatasetChanged" );
- if (fui.models.fusekiServer && fui.models.fusekiServer.get( "ready" )) {
- this.onServerModelReady();
- }
- else {
- fui.vent.on( "models.fuseki-server.ready", this.onServerModelReady );
- }
- fui.vent.on( "dataset.changed", this.onDatasetChanged );
- },
- /** Initialise the qonsole component */
- initQonsole: function( datasetsConfig ) {
- var qonfig = require( "app/qonsole-config" );
- qonsole.init( qonfig );
- var dsName = fui.models.fusekiServer.selectedDatasetName();
- if (dsName) {
- this.setEndpointURL( dsName );
- }
- },
- /** When the fuseki server is ready, we can init the qonsole */
- onServerModelReady: function( event ) {
- var fusekiServer = fui.models.fusekiServer;
- var endpoints = {};
- var datasets = fusekiServer.datasets();
- this.initQonsole( {} );
- },
- /** When notified that the selected dataset name has changed, update the endpoint URL */
- onDatasetChanged: function( dsName ) {
- this.setEndpointURL( dsName );
- },
- /** Set the endpoint URL based on the selected dataset name */
- setEndpointURL: function( dsName ) {
- var dataset = fui.models.fusekiServer.dataset( dsName );
- qonsole.setCurrentEndpoint( dataset.queryURL() );
- }
- } );
- return QueryController;
- }
- );
|