From 769058a4a8cd01c45aaa331785d5bed52b7b4ebb Mon Sep 17 00:00:00 2001
From: Benoit Alessandroni <benoit@happy-dev.fr>
Date: Thu, 30 Apr 2020 16:15:04 +0200
Subject: [PATCH] Proper language selection

---
 .../entrepreneur/components/header.pug        |  2 +-
 src/scripts/coopstarter.js                    | 20 +++++++++----------
 2 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/src/includes/entrepreneur/components/header.pug b/src/includes/entrepreneur/components/header.pug
index 2d1e8a60..ad06c262 100644
--- a/src/includes/entrepreneur/components/header.pug
+++ b/src/includes/entrepreneur/components/header.pug
@@ -12,7 +12,7 @@
                 fields='languages'
                 range-languages=`${endpoints.interfacelanguages}`
                 widget-languages='sib-form-dropdown'
-                selected-languages=`${endpoints.interfacelanguages}/1/`
+                selected-languages=`${endpoints.interfacelanguages}1/`
                 label-languages=''
                 naked
             )
diff --git a/src/scripts/coopstarter.js b/src/scripts/coopstarter.js
index d2510afa..28dbd00e 100644
--- a/src/scripts/coopstarter.js
+++ b/src/scripts/coopstarter.js
@@ -365,10 +365,10 @@ function manageLogoutButton() {
 /**
  * Manage the select language
  */
-function manageSelectLanguage() {
+async function manageSelectLanguage() {
   const languageSelects = document.getElementsByClassName("languageChoice")
   for (let item of languageSelects) {
-    item.addEventListener("change", function() {
+    item.addEventListener("change", async function() {
       //We listen the selected option for the language
       uriLanguage = item.querySelector("option:checked").value
 
@@ -377,15 +377,13 @@ function manageSelectLanguage() {
       var base_url = location.host
 
       //If the selected language is french
-      if (uriLanguage.substr(uriLanguage.length - 14) == 'interfacelanguages/1/"}') {
-        //Redirection with the appropriate prefixe.
-        var redirect = "http://"+base_url+'/fr/'+pathAfterThePrefix
-        document.location.href = redirect
-      } else {
-        var redirect = "http://"+base_url+'/en/'+pathAfterThePrefix
-        document.location.href = redirect
-      }
-      
+      let languagesList = await item.component.resource['ldp:contains'];
+      languagesList.forEach(async (resource) => {
+        if (item.component.value.languages['@id'] == resource['@id']) {
+          var redirect = "http://"+base_url+'/' + (await resource.code).toLowerCase() + '/'+pathAfterThePrefix
+          document.location.href = redirect
+        } 
+      });
     })
   }
 }
-- 
GitLab