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 () )
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" >  ; </div >
100+ </div >
83101 </div >
84102
85103 </div >
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" >
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" >
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 -->
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 = " " ; // 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