Skip to content

Commit 33c7501

Browse files
author
laurent.abbal
committed
amelioration des liens
1 parent c58376f commit 33c7501

File tree

3 files changed

+208
-172
lines changed

3 files changed

+208
-172
lines changed

resources/views/devoirs/devoir-console.blade.php

+97-72
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,38 @@
11
<?php
2-
$devoir = App\Models\Devoir::where('jeton_secret', $jeton_secret)->first();
3-
if (!$devoir) {
4-
echo "<pre>Ce devoir n'existe pas</pre>";
5-
exit();
2+
if (isset($jeton_secret)) {
3+
$devoir = App\Models\Devoir::where('jeton_secret', $jeton_secret)->first();
4+
if (!$devoir) {
5+
echo "<pre>Ce devoir n'existe pas.</pre>";
6+
exit();
7+
} else {
8+
if ($devoir->user_id !== 0 && (!Auth::check() || (Auth::check() && Auth::id() !== $devoir->user_id))) {
9+
echo "<pre>Vous devez vous connecter pour accéder à ce devoir.</pre>";
10+
exit();
11+
}
12+
$copies = App\Models\Copie::where('jeton_devoir', $devoir->jeton)->orderBy('pseudo')->get();
13+
$sujet = App\Models\Sujet::find($devoir->sujet_id);
14+
$sujet_json = json_decode($sujet->sujet);
15+
$page_devoir_console = true;
16+
}
617
}
7-
$copies = App\Models\Copie::where('jeton_devoir', $devoir->jeton)->orderBy('pseudo')->get();
8-
$sujet = App\Models\Sujet::find($devoir->sujet_id);
9-
$sujet_json = json_decode($sujet->sujet);
10-
$page_devoir_console = true;
1118
?>
1219
<!doctype html>
1320
<html lang="fr">
1421
<head>
1522
@include('inc-meta')
16-
1723
<meta name="robots" content="noindex">
18-
1924
<title>DEVOIR | {{$devoir->jeton}} | CONSOLE</title>
2025
</head>
2126
<body>
2227

23-
@include('inc-nav')
28+
@if(Auth::check())
29+
@include('inc-nav-console')
30+
@else
31+
@include('inc-nav')
32+
@endif
2433

25-
<div class="container">
26-
<div class="row pt-3">
34+
<div class="container mt-4">
35+
<div class="row">
2736

2837
<div class="col-md-2 text-right pb-5">
2938
@if(Auth::check())
@@ -34,52 +43,61 @@
3443
@endif
3544
</div>
3645

37-
<div class="col-md-10 pl-4 pr-4">
46+
<div class="col-md-10">
3847

3948
<h1 class="text-center">DEVOIR</h1>
4049

41-
<div class="row">
42-
43-
<div class="col-md-12 text-monospace p-2 pl-3 pr-3 mb-3" style="border:dashed 2px #e3342f;border-radius:8px;">
44-
45-
@if(isset($_GET['i']) AND !Auth::check())
46-
<div class="text-monospace text-danger text-center font-weight-bold m-2">SAUVEGARDEZ LES INFORMATIONS CI-DESSOUS AVANT DE QUITTER CETTE PAGE</div>
47-
@endif
48-
49-
<div class="row justify-content-md-center">
50-
@if($devoir->user_id == 0 OR !Auth::check())
51-
<div class="col-md-auto">
52-
<div class="text-center font-weight-bold small">lien secret</div>
53-
<div class="text-center rounded bg-danger text-white p-3"><a href="/devoir-console/{{strtoupper($devoir->jeton_secret)}}" target="_blank" class="text-white font-weight-bold">www.codepuzzle.io/devoir-console/{{strtoupper($devoir->jeton_secret)}}</a></div>
54-
<div class="small text-muted pt-1"><span class="text-danger"><i class="fas fa-exclamation-circle"></i> Ne pas partager ce lien</span><br />Il permet d'accéder à la console du devoir (sujet, lien pour les élèves, correction...).</div>
55-
</div>
56-
@endif
57-
<div class="col-md-auto">
58-
<div class="text-center font-weight-bold small">code secret</div>
59-
<div class="text-center border border-danger rounded text-danger font-weight-bold p-3">{{$devoir->mot_secret}}</div>
60-
<div class="small text-muted pt-1"><span class="text-danger"><i class="fas fa-exclamation-circle"></i> Ne pas partager ce code</span><br />Il permet de déverrouiller la copie d'un élève</div>
50+
@if($devoir->user_id == 0 OR !Auth::check())
51+
<div class="row">
52+
<div class="col-md-12">
53+
<div class="text-monospace p-2 pl-3 pr-3 mb-3" style="border:dashed 2px #e3342f;border-radius:8px;">
54+
@if(isset($_GET['i']) AND !Auth::check())
55+
<div class="text-monospace text-danger text-center font-weight-bold m-2">SAUVEGARDEZ LES INFORMATIONS CI-DESSOUS AVANT DE QUITTER CETTE PAGE</div>
56+
@endif
57+
<div class="row">
58+
<div class="col-md-12">
59+
<div class="text-center font-weight-bold small">lien secret</div>
60+
<div class="text-center rounded bg-danger text-white p-3">
61+
<a id="lien_secret" href="/devoir-console/{{strtoupper($devoir->jeton_secret)}}" target="_blank" class="text-white font-weight-bold">www.codepuzzle.io/devoir-console/{{strtoupper($devoir->jeton_secret)}}</a>
62+
<div class="pl-1 text-light small" onclick="copier('lien_secret', this)" style="cursor:pointer;width:20px;display:inline-block;"><i class="fa-regular fa-clone"></i></div>
63+
</div>
64+
<div class="small text-muted pt-1"><span class="text-danger"><i class="fas fa-exclamation-circle"></i> Ne pas partager ce lien. Il permet de revenir sur cette page.</div>
65+
</div>
66+
</div>
6167
</div>
6268
</div>
63-
6469
</div>
65-
</div>
70+
@endif
6671

67-
<div class="mt-2 mb-4">
68-
<div class="text-center small text-muted p-0">lien à fournir aux élèves</div>
69-
<div class="text-center font-weight-bold text-monospace">
70-
<a id="lien" href="/E{{strtoupper($devoir->jeton)}}" target="_blank" class="text-dark" style="font-size:24px">www.codepuzzle.io/E{{strtoupper($devoir->jeton)}}</a>
71-
</div>
72-
<div class="text-center">
73-
<span class="pr-1" onclick="fullscreen('fullscreen')" style="cursor:pointer;"><i class="fas fa-expand"></i></span>
74-
<div id="fullscreen" class="bg-white text-center" style="display:none">
75-
<br /><br /><br /><br /><br /><br />
76-
<img src="{{ asset('img/code-puzzle.png') }}" width="200" />
77-
<br /><br /><br /><br /><br /><br /><br /><br />
78-
<div class="text-monospace text-dark font-weight-bold" style="font-size:5vw;">www.codepuzzle.io/E{{ strtoupper($devoir->jeton) }}</div>
79-
</div>
72+
<div class="row">
73+
74+
<div class="col-md-12">
75+
<div class="text-monospace pt-2 pl-3 pr-3 pb-3 mb-3" style="background-color:#dae0e5;border-radius:6px;">
76+
77+
<div>
78+
<span class="text-center small text-muted p-0" style="vertical-align:2px;"><i class="fa-solid fa-share"></i> Lien à fournir aux élèves: </span>
79+
<span class="text-center font-weight-bold text-monospace">
80+
<a id="lien" href="/E{{strtoupper($devoir->jeton)}}" target="_blank" class="text-dark" style="font-size:24px">www.codepuzzle.io/E{{strtoupper($devoir->jeton)}}</a>
81+
</span>
82+
<span class="pl-3">
83+
<button onclick="fullscreen('fullscreen')" type="button" class="btn btn-light btn-sm" style="vertical-align:4px;"><i class="fas fa-expand"></i></button>
84+
<div id="fullscreen" class="bg-white text-center" style="display:none">
85+
<br /><br /><br /><br /><br /><br />
86+
<img src="{{ asset('img/code-puzzle.png') }}" width="200" />
87+
<br /><br /><br /><br /><br /><br /><br /><br />
88+
<div class="text-monospace text-dark font-weight-bold" style="font-size:5vw;">www.codepuzzle.io/E{{ strtoupper($devoir->jeton) }}</div>
89+
</div>
90+
<button onclick="copier('lien', this)" type="button" class="btn btn-light btn-sm" style="vertical-align:4px;"><i class="fa-regular fa-clone"></i></button>
91+
</span>
92+
</div>
93+
94+
<div>
95+
<span class="text-center small text-muted p-0"><i class="fa-solid fa-share"></i> Code secret<sup class="pl-1" data-toggle="tooltip" data-placement="bottom" title="Ne pas partager ce code. Il permet de déverrouiller la copie d'un élève"><i class="fas fa-exclamation-circle"></i></sup>: </span>
96+
<span id="code_secret" class="text-danger font-weight-bold">{{$devoir->mot_secret}}</span>
97+
<span onclick="copier('code_secret', this)" class="small text-muted" style="vertical-align:2px;cursor:pointer"><i class="fa-regular fa-clone"></i></span>
98+
</div>
8099

81-
<span class="pl-1" onclick="copier('lien')" style="cursor:pointer;"><i class="fa-regular fa-copy"></i></span>
82-
<div id="lien_copie_confirmation" class="text-center small text-monospace text muted">&nbsp;</div>
100+
</div>
83101
</div>
84102

85103
</div>
@@ -98,7 +116,7 @@
98116
<div class="markdown_content" style="padding:20px;border:solid 1px #DBE0E5;border-radius:4px;background-color:#f3f5f7;border-radius:4px;">{{$devoir->consignes_eleve}}</div>
99117
@endif
100118

101-
<div class="mt-3 mb-1 text-monospace">{{strtoupper(__('copies'))}}</div>
119+
<div class="mt-5 mb-1 text-monospace">{{strtoupper(__('copies'))}}</div>
102120
@if ($copies->isNotEmpty())
103121
<div class="row mb-5">
104122
<div class="col-md-12">
@@ -169,12 +187,12 @@
169187
</div>
170188
@endif
171189

172-
@if ($copies->where('revised', 1)->count() != 0)
173-
<div class="mt-2 mb-1 text-monospace">{{strtoupper(__("comptes-rendus"))}}</div>
174-
<div class="row">
175-
<div class="col-md-12">
190+
<!-- COMPTES-RENDUS -->
191+
<div class="mt-2 mb-1 text-monospace">{{strtoupper(__("comptes-rendus"))}}</div>
192+
<div class="row">
193+
<div class="col-md-12">
194+
@if ($copies->where('revised', 1)->count() != 0)
176195
<ul class="list-group text-monospace">
177-
178196
@foreach($copies as $copie)
179197
@if($copie->revised == 1)
180198
<li class="list-group-item">
@@ -185,15 +203,18 @@
185203
</li>
186204
@endif
187205
@endforeach
188-
189206
</ul>
190207
<div class="mt-1">
191208
<a class="btn btn-dark btn-sm" href="/devoir-imprimer/{{ Crypt::encryptString($devoir->id) }}" role="button"><i class="fa-solid fa-print mr-2"></i> imprimer les comptes-rendus</a>
192209
<span class="text-muted small">pour les annoter à la main si nécessaire et les distribuer aux élèves</span>
193210
</div>
194-
</div>
195-
</div>
196-
@endif
211+
@else
212+
<div class="text-monospace small text-muted">Pas de copie corrigée pour l'instant.</div>
213+
@endif
214+
</div>
215+
</div>
216+
<!-- /COMPTES-RENDUS -->
217+
197218

198219
<div class="pt-5 mb-1 text-monospace">{{strtoupper(__("sujet"))}}</div>
199220
<!-- SUJET -->
@@ -211,7 +232,7 @@
211232

212233
{{-- == Copie lien ======================================================= --}}
213234
<script>
214-
function copier(id) {
235+
function copier(id, element) {
215236
var texte = document.getElementById(id).textContent;
216237
if (!navigator.clipboard) {
217238
// Alternative pour les navigateurs ne prenant pas en charge navigator.clipboard
@@ -230,20 +251,24 @@ function copier(id) {
230251
// Gérer les erreurs éventuelles
231252
//alert("Impossible de copier le texte dans le presse-papiers. Veuillez le faire manuellement.");
232253
});
233-
234-
var status = document.getElementById(id+'_copie_confirmation');
235-
status.innerText = "copié";
236-
237-
status.style.opacity = '1';
254+
255+
let icon = element.innerHTML;
256+
element.style.opacity = '0.2';
257+
element.innerHTML = '<i class="fa-solid fa-check"></i>';
238258
var fadeOutInterval = setInterval(function() {
239-
var opacity = parseFloat(status.style.opacity);
240-
if (opacity <= 0) {
259+
var opacity = parseFloat(element.style.opacity);
260+
if (opacity == 1) {
241261
clearInterval(fadeOutInterval);
242-
status.innerHTML = "&nbsp;"; // Effacer le texte après l'animation
243262
} else {
244-
status.style.opacity = (opacity - 0.1).toString();
263+
if (opacity > 0.8){
264+
element.blur();
265+
element.innerHTML = icon;
266+
}
267+
element.style.opacity = (opacity + 0.1).toString();
245268
}
246-
}, 150);
269+
}, 200);
270+
271+
console.log('copied');
247272
}
248273
</script>
249274
{{-- == /Copie lien ====================================================== --}}

0 commit comments

Comments
 (0)