Author: ijd
Date: Thu Jun 26 18:27:30 2014
New Revision: 1605872
URL: http://svn.apache.org/r1605872
Log:
Add uptime to landing page. Initial skeleton of dataset info page,
with list of available services.
Added:
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/templates/dataset-info.tpl
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/views/dataset-info.js
Modified:
jena/Experimental/jena-fuseki2/src/main/webapp/css/fui.css
jena/Experimental/jena-fuseki2/src/main/webapp/dataset.html
jena/Experimental/jena-fuseki2/src/main/webapp/index.html
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/controllers/dataset-controller.js
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/controllers/index-controller.js
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/models/dataset.js
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/models/fuseki-server.js
Modified: jena/Experimental/jena-fuseki2/src/main/webapp/css/fui.css
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-fuseki2/src/main/webapp/css/fui.css?rev=1605872&r1=1605871&r2=1605872&view=diff
==============================================================================
--- jena/Experimental/jena-fuseki2/src/main/webapp/css/fui.css (original)
+++ jena/Experimental/jena-fuseki2/src/main/webapp/css/fui.css Thu Jun 26
18:27:30 2014
@@ -16,6 +16,10 @@ h2 + p {
margin-bottom: 18px;
}
+h3 {
+ font-size: 13pt;
+}
+
a#server-status-light {
display: inline-block;
margin: 0;
@@ -147,3 +151,11 @@ a.navbar-brand img {
text-align: right;
padding-top: 5px;
}
+
+.dl-horizontal dt {
+ width: 200px;
+}
+
+.dl-horizontal dd {
+ margin-left: 220px
+}
Modified: jena/Experimental/jena-fuseki2/src/main/webapp/dataset.html
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-fuseki2/src/main/webapp/dataset.html?rev=1605872&r1=1605871&r2=1605872&view=diff
==============================================================================
--- jena/Experimental/jena-fuseki2/src/main/webapp/dataset.html (original)
+++ jena/Experimental/jena-fuseki2/src/main/webapp/dataset.html Thu Jun 26
18:27:30 2014
@@ -236,7 +236,6 @@
<div class="tab-pane" id="info">
<div class="no-dataset">Please select a dataset.</div>
<div class="with-dataset hidden">
- config
</div>
</div>
Modified: jena/Experimental/jena-fuseki2/src/main/webapp/index.html
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-fuseki2/src/main/webapp/index.html?rev=1605872&r1=1605871&r2=1605872&view=diff
==============================================================================
--- jena/Experimental/jena-fuseki2/src/main/webapp/index.html (original)
+++ jena/Experimental/jena-fuseki2/src/main/webapp/index.html Thu Jun 26
18:27:30 2014
@@ -62,7 +62,10 @@
<div class="container">
<div class="row">
<div class="col-md-12">
- <h1 class="text-center">Apache Jena Fuseki <small>version <span
class='host-details text-muted'></span></small></h1>
+ <h1 class="text-center">Apache Jena Fuseki</h1>
+ <div class="text-muted text-center">
+ <small class='host-details'></small>
+ </div>
</div>
</div>
Modified:
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/controllers/dataset-controller.js
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-fuseki2/src/main/webapp/js/app/controllers/dataset-controller.js?rev=1605872&r1=1605871&r2=1605872&view=diff
==============================================================================
---
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/controllers/dataset-controller.js
(original)
+++
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/controllers/dataset-controller.js
Thu Jun 26 18:27:30 2014
@@ -10,6 +10,7 @@ define(
DatasetSelectorView = require( "app/views/dataset-selector" ),
TabbedViewManagerView = require( "app/views/tabbed-view-manager" ),
FileUploadView = require( "app/views/file-upload" ),
+ DatasetInfoView = require( "app/views/dataset-info" ),
QueryController = require( "app/controllers/query-controller" ),
UploadController = require( "app/controllers/upload-controller" );
@@ -21,7 +22,7 @@ define(
_.extend( DatasetController.prototype, {
initEvents: function() {
- _.bindAll( this, "onServerModelReady" );
+ _.bindAll( this, "onServerModelReady", "onDatasetChanged" );
if (fui.models.fusekiServer && fui.models.fusekiServer.get( "ready" ))
{
this.onServerModelReady();
@@ -29,6 +30,8 @@ define(
else {
fui.vent.on( "models.fuseki-server.ready", this.onServerModelReady );
}
+
+ fui.vent.on( "dataset.changed", this.onDatasetChanged );
},
/**
@@ -44,6 +47,14 @@ define(
fui.controllers.queryController = new QueryController();
fui.controllers.uploadController = new UploadController();
+
+ },
+
+ /** Dataset has changed */
+ onDatasetChanged: function( dsName ) {
+ var dataset = fui.models.fusekiServer.dataset( dsName );
+ fui.views.datasetInfoView = new DatasetInfoView( {model: dataset} );
+ fui.views.datasetInfoView.render();
}
} );
Modified:
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/controllers/index-controller.js
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-fuseki2/src/main/webapp/js/app/controllers/index-controller.js?rev=1605872&r1=1605871&r2=1605872&view=diff
==============================================================================
---
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/controllers/index-controller.js
(original)
+++
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/controllers/index-controller.js
Thu Jun 26 18:27:30 2014
@@ -5,6 +5,7 @@ define(
Backbone = require( "backbone" ),
_ = require( "underscore" ),
fui = require( "app/fui" ),
+ sprintf = require( "sprintf" ),
DatasetSelectionListView = require( "app/views/dataset-selection-list"
);
var IndexController = function() {
@@ -26,7 +27,20 @@ define(
/** Display the fuseki software version */
displayVersion: function() {
- $('.host-details').html( fui.models.fusekiServer.get( "version" ) );
+ 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 );
}
} );
Modified:
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/models/dataset.js
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-fuseki2/src/main/webapp/js/app/models/dataset.js?rev=1605872&r1=1605871&r2=1605872&view=diff
==============================================================================
--- jena/Experimental/jena-fuseki2/src/main/webapp/js/app/models/dataset.js
(original)
+++ jena/Experimental/jena-fuseki2/src/main/webapp/js/app/models/dataset.js Thu
Jun 26 18:27:30 2014
@@ -46,6 +46,26 @@ define(
return _.map( this.services(), function( s ) {return s["srv.type"];} );
},
+ /** Return a descriptive data-structure listing all this datasets
services */
+ servicesDescription: function() {
+ var description = [];
+ var self = this;
+
+ _.each( this.services(), function( s ) {
+ _.each( s["srv.endpoints"], function( e ) {
+ description.push( {label: s["srv.type"],
+ url: self.datasetEndpointURL( e )
+ } );
+ } );
+ } );
+
+ description.sort( function( d0, d1 ) {
+ return (d0.label < d1.label) ? -1 : (d0.label > d1.label ? 1 : 0);
+ } );
+
+ return description;
+ },
+
/** Return the first service that has the given type */
serviceOfType: function( serviceType ) {
return _.find( this.services(), function( s ) {
@@ -61,8 +81,13 @@ define(
/* Return URL for a service of a given type or null, if no such service
*/
endpointURL: function( serviceType ) {
- var url = this.endpointOfType( serviceType );
- return url ? sprintf( "%s%s/%s", this.baseURL(), this.name(), url ) :
null;
+ var endpoint = this.endpointOfType( serviceType );
+ return endpoint ? this.datasetEndpointURL( endpoint ) : null;
+ },
+
+ /** Return the URL for the given endpoint */
+ datasetEndpointURL: function( endpoint ) {
+ return sprintf( "%s%s/%s", this.baseURL(), this.name(), endpoint );
},
/** Return the sparql query URL for this dataset, if it has one, or null
*/
Modified:
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/models/fuseki-server.js
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-fuseki2/src/main/webapp/js/app/models/fuseki-server.js?rev=1605872&r1=1605871&r2=1605872&view=diff
==============================================================================
---
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/models/fuseki-server.js
(original)
+++
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/models/fuseki-server.js
Thu Jun 26 18:27:30 2014
@@ -101,10 +101,9 @@ define(
} );
this.set( {
- server: serverDesc.server,
+ serverDescription: serverDesc,
datasets: datasets,
- ready: true,
- version: serverDesc.version
+ ready: true
} );
},
Added:
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/templates/dataset-info.tpl
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-fuseki2/src/main/webapp/js/app/templates/dataset-info.tpl?rev=1605872&view=auto
==============================================================================
---
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/templates/dataset-info.tpl
(added)
+++
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/templates/dataset-info.tpl
Thu Jun 26 18:27:30 2014
@@ -0,0 +1,24 @@
+<h2>
+ Dataset <%= name() %>
+</h2>
+
+<h3>Supported services</h3>
+
+<dl class="dl-horizontal">
+ <% _.each( servicesDescription(), function( serviceDescription ) { %>
+ <dt>
+ <%= serviceDescription.label %>:
+ </dt>
+ <dd>
+ <a href="<%= serviceDescription.url %>"><%= serviceDescription.url %></a>
+ </dd>
+ <% } ); %>
+</dl>
+
+<h3>Ongoing operations</h3>
+
+<p>TBD</p>
+
+<h3>Statistics</h3>
+
+<p>TBD</p>
\ No newline at end of file
Added:
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/views/dataset-info.js
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-fuseki2/src/main/webapp/js/app/views/dataset-info.js?rev=1605872&view=auto
==============================================================================
--- jena/Experimental/jena-fuseki2/src/main/webapp/js/app/views/dataset-info.js
(added)
+++ jena/Experimental/jena-fuseki2/src/main/webapp/js/app/views/dataset-info.js
Thu Jun 26 18:27:30 2014
@@ -0,0 +1,41 @@
+/** Component for showing detailed information about a dataset */
+
+define(
+ function( require ) {
+ var Backbone = require( "backbone" ),
+ _ = require( "underscore" ),
+ fui = require( "app/fui" ),
+ DatasetInfoTpl = require(
"plugins/text!app/templates/dataset-info.tpl" );
+
+ var DatasetInfo = Backbone.Marionette.ItemView.extend( {
+
+ initialize: function() {
+// _.bindAll( this );
+ },
+
+ template: _.template( DatasetInfoTpl ),
+
+ ui: {
+ },
+
+ el: "#info .with-dataset",
+
+ events: {
+ },
+
+ templateHelpers: {
+ },
+
+ serializeData: function() {
+ return this.model;
+ }
+
+ // event handlers
+
+
+ });
+
+
+ return DatasetInfo;
+ }
+);