]> _ Git - fluidbook-toolbox.git/commitdiff
wait #6482 correctif connexion multiple @5:00
authorsoufiane <soufiane@cubedesigners.com>
Fri, 22 Dec 2023 15:48:45 +0000 (16:48 +0100)
committersoufiane <soufiane@cubedesigners.com>
Fri, 22 Dec 2023 15:48:45 +0000 (16:48 +0100)
app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php
resources/linkeditor/js/linkeditor.js

index 4437e84f4147d1350c8eece0801cc7aa924e147b..fa2566babf625e8ea30239fa68a94d0b218460ce 100644 (file)
@@ -302,25 +302,43 @@ trait LinksOperation
         $token = $request->token;
         $userId = backpack_user()->id;
         $counter = $request->counter;
+        $tabClosed = $request->tabClosed;
 
-        cache(['connexion_multiple'.$fluidbookId => intval($counter)]);
+        $connexionMultipleExist = cache()->get('connexion_multiple'.$fluidbookId);
+
+        /*cache()->forget('connexion'.$fluidbookId);
+        cache()->forget('connexion_multiple'.$fluidbookId);*/
+
+        if(!$connexionMultipleExist) {
+            cache(['connexion_multiple' . $fluidbookId => 0]);
+        }
+
+        cache()->increment('connexion_multiple'.$fluidbookId,$counter);
+
+        if(intval($tabClosed) > 0) {
+            cache()->decrement('connexion_multiple'.$fluidbookId,1);
+        }
 
         $connexionExist = cache()->get('connexion'.$fluidbookId);
-        $connexionMultipleExist = cache()->get('connexion_multiple'.$fluidbookId);
 
         // réinitialiser la connexion courante quand on clique sur "éjecter l'utilisateur"
         if($request->clear) {
             cache()->forget('connexion'.$fluidbookId);
         }
 
+        if($connexionMultipleExist == 1) {
+            cache(['connexion'.$fluidbookId => ['id' => $userId, 'token' => $token,'f_id' => $fluidbookId] ]);
+            return json_encode(["status"=>"available",$connexionExist]);
+        }
+
         if($connexionExist && $fluidbookId === $connexionExist['f_id']) {
             $user = User::withoutGlobalScopes()->find($connexionExist['id']);
             $user = $user->firstname.' '.$user->lastname;
 
-            if(intval($connexionMultipleExist) > 1 && $token !== $connexionExist['token']) {
-                return json_encode(["compteur"=>$connexionMultipleExist,"status"=>"unavailable","infos_connection"=>array_merge(["user" => $user],$connexionExist)]);
+            if($token !== $connexionExist['token']) {
+                return json_encode(["tabClosed"=>$tabClosed,"compteur"=>$connexionMultipleExist,"status"=>"unavailable","infos_connection"=>array_merge(["user" => $user],$connexionExist)]);
             } else {
-                return json_encode(["compteur"=>$connexionMultipleExist,"status"=>"available",$connexionExist]);
+                return json_encode(["status"=>"available",$connexionExist]);
             }
         } else {
             cache(['connexion'.$fluidbookId => ['id' => $userId, 'token' => $token,'f_id' => $fluidbookId] ]);
index 62038a8c41ed507c64106fa1eb89348e0087df8e..9eb45bd99e6ae8059e9b19cd5d2dd2e43dde7a4e 100644 (file)
@@ -7,8 +7,6 @@ import 'noty/lib/themes/mint.css';
 
 import GrahamScan from "@lucio/graham-scan";
 
-import Echo from "laravel-echo"
-
 import LinkeditorLinks from './linkeditor.links';
 import LinkeditorLoader from './linkeditor.loader';
 import LinkeditorResize from './linkeditor.resize';
@@ -579,24 +577,27 @@ $(function () {
     let interval = null
     let token = $("[data-token]").data("token")
 
-    let counter = parseInt(localStorage.getItem('compteur')) ?? 1;
+    let counter = 0;
     let pageIsLoaded = sessionStorage.getItem('page_loaded');
 
-    if (!pageIsLoaded) {
-        counter = 0;
+    if (!pageIsLoaded || !counter) {
+        counter = 0
         sessionStorage.setItem('page_loaded', true);
     }
 
+    if(pageIsLoaded) {
+        localStorage.setItem('tabClosed','0')
+    }
+
     counter++
-    localStorage.setItem('compteur', counter.toString());
 
+    console.log(counter)
     function intervalConnection(data = {}) {
-        let counter = localStorage.getItem('compteur');
-        console.log(counter)
+        let tabClosed = localStorage.getItem('tabClosed')
         $.ajax({
             method: "POST",
             url: '/fluidbook-publication/' + FLUIDBOOK_DATA.id + '/edit/links',
-            data: Object.keys(data).length > 0 ? data : {id: FLUIDBOOK_DATA.id, token: token, counter: counter}
+            data: Object.keys(data).length > 0 ? data : {id: FLUIDBOOK_DATA.id, token: token, counter: counter, tabClosed: tabClosed}
         }).done(function (msg) {
             let response = JSON.parse(msg)
 
@@ -627,6 +628,8 @@ $(function () {
                     return true;
                 };
             }
+            counter = 0
+            localStorage.setItem('tabClosed', '0');
             setTimeout(function () { intervalConnection(); }, 1000)
         });
     }
@@ -641,8 +644,7 @@ $(function () {
     //
     $(window).on("unload",function(){
         clearTimeout(interval)
-        counter--
-        localStorage.setItem('compteur', counter.toString());
+        localStorage.setItem('tabClosed', '1');
     })
 });