Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
projet-cdaw
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Thibaut Felten
projet-cdaw
Commits
9f813a6e
Commit
9f813a6e
authored
Dec 04, 2020
by
Robin Borgogno
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
commentaire frontend
parent
8a2eaabf
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
64 additions
and
29 deletions
+64
-29
AdminPrivate.vue
frontend/src/views/AdminPrivate.vue
+18
-22
Game.vue
frontend/src/views/Game.vue
+14
-0
Inscription.vue
frontend/src/views/Inscription.vue
+2
-0
JoinPrivate.vue
frontend/src/views/JoinPrivate.vue
+2
-0
Login.vue
frontend/src/views/Login.vue
+6
-2
Online.vue
frontend/src/views/Online.vue
+11
-1
PlayerPrivate.vue
frontend/src/views/PlayerPrivate.vue
+2
-4
UpdateUser.vue
frontend/src/views/UpdateUser.vue
+6
-0
stats.vue
frontend/src/views/stats.vue
+3
-0
No files found.
frontend/src/views/AdminPrivate.vue
View file @
9f813a6e
...
@@ -38,13 +38,14 @@
...
@@ -38,13 +38,14 @@
color
:
#403d39
;
color
:
#403d39
;
font-size
:
28px
;
font-size
:
28px
;
padding
:
16px
31px
;
padding
:
16px
31px
;
font-weight
:
bold
;
font-weight
:
bold
;
white-space
:
nowrap
;
white-space
:
nowrap
;
margin-left
:
1%
;
margin-left
:
1%
;
}
}
</
style
>
</
style
>
<
script
>
<
script
>
// Appel des variables globales user et game
const
user
=
require
(
"../model/user.js"
)
const
user
=
require
(
"../model/user.js"
)
const
game
=
require
(
"../model/game.js"
)
const
game
=
require
(
"../model/game.js"
)
...
@@ -52,6 +53,7 @@ export default {
...
@@ -52,6 +53,7 @@ export default {
name
:
'AdminPrivate'
,
name
:
'AdminPrivate'
,
methods
:
{
methods
:
{
createIdGame
:
async
function
(){
createIdGame
:
async
function
(){
// L'admin crée une partie privée
const
url
=
sessionStorage
.
getItem
(
'APIURL'
)
+
"/game"
const
url
=
sessionStorage
.
getItem
(
'APIURL'
)
+
"/game"
let
data
=
{
let
data
=
{
...
@@ -62,30 +64,20 @@ export default {
...
@@ -62,30 +64,20 @@ export default {
var
params
=
{
var
params
=
{
method
:
'POST'
,
method
:
'POST'
,
body
:
JSON
.
stringify
(
data
)
};
body
:
JSON
.
stringify
(
data
)
};
// console.log(user)
let
response
=
await
fetch
(
url
,
params
)
let
response
=
await
fetch
(
url
,
params
)
let
result
=
await
response
.
json
()
let
result
=
await
response
.
json
()
document
.
getElementById
(
"codeGame"
).
innerHTML
=
result
[
0
].
id
;
document
.
getElementById
(
"codeGame"
).
innerHTML
=
result
[
0
].
id
;
game
.
id
=
result
[
0
].
id
;
game
.
id
=
result
[
0
].
id
;
// console.log(game.id)
},
},
gameID
:
async
function
(){
gameID
:
async
function
(){
// Fonction appelé dans le HTML et qui éxécute les fonctions dans l'ordre
await
this
.
createIdGame
()
await
this
.
createIdGame
()
await
this
.
ajoutAdminGame
()
await
this
.
ajoutAdminGame
()
await
this
.
JoueurPresent
()
await
this
.
JoueurPresent
()
},
},
returnUserID
:
function
(){
return
user
.
id
},
returnGameID
:
function
(){
return
game
.
id
},
JoueurPresentAppel
:
async
function
(){
await
this
.
JoueurPresent
()
},
ajoutAdminGame
:
async
function
(){
ajoutAdminGame
:
async
function
(){
// Ajout l'admin (user) à la partie
const
url
=
sessionStorage
.
getItem
(
'APIURL'
)
+
"/gameuser"
const
url
=
sessionStorage
.
getItem
(
'APIURL'
)
+
"/gameuser"
let
data
=
{
let
data
=
{
"GAME_ID"
:
game
.
id
,
"GAME_ID"
:
game
.
id
,
...
@@ -99,6 +91,8 @@ export default {
...
@@ -99,6 +91,8 @@ export default {
await
fetch
(
url
,
params
)
await
fetch
(
url
,
params
)
},
},
JoueurPresent
:
async
function
(){
JoueurPresent
:
async
function
(){
// Fonction appelé toute les secondes et qui récupère les nouveaux joueurs de la partie
// Si il y a la présence de joueurs suffisant, la partie se lance
let
url
=
sessionStorage
.
getItem
(
'APIURL'
)
+
"/gameuser/game"
let
url
=
sessionStorage
.
getItem
(
'APIURL'
)
+
"/gameuser/game"
url
+=
"/"
+
game
.
id
;
url
+=
"/"
+
game
.
id
;
var
params
=
{
var
params
=
{
...
@@ -115,21 +109,23 @@ export default {
...
@@ -115,21 +109,23 @@ export default {
this
.
$router
.
push
(
`/game/
${
game
.
id
}
`
)
this
.
$router
.
push
(
`/game/
${
game
.
id
}
`
)
return
return
}
}
setTimeout
(()
=>
{
if
(
game
.
id
){
this
.
JoueurPresent
()}},
3
000
)
setTimeout
(()
=>
{
if
(
game
.
id
){
this
.
JoueurPresent
()}},
1
000
)
},
},
retour
:
async
function
()
{
retour
:
async
function
()
{
let
data
=
{
// Function éxécuté lors de l'appui sur le bouton retour qui supprime l'user de la game et qui le renvoi à l'accueil
let
data
=
{
"GAME_ID"
:
game
.
id
"GAME_ID"
:
game
.
id
}
}
await
fetch
(
await
fetch
(
sessionStorage
.
getItem
(
'APIURL'
)
+
`/online/
${
user
.
id
}
`
,
sessionStorage
.
getItem
(
'APIURL'
)
+
`/online/
${
user
.
id
}
`
,
{
{
method
:
"DELETE"
,
method
:
"DELETE"
,
body
:
JSON
.
stringify
(
data
)
body
:
JSON
.
stringify
(
data
)
}
}
)
)
this
.
$router
.
push
(
'/'
)
this
.
$router
.
push
(
'/'
)
}
}
},
},
...
...
frontend/src/views/Game.vue
View file @
9f813a6e
...
@@ -47,6 +47,8 @@
...
@@ -47,6 +47,8 @@
<
script
>
<
script
>
let
havePlayed
=
false
let
havePlayed
=
false
// Appel de la variable globale user
const
user
=
require
(
"../model/user.js"
)
const
user
=
require
(
"../model/user.js"
)
export
default
{
export
default
{
...
@@ -56,6 +58,9 @@ export default {
...
@@ -56,6 +58,9 @@ export default {
},
},
methods
:
{
methods
:
{
select
:
async
function
(
value
)
{
select
:
async
function
(
value
)
{
// Fonction éxécuté lors de l'appui sur une des réponses et inscrit le résultat dans la base de donnée
// Appel de la fonction récupérant les résultat dans un second temps
const
gameID
=
window
.
location
.
href
.
split
(
"/"
).
slice
(
-
1
)[
0
]
const
gameID
=
window
.
location
.
href
.
split
(
"/"
).
slice
(
-
1
)[
0
]
if
(
havePlayed
)
if
(
havePlayed
)
...
@@ -76,6 +81,9 @@ export default {
...
@@ -76,6 +81,9 @@ export default {
},
},
getResult
:
async
function
(
gameID
,
value
)
{
getResult
:
async
function
(
gameID
,
value
)
{
// Fonction appelée pour la première fois par "select" puis ensuite par elle meme tout les quarts de seconde
// Cette fonction récupère les résultats de la manche en cours
const
res
=
await
fetch
(
const
res
=
await
fetch
(
sessionStorage
.
getItem
(
'APIURL'
)
+
`/result/
${
gameID
}
`
,
sessionStorage
.
getItem
(
'APIURL'
)
+
`/result/
${
gameID
}
`
,
{
{
...
@@ -83,10 +91,12 @@ export default {
...
@@ -83,10 +91,12 @@ export default {
}
}
)
)
const
result
=
await
res
.
json
()
const
result
=
await
res
.
json
()
// Si on récupère deux résultats (donc que les deux joueurs ont joué)
if
(
result
.
length
>=
2
)
{
if
(
result
.
length
>=
2
)
{
this
.
updateScore
(
result
,
value
)
this
.
updateScore
(
result
,
value
)
this
.
resetStyle
()
this
.
resetStyle
()
havePlayed
=
false
havePlayed
=
false
// Attente avant la suppression de la valeur adverse afin de s'assurer que l'autre joueur est prêt pour le rond suivant
setTimeout
(
async
()
=>
{
this
.
resetGame
(
result
)},
700
)
setTimeout
(
async
()
=>
{
this
.
resetGame
(
result
)},
700
)
return
return
}
}
...
@@ -97,6 +107,7 @@ export default {
...
@@ -97,6 +107,7 @@ export default {
},
},
updateScore
:
function
(
result
,
value
)
{
updateScore
:
function
(
result
,
value
)
{
// Fonction mettant à jour le score et calculant si la partie est gagnée par un des deux joueurs
let
i
=
0
;
let
i
=
0
;
if
(
result
[
0
][
'USER_ID'
]
==
user
.
id
){
if
(
result
[
0
][
'USER_ID'
]
==
user
.
id
){
i
=
1
i
=
1
...
@@ -144,6 +155,7 @@ export default {
...
@@ -144,6 +155,7 @@ export default {
}
}
},
},
updateUser
:
async
function
(
win
,
lost
){
updateUser
:
async
function
(
win
,
lost
){
// Fonction appelée en fin de partie et qui met à jour les statistiques du joueur dans la base de donnée
if
(
user
.
id
<
1000000
){
if
(
user
.
id
<
1000000
){
let
rock
=
this
.
rock
let
rock
=
this
.
rock
let
paper
=
this
.
paper
let
paper
=
this
.
paper
...
@@ -164,6 +176,7 @@ export default {
...
@@ -164,6 +176,7 @@ export default {
,
,
resetGame
:
async
function
(
result
)
{
resetGame
:
async
function
(
result
)
{
// Fonction appelée à la fin d'un round et qui supprime le résultat adverse du round
let
i
=
0
;
let
i
=
0
;
if
(
result
[
0
][
'USER_ID'
]
==
user
.
id
){
if
(
result
[
0
][
'USER_ID'
]
==
user
.
id
){
i
=
1
i
=
1
...
@@ -178,6 +191,7 @@ export default {
...
@@ -178,6 +191,7 @@ export default {
},
},
resetStyle
:
function
()
{
resetStyle
:
function
()
{
// Fonction appelée en fin de round et qui remet à zéro le style des boutons de jeu
document
.
getElementById
(
"rock"
).
classList
.
remove
(
"selected"
)
document
.
getElementById
(
"rock"
).
classList
.
remove
(
"selected"
)
document
.
getElementById
(
"paper"
).
classList
.
remove
(
"selected"
)
document
.
getElementById
(
"paper"
).
classList
.
remove
(
"selected"
)
document
.
getElementById
(
"scissors"
).
classList
.
remove
(
"selected"
)
document
.
getElementById
(
"scissors"
).
classList
.
remove
(
"selected"
)
...
...
frontend/src/views/Inscription.vue
View file @
9f813a6e
...
@@ -108,6 +108,7 @@ export default {
...
@@ -108,6 +108,7 @@ export default {
},
},
methods
:
{
methods
:
{
check
:
function
(){
check
:
function
(){
// Fonction vérifiant et mettant en forme les données pour la fonction call
let
firstname
=
this
.
firstname
let
firstname
=
this
.
firstname
let
lastname
=
this
.
lastname
let
lastname
=
this
.
lastname
let
login
=
this
.
login
let
login
=
this
.
login
...
@@ -137,6 +138,7 @@ export default {
...
@@ -137,6 +138,7 @@ export default {
},
},
call
:
function
(
data
){
call
:
function
(
data
){
// Fonction permetant d'ajouter l'utilisateur à la base
const
url
=
sessionStorage
.
getItem
(
'APIURL'
)
+
"/user"
const
url
=
sessionStorage
.
getItem
(
'APIURL'
)
+
"/user"
var
params
=
{
var
params
=
{
...
...
frontend/src/views/JoinPrivate.vue
View file @
9f813a6e
...
@@ -53,6 +53,7 @@
...
@@ -53,6 +53,7 @@
</
style
>
</
style
>
<
script
>
<
script
>
// Appel des variables globales user et game
const
user
=
require
(
"../model/user.js"
)
const
user
=
require
(
"../model/user.js"
)
const
game
=
require
(
"../model/game.js"
)
const
game
=
require
(
"../model/game.js"
)
export
default
{
export
default
{
...
@@ -62,6 +63,7 @@ export default {
...
@@ -62,6 +63,7 @@ export default {
},
},
methods
:
{
methods
:
{
rejoindre
:
async
function
(){
rejoindre
:
async
function
(){
// Fonction inscrivant le joueur au code de game rentré et le redirigeant vers la page d'attente privée
if
((
Number
(
this
.
idgame
)
!=
this
.
idgame
||
Number
(
this
.
idgame
)
<
0
)){
if
((
Number
(
this
.
idgame
)
!=
this
.
idgame
||
Number
(
this
.
idgame
)
<
0
)){
return
return
}
}
...
...
frontend/src/views/Login.vue
View file @
9f813a6e
...
@@ -77,12 +77,13 @@
...
@@ -77,12 +77,13 @@
</
style
>
</
style
>
<
script
>
<
script
>
// Appel des variables globales user
const
user
=
require
(
"../model/user.js"
)
const
user
=
require
(
"../model/user.js"
)
export
default
{
export
default
{
name
:
'Login'
,
name
:
'Login'
,
data
(){
// the data, declared as function
data
(){
return
{
// we return all the properties that should be react on.
return
{
log
:
''
,
log
:
''
,
pass
:
''
pass
:
''
...
@@ -90,6 +91,7 @@ export default {
...
@@ -90,6 +91,7 @@ export default {
},
},
methods
:
{
methods
:
{
check
:
function
(){
check
:
function
(){
// Fonction vérifiant et mettant en forme les données pour la fonction call
let
login
=
this
.
log
let
login
=
this
.
log
let
password
=
this
.
pass
let
password
=
this
.
pass
var
bcrypt
=
require
(
'bcryptjs'
);
var
bcrypt
=
require
(
'bcryptjs'
);
...
@@ -99,6 +101,8 @@ export default {
...
@@ -99,6 +101,8 @@ export default {
},
},
call
:
function
(
login
,
password
){
call
:
function
(
login
,
password
){
// Fonction vérifiant les valeurs transmise par l'utilsateur et enregistre ses informations dans la variable "user" en cas de réponse positive
// Fonction redirigeant à l'accueil une fois la connexion réussi
const
url
=
sessionStorage
.
getItem
(
'APIURL'
)
+
"/login"
const
url
=
sessionStorage
.
getItem
(
'APIURL'
)
+
"/login"
let
data
=
{
let
data
=
{
...
...
frontend/src/views/Online.vue
View file @
9f813a6e
...
@@ -37,6 +37,7 @@
...
@@ -37,6 +37,7 @@
<
script
>
<
script
>
// Appel des variables globales user et game
const
user
=
require
(
"../model/user.js"
)
const
user
=
require
(
"../model/user.js"
)
const
game
=
require
(
"../model/game.js"
)
const
game
=
require
(
"../model/game.js"
)
...
@@ -45,6 +46,8 @@ export default {
...
@@ -45,6 +46,8 @@ export default {
methods
:
{
methods
:
{
ajouterUser
:
async
function
()
{
ajouterUser
:
async
function
()
{
// Fonction ajoutant l'utilisateur à la fil d'attente des perosnnes en ligne
// Elle appelle ensuite la fonction "findGame"
await
fetch
(
await
fetch
(
sessionStorage
.
getItem
(
'APIURL'
)
+
`/online/
${
user
.
id
}
`
,
sessionStorage
.
getItem
(
'APIURL'
)
+
`/online/
${
user
.
id
}
`
,
{
{
...
@@ -55,6 +58,8 @@ export default {
...
@@ -55,6 +58,8 @@ export default {
},
},
findGame
:
async
function
(){
findGame
:
async
function
(){
// Fonction appeler la première fois par "ajouterUser" puis par elle même toute les secondes en cas de non affectation à une partie
// Fonction permetant de récupéré le code la game auquel le user est affecté
const
res
=
await
fetch
(
const
res
=
await
fetch
(
sessionStorage
.
getItem
(
'APIURL'
)
+
`/online/
${
user
.
id
}
`
,
sessionStorage
.
getItem
(
'APIURL'
)
+
`/online/
${
user
.
id
}
`
,
{
{
...
@@ -73,6 +78,8 @@ export default {
...
@@ -73,6 +78,8 @@ export default {
},
},
goGame
:
async
function
(
gameID
)
{
goGame
:
async
function
(
gameID
)
{
// Fonction vérifiant que deux personne sont bien dans la partie avant de lancer la partie
// Si il est tout seul dans la partie, la fonction se rapelle toute les secondes
let
url
=
sessionStorage
.
getItem
(
'APIURL'
)
+
"/gameuser/game"
let
url
=
sessionStorage
.
getItem
(
'APIURL'
)
+
"/gameuser/game"
url
+=
"/"
+
gameID
;
url
+=
"/"
+
gameID
;
var
params
=
{
var
params
=
{
...
@@ -85,10 +92,12 @@ export default {
...
@@ -85,10 +92,12 @@ export default {
this
.
$router
.
push
(
`/game/
${
gameID
}
`
)
this
.
$router
.
push
(
`/game/
${
gameID
}
`
)
return
return
}
}
setTimeout
(()
=>
{
this
.
goGame
(
gameID
)},
2
000
)
setTimeout
(()
=>
{
this
.
goGame
(
gameID
)},
1
000
)
},
},
retour
:
async
function
()
{
retour
:
async
function
()
{
// Fonction permettant de retourner à l'accueil en cas d'appui sur le bouton retour
// La fonction supprime l'user de la liste d'attente online avant de le rediriger vers l'accueil
let
data
=
{
let
data
=
{
"GAME_ID"
:
game
.
id
"GAME_ID"
:
game
.
id
}
}
...
@@ -105,6 +114,7 @@ export default {
...
@@ -105,6 +114,7 @@ export default {
},
},
beforeMount
(){
beforeMount
(){
// Appel de la fonction "ajouterUser" lors du chargement de la page
this
.
ajouterUser
();
this
.
ajouterUser
();
},
},
}
}
...
...
frontend/src/views/PlayerPrivate.vue
View file @
9f813a6e
...
@@ -28,15 +28,13 @@
...
@@ -28,15 +28,13 @@
</
style
>
</
style
>
<
script
>
<
script
>
//
const user = require("../model/user.js")
//
Appel des variables globales game
const
game
=
require
(
"../model/game.js"
)
const
game
=
require
(
"../model/game.js"
)
export
default
{
export
default
{
name
:
'PlayerPrivate'
,
name
:
'PlayerPrivate'
,
methods
:
{
methods
:
{
gameID
:
function
(){
return
game
.
id
},
JoueurPresent
:
async
function
(){
JoueurPresent
:
async
function
(){
// Fonction permettant d'afficher les joueurs présent et de rediger vers la partie lors de l'obtention du nombre de joueurs souhaités
let
url
=
sessionStorage
.
getItem
(
'APIURL'
)
+
"/gameuser/game"
let
url
=
sessionStorage
.
getItem
(
'APIURL'
)
+
"/gameuser/game"
url
+=
"/"
+
game
.
id
;
url
+=
"/"
+
game
.
id
;
var
params
=
{
var
params
=
{
...
...
frontend/src/views/UpdateUser.vue
View file @
9f813a6e
...
@@ -83,6 +83,7 @@
...
@@ -83,6 +83,7 @@
</
style
>
</
style
>
<
script
>
<
script
>
// Appel des variables globales user
const
user
=
require
(
"../model/user.js"
)
const
user
=
require
(
"../model/user.js"
)
export
default
{
export
default
{
...
@@ -101,6 +102,7 @@ export default {
...
@@ -101,6 +102,7 @@ export default {
},
},
methods
:
{
methods
:
{
check
:
function
(){
check
:
function
(){
// Fonction vérifiant et mettant en forme les données pour la fonction call
if
(
this
.
firstname
==
""
){
if
(
this
.
firstname
==
""
){
var
first
=
user
.
first
var
first
=
user
.
first
...
@@ -139,6 +141,10 @@ export default {
...
@@ -139,6 +141,10 @@ export default {
},
},
call
:
function
(
data
){
call
:
function
(
data
){
// Fonction mettant à jour les infos de l'utilisateur dans la base de donnée
// La fonction met également à jour la variable globale "user"
// Renvoi à l'accueil une fois la fonction terminée
const
url
=
sessionStorage
.
getItem
(
'APIURL'
)
+
`/user/
${
user
.
id
}
`
const
url
=
sessionStorage
.
getItem
(
'APIURL'
)
+
`/user/
${
user
.
id
}
`
var
params
=
{
var
params
=
{
...
...
frontend/src/views/stats.vue
View file @
9f813a6e
...
@@ -50,6 +50,7 @@
...
@@ -50,6 +50,7 @@
</
style
>
</
style
>
<
script
>
<
script
>
// Appel des variables globales user
const
user
=
require
(
"../model/user.js"
)
const
user
=
require
(
"../model/user.js"
)
export
default
{
export
default
{
...
@@ -64,6 +65,7 @@ export default {
...
@@ -64,6 +65,7 @@ export default {
},
},
methods
:
{
methods
:
{
getStats
:
async
function
()
{
getStats
:
async
function
()
{
// Fonction récupérant les stats d'un user et qui met la variable "user" à jour
await
fetch
(
await
fetch
(
sessionStorage
.
getItem
(
'APIURL'
)
+
`/user/
${
user
.
id
}
`
,
sessionStorage
.
getItem
(
'APIURL'
)
+
`/user/
${
user
.
id
}
`
,
{
{
...
@@ -84,6 +86,7 @@ export default {
...
@@ -84,6 +86,7 @@ export default {
},
},
beforeMount
(){
beforeMount
(){
// Appel de la fonction "getStats" au chargement de la page
this
.
getStats
();
this
.
getStats
();
},
},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment