You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2014/03/12 17:18:09 UTC
svn commit: r1576804 - in /jena/branches/jena-fuseki-new-ui/src/main/webapp:
js/app/controllers/upload-controller.js upload.html
Author: andy
Date: Wed Mar 12 16:18:08 2014
New Revision: 1576804
URL: http://svn.apache.org/r1576804
Log:
Rework HTML and destination dropdownlist
Modified:
jena/branches/jena-fuseki-new-ui/src/main/webapp/js/app/controllers/upload-controller.js
jena/branches/jena-fuseki-new-ui/src/main/webapp/upload.html
Modified: jena/branches/jena-fuseki-new-ui/src/main/webapp/js/app/controllers/upload-controller.js
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/webapp/js/app/controllers/upload-controller.js?rev=1576804&r1=1576803&r2=1576804&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/webapp/js/app/controllers/upload-controller.js (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/webapp/js/app/controllers/upload-controller.js Wed Mar 12 16:18:08 2014
@@ -2,81 +2,14 @@
define(
function( require ) {
var Marionette = require( "marionette" ),
- Backbone = require( "backbone" ),
- _ = require( "underscore" ),
- fui = require( "fui" ),
- pageUtils = require( "util/page-utils" ),
- DatasetsDropdownListView = require( "views/datasets-dropdown-list" );
+ Backbone = require( "backbone" ),
+ _ = require( "underscore" ),
+ fui = require( "fui" ),
+ pageUtils = require( "util/page-utils" ),
+ DatasetsDropdownListView = require( "views/datasets-dropdown-list" );
var UploadController = function() {
this.initEvents();
- bindEvents() ;
- };
-
- var _config = {} ;
-
- var initEndpoints = function(endpoints) {
- var ulEndpoints = $("ul.endpoints");
- ulEndpoints.empty();
-
- $.each( endpoints, function( key, url ) {
- var html = sprintf( "<li role='presentation'><a role='menuitem' tabindex='-1' href='#'>%s</a></li>", url );
- ulEndpoints.append( html );
- } );
-
- setCurrentEndpoint( endpoints["default"] );
- } ;
-
- var bindEvents = function() {
- $(".endpoints").on( "click", "a", function( e ) {
- var elem = $(e.currentTarget);
- setCurrentEndpoint( $.trim( elem.text() ) );
- } );
- $("ul.formats").on( "click", "a", function( e ) {
- var elem = $(e.currentTarget);
- setCurrentFormat( elem.data( "value" ), $.trim( elem.text() ) );
- } );
-
- $(".run-upload").on( "click", runUpload );
- } ;
-
- /** Return the current endpoint text */
- var currentEndpoint = function( ) {
- return $("[id=uploadEndpoint]").val();
- };
-
- /** Set the current endpoint text */
- var setCurrentEndpoint = function( url ) {
- $("[id=uploadEndpoint]").val( url );
- };
-
- var runUpload = function( e ) {
- console.info("runUpload") ;
- e.preventDefault();
-
- var url = currentEndpoint();
- console.info(sprintf("runUpload: %s", url)) ;
-
- var options = {
-// data: {query: query, output: format},
-// success: function( data, xhr ) {
-// onQuerySuccess( data, format );
-// },
- success: onUploadSuccess ,
- error: onUploadFail
- };
-
- $.ajax( url, options );
- } ;
-
- var onUploadSuccess = function( data, format ) {
- console.info("Upload - onUploadSuccess") ;
- } ;
-
- /** Report query failure */
- var onUploadFail = function( jqXHR, textStatus, errorThrown ) {
- var text = jqXHR.valueOf().responseText || sprintf( "Sorry, that didn't work because: '%s'", jqXHR.valueOf().statusText );
- $("#results").html( sprintf( "<pre class='text-danger'>%s</pre>", _.escape(text) ) );
};
// add the behaviours defined on the controller
@@ -86,6 +19,22 @@ define(
fui.vent.on( "models.fuseki-server.ready", this.onServerModelReady );
},
+ /** Return a hashmap of datasets */
+ datasetsConfig: function( endpoints, datasets ) {
+ _.each( datasets, function( ds ) {
+ var uploadURL = ds.uploadURL();
+ if (uploadURL) {
+ endpoints[ds.name()] = uploadURL;
+
+ if (!endpoints["default"]) {
+ endpoints["default"] = uploadURL;
+ }
+ }
+ } );
+
+ return endpoints;
+ },
+
/** Set the default endpoint, if it was passed in the URL */
setDefaultEndpoint: function( fusekiServer, endpoints ) {
var dsName = pageUtils.queryParam( "ds" );
@@ -93,17 +42,36 @@ define(
var ds = fusekiServer.dataset( dsName );
endpoints["default"] = ds.uploadURL();
}
- },
+ },
+
+ /** Return a hashmap in a form we can pass to initUploader (c.f. a qconsole config) */
+ datasetsConfig: function( endpoints, datasets ) {
+ _.each( datasets, function( ds ) {
+ var uploadURL = ds.uploadURL();
+ if (uploadURL) {
+ endpoints[ds.name()] = uploadURL;
+
+ if (!endpoints["default"]) {
+ endpoints["default"] = uploadURL;
+ }
+ }
+ } );
+
+ var x = {} ;
+ x.endpoints = endpoints ;
+ return x ;
+ },
/** When the fuseki server is ready, we can list the initial datasets */
onServerModelReady: function( event ) {
- var fusekiServer = fui.models.fusekiServer;
+ var fusekiServer = fui.models.fusekiServer;
var endpoints = {};
var datasets = fusekiServer.datasets();
this.setDefaultEndpoint( fusekiServer, endpoints );
- initEndpoints(endpoints) ;
+ var config = this.datasetsConfig(endpoints, datasets) ;
+ initUploader(config) ; ;
var ddlv = new DatasetsDropdownListView( {model: datasets} );
ddlv.render();
@@ -112,6 +80,57 @@ define(
} );
- return UploadController;
+ // Like qconsole initialization.
+ var initUploader = function( config ) {
+ initEndpoints(config) ;
+ bindEvents();
+ };
+
+ /** Bind events that we want to manage */
+ var bindEvents = function() {
+ $(".endpoints").on( "click", "a", function( e ) {
+ var elem = $(e.currentTarget);
+ setCurrentEndpoint( $.trim( elem.text() ) );
+ } );
+
+ // TODO Conflicts with the JQuery uploader?
+ $(".run-upload").on( "click", runUpload );
+ };
+
+ /** Set up the drop-down list of end-points */
+ var initEndpoints = function( config ) {
+ var endpoints = $("ul.endpoints");
+ endpoints.empty();
+
+ $.each( config.endpoints, function( key, url ) {
+ var html = sprintf( "<li role='presentation'><a role='menuitem' tabindex='-1' href='#'>%s</a></li>",
+ url );
+ endpoints.append( html );
+ } );
+
+ setCurrentEndpoint( config.endpoints["default"] );
+ };
+
+ /** Set the current endpoint text */
+ var setCurrentEndpoint = function( url ) {
+ $("[id=uploadEndpoint]").val( url );
+ };
+
+ /** Return the current endpoint text */
+ var currentEndpoint = function( url ) {
+ return $("[id=uploadEndpoint]").val();
+ };
+
+ var runUpload = function( e ) {
+ e.preventDefault();
+ resetResults() ;
+
+ console.info("runUpload") ;
+ var url = currentEndpoint();
+ console.info(sprintf("runUpload: %s", url)) ;
+
+ // ?????
+ } ;
+ return UploadController;
}
);
Modified: jena/branches/jena-fuseki-new-ui/src/main/webapp/upload.html
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/webapp/upload.html?rev=1576804&r1=1576803&r2=1576804&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/webapp/upload.html (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/webapp/upload.html Wed Mar 12 16:18:08 2014
@@ -113,47 +113,47 @@
<div class="col-md-12 well">
<div class="query-chrome">
+ <form class="form-inline" role="form">
- <div class="form-group">
- <label for="uploadEndpoint">Destination</label>
- <input type="text" class="form-control" id="uploadEndpoint" />
- </div>
-
- <!-- UPLOAD -->
- <!-- Form like settings -->
+ <div class="form-group">
+ <label for="uploadEndpoint"></label>
+ <div class="dropdown ">
+ <a data-toggle="dropdown" class="btn btn-custom2" href="#">
+ Select Destination <i class="icon-collapse"></i></a>
+ <ul class="dropdown-menu endpoints" role="menu" aria-labelledby="dropdownMenu1"></ul>
+ </div>
+ </div>
- <div class="form-group">
- <label for="uploadEndpoint"></label>
- <div class="dropdown ">
- <a data-toggle="dropdown" class="btn btn-custom2" href="#">
- Select Destination <i class="icon-collapse"></i></a>
- <ul class="dropdown-menu endpoints" role="menu" aria-labelledby="dropdownMenu1"></ul>
+ <div class="form-group">
+ <label for="uploadEndpoint">Destination</label>
+ <input type="text" class="form-control" id="uploadEndpoint" />
</div>
- </div>
+ <div class="form-group">
+ <!-- The fileinput-button span is used to style the file input field as button -->
+ <span class="btn btn-success fileinput-button">
+ <i class="glyphicon glyphicon-plus"></i>
+ <span>Select files...</span>
+ <!-- The file input field used as target for the file upload widget -->
+ <input id="fileupload" type="file" name="files[]" multiple>
+ </span>
+ <br>
+ <br>
+ <!-- The global progress bar -->
+ <div id="progress" class="progress">
+ <div class="progress-bar progress-bar-success"></div>
+ </div>
+ <!-- The container for the uploaded files -->
+ <div id="files" class="files"></div>
+ </div>
- <!-- The fileinput-button span is used to style the file input field as button -->
- <span class="btn btn-success fileinput-button">
- <i class="glyphicon glyphicon-plus"></i>
- <span>Select files...</span>
- <!-- The file input field used as target for the file upload widget -->
- <input id="fileupload" type="file" name="files[]" multiple>
- </span>
- <br>
- <br>
- <!-- The global progress bar -->
- <div id="progress" class="progress">
- <div class="progress-bar progress-bar-success"></div>
+ </form>
</div>
- <!-- The container for the uploaded files -->
- <div id="files" class="files"></div>
- <br>
-
- </div>
</div>
- </div>
- </div>
+ </div> <!-- row -->
+ </div> <!-- container -->
+
<script>
/*global window, $ */
$(function () {