]> _ Git - fluidbook-toolbox.git/commitdiff
linkeditor
authorsoufiane <soufiane@cubedesigners.com>
Fri, 23 Feb 2024 09:02:11 +0000 (10:02 +0100)
committersoufiane <soufiane@cubedesigners.com>
Fri, 23 Feb 2024 09:02:11 +0000 (10:02 +0100)
app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php
resources/linkeditor/js/linkeditor.accessControl.js
resources/linkeditor/js/linkeditor.js

index b10790b90e5cb61fcbf166ddb8a6972fa97ef921..169af7ade3148588630275e444f5712683ab9746 100644 (file)
@@ -310,47 +310,51 @@ trait LinksOperation
         $queueEditor = cache()->get('queue_editor' . $fluidbookId); // on récupère la liste des connexions
 
         // on extrait seulement les connexions qui datent de pas moins de 5secondes
-        if(!empty($queueEditor) || sizeof($queueEditor) > 0) {
-            $queueEditor = array_filter($queueEditor, function ($n) {
-                return strtotime($n["date"]) > strtotime(now()) - 5;
-            });
+        if(!empty($queueEditor)) {
+            if(sizeof($queueEditor) > 0) {
+                $queueEditor = array_filter($queueEditor, function ($n) {
+                    return strtotime($n["date"]) > strtotime(now()) - 5;
+                });
+            }
         }
 
-        if(!empty($queueEditor) || sizeof($queueEditor) > 0) {
-            // on supprime les connexions si la liste (tableau) est mal formatée
-            // en effet parfois la liste n'est pas un tableau multidimensionnel ce qui créé un bug
-            // un code à supprimer sur le long terme
-            if (!is_array($queueEditor[array_key_first($queueEditor)])) {
-                cache()->forget('queue_editor' . $fluidbookId);
-            }
+        if(!empty($queueEditor)) {
+            if(sizeof($queueEditor) > 0) {
+                // on supprime les connexions si la liste (tableau) est mal formatée
+                // en effet parfois la liste n'est pas un tableau multidimensionnel ce qui créé un bug
+                // un code à supprimer sur le long terme
+                if (!is_array($queueEditor[array_key_first($queueEditor)])) {
+                    cache()->forget('queue_editor' . $fluidbookId);
+                }
 
-            // on récupère la connexion courante via le token qui est envoyé
-            $connexion = array_filter($queueEditor, function ($n) use ($token) {
-                return $n["token"] === $token;
-            });
-            $key = key($connexion);
-
-            // si la connexion existe déjà, on remplace la date ainsi que le token pour là garder active
-            // sinon on ajoute la nouvelle connexion à la liste
-            // si la page est rechargée ou fermée la connexion est supprimée
-            if(null === $unload) {
-                if ($key === null) {
-                    $queueEditor[] = ["token" => $token, "date" => now(),"userid"=>$userId];
+                // on récupère la connexion courante via le token qui est envoyé
+                $connexion = array_filter($queueEditor, function ($n) use ($token) {
+                    return $n["token"] === $token;
+                });
+                $key = key($connexion);
+
+                // si la connexion existe déjà, on remplace la date ainsi que le token pour là garder active
+                // sinon on ajoute la nouvelle connexion à la liste
+                // si la page est rechargée ou fermée la connexion est supprimée
+                if (null === $unload) {
+                    if ($key === null) {
+                        $queueEditor[] = ["token" => $token, "date" => now(), "userid" => $userId];
+                    } else {
+                        $queueEditor[$key]["token"] = $token;
+                        $queueEditor[$key]["date"] = now();
+                        $queueEditor[$key]["userid"] = $userId;
+                    }
+
+                    $queueEditor = array_filter($queueEditor, function ($n) {
+                        return strtotime($n["date"]) > strtotime(now()) - 5;
+                    });
                 } else {
-                    $queueEditor[$key]["token"] = $token;
-                    $queueEditor[$key]["date"] = now();
-                    $queueEditor[$key]["userid"] = $userId;
+                    unset($queueEditor[$key]);
                 }
 
-                $queueEditor = array_filter($queueEditor, function ($n) {
-                    return strtotime($n["date"]) > strtotime(now()) - 5;
-                });
-            } else {
-                unset($queueEditor[$key]);
+                // on met à jour le cache avec la nouvelle liste
+                cache(['queue_editor' . $fluidbookId => $queueEditor]);
             }
-
-            // on met à jour le cache avec la nouvelle liste
-            cache(['queue_editor' . $fluidbookId => $queueEditor]);
         } else {
             // on initialise le cache avec la première connexion
             $entries = [["token" => $token, "date" => now(), "userid" => $userId]];
index c9560c0bc1fc17ee9e8e5230941c747605011b4e..10b15c6ab7b2cb18d723439ad0af494a543f0a8b 100644 (file)
@@ -48,7 +48,7 @@ LinkeditorAccessControl.prototype = {
                     });
 
                     // Bloquer les raccourcis clavier
-                    $this.linkeditor.controlKeyFilter(false,true)
+                    $this.linkeditor.controlKeyFilter(true)
 
                     $("#username").text(response.infos_connection.user)
                     $("#id").text(response.infos_connection.id)
@@ -58,7 +58,16 @@ LinkeditorAccessControl.prototype = {
                     $("#popup-overlay").removeClass("show")
                     window.linkeditor.popup.close();
                 }
-                window.key.filter = $this.linkeditor.controlKeyFilter(event,false)
+                $this.linkeditor.controlKeyFilter(false)
+                window.key.filter = function(event) {
+                    let tagName = (event.target || event.srcElement).tagName;
+                    //let field=tagName == 'INPUT' || tagName == 'SELECT' || tagName == 'TEXTAREA';
+                    if (tagName === 'TEXTAREA' && event.keyCode === 13) {
+                        return false;
+                    }
+
+                    return true;
+                }
             }
             sessionStorage.removeItem('token');
             localStorage.removeItem('unload');
index 9a13a557ac7b01cbfc8398510e64fa5c4fba09b2..ca85b81cc9437e02b27f4ff84c11e529f0bf0007 100644 (file)
@@ -284,8 +284,10 @@ LinkEditor.prototype = {
         this.changePage();
     },
 
-    controlKeyFilter: function (e,disabled) {
-        return keyfilter(e,disabled)
+    controlKeyFilter: function (disabled) {
+        window.key.filter = function (event) {
+            return keyfilter(event, disabled);
+        };
     },
 
     resetKeyModifiers: function () {