use App\Fluidbook\Compiler\Compiler;
use App\Fluidbook\Link\LinksData;
use App\Models\FluidbookPublication;
+use App\Models\User;
use Cubist\Backpack\Http\Controllers\Base\XSendFileController;
use Cubist\Util\Files\Files;
use Illuminate\Http\UploadedFile;
$fluidbookId = $request->id;
$token = $request->token;
$userId = backpack_user()->id;
+ $user = User::find($userId);
+ $user = $user->firstname.' '.$user->lastname;
+ // réinitialiser la connexion courante quand on clique sur "éjecter l'utilisateur"
if($request->clear) {
cache()->forget('connexion'.$fluidbookId);
}
-
$connexionExist = cache()->get('connexion'.$fluidbookId);
if($connexionExist && $fluidbookId === $connexionExist['f_id']) {
if($userId != $connexionExist['id'] || $token !== $connexionExist['token']) {
- return "unavailable";
+ return json_encode(["status"=>"unavailable","infos_connection"=>array_merge(["user" => $user],$connexionExist)]);
} else {
- return $connexionExist;
+ return json_encode(["status"=>"available",$connexionExist]);
}
} else {
cache(['connexion'.$fluidbookId => ['id' => $userId, 'token' => $token,'f_id' => $fluidbookId] ]);
require('select2');
import 'select2/dist/css/select2.css';
import 'select2-bootstrap-theme/dist/select2-bootstrap.css';
+import {isObject} from "../../fluidbookpublication/packager/_node_modules_win/util";
window.MD5 = require("crypto-js/md5");
let interval = null;
+ let userID = $("#userID").data("id");
function intervalConnection() {
- interval = setInterval(function () {
+ //interval = setInterval(function () {
$.ajax({
method: "POST",
url: '/fluidbook-publication/' + FLUIDBOOK_DATA.id + '/edit/links',
data: {id: FLUIDBOOK_DATA.id, token: $("[data-token]").data("token")}
}).done(function (msg) {
- if (msg === "unavailable") {
+ let response = JSON.parse(msg)
+
+ if (response.status === "unavailable") {
if ($("#popup-overlay").find('.popup').length === 0) {
$("#popup-overlay").addClass("show")
- window.linkeditor.popup.open('unavailable');
+
+ let popupName = 'unavailable';
+ if(response.infos_connection.id === userID) popupName = 'twin-connection';
+ window.linkeditor.popup.open(popupName);
+
+ // Bloquer les raccourcis clavier
keyfilter(false,true)
+
+ $("#username").text(response.infos_connection.user)
+ $("#id").text(response.infos_connection.id)
}
} else {
if ($("#popup-overlay").find('.popup[data-popup="unavailable"]').length > 0) {
+
$("#popup-overlay").removeClass("show")
window.linkeditor.popup.close();
}
+ console.log('ok 2')
window.key.filter = function (event) {
let tagName = (event.target || event.srcElement).tagName;
if (tagName === 'TEXTAREA' && event.keyCode === 13) {
};
}
});
- }, 2000)
+ //}, 2000)
}
intervalConnection()
@section('content')
@include('fluidbook_publication.link_editor_icons')
<div id="token" data-token="{{$token}}"></div>
+ <div id="userID" data-id="{{backpack_user()->id}}"></div>
<div id="popup-overlay">
<div id="popup-holder">
</div>
<div class="popup" data-popup="unavailable" style="max-width: 300px">
<h2>{{__('Fluidbook en cours d\'utilisation')}}</h2>
- <p>{{__('Utilisateur : ')}} {{ $user->firstname }} {{ $user->lastname }}</p>
- <p>Identifiant: {{ $user->id }}</p>
+ <p>{{__('Utilisateur : ')}} <span id="username"></span></p>
+ <p>Identifiant: <span id="id"></span></p>
<p class="button">
<button id="connectTo" type="submit">{{__('Ejecter l\'utilisateur')}}</button>
</p>
</div>
+
+ <div class="popup" data-popup="twin-connection" style="max-width: 300px">
+ <h2>{{__('Vous êtes déjà connecté sur ce fluidbook')}}</h2>
+ </div>
</div>
<div draggable="false" id="linkeditor">