/** Controller for the main index.html page */
define(
function( require ) {
var Marionette = require( "marionette" ),
Backbone = require( "backbone" ),
_ = require( "underscore" ),
fui = require( "app/fui" ),
sprintf = require( "sprintf" ),
DatasetSelectionListView = require( "app/views/dataset-selection-list" );
var IndexController = function() {
this.initEvents();
};
// add the behaviours defined on the controller
_.extend( IndexController.prototype, {
initEvents: function() {
_.bindAll( this, "onServerModelReady" );
fui.vent.on( "models.fuseki-server.ready", this.onServerModelReady );
},
onServerModelReady: function() {
new DatasetSelectionListView( {model: fui.models.fusekiServer} ).render();
this.displayVersion();
},
/** Display the fuseki software version */
displayVersion: function() {
var sd = fui.models.fusekiServer.get( "serverDescription" );
var version = sd.version;
var uptime = sd.uptime;
var s = uptime % 60;
var m = Math.floor( (uptime / 60) % 60 );
var h = Math.floor( (uptime / (60 * 60)) % 24 );
var d = Math.floor( (uptime / (60 * 60 * 24)) );
var status = sprintf( "Version %s. Uptime: %s %s %dm %02ds",
version,
(d > 0 ? d + "d" : ""),
(h > 0 ? h + "h" : ""),
m, s );
$('.host-details').html( status );
}
} );
return IndexController;
}
);