Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
OpenQuizz
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
10
Issues
10
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
Weber Rodolphe
OpenQuizz
Commits
4ce8a456
Commit
4ce8a456
authored
Jun 14, 2021
by
Jérémie Passerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Début des recherches sur les majs de tiers
parent
709e7ead
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
332 additions
and
211 deletions
+332
-211
Contenu.vue
src/Contenu.vue
+1
-4
Index.vue
src/Index.vue
+11
-8
Login.vue
src/Login.vue
+7
-2
Maj.vue
src/Maj.vue
+77
-41
Menu.vue
src/Menu.vue
+98
-54
Consulter_Contenu.vue
src/components/Consulter_Contenu.vue
+5
-3
Volet_Base.vue
src/components/Volet_Base.vue
+103
-75
Service.js
src/service/Service.js
+30
-24
No files found.
src/Contenu.vue
View file @
4ce8a456
<
template
>
<div
id=
"app"
>
<Volet
_Base
@
choix_variante=
"choixVariante"
v-bind:auteur=
"auteur"
@
publication=
"publication"
/>
<Volet
_Base
@
choix_variante=
"choixVariante"
v-bind:auteur=
"auteur"
/>
</div>
</
template
>
...
...
@@ -17,9 +17,6 @@ export default {
this
.
$emit
(
"choix_variante"
,
{
variante
:
event
.
variante
})
},
publication
:
function
(
event
)
{
this
.
$emit
(
"publication"
,
{
document
:
event
.
document
})
}
},
props
:
[
'auteur'
]
...
...
src/Index.vue
View file @
4ce8a456
...
...
@@ -2,9 +2,10 @@
<div>
<Login
v-show=
"etat === 'unlogged'"
@
user_logged=
"setLogged"
></Login>
<Menu
v-show=
"etat !== 'unlogged'"
v-bind:auteur=
"auteur"
v-bind:etat=
"etat"
v-bind:isNotif=
"isNotif"
v-bind:variante=
"variante"
@
menu_choisi=
"changerPage"
></Menu>
<Contenu
v-show=
"etat === 'Contenu'"
v-bind:auteur=
"auteur"
@
choix_variante=
"choixVariante"
@
publication=
"publication"
></Contenu>
<Maj
v-show=
"etat === 'Mises à jour'"
v-bind:auteur=
"auteur"
v-bind:contenuEnPublication=
"contenuEnPublication"
></Maj>
<Menu
v-show=
"etat !== 'unlogged'"
v-bind:auteur=
"auteur"
v-bind:etat=
"etat"
v-bind:variante=
"variante"
@
menu_choisi=
"changerPage"
></Menu>
<Contenu
v-show=
"etat === 'Contenu'"
v-bind:auteur=
"auteur"
@
choix_variante=
"choixVariante"
></Contenu>
<Maj
v-show=
"etat === 'Mises à jour'"
v-bind:auteur=
"auteur"
v-bind:isRecu=
"isRecu"
v-bind:isPropose=
"isPropose"
v-bind:contenuEnPublication=
"contenuEnPublication"
></Maj>
<Profil
v-show=
"etat === 'Profil'"
></Profil>
<Tags
v-show=
"etat === 'Tags'"
></Tags>
<p
style=
"text-align: center"
v-show=
"errorLogin"
>
Login ou mot de passe erroné
</p>
...
...
@@ -29,7 +30,9 @@ export default {
contenuEnPublication
:
""
,
isNotif
:
false
,
errorLogin
:
false
,
auteur
:
""
auteur
:
""
,
isRecu
:
false
,
isPropose
:
false
}
},
methods
:
{
...
...
@@ -49,14 +52,14 @@ export default {
this
.
etat
=
"unlogged"
else
this
.
etat
=
event
.
choix
if
(
event
.
choix
===
"Mises à jour"
){
this
.
isRecu
=
event
.
isRecu
this
.
isPropose
=
event
.
isPropose
}
},
choixVariante
:
function
(
event
)
{
this
.
variante
=
event
.
variante
},
publication
:
function
(
event
)
{
this
.
contenuEnPublication
=
event
.
document
this
.
isNotif
=
true
}
},
components
:{
...
...
src/Login.vue
View file @
4ce8a456
<
template
>
<div
id=
"loginForm"
>
<div
id=
"loginForm"
v-on:keyup=
"keymonitor"
>
<p>
Deux comptes temporaires : Charles, Jacques
</p>
<label
for=
"identifiant"
>
Identifiant
</label>
...
...
@@ -14,7 +14,7 @@
<br>
<br>
<button
@
click
.
prevent=
"logIn"
>
Connexion
</button>
<button
@
click
.
prevent=
"logIn"
>
Connexion
</button>
</div>
</
template
>
...
...
@@ -35,6 +35,11 @@ export default {
that
.
$emit
(
"user_logged"
,
{
"isLogged"
:
false
})
}
})
},
keymonitor
:
function
(
event
)
{
if
(
event
.
key
===
"Enter"
)
{
this
.
logIn
()
}
}
},
data
:
function
()
{
...
...
src/Maj.vue
View file @
4ce8a456
<
template
>
<div>
<span
class=
"niveau
"
id=
"recues"
v-on:click=
"naviguer"
>
Maj Recues
</span><br>
<div
id=
"detailRecues"
class=
"masque"
>
<span
v-bind:class=
"['niveau',
{'niveau-down' : isRecu}]
" id="recues" v-on:click="naviguer">Maj Recues
</span><br>
<div
id=
"detailRecues"
class=
"masque"
v-bind:class=
"
{'affiche' : isRecu}"
>
<table>
<thead>
<tr>
...
...
@@ -15,38 +15,36 @@
<th>
Date Version actuelle
</th>
<th>
Accepter
</th>
<th>
Refuser
</th>
</tr>
<tbody>
<!--
<tr
v-show=
"!panierChoisi"
v-for=
"item in contenusbanque"
:key=
"item.titre"
>
<td
class=
"modal titreContenu"
v-on:click=
"chargerContenu(item, 'banque')"
v-popover:tooltip=
"'prévisualisation'"
>
{{
item
.
_id
}}
</td>
<td>
{{
item
.
auteur
}}
</td>
<td>
The table body
</td>
<td>
with two columns
</td>
<td>
with two columns
</td>
<td>
with two columns
</td>
<td
class=
"modal tagContenu"
v-popover:tooltip=
"'tags'"
>
with two columns
</td>
<!--
<tr
v-show=
"!panierChoisi"
v-for=
"item in contenusbanque"
:key=
"item.titre"
>
<td
class=
"modal titreContenu"
v-on:click=
"chargerContenu(item, 'banque')"
v-popover:tooltip=
"'prévisualisation'"
>
{{
item
.
_id
}}
</td>
<td>
{{
item
.
auteur
}}
</td>
<td>
The table body
</td>
<td>
with two columns
</td>
<td>
with two columns
</td>
<td>
with two columns
</td>
<td
class=
"modal tagContenu"
v-popover:tooltip=
"'tags'"
>
with two columns
</td>
<td
class=
"boutonSupprimer"
>
<input
type=
"checkbox"
v-on:change=
"ajouterCoche(item._id, item.versionEnCours)"
class=
"horns"
name=
"horns"
/></td>
<td
class=
"boutonSupprimer"
>
<input
type=
"checkbox"
v-on:change=
"ajouterCoche(item._id, item.versionEnCours)"
class=
"horns"
name=
"horns"
/></td>
</tr>
-->
</tr>
-->
<tr
v-for=
"
item in contenusRecu"
:key=
"item._id
"
>
<tr
v-for=
"
(item, index) in contenusRecu"
:key=
"index
"
>
<td>
Contenu1
</td>
<td>
{{
item
.
auteurDemande
}}
</td>
<td>
1
</td>
<td>
01/06/2021
</td>
<td
id=
"valider"
><img
v-bind:src=
"imageCoche"
alt=
''
height=
20
width=
20
></td>
<td
id=
"refuser"
><img
v-bind:src=
"imageCroix"
alt=
''
height=
20
width=
20
></td>
<td
id=
"valider"
v-on:click=
"gererPublication(item, 'o')"
><img
v-bind:src=
"imageCoche"
alt=
''
height=
20
width=
20
></td>
<td
id=
"refuser"
v-on:click=
"gererPublication(item, 'n')"
><img
v-bind:src=
"imageCroix"
alt=
''
height=
20
width=
20
></td>
</tr>
</tbody>
</table>
</div>
<span
class=
"niveau"
id=
"proposees"
v-on:click=
"naviguer"
>
Maj Proposées
</span>
<div
id=
"detailProposees"
class=
"masque"
>
<span
class=
"niveau"
id=
"proposees"
v-
bind:class=
"
{'niveau-down' : isPropose}" v-
on:click="naviguer">Maj Proposées
</span>
<div
id=
"detailProposees"
class=
"masque"
v-bind:class=
"
{'affiche' : isPropose}"
>
<table>
<thead>
<tr>
...
...
@@ -67,15 +65,15 @@
</tr>
<tbody>
<tr
v-for=
"
item in contenusPropose"
:key=
"item._id
"
>
<tr
v-for=
"
(item, index) in contenusPropose"
:key=
"index
"
>
<td>
Contenu1
</td>
<td>
{{
item
.
auteurContenu
}}
</td>
<td>
1
</td>
<td>
01/06/2021
</td>
<td>
{{
item
.
etat
}}
</td>
<td
v-
on:click=
"conserver
"
><img
v-bind:src=
"imageCoche"
alt=
''
height=
20
width=
20
></td>
<td
v-
on:click=
"creerNouveau
"
><img
v-bind:src=
"imgNouveau"
alt=
''
height=
20
width=
20
></td>
<td
v-
on:click=
"supprimer
"
><img
v-bind:src=
"imgPoubelle"
alt=
''
height=
20
width=
20
></td>
<td
v-
if=
"item.etat === 'enCours'"
v-on:click=
"conserver(item)
"
><img
v-bind:src=
"imageCoche"
alt=
''
height=
20
width=
20
></td>
<td
v-
if=
"item.etat === 'enCours'"
v-on:click=
"creerNouveau(item)
"
><img
v-bind:src=
"imgNouveau"
alt=
''
height=
20
width=
20
></td>
<td
v-
if=
"item.etat === 'enCours'"
v-on:click=
"supprimer(item)
"
><img
v-bind:src=
"imgPoubelle"
alt=
''
height=
20
width=
20
></td>
</tr>
</tbody>
</table>
...
...
@@ -88,21 +86,66 @@ import Service from "@/service/Service";
export
default
{
name
:
"Maj"
,
props
:
[
'contenuEnPublication'
,
'auteur'
],
props
:
[
'contenuEnPublication'
,
'auteur'
,
'isRecu'
,
'isPropose'
],
methods
:
{
naviguer
:
function
(
e
)
{
alert
(
"recu "
+
this
.
isRecu
)
e
.
target
.
classList
.
toggle
(
"niveau-down"
)
//alert(e.target.id)
document
.
getElementById
(
"detail"
+
e
.
target
.
id
[
0
].
toUpperCase
()
+
e
.
target
.
id
.
substring
(
1
)).
classList
.
toggle
(
'affiche'
)
},
conserver
:
function
()
{
alert
(
"conserver"
)
conserver
:
function
(
item
)
{
let
that
=
this
let
data
=
{
auteur
:
this
.
auteur
,
id_contenu
:
JSON
.
stringify
(
item
.
idContenu
),
version
:
item
.
version_en_cours
.
toString
()}
Service
.
creerEnCoursRefuse
(
data
).
then
(
function
()
{
that
.
publicationsProposees
()
}
)
},
creerNouveau
:
function
(
item
)
{
let
that
=
this
let
data
=
{
id_demande_pub
:
JSON
.
stringify
(
item
.
_id
),
auteur
:
this
.
auteur
}
Service
.
creerNouveauContenu
(
data
).
then
(
function
()
{
that
.
publicationsProposees
()
}
)
},
supprimer
:
function
(
item
)
{
let
that
=
this
Service
.
supprimerDemandePublication
(
JSON
.
stringify
(
item
.
_id
)).
then
(
function
()
{
that
.
publicationsProposees
()
})
},
gererPublication
:
function
(
item
,
reponse
)
{
let
that
=
this
const
data
=
{
id_publication
:
JSON
.
stringify
(
item
.
_id
),
reponse
:
reponse
,
auteur
:
item
.
auteurDemande
}
this
.
contenusRecu
=
[]
Service
.
gererDemandePublication
(
data
).
then
(
function
()
{
that
.
publicationsRecues
()
})
},
creerNouveau
:
function
()
{
alert
(
"creerNouveau"
)
publicationsRecues
:
function
()
{
let
that
=
this
// Dès que l'auteur est connu, on charge tous ses contenus
Service
.
getPublicationsRecues
(
this
.
auteur
).
then
(
function
(
response
)
{
let
reception
=
response
.
data
for
(
let
i
=
0
;
i
<
reception
.
length
;
i
++
)
{
if
(
reception
[
i
].
etat
===
"enCours"
)
{
that
.
contenusRecu
.
push
(
reception
[
i
])
}
}
})
},
supprimer
:
function
()
{
alert
(
"supprimer"
)
publicationsProposees
:
function
()
{
let
that
=
this
// Dès que l'auteur est connu, on charge tous ses contenus
Service
.
getPublicationsProposees
(
this
.
auteur
).
then
(
function
(
response
)
{
that
.
contenusPropose
=
response
.
data
})
}
},
data
:
function
()
{
...
...
@@ -112,22 +155,15 @@ export default {
imgPoubelle
:
"data:image/png;base64,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"
,
imgNouveau
:
"https://png.pngtree.com/png-vector/20190129/ourmid/pngtree-vector-new-icon-png-image_423422.jpg"
,
contenusRecu
:
[],
contenusPropose
:
[]
contenusPropose
:
[],
action
:
false
}
},
watch
:
{
auteur
:
function
()
{
let
that
=
this
// Dès que l'auteur est connu, on charge tous ses contenus
Service
.
getPublicationsRecues
(
this
.
auteur
).
then
(
function
(
response
)
{
that
.
contenusRecu
=
response
.
data
})
this
.
publicationsRecues
()
this
.
publicationsProposees
()
Service
.
getPublicationsProposees
(
this
.
auteur
).
then
(
function
(
response
)
{
that
.
contenusPropose
=
response
.
data
})
}
},
}
...
...
src/Menu.vue
View file @
4ce8a456
...
...
@@ -11,36 +11,80 @@
<div
v-if=
"etat !== 'Mises à jour'"
class=
"sous_menu"
v-on:click=
"choixMenuAnnexe"
>
Mises à jour
</div>
<div
v-else
class=
"sous_menu"
v-on:click=
"choixMenuAnnexe"
>
Contenu
</div>
<div
class=
"sous_menu"
v-on:click=
"choixMenuAnnexe"
>
Tags
</div>
<div
class=
"sous_menu"
v-on:click=
"evaluations"
>
Evaluations
</div>
<div
class=
"sous_menu"
v-on:click=
"choixMenuAnnexe"
>
Deconnexion
</div>
</div>
</div>
</
template
>
<
script
>
import
Choix_Mode_Variante
from
"@/components/Choix_Mode_Variante"
;
import
Service
from
"@/service/Service"
;
export
default
{
name
:
"Menu"
,
data
:
function
()
{
return
{
isAffiche
:
false
,
isNotif
:
false
,
isRecu
:
false
,
isPropose
:
false
}
},
props
:
[
'etat'
,
'variante'
,
'
isNotif'
,
'
auteur'
],
props
:
[
'etat'
,
'variante'
,
'auteur'
],
methods
:
{
choixMenuAnnexe
:
function
(
e
)
{
this
.
$emit
(
"menu_choisi"
,
{
choix
:
e
.
target
.
innerText
})
this
.
isAffiche
=
!
this
.
isAffiche
this
.
isAffiche
=
false
},
evaluations
:
function
()
{
alert
(
"Gestion des évaluations (a venir)"
)
},
choixIconeNotification
:
function
()
{
this
.
$emit
(
"menu_choisi"
,
{
choix
:
"Mises à jour"
,
isRecu
:
this
.
isRecu
,
isPropose
:
this
.
isPropose
})
this
.
isAffiche
=
false
},
publicationsRecues
:
function
()
{
let
that
=
this
Service
.
getPublicationsRecues
(
this
.
auteur
).
then
(
function
(
response
)
{
let
contenusRecu
=
response
.
data
for
(
let
i
=
0
;
i
<
contenusRecu
.
length
;
i
++
)
{
if
(
contenusRecu
[
i
].
etat
===
"enCours"
)
{
that
.
isNotif
=
contenusRecu
.
length
!==
0
that
.
isRecu
=
that
.
isNotif
}
}
})
},
publicationsProposees
:
function
()
{
let
that
=
this
Service
.
getPublicationsProposees
(
this
.
auteur
).
then
(
function
(
response
)
{
let
contenusPropose
=
response
.
data
for
(
let
i
=
0
;
i
<
contenusPropose
.
length
;
i
++
)
{
if
(
contenusPropose
[
i
].
etat
!==
"enCours"
)
{
that
.
isNotif
=
true
that
.
isPropose
=
that
.
isNotif
}
}
})
},
choixIconeNotification
:
function
(){
this
.
$emit
(
"menu_choisi"
,
{
choix
:
"Mises à jour"
})
this
.
isAffiche
=
!
this
.
isAffiche
majTiers
:
function
()
{
Service
.
isMajTiersDisponible
(
this
.
auteur
).
then
(
function
(
response
)
{
alert
(
"Tiens, j'ai envie d'aller jorder un bon coup moua (aaaaaaaaaaaaaaaahhhhhhh) : "
+
response
.
data
)
})
}
},
components
:{
components
:
{
Choix_Mode_Variante
}
},
watch
:
{
auteur
:
function
()
{
this
.
publicationsRecues
()
this
.
publicationsProposees
()
this
.
majTiers
()
}
}
}
</
script
>
...
...
@@ -49,58 +93,58 @@ export default {
#menuHaut
{
display
:
flex
;
}
.circle
{
background
:
gold
;
border
:
1px
solid
yellow
;
margin-top
:
1%
;
border-radius
:
50%
;
display
:
flex
;
/* or inline-flex */
align-items
:
center
;
justify-content
:
center
;
height
:
75px
;
width
:
75px
;
}
.circle
{
background
:
gold
;
border
:
1px
solid
yellow
;
margin-top
:
1%
;
border-radius
:
50%
;
display
:
flex
;
/* or inline-flex */
align-items
:
center
;
justify-content
:
center
;
height
:
75px
;
width
:
75px
;
}
.menuVariante
{
margin-top
:
1%
;
margin-left
:
45%
;
z-index
:
1
;
.menuVariante
{
margin-top
:
1%
;
margin-left
:
45%
;
z-index
:
1
;
}
}
.menu
{
height
:
15
0px
;
width
:
100px
;
background
:
white
;
border
:
thin
solid
black
;
margin-top
:
100px
;
margin-left
:
93%
;
position
:
absolute
;
display
:
flex
;
flex-direction
:
column
;
text-align
:
center
;
vertical-align
:
middle
;
.menu
{
height
:
20
0px
;
width
:
100px
;
background
:
white
;
border
:
thin
solid
black
;
margin-top
:
100px
;
margin-left
:
93%
;
position
:
absolute
;
display
:
flex
;
flex-direction
:
column
;
text-align
:
center
;
vertical-align
:
middle
;
z-index
:
1
;
}
z-index
:
1
;
}
.notif
{
border
:
thin
solid
black
;
border-radius
:
30%
;
height
:
30px
;
width
:
30px
;
margin-top
:
1.5%
;
z-index
:
1
;
margin-left
:
90%
;
background-image
:
url(assets/img/cloche.png)
;
background-size
:
cover
;
.notif
{
border
:
thin
solid
black
;
border-radius
:
30%
;
height
:
30px
;
width
:
30px
;
margin-top
:
1.5%
;
z-index
:
1
;
margin-left
:
90%
;
background-image
:
url(assets/img/cloche.png)
;
background-size
:
cover
;
}
}
.sous_menu
{
flex-basis
:
25
%
;
border
:
thin
solid
black
;
line-height
:
36px
;
.sous_menu
{
flex-basis
:
20
%
;
border
:
thin
solid
black
;
line-height
:
36px
;
}
}
</
style
>
\ No newline at end of file
src/components/Consulter_Contenu.vue
View file @
4ce8a456
...
...
@@ -5,14 +5,16 @@
<p>
(Dans le futur, ces actions varieront en fonction du type de contenu cliqué dans la 'fenetre principale')
</p>
<div
id=
"actionsContenu"
>
<button
v-show=
"contenuCliqueProvenance !== 'banque'"
v-on:click=
"actionContenu('modifier')"
>
modifier le contenu
</button>
<button
v-show=
"contenuCliqueProvenance !== 'banque'
&& contenuClique.etat !== 'refuse'
"
v-on:click=
"actionContenu('modifier')"
>
modifier le contenu
</button>
<button
v-show=
"contenuCliqueProvenance !== 'banque'"
v-on:click=
"actionContenu('supprimer')"
>
supprimer le contenu
</button>
<button
v-show=
"contenuCliqueProvenance === 'en-cours'"
v-on:click=
"actionContenu('publier')"
>
publier le contenu
</button>
<button
v-show=
"contenuCliqueProvenance === 'banque'"
v-on:click=
"actionContenu('mettreFavori')"
>
mettre le contenu en tiers
</button>
<button
v-show=
"contenuCliqueProvenance === 'en-cours'
&& contenuClique.etat !== 'refuse'
"
v-on:click=
"actionContenu('publier')"
>
publier le contenu
</button>
<button
v-show=
"contenuCliqueProvenance === 'banque'
&& contenuClique.etat !== 'refuse'
"
v-on:click=
"actionContenu('mettreFavori')"
>
mettre le contenu en tiers
</button>
<br>
</div>
<p
v-if=
"contenuClique.etat === 'refuse'"
>
Je suis un contenu en cours
{{
contenuClique
.
etat
}}
</p>
<button
id=
"ren"
v-on:click=
"revenirArriere"
>
Retour en arrière
</button>
</div>
...
...
src/components/Volet_Base.vue
View file @
4ce8a456
...
...
@@ -50,7 +50,8 @@
}" >
<td
class=
"modal titreContenu"
v-on:click=
"chargerContenu(item, item.provenance)"
v-popover:tooltip=
"'prévisualisation'"
>
{{
item
.
_id
}}
</td>
<td>
{{
item
.
auteur
}}
</td>
<td>
with two columns
</td>
<td
v-if=
"item.provenance === 'en-cours'"
>
{{
item
.
version
}}
</td>
<td
v-else
>
{{
item
.
versionEnCours
.
numero
}}
</td>
<td>
The table body
</td>
<td>
with two columns
</td>
<td>
with two columns
</td>
...
...
@@ -64,7 +65,7 @@
<tr
v-show=
"!panierChoisi"
v-for=
"item in contenusbanque"
:key=
"item.titre"
>
<td
class=
"modal titreContenu"
v-on:click=
"chargerContenu(item, 'banque')"
v-popover:tooltip=
"'prévisualisation'"
>
{{
item
.
_id
}}
</td>
<td>
{{
item
.
auteur
}}
</td>
<td>
The table body
</td>
<td>
{{
item
.
versionEnCours
}}
</td>
<td>
with two columns
</td>
<td>
with two columns
</td>
<td>
with two columns
</td>
...
...
@@ -139,32 +140,32 @@ export default {
watch
:
{
auteur
:
function
()
{
this
.
contenusDuPanier
()
this
.
contenusDeLaBanque
()
}
},
mounted
()
{
this
.
modeConsultation
=
false
$
(
'#ensemble'
).
draggable
()
},
methods
:
{
contenusDuPanier
:
function
(){
let
that
=
this
// Dès que l'auteur est connu, on charge tous ses contenus
Service
.
getPanierAuteur
(
this
.
auteur
).
then
(
function
(
response
)
{
that
.
contenus
=
response
.
data
})
Service
.
getBanqueAuteur
(
this
.
auteur
).
then
(
function
(
response
)
{
that
.
contenusbanque
=
response
.
data
})
},
nouveauContenu
:
function
()
{
contenusDeLaBanque
:
function
(){
let
that
=
this
// Dès que l'auteur est connu, on charge tous ses contenus
Service
.
getPanierAuteur
(
this
.
auteur
).
then
(
function
(
response
)
{
that
.
contenus
=
response
.
data
})
Service
.
getBanqueAuteur
(
this
.
auteur
).
then
(
function
(
response
)
{
that
.
contenusbanque
=
response
.
data
})
}
},
mounted
()
{
this
.
modeConsultation
=
false
$
(
'#ensemble'
).
draggable
()
},
methods
:
{
},
desactiverVolet
:
function
()
{
this
.
isActif
=
!
this
.
isActif
},
...
...
@@ -180,16 +181,28 @@ export default {
this
.
$emit
(
"choix_variante"
,
{
variante
:
this
.
variante
})
},
supprimerContenus
:
function
()
{
let
that
=
this
if
(
this
.
panierChoisi
){
for
(
let
i
=
0
;
i
<
this
.
checkes
.
length
;
i
++
)
{
if
(
this
.
checkes
[
i
][
1
]
===
"perso"
){
Service
.
supprimerContenu
(
JSON
.
stringify
(
this
.
checkes
[
i
][
0
]))
Service
.
supprimerContenu
(
JSON
.
stringify
(
this
.
checkes
[
i
][
0
])).
then
(
function
()
{
that
.
contenusDuPanier
()
}
)
}
else
if
(
this
.
checkes
[
i
][
1
]
===
"tiers"
){
//let data = {auteur: this.auteur, id_tiers:JSON.stringify(this.checkes[i][0])}
Service
.
supprimerTiers
(
this
.
auteur
,
JSON
.
stringify
(
this
.
checkes
[
i
][
0
]))
Service
.
supprimerTiers
(
this
.
auteur
,
JSON
.
stringify
(
this
.
checkes
[
i
][
0
])).
then
(
function
()
{
that
.
contenusDuPanier
()
}
)
}
else
{
Service
.
supprimerEnCours
(
JSON
.
stringify
(
this
.
checkes
[
i
][
0
]))
Service
.
supprimerEnCours
(
JSON
.
stringify
(
this
.
checkes
[
i
][
0
])).
then
(
function
()
{
that
.
contenusDuPanier
()
}
)
}
}
...
...
@@ -197,25 +210,28 @@ export default {
else
{
for
(
let
i
=
0
;
i
<
this
.
checkes
.
length
;
i
++
)
{
let
data
=
{
auteur
:
this
.
auteur
,
id_tiers
:
JSON
.
stringify
(
this
.
checkes
[
i
][
0
])
,
version
:
this
.
checkes
[
i
][
1
][
"numero"
]}
Service
.
creerContenuTiers
(
data
)
Service
.
creerContenuTiers
(
data
).
then
(
function
()
{
that
.
contenusDuPanier
()
that
.
contenusDeLaBanque
()
}
)
}
}
this
.
checkes
=
[]
$
(
".horns"
).
prop
(
"checked"
,
false
);
let
that
=
this
Service
.
getPanierAuteur
(
this
.
auteur
).
then
(
function
(
response
)
{
that
.
contenus
=
response
.
data
that
.
nouveauContenu
=
!
that
.
nouveauContenu
})
},
ajouterContenu
:
async
function
()
{
majContenu
:
function
()
{
},
ajouterContenu
:
function
()
{
let
data
=
{
auteur
:
this
.
auteur
,
nom_fichier
:
"Contenu1"
,
commit
:
""
}
Service
.
creerContenuPerso
(
data
)
let
that
=
this
Service
.
getPanierAuteur
(
this
.
auteur
).
then
(
function
(
response
)
{
that
.
contenus
=
response
.
data
that
.
nouveauContenu
=
!
that
.
nouveauContenu
})
Service
.
creerContenuPerso
(
data
).
then
(
function
()
{
that
.
contenusDuPanier
()
}
)
},
chargerContenu
:
function
(
item
,
provenance
){
this
.
modeConsultation
=
true
;
...
...
@@ -234,70 +250,82 @@ export default {
case
"mettreFavori"
:
data
=
{
auteur
:
this
.
auteur
,
id_tiers
:
JSON
.
stringify
(
event
.
contenu
.
_id
)
,
version
:
event
.
contenu
.
versionEnCours
[
"numero"
]}
Service
.
creerContenuTiers
(
data
)
Service
.
getPanierAuteur
(
this
.
auteur
).
then
(
function
(
response
)
{
that
.
contenus
=
response
.
data
that
.
nouveauContenu
=
!
that
.
nouveauContenu
})
Service
.
creerContenuTiers
(
data
).
then
(
function
()
{
that
.
contenusDuPanier
()
}
)
this
.
panierChoisi
=
false
break
case
"modifier"
:
this
.
panierChoisi
=
true
if
(
this
.
contenuCliqueProvenance
!==
'en-cours'
){
data
=
{
auteur
:
this
.
auteur
,
id_contenu
:
JSON
.
stringify
(
event
.
contenu
.
_id
),
version
:
event
.
contenu
.
versionEnCours
[
"numero"
]}
Service
.
creerEnCours
(
data
).
then
(
function
()
{
Service
.
getPanierAuteur
(
that
.
auteur
).
then
(
function
(
response
)
{
that
.
contenus
=
response
.
data
that
.
nouveauContenu
=
!
that
.
nouveauContenu
})}
)
Service
.
creerEnCours
(
data
).
then
(
function
(
)
{
that
.
contenusDuPanier
()
}
)
}
break
case
"supprimer"
:
this
.
panierChoisi
=
true
if
(
this
.
contenuCliqueProvenance
===
"perso"
){
Service
.
supprimerContenu
(
JSON
.
stringify
(
event
.
contenu
.
_id
))
Service
.
supprimerContenu
(
JSON
.
stringify
(
event
.
contenu
.
_id
)).
then
(
function
()
{
that
.
contenusDuPanier
()
}
)
}
else
if
(
this
.
contenuCliqueProvenance
===
"tiers"
){
Service
.
supprimerTiers
(
this
.
auteur
,
JSON
.
stringify
(
event
.
contenu
.
_id
))
Service
.
supprimerTiers
(
this
.
auteur
,
JSON
.
stringify
(
event
.
contenu
.
_id
)).
then
(
function
()
{
that
.
contenusDuPanier
()
}
)
}
else
{
Service
.
supprimerEnCours
(
JSON
.
stringify
(
event
.
contenu
.
_id
))
Service
.
supprimerEnCoursParLid
(
JSON
.
stringify
(
event
.
contenu
.
_id
)).
then
(
function
()
{
that
.
contenusDuPanier
()
}
)
}
break
case
"publier"
:
this
.
panierChoisi
=
true
data
=
{
id_contenu
:
JSON
.
stringify
(
event
.
contenu
.
reference
),
id_contenu_en_cours
:
JSON
.
stringify
(
event
.
contenu
.
_id
),
auteur_en_cours
:
this
.
auteur
,
version
:
event
.
contenu
.
version
.
toString
()}
Service
.
creerDemandePublication
(
data
).
then
(
function
()
{
// on vire le contenu en cours dès qu'une demande de publication a été faite
Service
.
supprimerEnCoursParLid
(
JSON
.
stringify
(
event
.
contenu
.
_id
)).
then
(
function
()
{
that
.
contenusDuPanier
()
}
)
}
)
break
}
},
ajouterCoche
:
function
(
idContenu
,
provenance
)
{
let
existant
=
false
for
(
let
i
=
0
;
i
<
this
.
checkes
.
length
;
i
++
){
Service
.
getPanierAuteur
(
this
.
auteur
).
then
(
function
(
response
)
{
that
.
contenus
=
response
.
data
that
.
nouveauContenu
=
!
that
.
nouveauContenu
})
break
case
"publier"
:
alert
(
"Je veux publier"
)
this
.
panierChoisi
=
true
data
=
{
id_contenu
:
JSON
.
stringify
(
event
.
contenu
.
reference
),
id_contenu_en_cours
:
JSON
.
stringify
(
event
.
contenu
.
_id
),
auteur_en_cours
:
this
.
auteur
}
//request.args.get('id_contenu'), request.args.get('id_contenu_en_cours'),
Service
.
creerDemandePublication
(
data
)
// this.$emit("publication", {document: this.contenuClique})
break
}
},
ajouterCoche
:
function
(
idContenu
,
provenance
)
{
let
existant
=
false
for
(
let
i
=
0
;
i
<
this
.
checkes
.
length
;
i
++
){
if
(
this
.
checkes
[
i
][
0
]
===
idContenu
){
existant
=
true
if
(
this
.
checkes
[
i
][
0
]
===
idContenu
){
existant
=
true
}
}
}
if
(
existant
){
this
.
checkes
.
splice
(
this
.
checkes
.
indexOf
([
idContenu
,
provenance
]),
1
)
}
else
{
this
.
checkes
.
push
([
idContenu
,
provenance
])
if
(
existant
){
this
.
checkes
.
splice
(
this
.
checkes
.
indexOf
([
idContenu
,
provenance
]),
1
)
}
else
{
this
.
checkes
.
push
([
idContenu
,
provenance
])
}
}
}
}
}
</
script
>
...
...
src/service/Service.js
View file @
4ce8a456
...
...
@@ -27,11 +27,11 @@ export default {
},
creerContenuTiers
(
data
){
axios
.
patch
(
urlBase
+
"ajouterTiers"
,
data
)
return
axios
.
patch
(
urlBase
+
"ajouterTiers"
,
data
)
},
creerContenuPerso
(
data
){
axios
.
post
(
urlBase
+
"new
Contenu"
,
data
)
return
axios
.
post
(
urlBase
+
"add
Contenu"
,
data
)
},
...
...
@@ -39,37 +39,27 @@ export default {
return
axios
.
post
(
urlBase
+
"newEnCours"
,
data
)
},
supprimerEnCours
(
idEnCours
){
axios
.
delete
(
urlBase
+
"supprimerEnCours/"
+
idEnCours
)
creerEnCoursRefuse
(
data
){
return
axios
.
post
(
urlBase
+
"newEnCoursRefuse"
,
data
)
},
supprimerEnCours
(
idContenu
){
return
axios
.
delete
(
urlBase
+
"supprimerEnCours/"
+
idContenu
)
},
publierContenu
(
data
){
axios
.
post
(
urlBase
+
"demandePublication/"
,
data
)
supprimerEnCoursParLid
(
idEnCours
){
return
axios
.
delete
(
urlBase
+
"supprimerEnCoursParId/"
+
idEnCours
)
},
supprimerContenu
(
idContenu
){
axios
.
delete
(
urlBase
+
"deletePerso/"
+
idContenu
)
return
axios
.
delete
(
urlBase
+
"deletePerso/"
+
idContenu
)
},
supprimerTiers
(
auteur
,
id_tiers
){
axios
.
delete
(
urlBase
+
"deleteTiers?auteur="
+
auteur
+
"&id_tiers="
+
id_tiers
)
return
axios
.
delete
(
urlBase
+
"deleteTiers?auteur="
+
auteur
+
"&id_tiers="
+
id_tiers
)
},
getPublications
(
auteur
,
emise
){
return
axios
.
get
(
urlBase
+
"get_demandes_pub/"
+
auteur
+
"/"
+
emise
)
},
gererMajRecue
(){
},
gererMajProposee
(){
},
majCOntenu
(){
majContenu
(
data
){
return
axios
.
patch
(
urlBase
+
"majContenu"
,
data
)
},
...
...
@@ -84,7 +74,23 @@ export default {
},
creerDemandePublication
(
data
)
{
axios
.
post
(
urlBase
+
"demandePublication"
,
data
)
return
axios
.
post
(
urlBase
+
"demandePublication"
,
data
)
},
supprimerDemandePublication
(
idDemandePublication
){
return
axios
.
delete
(
urlBase
+
"demandePublication/"
+
idDemandePublication
)
},
creerNouveauContenu
(
data
){
return
axios
.
post
(
urlBase
+
"newContenu"
,
data
)
},
gererDemandePublication
(
data
){
return
axios
.
patch
(
urlBase
+
"gererDemandePub"
,
data
)
},
isMajTiersDisponible
(
auteur
){
return
axios
.
get
(
urlBase
+
"isMajTiersDisponible/"
+
auteur
)
},
listeMajTiers
(
auteur
){
return
axios
.
get
(
urlBase
+
"listeMajTiers/"
+
auteur
)
}
}
\ No newline at end of file
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