fixed puissance d'agir cartouch display

This commit is contained in:
Bachir Soussi Chiadmi 2023-07-06 16:15:24 +02:00
parent 576cdc0445
commit 04eb79af8b
4 changed files with 154 additions and 99 deletions

View File

@ -210,6 +210,82 @@ body{
} }
} }
// PUISSANCE D'AGIR
ul.besoins{
li.besoin{
position: relative;
label.mdi:before{
font-size: 0.8em;
padding-right: 0.2em;
}
label.mdi:hover:before,
label.mdi.hover:before{
color:#01ffe2;
}
svg.open-btn{
position: absolute;
right:0; top:0;
cursor: pointer;
}
>header{
padding: 0 0 0 0;
>label{
padding:0.3em 0 0.5em 0;
cursor: pointer;
}
h4.besoin-description{
font-weight: 400;
font-size: 1.2em;
// padding: 0.5em 0;
}
}
ul.reponses{
overflow: hidden;
max-height: 1px;
transition: all 0.7s ease-in-out;
li.reponse{
padding:0.5em 0 0;
&:last-of-type{
padding: 0.5em 0 1em;
}
>label{
padding:0 0 0.5em 0;
}
section{
&:not(:last-of-type){
padding: 0 0 0.5em 0;
}
label{ padding:0; }
p{margin:0;}
}
}
}
a.contribute-link{
display: flex;
flex-direction: row;
justify-content: flex-end;
align-items:flex-end;
font-weight: 100;
font-size: 0.882em;
svg{
width:1em; height:1em; margin-right: 0.5em;
}
}
&.opened{
ul.reponses{
max-height: 1000px;
}
}
padding-bottom: 0.5em;
border-bottom: #aaa 1px solid;
margin-bottom: 1em;
}
}
} }
>footer{ >footer{
section.infos{ section.infos{
@ -258,67 +334,6 @@ body{
list-style: none; list-style: none;
} }
// PUISSANCE D'AGIR
section.content-besoins{
li.besoin{
position: relative;
label.mdi:before{
font-size: 0.8em;
padding-right: 0.2em;
}
label.mdi:hover:before,
label.mdi.hover:before{
color:#01ffe2;
}
span.open-btn{
position: absolute;
right:0; top:0;
cursor: pointer;
}
>header{
padding: 0 0 0 0;
>label{
padding:0.5em 0 0.5em 0;
cursor: pointer;
}
h4.besoin-description{
font-weight: 400;
font-size: 1.2em;
padding: 0.5em 0;
}
a.contribute-link{
display: block;
text-align: right;
font-weight: 100;
font-size: 0.882em;
}
}
ul.reponses{
overflow: hidden;
max-height: 1px;
transition: all 0.7s ease-in-out;
li.reponse{
padding:1em 0;
section{
padding:0;
label{ padding: 0 0 0 0; }
p{margin: 0 0 1em 0;}
}
}
}
&.opened{
ul.reponses{
max-height: 1000px;
}
}
padding-bottom: 0.5em;
border-bottom: #aaa 1px solid;
margin-bottom: 1em;
}
}
section.content-doleances{ section.content-doleances{

View File

@ -1198,6 +1198,14 @@ export default {
}, },
// ENGINE UPDATE // ENGINE UPDATE
onBeforeEngineUpdate (event) { onBeforeEngineUpdate (event) {
// TODO stop item on mouse hover
if (this.hover_elmt && this.hover_elmt.id === this.id) {
// Matter.Body.setStatic(this.body, true);
} else {
// Matter.Body.setStatic(this.body, false);
}
// update the opening/closing tweening // update the opening/closing tweening
if (this.tween) { if (this.tween) {
this.tween.update(); this.tween.update();
@ -1526,7 +1534,6 @@ export default {
this.paper_main_object.position = this.pos = this.body.position; this.paper_main_object.position = this.pos = this.body.position;
// this.draw()
this.handlePaperVisibility() this.handlePaperVisibility()
}, },
}, },

View File

@ -5,28 +5,62 @@ import { ConcernementsStore } from '@stores/concernements'
import { UserStore } from '@/stores/user' import { UserStore } from '@/stores/user'
import { CommonStore } from '@/stores/common' import { CommonStore } from '@/stores/common'
import CartoucheLayout from '@components/layout/CartoucheLayout.vue';
import SvgIcon from '@jamescoyle/vue-icon';
import { mdiChevronRight } from '@mdi/js';
import { mdiChevronDown } from '@mdi/js';
import { mdiPencilPlus } from '@mdi/js';
import { mdiPencilPlusOutline } from '@mdi/js';
export default { export default {
props: ['id'], props: ['id'],
data(){ data(){
return { return {
opened_besoin_id: null,
chevronright_path: mdiChevronRight,
chevrondown_path: mdiChevronDown,
pencilplus_path: mdiPencilPlus,
pencilplusoutline_path: mdiPencilPlusOutline
} }
}, },
computed: { computed: {
...mapState(UserStore,['isloggedin']),
...mapState(ConcernementsStore,['opened_concernement']), ...mapState(ConcernementsStore,['opened_concernement']),
...mapState(ConcernementsStore,['ct_concernement']), ...mapState(ConcernementsStore,['ct_concernement']),
...mapState(ConcernementsStore,['ct_entite']), ...mapState(ConcernementsStore,['ct_entite']),
}, },
created () { created () {
console.log(`puissance d'agir content created, id: ${this.id}, opened_concernement:`,this.opened_concernement); console.log(`puissance d'agir content created, id: ${this.id}, opened_concernement:`,this.opened_concernement);
},
methods: {
onClickBesoin(id){
console.log("onClickBesoin", id);
this.opened_besoin_id = id === this.opened_besoin_id ? null : id;
},
besoinClass(id){
return this.opened_besoin_id === id ? "opened" : "";
}
},
components: {
CartoucheLayout,
SvgIcon
} }
} }
</script> </script>
<template> <template>
<section <CartoucheLayout>
class="content-besoins"> <template v-slot:header>
<div class="pre-header">
<!-- concernement -->
<label>{{ ct_concernement.title.description }}</label>
</div>
</template>
<template v-slot:main>
<ul class="besoins"> <ul class="besoins">
<li <li
v-for="besoin in opened_concernement.besoins" v-for="besoin in opened_concernement.besoins"
@ -35,11 +69,12 @@ export default {
:id="besoin.id" :id="besoin.id"
:class="besoinClass(besoin.id)" :class="besoinClass(besoin.id)"
> >
<span <svg-icon
class="open-btn mdi" type="mdi"
:class="{ 'mdi-chevron-right': besoin.id !== opened_besoin_id, 'mdi-chevron-down': besoin.id === opened_besoin_id } " :path="besoin.id !== opened_besoin_id ? chevronright_path : chevrondown_path"
class="open-btn"
@click="onClickBesoin(besoin.id)" @click="onClickBesoin(besoin.id)"
/> ></svg-icon>
<header> <header>
<label <label
class="mdi mdi-rhombus" class="mdi mdi-rhombus"
@ -49,14 +84,6 @@ export default {
Besoin de l'enqueteur Besoin de l'enqueteur
</label> </label>
<h4 class="besoin-description" v-html="besoin.description"/> <h4 class="besoin-description" v-html="besoin.description"/>
<a
v-if="isloggedin"
:href="'/api/node/add/reponse?besoin_id='+besoin.id"
target="_blank"
rel="noopener noreferrer"
class="contribute-link mdi mdi-pencil-plus">
contribuer à ce besoin
</a>
</header> </header>
<ul class="reponses"> <ul class="reponses">
<li <li
@ -84,7 +111,22 @@ export default {
</section> </section>
</li> </li>
</ul> </ul>
<a
v-if="isloggedin"
:href="'/api/node/add/reponse?besoin_id='+besoin.id"
target="_blank"
rel="noopener noreferrer"
class="contribute-link mdi mdi-pencil-plus">
<svg-icon type="mdi" :path="pencilplusoutline_path" /> contribuer à ce besoin
</a>
</li> </li>
</ul> </ul>
</section> </template>
<template v-slot:footer>
</template>
</CartoucheLayout>
</template> </template>

View File

@ -2,7 +2,6 @@
import { mapActions, mapState } from 'pinia' import { mapActions, mapState } from 'pinia'
import { ConcernementsStore } from '@stores/concernements' import { ConcernementsStore } from '@stores/concernements'
import { UserStore } from '@/stores/user'
import { CommonStore } from '@/stores/common' import { CommonStore } from '@/stores/common'
import { print } from 'graphql/language/printer' import { print } from 'graphql/language/printer'
@ -26,18 +25,17 @@ export default {
} }
}, },
computed: { computed: {
...mapState(UserStore,['isloggedin']), ...mapState(ConcernementsStore,['map_mode',
...mapState(ConcernementsStore,['map_mode']), 'opened_concernement',
...mapState(ConcernementsStore,['opened_concernement']), // 'opened_entity_id',
// ...mapState(ConcernementsStore,['opened_entity_id']), 'concernements_loaded',
...mapState(ConcernementsStore,['concernements_loaded']), 'ct_concernement',
...mapState(ConcernementsStore,['ct_concernement']), 'ct_entite',
...mapState(ConcernementsStore,['ct_entite']), 'ct_cercle_politique',
...mapState(ConcernementsStore,['ct_cercle_politique']), 'p_groupes_interets',
...mapState(ConcernementsStore,['p_groupes_interets']), 'p_reception_et_traitement',
...mapState(ConcernementsStore,['p_reception_et_traitement']), 'p_mise_en_oeuvre_decision',
...mapState(ConcernementsStore,['p_mise_en_oeuvre_decision']), 'p_reception_application_decision']),
...mapState(ConcernementsStore,['p_reception_application_decision']),
...mapState(CommonStore,['hover_elmt']) ...mapState(CommonStore,['hover_elmt'])
}, },
created () { created () {
@ -98,13 +96,6 @@ export default {
.catch(error => { .catch(error => {
console.warn('Issue with load entite', error) console.warn('Issue with load entite', error)
}) })
},
onClickBesoin(id){
console.log("onClickBesoin", id);
this.opened_besoin_id = id === this.opened_besoin_id ? null : id;
},
besoinClass(id){
return this.opened_besoin_id === id ? "opened" : "";
} }
}, },
components: { components: {