accurator/commit

Retrieve subdomain based on url parameter, resolves #255

authorChris Dijkshoorn
Sun Apr 17 15:53:17 2016 +0200
committerChris Dijkshoorn
Sun Apr 17 15:53:17 2016 +0200
commitb24495bbd2a105f7b66a7763e807b764f13c2924
tree8e2a56fa1eace3a7d92a24a0d02e79f12ead6946
parentf5db3b3e72c69a5270a5815f03d4f3e0cbc39410
Diff style: patch stat
diff --git a/web/js/components/domain.js b/web/js/components/domain.js
index 98825e8..f021525 100644
--- a/web/js/components/domain.js
+++ b/web/js/components/domain.js
@@ -33,7 +33,7 @@ Domain.prototype.init = function() {
 
 Domain.prototype.setLink = function() {
 	if (this.subDomains.length > 0) {
-		this.link = "topic.html";
+		this.link = "domain.html?domain=" + this.id;
 	} else if (this.expertiseTopics != null) {
 		this.link = "expertise.html";
 	} else {
@@ -59,7 +59,7 @@ Domain.prototype.setClickEvent = function() {
 	$(this.node).find("#domainTxt" + this.id).click(function() {
 		setDomain(_domain.id)
 		.then(function() {
-			document.location.href = "results.html";
+			document.location.href = _domain.link;
 		});
 	});
 }
diff --git a/web/js/domain.js b/web/js/domain.js
index 0d8cf7c..fa6514e 100644
--- a/web/js/domain.js
+++ b/web/js/domain.js
@@ -6,8 +6,8 @@ domains loaded in the triple store.
 *******************************************************************************/
 function domainInit() {
 	var locale = getLocale();
-	// be domain agnostic on domain selection screen
-	var domain = "generic";
+	var domain = getParameterByName("domain");
+	if (domain === "") domain = "generic"; // be domain agnostic
 
 	// add language switch to navbar
 	populateFlags(locale);
@@ -24,11 +24,10 @@ function domainInit() {
 	function drawPage(userData) {
 		setLinkLogo("profile");
 
-		getAvailableDomains()
+		getDomains(domain)
 		.then(function(domains) {
-			// draw all domains
-			populateDomains(locale, domains);
-			return domainSettings(domain);
+			populateDomains(locale, domains); // draw all domains
+			return domainSettings("generic"); // get generic settings for labels
 		})
 		.then(function(domainSettings) {
 			var ui = getUI(domainSettings, "domain");
@@ -43,14 +42,34 @@ function domainInit() {
 	}
 }
 
+function getDomains(domain) {
+	if (domain === "generic") {
+		return getAvailableDomains();
+	} else {
+		return domainSettings(domain).then(function(data) {
+			var domains = [];
+
+			for (var i=0; i<data.subDomains.length; i++) {
+				domains[i] = generateIdFromUri(data.subDomains[i]);// HACK, assumes the domain uri ends at the label
+			}
+			console.log(domains);
+			return domains;
+		});
+	}
+}
+
 function populateDomains(locale, domainLabels) {
 	var row;
 
 	// remove generic from the domains (does not work on ie 7 and 8..)
-	domainLabels.splice(domainLabels.indexOf("generic"), 1);
+	if (domainLabels.indexOf("generic") >= 0) {
+		domainLabels.splice(domainLabels.indexOf("generic"), 1);
+	}
+
+	console.log("labels ", domainLabels);
 
 	// get domain settings for all the domains
-	for (var i = 0; i < domainLabels.length; i++) {
+	for (var i=0; i<domainLabels.length; i++) {
 		// add a new row for every two domains
 		if (i%2 === 0) {
 			row = parseInt(i/2);