]> _ Git - fluidbook-toolbox.git/commitdiff
wip #6482 @4:00
authorsoufiane <soufiane@cubedesigners.com>
Mon, 11 Dec 2023 23:30:23 +0000 (00:30 +0100)
committersoufiane <soufiane@cubedesigners.com>
Mon, 11 Dec 2023 23:30:23 +0000 (00:30 +0100)
app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php
app/Http/Middleware/ClearRouteCache.php
resources/linkeditor/js/linkeditor.js
resources/views/fluidbook_publication/link_editor.blade.php

index 86d95461f1e7a2b0823b11a76633807495b2a4c6..0c6dd1789c6dea73cc82cbaf1144775a4d4d0bfb 100644 (file)
@@ -289,23 +289,18 @@ trait LinksOperation
         }
 
         $token = Str::random(10);
-        cache(['token' => $token]);
 
-        return view('fluidbook_publication.link_editor', ['id' => $id, 'fluidbook' => FluidbookPublication::find($id), 'access' => ""]);
+        return view('fluidbook_publication.link_editor', ['id' => $id, 'fluidbook' => FluidbookPublication::find($id), 'access' => "", 'token' => $token]);
     }
 
     public function broadcast(Request $request)
     {
         $fluidbookId = $request->id;
+        $token = $request->token;
         $userId = backpack_user()->id;
-        $token = cache()->get('token');
-
-        //$key = $userId.'_'.$fluidbookId;
-        //Cache::forget('connexion');
 
+        $connexionExist = cache()->get('connexion'.$fluidbookId);
         //cache()->forget('connexion');
-        $connexionExist = cache()->get('connexion');
-
         if($connexionExist && $fluidbookId === $connexionExist['f_id']) {
             if($userId != $connexionExist['id'] || $token !== $connexionExist['token']) {
                 return "unavailable";
@@ -313,7 +308,7 @@ trait LinksOperation
                 return $connexionExist;
             }
         } else {
-            cache(['connexion' => ['token' => $token, 'id' => $userId, 'f_id' => $fluidbookId] ]);
+            cache(['connexion'.$fluidbookId => ['id' => $userId, 'token' => $token,'f_id' => $fluidbookId] ]);
         }
     }
 
index 3dda2aae91a1e91c9948bf9162309a0eea3b687b..a2cd7510e650c9e09fe4e383861ff4af45612428 100644 (file)
@@ -4,8 +4,8 @@ namespace App\Http\Middleware;
 
 use Closure;
 use Illuminate\Http\Request;
+use Illuminate\Support\Str;
 use Symfony\Component\HttpFoundation\Response;
-use Illuminate\Support\Facades\Cache;
 
 class ClearRouteCache
 {
@@ -18,8 +18,8 @@ class ClearRouteCache
     {
         $response = $next($request);
 
-        // Supprimez le cache associé à la route
-        Cache::forget('token');
+        $fluidbookId = $request->route('id');
+        cache()->forget('connexion'.$fluidbookId);
 
         return $response;
     }
index be2d72fcfb51fb6ea9a804323cbf230f1cf0664c..77bfe556d521a5d5b27d23a0376c8eb4ab479496 100644 (file)
@@ -586,13 +586,16 @@ $(function () {
         $.ajax({
             method: "POST",
             url: '/fluidbook-publication/' + FLUIDBOOK_DATA.id + '/edit/links',
-            data: {id: FLUIDBOOK_DATA.id}
+            data: {id: FLUIDBOOK_DATA.id, token: $("[data-token]").data("token") }
         }).done(function (msg) {
-            console.log(msg)
             if(msg === "unavailable") {
                 if($("#popup-overlay").find('.popup').length === 0) {
+                    $("#popup-overlay").addClass("show")
                     window.linkeditor.popup.open('unavailable');
                 }
+            } else {
+                $("#popup-overlay").removeClass("show")
+                window.linkeditor.popup.close();
             }
         });
     }, 5000)
index 26fe9988ea797a91ab67b860fc85d5856cb542e4..8f01a8eeaa41d8d75eab7727c8050eb39b6bd938 100644 (file)
       'both'=>__('Appliquer les mêmes dimensions à la sélection'),
     ];
 
-    dump($access);
+    $connexionInfo = cache()->get('connexion'.$id);
+    $user = \App\Models\User::find($connexionInfo['id']);
 @endphp
 @extends('layouts.linkeditor')
 
 @section('content')
     @include('fluidbook_publication.link_editor_icons')
-    <div id="popup-overlay" class="{{ $access === "unavailable" }}">
+    <div id="token" data-token="{{$token}}"></div>
+    <div id="popup-overlay">
         <div id="popup-holder">
         </div>
     </div>
 
         <div class="popup" data-popup="unavailable" style="max-width: 300px">
             <h2>{{__('Fluidbook en cours d\'utilisation')}}</h2>
-            <!--<p>{{__('Utilisateur : ')}}</p>-->
+            <p>{{__('Utilisateur : ')}} {{ $user->firstname }} {{ $user->lastname }}</p>
+            <p>Identifiant: {{ $user->id }}</p>
             <!--<p class="button">
                 <button type="submit">{{__('Ejecter l\'utilisateur')}}</button>
             </p>-->