From 4584bb5ba5f1a8012d383cc681eeffc21a478cab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mathias=20Maa=C3=9F?= <mathias.maass@uni-leipzig.de>
Date: Tue, 21 Mar 2023 14:44:45 +0100
Subject: [PATCH] refs #23496 [finc] adapt vufind language menu

* Dont use POST via form to set language. Instead use GET via link.
* git ignore themes/finc/css/print.css
---
 .gitignore                             |  1 +
 themes/finc/scss/_customVariables.scss |  6 +--
 themes/finc/templates/header.phtml     | 65 +++++++++++++++++---------
 3 files changed, 46 insertions(+), 26 deletions(-)

diff --git a/.gitignore b/.gitignore
index e22b9e32818..dce3e080bca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,5 +27,6 @@ import/solrmarc.log*
 /docker-env.override.yml
 /.env
 **/compiled.css
+themes/finc/css/print.css
 module/finc/tests/selenium/vendor/
 module/finc/tests/selenium/logs/
\ No newline at end of file
diff --git a/themes/finc/scss/_customVariables.scss b/themes/finc/scss/_customVariables.scss
index b371bd530c1..273f4618426 100644
--- a/themes/finc/scss/_customVariables.scss
+++ b/themes/finc/scss/_customVariables.scss
@@ -724,9 +724,9 @@ $language-selector-dropdown-menu-background-color: $navbar-bg-color !default;
 $language-selector-dropdown-menu-border: 0 !default;
 $language-selector-dropdown-menu-min-width: auto !default;
 $language-selector-dropdown-menu-link-color: $link-color !default;
-$language-selector-dropdown-menu-btn-padding-left: 0 !default;
-$language-selector-dropdown-menu-btn-padding-right: 0 !default;
-$language-selector-dropdown-menu-btn-focus-hover-background-color: $white !default;
+$language-selector-dropdown-menu-btn-padding-left: 4 !default;
+$language-selector-dropdown-menu-btn-padding-right: 4 !default;
+$language-selector-dropdown-menu-btn-focus-hover-background-color: $brand-primary !default;
 
 $language-selector-one-language-only-display: block !default;
 $language-selector-one-language-only-margin-top: 0 !default;
diff --git a/themes/finc/templates/header.phtml b/themes/finc/templates/header.phtml
index e6ba0f2f2d3..5325d57f689 100644
--- a/themes/finc/templates/header.phtml
+++ b/themes/finc/templates/header.phtml
@@ -93,29 +93,48 @@
             </li>
           <?php endif; ?>
 
-          <?php if (isset($this->layout()->allLangs) && count($this->layout()->allLangs) > 1): ?>
-            <li class="language dropdown">
-              <form method="post" name="langForm" id="langForm">
-                <input type="hidden" name="mylang"/>
-								<a href="#" class="btn dropdown-toggle <?=(count($this->layout()->allLangs) == 2) ? ' hidden' : ''?>" data-toggle="dropdown" aria-controls="langmenu" aria-expanded="false">
-									<?=$this->transEsc("Language")?> <strong class="caret"></strong>
-								</a>
-                <?php /* finc: need id="langmenu"; adapt langmenu #17599 */ ?>
-                <ul id="langmenu" class="dropdown-menu <?=(count($this->layout()->allLangs) == 2) ? ' oneLanguage' : ''?>">
-                  <?php foreach ($this->layout()->allLangs as $langCode => $langName): ?>
-                    <?php /* finc: more accessibility rework #17908 */ ?>
-                    <?php if ($langCode !==$this->layout()->userLang) : ?>
-                      <li>
-                        <button type="submit" class="btn <?=(count($this->layout()->allLangs) == 2) ? ' btn-secondary' : ''?>" data-href="#" onClick="document.langForm.mylang.value='<?=$langCode?>';document.langForm.submit()">
-                          <?php /* finc: accessibility fixes in site header #17720 */ ?>
-                          <span class="visible-sm-md-only"><?=$langCode?></span>
-                          <span class="hidden-sm-md"><?=$this->displayLanguageOption($langName)?></span>
-                        </button>
-                      </li>
-                    <?php endif; ?>
-                  <?php endforeach; ?>
-                </ul>
-              </form>
+          <?php 
+            $allLangs = $this->layout()->allLangs;
+            $userLang = $this->layout()->userLang;
+          ?>
+          <?php if (count($allLangs) > 1): ?>
+            <li class="language dropdown">  
+              <a 
+                href="#"
+                class="btn dropdown-toggle<?=count($allLangs) == 2 ? ' hidden' : ''?>"
+                data-toggle="dropdown"
+                aria-controls="langmenu"
+                aria-expanded="false"
+              >
+                <?=$this->transEsc("Language")?>
+                <strong class="caret"></strong>
+              </a>
+              <?php /* finc: need id="langmenu"; adapt langmenu #17599 */ ?>
+              <ul
+                id="langmenu"
+                class="dropdown-menu<?=count($allLangs) == 2 ? ' oneLanguage' : ''?>"
+              >
+                <?php foreach ($allLangs as $langCode => $langName): ?>
+                  <?php /* finc: more accessibility rework #17908 */ ?>
+                  <?php if ($langCode !== $userLang) : ?>
+                    <li>
+                      <a 
+                        class="btn"
+                        href="<?=$this->escapeHtmlAttr($this->url()->addQueryParameters(['lng' => $langCode])) ?>"
+                        rel="nofollow"
+                      >
+                        <?php /* finc: accessibility fixes in site header #17720 */ ?>
+                        <span class="visible-sm-md-only">
+                          <?=$langCode?>
+                        </span>
+                        <span class="hidden-sm-md">
+                          <?=$this->displayLanguageOption($langName)?>
+                        </span>
+                      </a>
+                    </li>
+                  <?php endif; ?>
+                <?php endforeach; ?>
+              </ul>
 						</li>
           <?php endif; ?>
         </ul>
-- 
GitLab