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
c23be78c
Commit
c23be78c
authored
Sep 01, 2021
by
Jérémie Passerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Ajout de tag libre via glisser déposer
parent
6205615d
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
237 additions
and
93 deletions
+237
-93
package-lock.json
package-lock.json
+31
-30
NewContenu.vue
src/NewContenu.vue
+1
-1
TagsLibres.vue
src/TagsLibres.vue
+22
-1
Detail_Contenu.vue
src/components/Detail_Contenu.vue
+24
-7
Modifier_Contenu.vue
src/components/Modifier_Contenu.vue
+10
-3
Volet_Base.vue
src/components/Volet_Base.vue
+39
-29
Volet_Contenu.vue
src/components/Volet_Contenu.vue
+20
-2
Filtre_Tag_Libre.vue
src/components/filtres/Filtre_Tag_Libre.vue
+90
-20
No files found.
package-lock.json
View file @
c23be78c
...
...
@@ -5,6 +5,7 @@
"requires": true,
"packages": {
"": {
"name": "volet_navigation",
"version": "0.1.0",
"dependencies": {
"@popperjs/core": "^2.9.2",
...
...
@@ -7539,9 +7540,9 @@
"dev": true
},
"node_modules/dns-packet": {
"version": "1.3.
1
",
"resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.
1
.tgz",
"integrity": "sha512-
0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg
==",
"version": "1.3.
4
",
"resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.
4
.tgz",
"integrity": "sha512-
BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA
==",
"dev": true,
"dependencies": {
"ip": "^1.1.0",
...
...
@@ -15344,9 +15345,9 @@
}
},
"node_modules/path-parse": {
"version": "1.0.
6
",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.
6
.tgz",
"integrity": "sha512-
GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOz
w==",
"version": "1.0.
7
",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.
7
.tgz",
"integrity": "sha512-
LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8s
w==",
"dev": true
},
"node_modules/path-to-regexp": {
...
...
@@ -15527,9 +15528,9 @@
}
},
"node_modules/postcss": {
"version": "7.0.3
5
",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.3
5
.tgz",
"integrity": "sha512-
3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg
==",
"version": "7.0.3
6
",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.3
6
.tgz",
"integrity": "sha512-
BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw
==",
"dev": true,
"dependencies": {
"chalk": "^2.4.2",
...
...
@@ -19153,9 +19154,9 @@
}
},
"node_modules/url-parse": {
"version": "1.5.
1
",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.
1
.tgz",
"integrity": "sha512-
HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85
Q==",
"version": "1.5.
3
",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.
3
.tgz",
"integrity": "sha512-
IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjv
Q==",
"dev": true,
"dependencies": {
"querystringify": "^2.1.1",
...
...
@@ -20669,9 +20670,9 @@
}
},
"node_modules/ws": {
"version": "6.2.
1
",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.
1
.tgz",
"integrity": "sha512-
GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA
==",
"version": "6.2.
2
",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.
2
.tgz",
"integrity": "sha512-
zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw
==",
"dev": true,
"dependencies": {
"async-limiter": "~1.0.0"
...
...
@@ -27024,9 +27025,9 @@
"dev": true
},
"dns-packet": {
"version": "1.3.
1
",
"resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.
1
.tgz",
"integrity": "sha512-
0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg
==",
"version": "1.3.
4
",
"resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.
4
.tgz",
"integrity": "sha512-
BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA
==",
"dev": true,
"requires": {
"ip": "^1.1.0",
...
...
@@ -33141,9 +33142,9 @@
"dev": true
},
"path-parse": {
"version": "1.0.
6
",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.
6
.tgz",
"integrity": "sha512-
GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOz
w==",
"version": "1.0.
7
",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.
7
.tgz",
"integrity": "sha512-
LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8s
w==",
"dev": true
},
"path-to-regexp": {
...
...
@@ -33282,9 +33283,9 @@
"dev": true
},
"postcss": {
"version": "7.0.3
5
",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.3
5
.tgz",
"integrity": "sha512-
3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg
==",
"version": "7.0.3
6
",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.3
6
.tgz",
"integrity": "sha512-
BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw
==",
"dev": true,
"requires": {
"chalk": "^2.4.2",
...
...
@@ -36327,9 +36328,9 @@
}
},
"url-parse": {
"version": "1.5.
1
",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.
1
.tgz",
"integrity": "sha512-
HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85
Q==",
"version": "1.5.
3
",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.
3
.tgz",
"integrity": "sha512-
IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjv
Q==",
"dev": true,
"requires": {
"querystringify": "^2.1.1",
...
...
@@ -37568,9 +37569,9 @@
}
},
"ws": {
"version": "6.2.
1
",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.
1
.tgz",
"integrity": "sha512-
GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA
==",
"version": "6.2.
2
",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.
2
.tgz",
"integrity": "sha512-
zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw
==",
"dev": true,
"requires": {
"async-limiter": "~1.0.0"
src/NewContenu.vue
View file @
c23be78c
...
...
@@ -77,7 +77,7 @@ export default {
that
.
$emit
(
"contenuAjoute"
,
{
contenu
:
nouveauContenu
})
that
.
contenuSaisi
=
''
that
.
retourArriere
(
true
)
that
.
isCreation
=
fals
e
that
.
isCreation
=
tru
e
}
)
},
...
...
src/TagsLibres.vue
View file @
c23be78c
...
...
@@ -35,7 +35,9 @@ export default {
// provenance du contenu
contenuCliqueProvenance
:
{},
// Signal d'activation ou non du theme sombre
darktheme
:
{}
darktheme
:
{},
// Récupération d'un tag libre ajouté
tagLibreAssocie
:
{}
},
methods
:{
/**
...
...
@@ -106,6 +108,21 @@ export default {
})
})
},
/**
* @vuese
* Traitement d'un tag associé via drag&dro
*/
tagLibreAssocie
:
function
()
{
//alert(this.auteur)
//alert(this.tagLibreAssocie)
let
that
=
this
Service
.
recupererTagLibre
(
this
.
auteur
).
then
(
function
(
response
)
{
that
.
tagsDeAuteur
=
response
.
data
Service
.
recupererTagLibreContenu
(
JSON
.
stringify
(
that
.
tagLibreAssocie
),
that
.
auteur
).
then
(
function
(
response
)
{
that
.
tagsLibres
=
response
.
data
})
})
}
},
computed
:
{
/**
...
...
@@ -125,6 +142,10 @@ ul {
}
li
{
margin-left
:
-1.5vw
;
}
/*#pageTagLibre {
margin-left: 20%;
margin-right: 20%;
...
...
src/components/Detail_Contenu.vue
View file @
c23be78c
...
...
@@ -3,7 +3,9 @@
<p
v-show=
"filtre_choisi.length === 0"
>
{{
texte
}}
</p>
<Filtre
_Tag
v-show=
"filtre_choisi === 'tags officiels'"
@
creer_filtre=
"creer_filtre"
/>
<Filtre
_Tag_Libre
v-bind:darktheme=
"darktheme"
v-show=
"filtre_choisi === 'tags libres' "
v-bind:filtreChoisi=
"filtre_choisi"
v-bind:auteur=
"auteur"
@
creer_filtre=
"creer_filtre"
/>
<Filtre
_Tag_Libre
v-bind:darktheme=
"darktheme"
v-show=
"filtre_choisi === 'tags libres' "
v-bind:filtreChoisi=
"filtre_choisi"
v-bind:auteur=
"auteur"
@
creer_filtre=
"creer_filtre"
v-bind:checkes=
"checkes"
@
lignesDropped=
"lignesDropped"
@
actionTagLibre=
"actionTagLibre"
/>
<Filtre
_Auteur
v-bind:panierChoisi=
"panierChoisi"
v-show=
"filtre_choisi === 'auteur'"
v-bind:auteur=
"auteur"
@
creer_filtre=
"creer_filtre"
/>
<Filtre
_Date
v-show=
"filtre_choisi === 'date' "
@
creer_filtre=
"creer_filtre"
/>
<Filtre
_Note_Popularite
v-show=
"filtre_choisi === 'note' "
@
creer_filtre=
"creer_filtre"
v-bind:deconnexion=
"deconnexion"
/>
...
...
@@ -24,7 +26,6 @@ import Filtre_Tag_Libre from "@/components/filtres/Filtre_Tag_Libre";
import
Filtre_Recherche
from
"@/components/filtres/Filtre_Recherche"
;
export
default
{
name
:
"Detail_Contenu"
,
components
:
{
...
...
@@ -49,6 +50,8 @@ export default {
deconnexion
:
{},
// Signal d'activation ou non du theme sombre
darktheme
:
{},
// lignes cochées
checkes
:
{}
},
methods
:
{
/**
...
...
@@ -59,6 +62,20 @@ export default {
// Transmet la création d'un filtre
// @arg filtre le filtre créé
this
.
$emit
(
"creer_filtre"
,
{
filtre
:
event
})
},
/**
* @vuese
* Permet de savoir si les lignes sélectionnées ont été déposées sur un tag
*/
lignesDropped
:
function
()
{
this
.
$emit
(
"lignesDropped"
)
},
/**
* @vuese
* Permet de remonter l'info pour un tag libre associé via drag&drop
*/
actionTagLibre
:
function
(
event
)
{
this
.
$emit
(
"actionTagLibre"
,
{
creation
:
event
.
creation
,
id_contenu
:
event
.
id_contenu
})
}
},
data
:
function
()
{
...
...
@@ -66,11 +83,11 @@ export default {
texte
:
"Ajoutez des filtres pour restreindre les contenus de la banque ou du panier en sélectionnant le filtre à appliquer dans la zone de choix ci dessus"
}
}
/* watch: {
modeFiltre: function () {
this.filtre_choisi = ""
}
},*/
/* watch: {
modeFiltre: function () {
this.filtre_choisi = ""
}
},*/
}
</
script
>
...
...
src/components/Modifier_Contenu.vue
View file @
c23be78c
...
...
@@ -58,7 +58,7 @@
<mavon-editor
:language=
"'fr'"
style=
"position: static; height: 79vh; margin-top: -0.5%"
v-model=
"texteDuContenu"
/>
</div>
<TagsLibres
v-show=
"isModeTag"
v-bind:contenu=
"this.contenuClique"
v-bind:auteur=
"auteur"
@
actionTagLibre=
"actionTagLibre"
style=
"position: static; height: 79vh; margin-top: -0.5%"
v-bind:darktheme=
"darktheme"
@
chargerTagsLibres=
"chargerTagsLibres"
></TagsLibres>
style=
"position: static; height: 79vh; margin-top: -0.5%"
v-bind:darktheme=
"darktheme"
@
chargerTagsLibres=
"chargerTagsLibres"
v-bind:tagLibreAssocie=
"tagLibreAssocie"
></TagsLibres>
<div
class=
"markdown"
>
<br>
<button
id=
"validerModif"
v-on:click=
"action('valider')"
>
modifier
</button>
...
...
@@ -95,6 +95,8 @@ export default {
contenuClique
:
{},
// Signal d'activation ou non du theme sombre
darktheme
:
{},
// Récupération d'un tag libre ajouté
tagLibreAssocie
:
{}
},
data
:
function
()
{
return
{
...
...
@@ -252,13 +254,17 @@ export default {
this
.
isContenuRefuse
=
Object
.
prototype
.
hasOwnProperty
.
call
(
this
.
contenuClique
,
'refuse'
);
if
(
this
.
contenuCliqueProvenance
===
'perso'
){
this
.
versionMax
=
this
.
contenuClique
.
versionEnCours
.
numero
this
.
versionChoisie
=
this
.
versionMax
}
else
{
this
.
versionChoisie
=
this
.
contenuClique
.
version
}
let
that
=
this
Service
.
recupererNoteContenu
(
JSON
.
stringify
(
this
.
contenuClique
.
_id
),
this
.
auteur
,
this
.
contenuClique
.
version
).
then
(
function
(
result
)
{
Service
.
recupererNoteContenu
(
JSON
.
stringify
(
this
.
contenuClique
.
_id
),
this
.
auteur
,
this
.
versionChoisie
).
then
(
function
(
result
)
{
let
nombre
=
result
.
data
if
(
nombre
!==
'-1'
){
nombre
=
JSON
.
parse
(
nombre
)
...
...
@@ -273,7 +279,8 @@ export default {
*/
versionChoisie
:
function
()
{
this
.
noteContenu
=
this
.
calculerNoteContenu
}
},
}
}
...
...
src/components/Volet_Base.vue
View file @
c23be78c
...
...
@@ -18,7 +18,7 @@ isActif ? {'margin-left': '1vw', 'margin-right': '1vw'} : {'margin-left': '0.6vw
v-bind:filtre_choisi=
"filtre_choisi"
/>
<Volet
_Contenu
v-bind:darktheme=
"darktheme"
@
mode_choisi=
"ajusterMode"
v-bind:filtre_choisi=
"filtre_choisi"
v-bind:variante=
"variante"
v-bind:auteur=
"auteur"
@
filtresChoisis=
"filtresChoisis"
v-bind:razModeVariante=
"razModeVariante"
v-bind:deconnexion=
"deconnexion"
/>
v-bind:deconnexion=
"deconnexion"
v-bind:checkes=
"checkes"
@
lignesDropped=
"lignesDropped"
@
actionTagLibre=
"actionTagLibre"
/>
</div>
</div>
</div>
...
...
@@ -37,11 +37,7 @@ isActif ? {'margin-left': '1vw', 'margin-right': '1vw'} : {'margin-left': '0.6vw
</div>
<!--
<table
v-bind:style=
"panierChoisi ?
{'margin-top': '0%'} : {'margin-top': '24px'}">-->
<table
:style=
"
{
'margin-top': (panierChoisi ? '0%' : '24px' ),
'margin-left': (isActif ? '20px' : '1.5%' ),
'margin-right': '20px'
}" >
<table
:style=
"
{'margin-top': (panierChoisi ? '0%' : '24px' ), 'margin-left': (isActif ? '20px' : '1.5%' ),'margin-right': '20px'}" >
<thead>
<tr>
<th
v-bind:colspan=
"isActif ? 10 : (panierChoisi ? 12 : 11)"
>
Contenus
</th>
...
...
@@ -60,8 +56,8 @@ isActif ? {'margin-left': '1vw', 'margin-right': '1vw'} : {'margin-left': '0.6vw
<th
v-on:click=
"trierColonne"
v-show=
"!isActif && panierChoisi"
>
Tags Libres
</th>
<th
v-on:click=
"trierColonne"
>
Type
</th>
<th
v-on:click=
"trierColonne"
>
Source
</th>
<!--
<th
v-on:click=
"supprimerContenus"
class=
"supprimerContenus"
>
<img
v-bind:style=
"
{'background-color': 'orange'}" v-bind:src="panierChoisi ? imgPoubelle : imgEtoile" alt='' height=20 width=20/>
</th>
-->
<!--
<th
v-on:click=
"supprimerContenus"
class=
"supprimerContenus"
>
<img
v-bind:style=
"
{'background-color': 'orange'}" v-bind:src="panierChoisi ? imgPoubelle : imgEtoile" alt='' height=20 width=20/>
</th>
-->
<th
v-on:click=
"supprimerContenus"
class=
"supprimerContenus"
>
<span
v-bind:class=
"panierChoisi ? 'imgPoubelle' : 'imgEtoile'"
></span></th>
</tr>
...
...
@@ -125,10 +121,6 @@ isActif ? {'margin-left': '1vw', 'margin-right': '1vw'} : {'margin-left': '0.6vw
</tbody>
</table>
<div
id=
prout
style=
"height: 100px; width: 150px; border: 1px solid orange; margin-top: 10px; margin-left: 1vw; color: orange"
>
La Zone
</div>
<p
id=
"t"
>
{{
pt
}}
</p>
<!--
<tooltip
/>
-->
<div
id=
"ajouterContenu"
v-show=
"panierChoisi && !modeModification"
class=
"circle"
v-bind:class=
"darktheme ? 'circleDark' : ''"
v-bind:style=
"
{'margin-left': (!isActif ? '94.8%' : '94%')}">
<b-popover
target=
"ajouterContenu"
triggers=
"click"
placement=
"lefttop"
>
...
...
@@ -145,7 +137,7 @@ isActif ? {'margin-left': '1vw', 'margin-right': '1vw'} : {'margin-left': '0.6vw
<Modifier
_Contenu
v-bind:auteur=
"auteur"
v-bind:texteDuContenu =
"texteDuContenu"
v-bind:contenuCliqueProvenance =
"contenuCliqueProvenance"
v-show=
"modeModification"
@
actionContenu=
"actionContenu"
v-bind:contenuClique =
"contenuClique"
v-bind:darktheme=
"darktheme"
@
choixModif=
"choixModif"
v-bind:titreContenu=
"titreContenu"
@
majMoyenne=
"majMoyenne"
@
actionTagLibre=
"actionTagLibre"
@
chargerTagsLibres=
"chargerTagsLibres"
/>
@
chargerTagsLibres=
"chargerTagsLibres"
v-bind:tagLibreAssocie=
"tagLibreAssocie"
/>
</div>
</template>
...
...
@@ -230,6 +222,7 @@ export default {
chocolat
:
'<h1 id="hellomarkdown">hello, markdown!</h1>'
,
isDeconnecte
:
false
,
pt
:
''
,
tagLibreAssocie
:
''
,
imgEtoile
:
"https://previews.123rf.com/images/ylivdesign/ylivdesign1612/ylivdesign161208906/67933171-ic%C3%B4ne-%C3%A9toile-%C3%A0-cinq-branches-jaunes-illustration-de-dessin-anim%C3%A9-d-ic%C3%B4ne-de-vecteur-%C3%A9toile-jaune-%C3%A0-cinq-branches-.jpg"
,
imgPoubelle
:
"data:image/png;base64,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"
}
...
...
@@ -318,8 +311,8 @@ export default {
drop
:
function
()
{
/* let prouto = chamo.substring(chamo.split('oid', 2).join('oid').length)
let cacko = prouto.substring(prouto.search(":") + 3, prouto.search("}") - 2)*/
/* let prouto = chamo.substring(chamo.split('oid', 2).join('oid').length)
let cacko = prouto.substring(prouto.search(":") + 3, prouto.search("}") - 2)*/
//console.log("cacko" + cacko)
//caca += cacko
...
...
@@ -330,10 +323,10 @@ export default {
}
that
.
pt
=
idDragged
/* $( this )
.addClass( "ui-state-highlight" )
.find( "p" )
.html( "Dropped!" );*/
/* $( this )
.addClass( "ui-state-highlight" )
.find( "p" )
.html( "Dropped!" );*/
}
})
...
...
@@ -344,7 +337,7 @@ export default {
* Formatte les tags libres du contenu (si existants)
*/
tagsLibresContenu
:
function
(
item
){
// return item.tags_libres.toString()
// return item.tags_libres.toString()
if
(
item
.
tags_libres
===
undefined
)
return
""
else
...
...
@@ -635,16 +628,20 @@ export default {
let
existant
=
false
event
.
target
.
parentNode
.
parentNode
.
classList
.
toggle
(
"pipi"
)
//alert(event.target.parentNode.parentNode.className)
if
(
!
Object
.
values
(
event
.
target
.
parentNode
.
parentNode
.
classList
).
includes
(
"pipi"
)){
event
.
target
.
parentNode
.
parentNode
.
className
=
[]
}
$
(
'.pipi'
).
draggable
({
helper
:
function
(){
// var container = $('
<
div
/>
').attr('
id
', '
draggingContainer
');
// var container = $('
<
div
/>
').attr('
id
', '
draggingContainer
');
let container = $('
<
div
/>
').attr('
id
', '
draggingContainer
');
container.append($('
.
pipi
').clone());
return container;
}
})
for (let i = 0; i < this.checkes.length; i++){
if (this.checkes[i][0] === idContenu){
...
...
@@ -809,7 +806,7 @@ export default {
let
filtre_tags_libres
=
(
event
.
filtres
.
filter
(
contenu
=>
contenu
.
type
===
'tags libres'
).
map
(
contenu
=>
contenu
.
filtre
))
// contenusFiltres.forEach(contenu => console.log(contenu.tags_libres.length))
// contenusFiltres.forEach(contenu => console.log(contenu.tags_libres.length))
for
(
let
i
=
0
;
i
<
filtre_tags_libres
.
length
;
i
++
)
{
if
(
filtre_tags_libres
[
i
]
===
'sans Tag Libre'
){
...
...
@@ -883,9 +880,9 @@ export default {
this
.
contenusbanque
=
contenusFiltres
}
},
/* basculeRechercheFiltre: function (event) {
this.modeFiltre = event.choix
},*/
/* basculeRechercheFiltre: function (event) {
this.modeFiltre = event.choix
},*/
/**
* @vuese
* FOnction qui permet de trier une colonne (ordre croissant nombre clicks impairs, ordre décroissant clicks pairs)
...
...
@@ -1015,7 +1012,6 @@ export default {
*/
actionTagLibre
:
function
(
event
)
{
if
(
event
.
creation
===
undefined
){
let
contenu
=
this
.
contenus
.
filter
(
cont
=>
cont
.
_id
===
event
.
id_contenu
)
this
.
contenus
=
this
.
contenus
.
filter
(
cont
=>
cont
.
_id
!==
event
.
id_contenu
)
...
...
@@ -1029,11 +1025,12 @@ export default {
}
// on est dans le cadre de l'ajout d'un tag
else
{
console
.
log
(
event
)
let
contenu
=
this
.
contenus
.
filter
(
cont
=>
cont
.
_id
===
event
.
id_contenu
)
this
.
contenus
=
this
.
contenus
.
filter
(
cont
=>
cont
.
_id
!==
event
.
id_contenu
)
contenu
[
0
].
tags_libres
=
contenu
[
0
].
tags_libres
.
filter
(
tag
=>
tag
!==
event
.
creation
)
contenu
[
0
].
tags_libres
.
push
(
event
.
creation
)
this
.
tagLibreAssocie
=
event
.
id_contenu
this
.
contenus
.
push
(
contenu
[
0
])
}
...
...
@@ -1044,7 +1041,20 @@ export default {
*/
chargerTagsLibres
:
function
()
{
this
.
$emit
(
"chargerTagsLibres"
)
}
},
/**
* @vuese
* Permet de savoir si les lignes sélectionnées ont été déposées sur un tag
* On désactive toutes les lignes cochées après coup
*/
lignesDropped
:
function
()
{
this
.
checkes
=
[]
$
(
".horns"
).
prop
(
"checked"
,
false
)
$
(
".horns"
).
parent
().
parent
().
removeClass
()
// alert($(".horns").parent().parent().parent().prop('nodeName'))
// alert($(".horns").parent().parent().prop('nodeName'))
},
}
}
...
...
src/components/Volet_Contenu.vue
View file @
c23be78c
...
...
@@ -6,7 +6,9 @@
</div>
<div
id =
"detailContenu"
>
<Detail
_Contenu
v-bind:panierChoisi=
"panierChoisi"
v-bind:filtre_choisi=
"filtre_choisi"
v-bind:auteur=
"auteur"
v-bind:darktheme=
"darktheme"
@
creer_filtre=
"creer_filtre"
v-bind:deconnexion=
"deconnexion"
/>
v-bind:auteur=
"auteur"
v-bind:darktheme=
"darktheme"
@
creer_filtre=
"creer_filtre"
v-bind:deconnexion=
"deconnexion"
v-bind:checkes=
"checkes"
@
lignesDropped=
"lignesDropped"
@
actionTagLibre=
"actionTagLibre"
/>
</div>
<div
id=
"detailChoixMode"
>
<Choix
_Mode
v-show=
"!variante"
v-bind:darktheme=
"darktheme"
@
mode_choisi=
"ajusterMode"
v-bind:razModeVariante=
"razModeVariante"
/>
...
...
@@ -41,7 +43,9 @@ export default {
// Signal d'activation ou non du theme sombre
darktheme
:
{},
// Signal de deconnexion
deconnexion
:
{}
deconnexion
:
{},
// lignes cochées
checkes
:
{}
},
methods
:
{
...
...
@@ -74,6 +78,20 @@ export default {
// @arg les filtres choisis
this
.
$emit
(
"filtresChoisis"
,
{
filtres
:
event
.
filtres
})
},
/**
* @vuese
* Permet de savoir si les lignes sélectionnées ont été déposées sur un tag
*/
lignesDropped
:
function
()
{
this
.
$emit
(
"lignesDropped"
)
},
/**
* @vuese
* Permet de remonter l'info pour un tag libre associé via drag&drop
*/
actionTagLibre
:
function
(
event
)
{
this
.
$emit
(
"actionTagLibre"
,
{
creation
:
event
.
creation
,
id_contenu
:
event
.
id_contenu
})
}
},
data
:
function
()
{
...
...
src/components/filtres/Filtre_Tag_Libre.vue
View file @
c23be78c
...
...
@@ -16,20 +16,25 @@
<!-- affichage des filtres personnels de l'utilisateur -->
<ul
v-for=
"filtre in filtresNiveauUn"
:key=
"filtre"
class=
"tagsLibres"
>
<!--
<li
v-on:click=
"nouveauFiltre(filtre)"
><span
class=
"niveauInamovible"
></span>
{{
filtre
}}
-->
<li
@
click=
"!editMode ? nouveauFiltre($event, filtre) : ''"
>
<span
:class=
"isSousEmbranchement(filtre) > 0 ? 'niveau' : 'niveauInamovible'"
@
click=
"naviguer"
></span>
{{
filtre
}}
<span
v-if=
"editMode"
v-bind:class=
"darktheme ? 'poubelDark' : 'poubel'"
@
click=
"supprimerTagLibre($event, filtre)"
></span>
<span
v-if=
"editMode"
v-bind:class=
"darktheme ? 'nouvelEchelonDark' : 'nouvelEchelon'"
@
click=
"ajouterTagLibre"
></span></li>
<div
class=
"droppable"
>
<li
@
click=
"!editMode ? nouveauFiltre($event, filtre) : ''"
>
<span
:class=
"isSousEmbranchement(filtre) > 0 ? 'niveau' : 'niveauInamovible'"
@
click=
"naviguer"
></span>
{{
filtre
}}
<span
v-if=
"editMode"
v-bind:class=
"darktheme ? 'poubelDark' : 'poubel'"
@
click=
"supprimerTagLibre($event, filtre)"
></span>
<span
v-if=
"editMode"
v-bind:class=
"darktheme ? 'nouvelEchelonDark' : 'nouvelEchelon'"
@
click=
"ajouterTagLibre"
></span></li>
</div>
<li
hidden=
"hidden"
class=
"blocLibre"
><span
class=
"niveauInamovible"
></span>
<input
type=
"text"
style=
"width: 150px; height: 20px"
v-model=
"nouveauTexteLibre"
>
<span
v-bind:class=
"darktheme ? 'validerCocheDark' : 'validerCoche'"
v-on:click=
"creerTagLibreEchelon($event, filtre)"
></span>
<span
v-bind:class=
"darktheme ? 'annulerCocheDark' : 'annulerCoche'"
@
click=
"masquerTagLibre"
></span></li>
<ul
v-for=
"filtre in filtresNiveauDeux(filtre)"
:key=
"filtre"
class=
"tagsLibres cache"
>
<li
@
click=
"!editMode ? nouveauFiltre($event, filtre) : ''"
class=
"blocLibre"
>
<span
:class=
"isSousEmbranchement(filtre) > 0 ? 'niveau' : 'niveauInamovible'"
@
click=
"naviguer"
></span>
{{
affichageFiltreDeux
(
filtre
)
}}
<span
v-if=
"editMode"
v-bind:class=
"darktheme ? 'poubelDark' : 'poubel'"
@
click=
"supprimerTagLibre($event, filtre)"
></span>
<span
v-if=
"editMode"
v-bind:class=
"darktheme ? 'nouvelEchelonDark' : 'nouvelEchelon'"
@
click=
"ajouterTagLibre"
></span></li>
<div
class=
"droppable"
>
<li
@
click=
"!editMode ? nouveauFiltre($event, filtre) : ''"
class=
"blocLibre"
>
<span
:class=
"isSousEmbranchement(filtre) > 0 ? 'niveau' : 'niveauInamovible'"
@
click=
"naviguer"
></span>
{{
affichageFiltreDeux
(
filtre
)
}}
<span
v-if=
"editMode"
v-bind:class=
"darktheme ? 'poubelDark' : 'poubel'"
@
click=
"supprimerTagLibre($event, filtre)"
></span>
<span
v-if=
"editMode"
v-bind:class=
"darktheme ? 'nouvelEchelonDark' : 'nouvelEchelon'"
@
click=
"ajouterTagLibre"
></span></li>
</div>
<li
hidden=
"hidden"
class=
"blocLibreDeux"
><span
class=
"niveauInamovible"
></span>
<input
type=
"text"
style=
"width: 150px; height: 20px"
v-model=
"nouveauTexteLibre"
>
...
...
@@ -37,21 +42,28 @@
<span
v-bind:class=
"darktheme ? 'annulerCocheDark' : 'annulerCoche'"
@
click=
"masquerTagLibre"
></span></li>
<ul
v-for=
"filtre in filtresNiveauTrois(filtre)"
:key=
"filtre"
class=
"tagsLibres cache"
>
<li
@
click=
"!editMode ? nouveauFiltre($event, filtre) : ''"
class=
"blocLibreDeux"
>
<span
:class=
"isSousEmbranchement(filtre) > 0 ? 'niveau' : 'niveauInamovible'"
@
click=
"naviguer"
></span>
{{
affichageFiltreTrois
(
filtre
)
}}
<span
v-if=
"editMode"
v-bind:class=
"darktheme ? 'poubelDark' : 'poubel'"
@
click=
"supprimerTagLibre($event, filtre)"
></span>
<span
v-if=
"editMode"
v-bind:class=
"darktheme ? 'nouvelEchelonDark' : 'nouvelEchelon'"
@
click=
"ajouterTagLibre"
></span></li>
<div
class=
"droppable"
>
<li
@
click=
"!editMode ? nouveauFiltre($event, filtre) : ''"
class=
"blocLibreDeux"
>
<span
:class=
"isSousEmbranchement(filtre) > 0 ? 'niveau' : 'niveauInamovible'"
@
click=
"naviguer"
></span>
{{
affichageFiltreTrois
(
filtre
)
}}
<span
v-if=
"editMode"
v-bind:class=
"darktheme ? 'poubelDark' : 'poubel'"
@
click=
"supprimerTagLibre($event, filtre)"
></span>
<span
v-if=
"editMode"
v-bind:class=
"darktheme ? 'nouvelEchelonDark' : 'nouvelEchelon'"
@
click=
"ajouterTagLibre"
></span></li>
</div>
<li
hidden=
"hidden"
class=
"blocLibreTrois"
><span
class=
"niveauInamovible"
></span>
<input
type=
"text"
style=
"width: 150px; height: 20px"
v-model=
"nouveauTexteLibre"
>
<span
v-bind:class=
"darktheme ? 'validerCocheDark' : 'validerCoche'"
v-on:click=
"creerTagLibreEchelon($event, filtre)"
></span>
<span
v-bind:class=
"darktheme ? 'annulerCocheDark' : 'annulerCoche'"
@
click=
"masquerTagLibre"
></span></li>
<ul
v-for=
"filtre in filtresNiveauQuatre(filtre)"
:key=
"filtre"
class=
"tagsLibres cache"
>
<li
@
click=
"!editMode ? nouveauFiltre($event, filtre) : ''"
class=
"blocLibreTrois"
>
<span
:class=
"isSousEmbranchement(filtre) > 0 ? 'niveau' : 'niveauInamovible'"
@
click=
"naviguer"
></span>
{{
affichageFiltreQuatre
(
filtre
)
}}
<span
v-if=
"editMode"
v-bind:class=
"darktheme ? 'poubelDark' : 'poubel'"
@
click=
"supprimerTagLibre($event, filtre)"
></span>
<span
v-if=
"editMode"
v-bind:class=
"darktheme ? 'nouvelEchelonDark' : 'nouvelEchelon'"
@
click=
"ajouterTagLibre"
></span></li>
<div
class=
"droppable"
>
<li
@
click=
"!editMode ? nouveauFiltre($event, filtre) : ''"
class=
"blocLibreTrois"
>
<span
:class=
"isSousEmbranchement(filtre) > 0 ? 'niveau' : 'niveauInamovible'"
@
click=
"naviguer"
></span>
{{
affichageFiltreQuatre
(
filtre
)
}}
<span
v-if=
"editMode"
v-bind:class=
"darktheme ? 'poubelDark' : 'poubel'"
@
click=
"supprimerTagLibre($event, filtre)"
></span>
<span
v-if=
"editMode"
v-bind:class=
"darktheme ? 'nouvelEchelonDark' : 'nouvelEchelon'"
@
click=
"ajouterTagLibre"
></span></li>
</div>
<li
hidden=
"hidden"
class=
"blocLibreQuatre"
><span
class=
"niveauInamovible"
></span>
<input
type=
"text"
style=
"width: 150px; height: 20px"
v-model=
"nouveauTexteLibre"
>
<span
v-bind:class=
"darktheme ? 'validerCocheDark' : 'validerCoche'"
v-on:click=
"creerTagLibreEchelon($event, filtre)"
></span>
...
...
@@ -65,6 +77,9 @@
</
template
>
<
script
>
let
$
=
require
(
"jquery"
);
window
.
$
=
window
.
jQuery
=
$
;
require
(
"jquery-ui-bundle"
);
import
Service
from
"../../service/Service"
;
export
default
{
...
...
@@ -77,7 +92,9 @@ export default {
// Signal d'activation ou non du theme sombre
darktheme
:
{},
// Est-on en mode gestion ou en mode filtre
modeGestion
:
{}
modeGestion
:
{},
// lignes cochées
checkes
:
{}
},
data
:
function
()
{
return
{
...
...
@@ -100,7 +117,7 @@ export default {
}
else
{
e
.
target
.
classList
.
toggle
(
"niveau-down"
)
e
.
target
.
parentNode
.
nextElementSibling
.
nextElementSibling
.
classList
.
toggle
(
'affiche'
)
e
.
target
.
parentNode
.
parentNode
.
nextElementSibling
.
nextElementSibling
.
classList
.
toggle
(
'affiche'
)
}
},
/**
...
...
@@ -112,7 +129,7 @@ export default {
// bricolage pour empecher qu'un filtre ne soit créé quand on clique sur une flèche pour activer / desactiver l'arborescence
if
(
event
.
target
.
tagName
!==
'SPAN'
)
this
.
$emit
(
"creer_filtre"
,
{
filtre
:
filtre
,
type
:
this
.
filtreChoisi
})
// alert("filtre" + filtre === undefined + " now loading")
// alert("filtre" + filtre === undefined + " now loading")
},
/**
* @vuese
...
...
@@ -131,7 +148,7 @@ export default {
if
(
tagRacine
===
"nouveau tag libre"
){
this
.
nouveauTagLibre
=
!
this
.
nouveauTagLibre
}
else
{
e
.
target
.
parentNode
.
nextElementSibling
.
hidden
=
!
e
.
target
.
parentNode
.
nextElementSibling
.
hidden
e
.
target
.
parentNode
.
parentNode
.
nextElementSibling
.
hidden
=
!
e
.
target
.
parentNode
.
parentNode
.
nextElementSibling
.
hidden
}
},
/**
...
...
@@ -289,6 +306,54 @@ export default {
return
this
.
filtresLibres
.
filter
(
tag
=>
(
tag
.
split
(
"/"
)).
length
===
1
)
}
},
updated
()
{
let
that
=
this
$
(
".droppable"
).
droppable
({
hoverClass
:
"highlight"
,
drop
:
function
()
{
let
tag
=
''
that
.
$emit
(
"lignesDropped"
)
for
(
let
check
in
that
.
checkes
){
//console.log(that.checkes[check][0])
//let texteComplet = ''
//alert($(this).attr('class'))
// alert($(this).firstChild.html())
//alert($(this).childNodes)
switch
(
$
(
this
.
firstChild
).
attr
(
"class"
)){
case
undefined
:
tag
=
$
(
this
).
text
().
trim
()
break
case
"blocLibre"
:
tag
=
(
$
(
this
).
parent
().
parent
().
text
()).
trim
().
replaceAll
(
" "
,
"/"
).
split
(
'/'
,
2
).
join
(
'/'
)
break
case
"blocLibreDeux"
:
tag
=
(
$
(
this
).
parent
().
parent
().
parent
().
text
()).
trim
().
replaceAll
(
" "
,
"/"
).
split
(
'/'
,
3
).
join
(
'/'
)
break
case
"blocLibreTrois"
:
tag
=
(
$
(
this
).
parent
().
parent
().
parent
().
parent
().
text
()).
trim
().
replaceAll
(
" "
,
"/"
).
split
(
'/'
,
4
).
join
(
'/'
)
break
default
:
break
}
let
data
=
{
auteur
:
that
.
auteur
,
id_contenu
:
JSON
.
stringify
(
that
.
checkes
[
check
][
0
]),
tag
:
tag
}
Service
.
associerTagLibre
(
data
)
that
.
$emit
(
"actionTagLibre"
,
{
creation
:
tag
,
id_contenu
:
that
.
checkes
[
check
][
0
]})
console
.
log
(
check
+
tag
)
//alert($(this).first().html())
/* let data = {auteur: that.auteur, id_contenu: JSON.stringify(that.checkes[check][0]), tag: $(this).parent().text().trim()}
Service.associerTagLibre(data)
that.$emit("actionTagLibre", {creation: $(this).parent().text().trim(), id_contenu: that.checkes[check][0]})*/
}
}
})
}
}
</
script
>
...
...
@@ -481,5 +546,10 @@ li {
pointer-events: visible;
}*/
.highlight
{
border
:
1px
solid
yellow
;
background-color
:
yellow
;
}
</
style
>
\ 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