From 2f8d92a2d79caae335accd78dfb8e8fd0de148cf Mon Sep 17 00:00:00 2001
From: Aria <aria@suma-ev.de>
Date: Wed, 7 Aug 2019 13:32:00 +0200
Subject: [PATCH] first link in search results can now be selected and 'clicked
 on' with keyboard

---
 resources/js/keyboardNavigation.js | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/resources/js/keyboardNavigation.js b/resources/js/keyboardNavigation.js
index a8ee22ef1..a726ce9e5 100644
--- a/resources/js/keyboardNavigation.js
+++ b/resources/js/keyboardNavigation.js
@@ -2,7 +2,6 @@ var ctrlInfo = false;       // Flag used for checking if the user was shown the
 var currentResultIndex = 1; // stores index of result which was focused last
 var currentElementData = {      // Object used for storing currently focused element and element type (e.g. anchor tag or result div)
     element: $("div.result").first(), 
-    selector: "div.result",
     type: "result"
 };
 
@@ -19,12 +18,11 @@ $(document).on('keydown', function(e) {
     }
 });
 
-function setFocus(e, selector, type) {
+function setFocus(e, type) {
     currentElementData.element = e;
-    currentElementData.selector = selector;
     currentElementData.type = type;
-    currentElementData.element.focus();
     console.log(currentElementData);
+    currentElementData.element.focus();
 }
 
 function tabKeyPressed() {
@@ -37,29 +35,31 @@ function tabKeyPressed() {
 }
 
 function enterKeyPressed() {
-    if(currentElementData.type = "result") {
-        // setFocus(currentElementData.element, "link")
-    } 
+    if(currentElementData.type === "result") {
+        console.log($(":focus").find("a").first());
+        setFocus($(":focus").find("a").first(), "link")
+    } else if(currentElementData.type === "link") {
+        window.location = currentElementData.element.attr('href');
+    }
 }
 
 function showInfoBox() {
     $("#keyboard-ctrl-info").show();
-    setFocus($("#keyboard-ctrl-info"), "#keyboard-ctrl-info", "infobox");
+    setFocus($("#keyboard-ctrl-info"), "infobox");
 }
 
 function focusNextElement() {
     if(currentElementData.type === "result") {
         focusNextResult();
     } else {
-       setFocus($("div.result").not('.ad').first(), "div.result" , "result");
+       setFocus($("div.result").not('.ad').first(), "result");
     }
 }
 
-
 function focusNextResult() {
    if(currentElementData.element.next().length > 0) {
-        setFocus(currentElementData.element.next(), '' , "result");
+        setFocus(currentElementData.element.next(), "result");
     } else {
-       setFocus($("div.result").not('.ad').first(), "div.result" , "result");
+       setFocus($("div.result").not('.ad').first(), "result");
     }
 }
-- 
GitLab