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;
+  }
+);


Reply via email to