From d07f71aca3f76c6634b270bf7a78705a0247bf2f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20=C3=85kre=20Solberg?= <andreas.solberg@uninett.no>
Date: Mon, 11 Apr 2011 07:38:44 +0000
Subject: [PATCH] General update to DiscoJuice. Fixing some bugs, improvements
 to two level discovery protcoll.

git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@2804 44740490-163a-0410-bde0-09ae8108e29a
---
 modules/discojuice/lib/EmbedHelper.php        |  32 +++--
 .../www/discojuice/discojuice.control.js      | 116 +++++++++++-------
 .../www/discojuice/discojuice.misc.js         |   2 +-
 .../www/discojuice/discojuice.ui.js           |   6 +-
 .../discojuiceDiscoveryResponse.html          |   5 +-
 .../discojuice/www/discojuice/idpdiscovery.js |   2 +-
 .../discojuice/www/discojuice/logos/ntnu.png  | Bin 5150 -> 2308 bytes
 .../discojuice/www/discojuice/logos/uio.png   | Bin 5613 -> 5872 bytes
 .../www/discojuice/logos/uninett.png          | Bin 5933 -> 4720 bytes
 9 files changed, 100 insertions(+), 63 deletions(-)

diff --git a/modules/discojuice/lib/EmbedHelper.php b/modules/discojuice/lib/EmbedHelper.php
index c372e376a..20fd63ab5 100644
--- a/modules/discojuice/lib/EmbedHelper.php
+++ b/modules/discojuice/lib/EmbedHelper.php
@@ -7,27 +7,34 @@ class sspmod_discojuice_EmbedHelper {
 	
 	public static function head($includeJQuery = TRUE) {
 		
-		$version = '0.1';
+		$version = '0.1-' . rand(1000, 9999);
 		
 		$config = SimpleSAML_Configuration::getInstance();
 		$djconfig = SimpleSAML_Configuration::getOptionalConfig('discojuiceembed.php');
 		
 			
 		if ($includeJQuery) {	
-			echo '<!-- JQuery -->';
-			echo '<script type="text/javascript" language="javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/jquery-1.4.3.min.js') . '"></script>
-			<script type="text/javascript" language="javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/jquery-ui-1.8.5.custom.min.js') . '"></script>
+			echo '
+<!-- JQuery (Required for DiscoJuice) -->
+	<script type="text/javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/jquery-1.4.3.min.js') . '"></script>
+	<script type="text/javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/jquery-ui-1.8.5.custom.min.js') . '"></script>
 			
-			<link rel="stylesheet" type="text/css" href="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/css/custom/jquery-ui-1.8.5.custom.css') . '" />';
+	<link rel="stylesheet" type="text/css" href="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/css/custom/jquery-ui-1.8.5.custom.css') . '" />
+
+';
+
 		}
 		
 		
-		echo '<!-- DiscoJuice -->
-		<script type="text/javascript" language="javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/discojuice.misc.js?v=' . $version) . '"></script>
-		<script type="text/javascript" language="javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/discojuice.ui.js?v=' . $version) . '"></script>
-		<script type="text/javascript" language="javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/discojuice.control.js?v=' . $version) . '"></script>
+		echo '
+<!-- DiscoJuice (version identifier: ' . $version . ' ) -->
+	<script type="text/javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/discojuice.misc.js?v=' . $version) . '"></script>
+	<script type="text/javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/discojuice.ui.js?v=' . $version) . '"></script>
+	<script type="text/javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/discojuice.control.js?v=' . $version) . '"></script>
 		
-		<link rel="stylesheet" type="text/css" href="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/css/discojuice.css?v=' . $version) . '" />';
+	<link rel="stylesheet" type="text/css" href="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/css/discojuice.css?v=' . $version) . '" />
+
+';
 	
 		
 		$options = $djconfig->getValue('discojuice.options');
@@ -39,7 +46,10 @@ class sspmod_discojuice_EmbedHelper {
 		echo 'var target = "' . $target . '";' . "\n\n";
 		
 		echo 'options.countryAPI = "' . SimpleSAML_Module::getModuleURL('discojuice/country.php'). '"; ' . "\n";
-		echo 'options.metadata = "' . SimpleSAML_Module::getModuleURL('discojuice/feed.php'). '"; ' . "\n";
+		
+		if (empty($options['metadata'])) {
+			echo 'options.metadata = "' . SimpleSAML_Module::getModuleURL('discojuice/feed.php'). '"; ' . "\n";
+		}
 		
 		if (!empty($options['disco'])) {
 			echo 'options.disco.url = "' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/discojuiceDiscoveryResponse.html?'). '"; ' . "\n";
diff --git a/modules/discojuice/www/discojuice/discojuice.control.js b/modules/discojuice/www/discojuice/discojuice.control.js
index d32b59b5e..113ae267e 100644
--- a/modules/discojuice/www/discojuice/discojuice.control.js
+++ b/modules/discojuice/www/discojuice/discojuice.control.js
@@ -1,11 +1,13 @@
 /*
  * DiscoJuice
- *  Work is based upon mock up made by the Kantara ULX group.
+ *	Work is based upon mock up made by the Kantara ULX group.
  * 
  * Author: Andreas Ă…kre Solberg, UNINETT, andreas.solberg@uninett.no
  * Licence undecided. Awaiting alignment with the licence of the origin Kantara mockup.
  */
-if (typeof DiscoJuice == "undefined") var DiscoJuice = {};
+if (typeof DiscoJuice === "undefined") {
+	var DiscoJuice = {};
+}
 
 
 DiscoJuice.Control = {
@@ -13,7 +15,7 @@ DiscoJuice.Control = {
 	"parent" : DiscoJuice,
 
 	// Reference to the UI object...
-	"ui": null,	
+	"ui": null, 
 	"data": null,
 	
 	// Set filter values to filter the result.
@@ -30,11 +32,15 @@ DiscoJuice.Control = {
 	 */
 	"load": function() {
 		var that = this;		
-		if (this.data) return;
+		if (this.data) {
+			return;
+		}
 		var metadataurl = this.parent.Utils.options.get('metadata');
 		
 		this.parent.Utils.log('metadataurl is ' + metadataurl);
-		if (!metadataurl) return;
+		if (!metadataurl) {
+			return;
+		}
 		
 		$.getJSON(metadataurl, function(data) {
 			that.data = data;
@@ -44,7 +50,9 @@ DiscoJuice.Control = {
 	},
 	
 	"postLoad": function() {
-		if (!this.data) return;
+		if (!this.data) {
+			return;
+		}
 		
 		// Iterate through entities, and update title from DisplayNames to support Shibboleth integration.
 		for(i = 0; i < this.data.length; i++) {
@@ -83,7 +91,7 @@ DiscoJuice.Control = {
 	 */
 	"setWeight": function(entityID, weight) {
 		for(i = 0; i < this.data.length; i++) {
-			if (this.data[i].entityID == entityID) {
+			if (this.data[i].entityID === entityID) {
 				if (isNaN(this.data[i].weight)) this.data[i].weight = 0;
 				this.data[i].weight += weight;
 				this.parent.Utils.log('COOKIE Setting weight to ' + this.data[i].weight);
@@ -92,7 +100,7 @@ DiscoJuice.Control = {
 	},
 	
 	"discoResponse": function(entityID, sender) {
-		this.parent.Utils.log('DiscoResponse Received from [' + sender  + ']');
+		this.parent.Utils.log('DiscoResponse Received from [' + sender	+ ']');
 		this.setWeight(entityID, -100);
 		this.prepareData();
 	},
@@ -107,13 +115,13 @@ DiscoJuice.Control = {
 				this.data[i].distanceweight = (2 * Math.log(this.data[i].distance + 1)) - 10;
 			}
 		}
-// 		for(i = 0; i < this.data.length; i++) {
-// 			if (this.data[i].distance) {
-// 				console.log('Distance for [' + this.data[i].title + '] ' + this.data[i].distance);
-// 			} else {
-// 				console.log('Distance for [' + this.data[i].title + '] NA');
-// 			}
-// 		}
+//		for(i = 0; i < this.data.length; i++) {
+//			if (this.data[i].distance) {
+//				console.log('Distance for [' + this.data[i].title + '] ' + this.data[i].distance);
+//			} else {
+//				console.log('Distance for [' + this.data[i].title + '] NA');
+//			}
+//		}
 		this.showdistance = true;
 		this.prepareData();
 	},
@@ -174,17 +182,19 @@ DiscoJuice.Control = {
 	
 	"prepareData": function(showall) {
 	
-		var showall = (showall ? true : false);
+		showall = (showall ? true : false);
 	
 		this.parent.Utils.log('DiscoJuice.Control prepareData()');
 		
 		var hits, i, current, search;
 		var someleft = false;
 
- 		var term = this.getTerm();
- 		var categories = this.getCategories();
+		var term = this.getTerm();
+		var categories = this.getCategories();
 
-		if (!this.data) return;
+		if (!this.data) {
+			return;
+		}
 		
 		/*
 		 * Sort data by weight...
@@ -217,35 +227,41 @@ DiscoJuice.Control = {
 			
 			if (term) {
 				search = this.parent.Utils.searchMatch(current,term);
-				if (search === false && current.weight > -50) continue;
+				if (search === false && current.weight > -50) {
+					continue;
+				}
 			} else {
 				search = null;
 			}
 			
 			if (categories && categories.country) {
-				if (!current.country) continue;
-				if (current.country !== '_all_' && categories.country !== current.country && current.weight > -50) continue;
+				if (!current.country) {
+					continue;
+				}
+				if (current.country !== '_all_' && categories.country !== current.country && current.weight > -50) {
+					continue;
+				}
 			}
-// 			if (categories && categories.type) {
-// 				if (!current.ctype && current.weight > -50) {
-// 	//				DiscoJuice.log(current);
-// 				continue;
-// 				}
-// 	//			DiscoJuice.log(current.title + ' category ' + current.ctype);
-// 				if (categories.type !== current.ctype && current.weight > -50) continue;
-// 			}
+//			if (categories && categories.type) {
+//				if (!current.ctype && current.weight > -50) {
+//	//				DiscoJuice.log(current);
+//				continue;
+//				}
+//	//			DiscoJuice.log(current.title + ' category ' + current.ctype);
+//				if (categories.type !== current.ctype && current.weight > -50) continue;
+//			}
 
-			if (++hits > this.maxhits) { 
+			if (++hits > this.maxhits) {
 				someleft = true;
 				break;
 			}
 			
-	// 		DiscoJuice.log('Accept: ' + current.title);
+	//		DiscoJuice.log('Accept: ' + current.title);
 	
 			var countrydef = null;
 			if (current.country) {
 				var cname = (this.parent.Constants.Countries[current.country] ? this.parent.Constants.Countries[current.country] : current.country);
-				if (cname !== '_all_')  {
+				if (cname !== '_all_')	{
 					var cflag = (this.parent.Constants.Flags[current.country] ? this.parent.Constants.Flags[current.country] : undefined);
 					countrydef = {'country': cname, 'flag': cflag};
 				}
@@ -265,7 +281,7 @@ DiscoJuice.Control = {
 	
 	"selectProvider": function(entityID) {
 	
-		// console.log('entityid: '  + entityID);
+		// console.log('entityid: '	 + entityID);
 	
 		var callback;
 		var that = this;
@@ -278,7 +294,7 @@ DiscoJuice.Control = {
 
 		var entity = null;
 		for(i = 0; i < this.data.length; i++) {
-			if (this.data[i].entityID == entityID) {
+			if (this.data[i].entityID === entityID) {
 				entity = this.data[i];
 			}
 		}
@@ -305,7 +321,9 @@ DiscoJuice.Control = {
 	"discoReadSetup": function() {
 		var settings = this.parent.Utils.options.get('disco');
 		
-		if (!settings) return;
+		if (!settings) {
+			return;
+		}
 	
 		var html = '';
 		var returnurl = settings.url;
@@ -314,7 +332,9 @@ DiscoJuice.Control = {
 		var i;
 		var currentStore;
 		
-		if (!stores) return;
+		if (!stores) {
+			return;
+		}
 		
 		for(i = 0; i < stores.length; i++) {
 			currentStore = stores[i];
@@ -332,8 +352,12 @@ DiscoJuice.Control = {
 	"discoWrite": function(e) {
 	
 		var settings = this.parent.Utils.options.get('disco');
-		if (!settings) return false;
-		if (!settings.writableStore) return false;
+		if (!settings) {
+			return false;
+		}
+		if (!settings.writableStore) {
+			return false;
+		}
 	
 		var html = '';
 		var returnurl = settings.url;
@@ -362,7 +386,9 @@ DiscoJuice.Control = {
 			minLength: 0,
 			source: function( request, response ) {
 				var term = request.term;
-				if (term.length === 1) return;
+				if (term.length === 1) {
+					return;
+				}
 //				that.resetCategories();							
 				that.prepareData();
 			}
@@ -455,7 +481,7 @@ DiscoJuice.Control = {
 				
 				$.getJSON(countryapi, function(data) {
 		//			DiscoJuice.log(data);
-					if (data.status == 'ok' && data.country) {
+					if (data.status === 'ok' && data.country) {
 						that.parent.Utils.createCookie(data.country, 'Country2');
 						that.setCountry(data.country);
 						that.parent.Utils.log('DiscoJuice getCountry() : Country lookup succeeded: ' + data.country);
@@ -480,8 +506,7 @@ DiscoJuice.Control = {
 		//this.ui.popup.find("select.discojuice_filterTypeSelect").val()
 		this.ui.popup.find("select.discojuice_filterCountrySelect").val('all');
 	},
-	
-		
+
 	"getCategories": function () {
 		var filters = {};
 		var type, country;
@@ -507,7 +532,8 @@ DiscoJuice.Control = {
 	"resetTerm": function() {
 		//this.ui.popup.find("select.discojuice_filterTypeSelect").val()
 		this.ui.popup.find("input.discojuice_search").val('');
-	},
+	}
+
+};
 
 
-};
\ No newline at end of file
diff --git a/modules/discojuice/www/discojuice/discojuice.misc.js b/modules/discojuice/www/discojuice/discojuice.misc.js
index da89a947e..f85eacad3 100644
--- a/modules/discojuice/www/discojuice/discojuice.misc.js
+++ b/modules/discojuice/www/discojuice/discojuice.misc.js
@@ -66,7 +66,7 @@ DiscoJuice.Constants = {
 		'CH': 'ch.png',
 		'TR': 'tr.png',
 		'GB': 'gb.png',
-		'US': 'us.png',
+		'US': 'us.png'
 	}
 };
 
diff --git a/modules/discojuice/www/discojuice/discojuice.ui.js b/modules/discojuice/www/discojuice/discojuice.ui.js
index 4b97b49c6..f092a3c0d 100644
--- a/modules/discojuice/www/discojuice/discojuice.ui.js
+++ b/modules/discojuice/www/discojuice/discojuice.ui.js
@@ -191,7 +191,7 @@ DiscoJuice.UI = {
 				'</div>' +
 			'</div>' +
 			
-			'<div id="locatemediv">' +
+			'<div id="discojuice_locatemediv" style="display: none">' +
 				'<div class="locatemebefore">' +
 					'<p style="margin-top: 10px"><a id="locateme" href="">' +
 						'<img style="float: left; margin-right: 5px; margin-top: -10px" src="' + imgpath + 'target.png" alt="locate me..." />' +
@@ -242,7 +242,9 @@ DiscoJuice.UI = {
 		});
 
 
-		if (this.parent.Utils.options.get('location', false) && navigator.geolocation) {
+		if (this.parent.Utils.options.get('location', false) && !!navigator.geolocation) {
+			this.popup.find("div#discojuice_locatemediv").show();
+			
 			var that = this;
 			$("#locateme").click(function(event) {
 				var imgpath = that.parent.Utils.options.get('discoPath', '') + 'images/';
diff --git a/modules/discojuice/www/discojuice/discojuiceDiscoveryResponse.html b/modules/discojuice/www/discojuice/discojuiceDiscoveryResponse.html
index 655549765..561b9bb7a 100644
--- a/modules/discojuice/www/discojuice/discojuiceDiscoveryResponse.html
+++ b/modules/discojuice/www/discojuice/discojuiceDiscoveryResponse.html
@@ -29,10 +29,9 @@ function receive() {
 	})();
 	
 	var sender = parseURL(document.referrer);
-	
 	if (urlParams.entityID) {
-		window.parent.DiscoJuice.Utils.log('ResponseLocation: Response from discovery service [' + sender + ']: ' + urlParams.entityID);
-		window.parent.DiscoJuice.Control.discoResponse(urlParams.entityID, sender);
+		window.parent.DiscoJuice.Utils.log('ResponseLocation: Response from discovery service [' + sender + ']: ' + urlParams.entityID + '   subID: ' + urlParams.subID);
+		window.parent.DiscoJuice.Control.discoResponse(sender, urlParams.entityID, urlParams.subID);
 	} else {
 		window.parent.DiscoJuice.Utils.log('ResponseLocation: Response from discovery service [' + sender + ']: No valid response parameters');
 	}
diff --git a/modules/discojuice/www/discojuice/idpdiscovery.js b/modules/discojuice/www/discojuice/idpdiscovery.js
index fee97ffa3..b851ece53 100644
--- a/modules/discojuice/www/discojuice/idpdiscovery.js
+++ b/modules/discojuice/www/discojuice/idpdiscovery.js
@@ -107,7 +107,7 @@ var IdPDiscovery = function() {
 			var entityID = this.getSP();
 
 			if(!entityID) {
-				DiscoJuice.Utils.log('Missing required parameter [entityID]');
+				// DiscoJuice.Utils.log('Missing required parameter [entityID]');
 				return;
 			}
 			
diff --git a/modules/discojuice/www/discojuice/logos/ntnu.png b/modules/discojuice/www/discojuice/logos/ntnu.png
index 65f732ed88767825a5fbfbbf9347232689e38196..0836fcc5430d799585e4922ea85404d8022c921b 100644
GIT binary patch
literal 2308
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

literal 5150
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
M07*qoM6N<$g8Cr+&j0`b

diff --git a/modules/discojuice/www/discojuice/logos/uio.png b/modules/discojuice/www/discojuice/logos/uio.png
index 557c0bf53c97f0fd5784982d891d65adb4b28aad..7b96a476a6203c13bdf228b6f62aa3e47c2d387b 100644
GIT binary patch
delta 5842
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

delta 5599
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

diff --git a/modules/discojuice/www/discojuice/logos/uninett.png b/modules/discojuice/www/discojuice/logos/uninett.png
index 8fa1901569a70026a9bbff75920dc2d0377e25aa..6f69b8a09bb318a22844f0330e1c724c9437855d 100644
GIT binary patch
literal 4720
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

literal 5933
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
P00000NkvXXu0mjffGcnK

-- 
GitLab