$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] ]);
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';
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)
return true;
};
}
+ counter = 0
+ localStorage.setItem('tabClosed', '0');
setTimeout(function () { intervalConnection(); }, 1000)
});
}
//
$(window).on("unload",function(){
clearTimeout(interval)
- counter--
- localStorage.setItem('compteur', counter.toString());
+ localStorage.setItem('tabClosed', '1');
})
});