From 0677a9904970704a4f85c4cc6cbc0dba2d44e55d Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Mon, 10 Apr 2017 11:52:54 +0200
Subject: [PATCH] minerva creates connection to google maps statistics during
 minerva.create

---
 frontend-js/src/main/js/ConfigurationType.js  |  5 ++--
 frontend-js/src/main/js/minerva.js            | 26 ++++++++++++++++++-
 frontend-js/src/test/js/minerva-test.js       |  6 ++++-
 .../getAllValues/token=MOCK_TOKEN_ID&         |  2 +-
 web/src/main/webapp/index.xhtml               |  2 --
 5 files changed, 34 insertions(+), 7 deletions(-)

diff --git a/frontend-js/src/main/js/ConfigurationType.js b/frontend-js/src/main/js/ConfigurationType.js
index 146de1567d..59a19146ab 100644
--- a/frontend-js/src/main/js/ConfigurationType.js
+++ b/frontend-js/src/main/js/ConfigurationType.js
@@ -2,11 +2,12 @@
 
 var ConfigurationType = {
   DEFAULT_MAP : "DEFAULT_MAP",
+  GOOGLE_ANALYTICS_IDENTIFIER : "GOOGLE_ANALYTICS_IDENTIFIER",
   LOGO_IMG : "LOGO_IMG",
   LOGO_LINK : "LOGO_LINK",
   LEGEND_FILES : "LEGEND_FILES",
-  MIN_COLOR_VAL: "MIN_COLOR_VAL",
-  MAX_COLOR_VAL: "MAX_COLOR_VAL",
+  MIN_COLOR_VAL : "MIN_COLOR_VAL",
+  MAX_COLOR_VAL : "MAX_COLOR_VAL",
 };
 
 module.exports = ConfigurationType;
diff --git a/frontend-js/src/main/js/minerva.js b/frontend-js/src/main/js/minerva.js
index 5bdc7b08a3..4dcf234e2b 100644
--- a/frontend-js/src/main/js/minerva.js
+++ b/frontend-js/src/main/js/minerva.js
@@ -99,6 +99,7 @@ function createLegendIndicator(file, index) {
   return result;
 }
 
+
 function createLegendSlide(file, index) {
   var result = document.createElement("div");
   if (index ===0) {
@@ -128,6 +129,27 @@ function createLegend(element) {
   });
 }
 
+function insertGoogleAnalyticsCode(customMap) {
+  return new Promise(function(resolve,reject){
+    return ServerConnector.getConfigurationParam(ConfigurationType.GOOGLE_ANALYTICS_IDENTIFIER).then(function(identifier){
+      if (identifier === "" || identifier === undefined || identifier === null) {
+        resolve();
+      } else {
+        global._gaq = global._gaq || [];
+        _gaq.push(['_setAccount', identifier]);
+        _gaq.push(['_trackPageview']);
+
+        (function() {
+          var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+          ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+          var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+        })();
+        resolve();
+      }
+    })
+  });
+}
+
 function create(params) {
   var project = params.project;
   if (project===undefined) {
@@ -230,7 +252,9 @@ function create(params) {
 
 
   return new Promise(function(resolve, reject) {
-    restoreSearchQuery(result).then(function(){
+    insertGoogleAnalyticsCode(result).then(function(){
+      return restoreSearchQuery(result);
+    }).then(function(){
       return restoreDrugQuery(result);
     }).then(function(){
       return restoreChemicalQuery(result);
diff --git a/frontend-js/src/test/js/minerva-test.js b/frontend-js/src/test/js/minerva-test.js
index 8a3499805c..2bcd259a46 100644
--- a/frontend-js/src/test/js/minerva-test.js
+++ b/frontend-js/src/test/js/minerva-test.js
@@ -27,12 +27,16 @@ describe('minerva global', function() {
     
     global.dialogsDiv = helper.createDialogsDiv();
     document.body.appendChild(global.dialogsDiv);
-  });
+
+    global.scriptDiv = document.createElement("script");
+    document.body.appendChild(global.scriptDiv);
+});
 
   afterEach(function() {
     document.body.removeChild(global.leftPanelTab);
     document.body.removeChild(global.menuDiv);
     document.body.removeChild(global.dialogsDiv);
+    document.body.removeChild(global.scriptDiv);
   });
 
   it('create', function() {
diff --git a/frontend-js/testFiles/apiCalls/configuration/getAllValues/token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/configuration/getAllValues/token=MOCK_TOKEN_ID&
index cb7b0754fa..a027ad2bf1 100644
--- a/frontend-js/testFiles/apiCalls/configuration/getAllValues/token=MOCK_TOKEN_ID&
+++ b/frontend-js/testFiles/apiCalls/configuration/getAllValues/token=MOCK_TOKEN_ID&
@@ -1 +1 @@
-[{"type":"EMAIL_ADDRESS","value":"your.account@domain.com","idObject":9},{"type":"EMAIL_LOGIN","value":"your@login","idObject":10},{"type":"EMAIL_PASSWORD","value":"email.secret.password","idObject":11},{"type":"EMAIL_IMAP_SERVER","value":"your.imap.domain.com","idObject":13},{"type":"EMAIL_SMTP_SERVER","value":"your.smtp.domain.com","idObject":12},{"type":"EMAIL_SMTP_PORT","value":"25","idObject":14},{"type":"DEFAULT_MAP","value":"sample","idObject":6},{"type":"LOGO_IMG","value":"udl.png","idObject":4},{"type":"LOGO_LINK","value":"http://wwwen.uni.lu/","idObject":3},{"type":"SEARCH_DISTANCE","value":"10","idObject":7},{"type":"REQUEST_ACCOUNT_EMAIL","value":"your.email@domain.com","idObject":1},{"type":"SEARCH_RESULT_NUMBER","value":"100","idObject":8},{"type":"GOOGLE_ANALYTICS_IDENTIFIER","value":"","idObject":2},{"type":"LOGO_TEXT","value":"University of Luxembourg","idObject":5},{"type":"X_FRAME_DOMAIN","value":"http://localhost:8080/","idObject":56},{"type":"BIG_FILE_STORAGE_DIR","value":"minerva-big/","idObject":131},{"type":"LENGEND_FILE_1","value":"resources/images/legend_a.png","idObject":138},{"type":"LENGEND_FILE_2","value":"resources/images/legend_b.png","idObject":139},{"type":"LENGEND_FILE_3","value":"resources/images/legend_c.png","idObject":140},{"type":"LENGEND_FILE_4","value":"resources/images/legend_d.png","idObject":141},{"type":"USER_MANUAL_FILE","value":"resources/other/user_guide.pdf","idObject":142},{"type":"MIN_COLOR_VAL","value":"FF0000","idObject":205},{"type":"MAX_COLOR_VAL","value":"fbff00","idObject":206}]
\ No newline at end of file
+[{"type":"EMAIL_ADDRESS","value":"your.account@domain.com","idObject":9},{"type":"EMAIL_LOGIN","value":"your@login","idObject":10},{"type":"EMAIL_PASSWORD","value":"email.secret.password","idObject":11},{"type":"EMAIL_IMAP_SERVER","value":"your.imap.domain.com","idObject":13},{"type":"EMAIL_SMTP_SERVER","value":"your.smtp.domain.com","idObject":12},{"type":"EMAIL_SMTP_PORT","value":"25","idObject":14},{"type":"DEFAULT_MAP","value":"sample","idObject":6},{"type":"LOGO_IMG","value":"udl.png","idObject":4},{"type":"LOGO_LINK","value":"http://wwwen.uni.lu/","idObject":3},{"type":"SEARCH_DISTANCE","value":"10","idObject":7},{"type":"REQUEST_ACCOUNT_EMAIL","value":"your.email@domain.com","idObject":1},{"type":"SEARCH_RESULT_NUMBER","value":"100","idObject":8},{"type":"GOOGLE_ANALYTICS_IDENTIFIER","value":"google_analytics_id","idObject":2},{"type":"LOGO_TEXT","value":"University of Luxembourg","idObject":5},{"type":"X_FRAME_DOMAIN","value":"http://localhost:8080/","idObject":56},{"type":"BIG_FILE_STORAGE_DIR","value":"minerva-big/","idObject":131},{"type":"LENGEND_FILE_1","value":"resources/images/legend_a.png","idObject":138},{"type":"LENGEND_FILE_2","value":"resources/images/legend_b.png","idObject":139},{"type":"LENGEND_FILE_3","value":"resources/images/legend_c.png","idObject":140},{"type":"LENGEND_FILE_4","value":"resources/images/legend_d.png","idObject":141},{"type":"USER_MANUAL_FILE","value":"resources/other/user_guide.pdf","idObject":142},{"type":"MIN_COLOR_VAL","value":"FF0000","idObject":205},{"type":"MAX_COLOR_VAL","value":"fbff00","idObject":206}]
\ No newline at end of file
diff --git a/web/src/main/webapp/index.xhtml b/web/src/main/webapp/index.xhtml
index e29d05997a..b65efd69fc 100644
--- a/web/src/main/webapp/index.xhtml
+++ b/web/src/main/webapp/index.xhtml
@@ -28,8 +28,6 @@
 
 	<h:outputScript library="js" name="minerva.js"  />
 	
-	<ui:include src="/WEB-INF/components/admin/statistics.xhtml" />
-
 	<script type="text/javascript">
 //<![CDATA[
 
-- 
GitLab