|
From: <tob...@us...> - 2014-07-22 23:03:19
|
Revision: 8587
http://sourceforge.net/p/bigdata/code/8587
Author: tobycraig
Date: 2014-07-22 23:03:15 +0000 (Tue, 22 Jul 2014)
Log Message:
-----------
Workbench now remembers last used namespace between sessions
Modified Paths:
--------------
branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js
Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js
===================================================================
--- branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js 2014-07-22 18:16:22 UTC (rev 8586)
+++ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js 2014-07-22 23:03:15 UTC (rev 8587)
@@ -58,7 +58,7 @@
var QUERY_RESULTS, PAGE_SIZE = 50, TOTAL_PAGES, CURRENT_PAGE;
// namespaces
-var DEFAULT_NAMESPACE, NAMESPACE, NAMESPACES_READY;
+var DEFAULT_NAMESPACE, NAMESPACE, NAMESPACES_READY = false, DEFAULT_NAMESPACE_READY = false;
// namespace creation
var NAMESPACE_PARAMS = {
@@ -253,19 +253,32 @@
});
}
+// waits for namespaces to be loaded, then tries to use the supplied namespace
function selectNamespace(name) {
- // for programmatically selecting a namespace with just its name
if(!NAMESPACES_READY) {
setTimeout(function() { selectNamespace(name); }, 10);
} else {
- $('#namespaces-list tr[data-name=' + name + '] a.use-namespace').click();
+ useNamespace(name);
}
}
+// waits for default namespace to be loaded, then uses it
+function selectDefaultNamespace() {
+ if(!DEFAULT_NAMESPACE_READY) {
+ setTimeout(function() { selectDefaultNamespace(); }, 10);
+ } else {
+ selectNamespace(DEFAULT_NAMESPACE);
+ }
+}
+
function useNamespace(name) {
+ if(!namespaceExists(name)) {
+ return;
+ }
$('#current-namespace').html(name);
NAMESPACE = name;
getNamespaces();
+ localStorage['lastNamespace'] = name;
}
function deleteNamespace(namespace) {
@@ -342,13 +355,17 @@
});
}
+function namespaceExists(name) {
+ return $('#namespaces-list tr[data-name=' + name + ']').length != 0;
+}
+
function validateNamespaceOptions() {
var errors = [];
var name = $('#new-namespace-name').val().trim();
if(!name) {
errors.push('Enter a name');
}
- if($('#namespaces-list tr[data-name=' + name + ']').length != 0) {
+ if(namespaceExists(name)) {
errors.push('Name already in use');
}
if($('#new-namespace-mode').val() == 'quads' && $('#new-namespace-inference').is(':checked')) {
@@ -424,8 +441,7 @@
// Chrome does not work with rdf\:Description, so look for Description too
var defaultDataset = $(data).find('rdf\\:Description, Description');
DEFAULT_NAMESPACE = defaultDataset.find('title')[0].textContent;
- var url = defaultDataset.find('sparqlEndpoint')[0].attributes['rdf:resource'].textContent;
- useNamespace(DEFAULT_NAMESPACE);
+ DEFAULT_NAMESPACE_READY = true;
});
}
@@ -1646,6 +1662,18 @@
}
+/* Local storage functions */
+
+function loadLastNamespace() {
+ if(localStorage['lastNamespace']) {
+ selectNamespace(localStorage['lastNamespace']);
+ } else {
+ // no previously selected namespace, or it doesn't exist - use the default
+ selectDefaultNamespace();
+ }
+}
+
+
/* Startup functions */
function setupHandlers() {
@@ -1713,6 +1741,8 @@
showHealthTab();
+ getNamespaces();
+
getDefaultNamespace();
createNamespaceShortcuts();
@@ -1722,6 +1752,8 @@
createQueryEditor();
createExportOptions();
+
+ loadLastNamespace();
}
startup();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|