Index: /SRUAggregator/trunk/aggregator.yml
===================================================================
--- /SRUAggregator/trunk/aggregator.yml	(revision 6056)
+++ /SRUAggregator/trunk/aggregator.yml	(revision 6057)
@@ -1,4 +1,4 @@
 aggregatorParams:
-  CENTER_REGISTRY_URL: http://centres.clarin.eu/restxml/
+  # CENTER_REGISTRY_URL: http://centres.clarin.eu/restxml/
   additionalCQLEndpoints:
     - https://clarin.ids-mannheim.de/digibibsru-new
Index: /SRUAggregator/trunk/pom.xml
===================================================================
--- /SRUAggregator/trunk/pom.xml	(revision 6056)
+++ /SRUAggregator/trunk/pom.xml	(revision 6057)
@@ -8,5 +8,5 @@
 	<groupId>eu.clarin.sru.fcs</groupId>
 	<artifactId>Aggregator2</artifactId>
-	<version>2.0.0-alpha-23</version>
+	<version>2.0.0-alpha-24</version>
 	<name>FCS Aggregator</name>
 
Index: /SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/Aggregator.java
===================================================================
--- /SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/Aggregator.java	(revision 6056)
+++ /SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/Aggregator.java	(revision 6057)
@@ -91,6 +91,4 @@
  * the view (search for next set of results)
  *
- * TODO: Use weblicht with results
- *
  * TODO: Export search results to personal workspace as csv, excel, tcf, plain
  * text: ask Marie/Wei about oauth ways to do that ndg oauth; ask Menzo, Willem,
Index: /SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/AggregatorConfiguration.java
===================================================================
--- /SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/AggregatorConfiguration.java	(revision 6056)
+++ /SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/AggregatorConfiguration.java	(revision 6057)
@@ -93,4 +93,9 @@
 			return SEARCH_MAX_CONCURRENT_REQUESTS_PER_ENDPOINT;
 		}
+
+		@JsonIgnore
+		public String getWEBLICHT_URL() {
+			return WEBLICHT_URL;
+		}
 	}
 	public Params aggregatorParams = new Params();
Index: /SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/rest/RestService.java
===================================================================
--- /SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/rest/RestService.java	(revision 6056)
+++ /SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/rest/RestService.java	(revision 6057)
@@ -251,6 +251,9 @@
 		}
 
-		return url == null ? Response.status(503).entity("error while exporting to weblicht").build()
-				: Response.ok().entity(url).build();
+		URI weblichtUri = new URI(Aggregator.getInstance().getParams().getWEBLICHT_URL()
+				+ url);
+		return url == null
+				? Response.status(503).entity("error while exporting to weblicht").build()
+				: Response.seeOther(weblichtUri).entity(weblichtUri).build();
 	}
 }
Index: /SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/scan/ScanCrawler.java
===================================================================
--- /SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/scan/ScanCrawler.java	(revision 6056)
+++ /SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/scan/ScanCrawler.java	(revision 6057)
@@ -201,8 +201,14 @@
 		String ret = map.get("en");
 		if (ret == null || ret.trim().isEmpty()) {
+			ret = map.get("eng");
+		}
+		if (ret == null || ret.trim().isEmpty()) {
 			ret = map.get(null);
 		}
 		if (ret == null || ret.trim().isEmpty()) {
 			ret = map.get("de");
+		}
+		if (ret == null || ret.trim().isEmpty()) {
+			ret = map.get("deu");
 		}
 		if (ret == null || ret.trim().isEmpty()) {
Index: /SRUAggregator/trunk/src/main/resources/assets/js/corpora.js
===================================================================
--- /SRUAggregator/trunk/src/main/resources/assets/js/corpora.js	(revision 6056)
+++ /SRUAggregator/trunk/src/main/resources/assets/js/corpora.js	(revision 6057)
@@ -181,5 +181,5 @@
 		var expansive = corpus.expanded ? {overflow:'hidden'} 
 			: {whiteSpace:'nowrap', overflow:'hidden', textOverflow: 'ellipsis'};
-		return	React.createElement("div", {className: corpusContainerClass, key: corpus.title}, 
+		return	React.createElement("div", {className: corpusContainerClass, key: corpus.id}, 
 					React.createElement("div", {className: "row corpus", onClick: this.toggleExpansion.bind(this, corpus)}, 
 						React.createElement("div", {className: "col-sm-1 vcenter"}, 
Index: /SRUAggregator/trunk/src/main/resources/assets/js/main.js
===================================================================
--- /SRUAggregator/trunk/src/main/resources/assets/js/main.js	(revision 6056)
+++ /SRUAggregator/trunk/src/main/resources/assets/js/main.js	(revision 6057)
@@ -3,5 +3,5 @@
 "use strict";
 
-var VERSION = "VERSION 2.0.0.Î±22";
+var VERSION = "VERSION 2.0.0.Î±24";
 var URLROOT = "/Aggregator-testing";
 
Index: /SRUAggregator/trunk/src/main/resources/assets/js/main.jsx
===================================================================
--- /SRUAggregator/trunk/src/main/resources/assets/js/main.jsx	(revision 6056)
+++ /SRUAggregator/trunk/src/main/resources/assets/js/main.jsx	(revision 6057)
@@ -3,5 +3,5 @@
 "use strict";
 
-var VERSION = "VERSION 2.0.0.Î±23";
+var VERSION = "VERSION 2.0.0.Î±24";
 var URLROOT = "/Aggregator-testing";
 
Index: /SRUAggregator/trunk/src/main/resources/assets/js/search.js
===================================================================
--- /SRUAggregator/trunk/src/main/resources/assets/js/search.js	(revision 6056)
+++ /SRUAggregator/trunk/src/main/resources/assets/js/search.js	(revision 6057)
@@ -270,4 +270,8 @@
 	},
 
+	getToWeblichtLink: function(format) {
+		return 'rest/search/'+this.state.searchId+'/toWeblicht?format='+format;
+	},
+
 	setLanguageAndFilter: function(languageObj, languageFilter) {
 		this.state.corpora.setVisibility(this.state.searchLayerId, 
@@ -427,4 +431,5 @@
 					         results: this.filterResults(), 
 					         getDownloadLink: this.getDownloadLink, 
+					         getToWeblichtLink: this.getToWeblichtLink, 
 					         searchedLanguage: this.state.language})
 				)
@@ -527,4 +532,5 @@
 		searchedLanguage: PT.array.isRequired,
 		getDownloadLink: PT.func.isRequired,
+		getToWeblichtLink: PT.func.isRequired,
 	},
 
@@ -537,4 +543,8 @@
 	toggleKwic: function() {
 		this.setState({displayKwic:!this.state.displayKwic});
+	},
+
+	zoom: function(e) {
+		e.stopPropagation();
 	},
 
@@ -603,5 +613,5 @@
 
 	renderDiagnostic: function(d) {
-		return 	React.createElement("div", {className: "alert alert-warning"}, 
+		return 	React.createElement("div", {className: "alert alert-warning", key: d.uri}, 
 					React.createElement("div", null, "Diagnostic: ", d.message)
 				); 
@@ -654,5 +664,5 @@
 				return false;
 		}
-		return 	React.createElement(Panel, {key: corpusHit.corpus.title, 
+		return 	React.createElement(Panel, {key: corpusHit.corpus.id, 
 						title: this.renderPanelTitle(corpusHit.corpus), 
 						info: this.renderPanelInfo(corpusHit.corpus)}, 
@@ -709,4 +719,20 @@
 	},
 
+	renderToWeblichtLinks: function() {
+		return (
+			React.createElement("div", {className: "dropdown"}, 
+				React.createElement("button", {className: "btn btn-default", 'aria-expanded': "false", 'data-toggle': "dropdown"}, 
+					React.createElement("span", {className: "glyphicon glyphicon-download-alt", 'aria-hidden': "true"}), 
+					" ", " Use Weblicht ", " ", 
+					React.createElement("span", {className: "caret"})
+				), 
+				React.createElement("ul", {className: "dropdown-menu"}, 
+					React.createElement("li", null, " ", React.createElement("a", {href: this.props.getToWeblichtLink("text")}, 
+							" ", " As Plain Text file"))
+				)
+			)
+		);
+	},
+
 	renderToolbox: function(hits) {
 		if (hits <= 0) {
@@ -716,4 +742,7 @@
 					React.createElement("div", {className: "toolbox float-left inline"}, 
 						this.renderDownloadLinks()
+					), 
+					React.createElement("div", {className: "toolbox float-left inline"}, 
+						this.renderToWeblichtLinks()
 					), 
 					React.createElement("div", {className: "float-right inline", style: {marginTop:15}}, 
Index: /SRUAggregator/trunk/src/main/resources/assets/js/search.jsx
===================================================================
--- /SRUAggregator/trunk/src/main/resources/assets/js/search.jsx	(revision 6056)
+++ /SRUAggregator/trunk/src/main/resources/assets/js/search.jsx	(revision 6057)
@@ -270,4 +270,8 @@
 	},
 
+	getToWeblichtLink: function(format) {
+		return 'rest/search/'+this.state.searchId+'/toWeblicht?format='+format;
+	},
+
 	setLanguageAndFilter: function(languageObj, languageFilter) {
 		this.state.corpora.setVisibility(this.state.searchLayerId, 
@@ -427,4 +431,5 @@
 					         results={this.filterResults()} 
 					         getDownloadLink={this.getDownloadLink}
+					         getToWeblichtLink={this.getToWeblichtLink}
 					         searchedLanguage={this.state.language}/>
 				</div>
@@ -527,4 +532,5 @@
 		searchedLanguage: PT.array.isRequired,
 		getDownloadLink: PT.func.isRequired,
+		getToWeblichtLink: PT.func.isRequired,
 	},
 
@@ -537,4 +543,8 @@
 	toggleKwic: function() {
 		this.setState({displayKwic:!this.state.displayKwic});
+	},
+
+	zoom: function(e) {
+		e.stopPropagation();
 	},
 
@@ -603,5 +613,5 @@
 
 	renderDiagnostic: function(d) {
-		return 	<div className="alert alert-warning"> 
+		return 	<div className="alert alert-warning" key={d.uri}> 
 					<div>Diagnostic: {d.message}</div>
 				</div>; 
@@ -654,5 +664,5 @@
 				return false;
 		}
-		return 	<Panel key={corpusHit.corpus.title} 
+		return 	<Panel key={corpusHit.corpus.id} 
 						title={this.renderPanelTitle(corpusHit.corpus)} 
 						info={this.renderPanelInfo(corpusHit.corpus)}>
@@ -709,4 +719,20 @@
 	},
 
+	renderToWeblichtLinks: function() {
+		return (
+			<div className="dropdown">
+				<button className="btn btn-default" aria-expanded="false" data-toggle="dropdown" >
+					<span className="glyphicon glyphicon-download-alt" aria-hidden="true"/>
+					{" "} Use Weblicht {" "} 
+					<span className="caret"/>
+				</button>
+				<ul className="dropdown-menu">
+					<li> <a href={this.props.getToWeblichtLink("text")}>
+							{" "} As Plain Text file</a></li>
+				</ul>
+			</div>
+		);
+	},
+
 	renderToolbox: function(hits) {
 		if (hits <= 0) {
@@ -716,4 +742,7 @@
 					<div className="toolbox float-left inline">
 						{this.renderDownloadLinks()}
+					</div>
+					<div className="toolbox float-left inline">
+						{this.renderToWeblichtLinks()}
 					</div>
 					<div className="float-right inline" style={{marginTop:15}}>
