Author: ijd
Date: Fri Jun 13 12:02:20 2014
New Revision: 1602400

URL: http://svn.apache.org/r1602400
Log:
Switch to using Graph Store Protocol to upload data

Modified:
    jena/Experimental/jena-fuseki2/src/main/webapp/css/fui.css
    jena/Experimental/jena-fuseki2/src/main/webapp/js/app/models/dataset.js
    
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/templates/file-upload.tpl
    jena/Experimental/jena-fuseki2/src/main/webapp/js/app/views/file-upload.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=1602400&r1=1602399&r2=1602400&view=diff
==============================================================================
--- jena/Experimental/jena-fuseki2/src/main/webapp/css/fui.css (original)
+++ jena/Experimental/jena-fuseki2/src/main/webapp/css/fui.css Fri Jun 13 
12:02:20 2014
@@ -142,3 +142,8 @@ a.navbar-brand img {
 .file-description {
   margin-top: 10px;
 }
+
+.graph-label label {
+  text-align: right;
+  padding-top: 5px;
+}

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=1602400&r1=1602399&r2=1602400&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 Fri 
Jun 13 12:02:20 2014
@@ -58,21 +58,26 @@ define(
       endpointURL: function( serviceType ) {
         var url = this.endpointOfType( serviceType );
         return url ? sprintf( "%s%s/%s", this.baseURL(), this.name(), url ) : 
null;
-      } ,
+      },
 
       /** Return the sparql query URL for this dataset, if it has one, or null 
*/
       queryURL: function() {
         return this.endpointURL( "query" ) ;
-      } ,
+      },
 
       /** Return the sparql update URL for this dataset, if it has one, or 
null */
       updateURL: function() {
         return this.endpointURL( "update" ) ;
-      } ,
+      },
+
+      /** Return the GSP write URL for this dataset, if it has one, or null */
+      graphStoreProtocolURL: function() {
+        return this.endpointURL( "graph store protocol" ) ;
+      },
 
       /** Return the sparql upload URL for this dataset, if it has one, or 
null */
-      uploadURL: function() {
-        return this.endpointURL( "upload" ) ;
+      uploadURL: function( graphName ) {
+        return sprintf( "%s?graph=%s", this.graphStoreProtocolURL(), graphName 
);
       }
 
     } );

Modified: 
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/templates/file-upload.tpl
URL: 
http://svn.apache.org/viewvc/jena/Experimental/jena-fuseki2/src/main/webapp/js/app/templates/file-upload.tpl?rev=1602400&r1=1602399&r2=1602400&view=diff
==============================================================================
--- 
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/templates/file-upload.tpl 
(original)
+++ 
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/templates/file-upload.tpl 
Fri Jun 13 12:02:20 2014
@@ -1,40 +1,45 @@
-<div class="col-md-12">
+<div class="col-md-12 ful">
   <h2>Upload files</h2>
   <p>Load data into the default graph of the currently selected dataset.
     To upload data into a named graph, upload a quad format file such as TriG.
   </p>
 
-  <div class="col-md-12">
-    <form id="fileuploadForm" class="form-horizontal" role="form" 
method="POST" enctype="multipart/form-data">
-      <div class="form-group hidden">
+  <div class="row">
+      <div class="form-group2 graph-label">
         <label for="uploadGraphName" class="col-sm-3 
control-label">Destination graph name</label>
         <span class="col-sm-9">
-          <input type="text" name="graph" id="graphName" placeholder="Leave 
blank for default graph" class="form-control">
+          <p>
+            <input type="text" name="graph" id="graphName" placeholder="Leave 
blank for default graph" class="form-control">
+          </p>
         </span>
       </div> <!-- /.form-group -->
+  </div>
 
-
-      <div class="form-group">
-        <div class="col-sm-9 col-sm-offset-3">
-          <span>
-            <span class="btn btn-success fileinput-button">
-                <i class="fa fa-plus"></i>
-                <span>select files...</span>
-                <input id="fileupload" type="file" name="files[]" multiple>
+  <div class="row">
+      <form id="fileuploadForm" class="form-horizontal" role="form" 
method="POST" enctype="multipart/form-data">
+        <div class="form-group2">
+          <label class="col-sm-3 control-label">Files to upload</label>
+          <div class="col-sm-9">
+            <span>
+              <span class="btn btn-success fileinput-button">
+                  <i class="fa fa-plus"></i>
+                  <span>select files...</span>
+                  <input id="fileupload" type="file" name="files[]" multiple>
+              </span>
+              <button type="submit" class="btn btn-primary start 
action-upload-all" disabled>
+                  <i class="fa fa-upload"></i>
+                  <span>upload all</span>
+              </button>
             </span>
-            <button type="submit" class="btn btn-primary start 
action-upload-all" disabled>
-                <i class="fa fa-upload"></i>
-                <span>upload all</span>
-            </button>
-          </span>
-        </div>
-      </div> <!-- /.form-group -->
+          </div>
+        </div> <!-- /.form-group -->
 
-      <div class="form-group">
-        <div class="col-sm-9 col-sm-offset-3">
-          <ul class="list-unstyled">
-          </ul>
-        </div>
-      </div> <!-- /.form-group -->
-    </form>
-</div>
\ No newline at end of file
+        <div class="form-group2">
+          <div class="col-sm-9 col-sm-offset-3">
+            <ul class="list-unstyled">
+            </ul>
+          </div>
+        </div> <!-- /.form-group -->
+      </form>
+  </div>
+ </div>
\ No newline at end of file

Modified: 
jena/Experimental/jena-fuseki2/src/main/webapp/js/app/views/file-upload.js
URL: 
http://svn.apache.org/viewvc/jena/Experimental/jena-fuseki2/src/main/webapp/js/app/views/file-upload.js?rev=1602400&r1=1602399&r2=1602400&view=diff
==============================================================================
--- jena/Experimental/jena-fuseki2/src/main/webapp/js/app/views/file-upload.js 
(original)
+++ jena/Experimental/jena-fuseki2/src/main/webapp/js/app/views/file-upload.js 
Fri Jun 13 12:02:20 2014
@@ -32,7 +32,8 @@ define(
       collection: new Backbone.Collection(),
 
       ui: {
-        fileUpload: '#fileuploadForm'
+        fileUpload: '#fileuploadForm',
+        graphLabel: '.graph-label input'
       },
 
       events: {
@@ -45,7 +46,7 @@ define(
       onRender: function() {
         // initialise the file upload widget
         this.ui.fileUpload.fileupload( {
-          dataType: 'html',
+          dataType: 'json',
           add: this.onUploadAdd,
           progress: this.onProgress
         } );
@@ -137,7 +138,7 @@ define(
 
         var file = model.get( "file" );
         var ds = fui.models.fusekiServer.selectedDataset();
-        var url = ds.uploadURL();
+        var url = ds.uploadURL( this.destinationGraphName() );
 
         this.ui.fileUpload.fileupload( 'send', {
           files: [file],
@@ -147,6 +148,12 @@ define(
           .fail( this.onUploadFail );
       },
 
+      /** Return the selected graph name, or 'default' */
+      destinationGraphName: function() {
+        var gName = this.ui.graphLabel.val();
+        return (gName && gName !== "") ? gName : 'default';
+      },
+
       /** Callback on progress against an upload */
       onProgress: function( e, data ) {
         var complete = Math.round( 100.0 * data.loaded/ data.total);
@@ -157,8 +164,13 @@ define(
 
       /** Callback on successful completion */
       onUploadDone: function( data, response ) {
-        var triples = data.match( /Triples = (\d+)/ )[1];
-        this.displayUploadResult( sprintf( "<p><small>Result: 
<strong>success</strong>. %s triples</small></p>", triples ), "" );
+        var label = "Data file was empty.";
+        if ((data.count) > 0) {
+          var s = (data.count === 1) ? "" : "s";
+          label = sprintf( "%d %s%s", data.count, ((data.tripleCount > 0) ? 
"triple" : "quad"), s );
+        }
+
+        this.displayUploadResult( sprintf( "<p><small>Result: 
<strong>success</strong>. %s</small></p>", label ), "" );
 
         if (this.loadAll) {
           this.loadNextAvailableFile( true );


Reply via email to