layout form

This commit is contained in:
Julien Fastré 2021-06-24 16:21:52 +02:00
parent 92a95d4186
commit 981b9299ad
3 changed files with 199 additions and 44 deletions

View File

@ -1,10 +1,8 @@
<template> <template>
<h1>Hello</h1>
<div id="workEditor"> <div id="workEditor">
<div id="title"> <div id="title">
<label>{{ $t('action_title') }}</label> <label class="action_title_label">{{ $t('action_title') }}</label>
<p>{{ work.socialAction.text }}</p> <p class="action_title">{{ work.socialAction.text }}</p>
</div> </div>
<div id="startDate"> <div id="startDate">
<label>{{ $t('startDate') }}</label> <label>{{ $t('startDate') }}</label>
@ -15,6 +13,7 @@
<input type="date" v-model="endDate" /> <input type="date" v-model="endDate" />
</div> </div>
<div id="comment"> <div id="comment">
<label>Commentaire</label>
<ckeditor <ckeditor
:editor="editor" :editor="editor"
v-model="note" v-model="note"
@ -23,13 +22,13 @@
</div> </div>
<div id="objectives" class="objectives_list"> <div id="objectives" class="objectives_list">
<div class="title" aria="hidden"> <div class="title" aria="hidden">
<div><h3>Objectifs</h3></div> <div><h3>Motifs - objectifs - dispositifs</h3></div>
<div><h3>Résultats</h3></div> <div><h3>Orientations - résultats</h3></div>
</div> </div>
<!-- results which are not attached to an objective --> <!-- results which are not attached to an objective -->
<div v-if="hasResultsForAction"> <div v-if="hasResultsForAction">
<div> <div class="results_without_objective">
{{ $t('results_without_objective') }} {{ $t('results_without_objective') }}
</div> </div>
<div> <div>
@ -40,10 +39,10 @@
<!-- results which **are** attached to an objective --> <!-- results which **are** attached to an objective -->
<div v-for="g in goalsPicked"> <div v-for="g in goalsPicked">
<div> <div>
<span @click="removeGoal(g)"> <div @click="removeGoal(g)" class="objective-title">
<i class="fa fa-times"></i> <i class="fa fa-times"></i>
{{ g.title.fr }} {{ g.title.fr }}
</span> </div>
</div> </div>
<div> <div>
<add-result destination="goal" :goal="g"></add-result> <add-result destination="goal" :goal="g"></add-result>
@ -54,17 +53,23 @@
<div class="add_goal"> <div class="add_goal">
<div> <div>
<div v-if="showAddObjective"> <div v-if="showAddObjective">
<ul>
<li v-for="g in availableForCheckGoal" @click="addGoal(g)"> <p>Motifs, objectifs et dispositifs disponibles pour ajout&nbsp;:</p>
<ul class="list-objectives">
<li v-for="g in availableForCheckGoal" @click="addGoal(g)" class="badge badge-primary">
<i class="fa fa-plus"></i> <i class="fa fa-plus"></i>
{{ g.title.fr }} {{ g.title.fr }}
</li> </li>
</ul> </ul>
</div> </div>
<div @click="toggleAddObjective"> <ul class="record_actions">
<i class="fa fa-plus"></i> <li>
{{ $t('add_objective') }} <button @click="toggleAddObjective" class="sc-button bt-create">
</div> Ajouter un objectif
</button>
</li>
</ul>
</div> </div>
<div><!-- empty for results --></div> <div><!-- empty for results --></div>
</div> </div>
@ -140,18 +145,18 @@
</ul> </ul>
</div> </div>
<ul class="record_actions"> <ul class="record_actions">
<li> <li>
<add-persons <add-persons
buttonTitle="Ajouter des tiers" buttonTitle="Ajouter des tiers"
modalTitle="Choisir des tiers" modalTitle="Choisir des tiers"
v-bind:key="thirdPartyPicker.key" v-bind:key="thirdPartyPicker.key"
v-bind:options="thirdPartyPicker.options" v-bind:options="thirdPartyPicker.options"
@addNewPersons="addThirdParties" @addNewPersons="addThirdParties"
ref="thirdPartyPicker"> <!-- to cast child method --> ref="thirdPartyPicker"> <!-- to cast child method -->
</add-persons> </add-persons>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
@ -168,11 +173,23 @@
"objectives objectives" "objectives objectives"
"persons persons" "persons persons"
"handling handling" "handling handling"
"3parties 3parties" "tparties tparties"
; ;
grid-template-columns: 50%;
column-gap: 1rem;
#title { #title {
grid-area: title; grid-area: title;
.action_title_label {
margin-bottom: 0;
}
.action_title {
margin-top: 0;
font-weight: bold;
font-size: 1.5rem;
}
} }
#startDate { #startDate {
grid-area: startDate; grid-area: startDate;
@ -186,10 +203,19 @@
#objectives { #objectives {
grid-area: objectives; grid-area: objectives;
> div.title {
background-color: var(--chill-light-gray);
color: white;
h3 {
text-align: center;
}
}
> div { > div {
display: grid; display: grid;
grid-template-areas: "obj res"; grid-template-areas: "obj res";
grid-template-columns: "50% 50%"; grid-template-columns: 50%;
column-gap: 1rem; column-gap: 1rem;
> div { > div {
@ -201,6 +227,61 @@
grid-area: res; grid-area: res;
} }
} }
> div.results_without_objective {
background: repeating-linear-gradient(
45deg,
var(--chill-light-gray),
var(--chill-light-gray) 10px,
var(--chill-llight-gray) 10px,
var(--chill-llight-gray) 20px
);
text-align: center;
font-weight: 700;
padding-top: 1.5rem;
}
}
ul.list-objectives {
list-style-type: none;
padding: 0;
li {
margin: 0.5rem;
}
}
div.objective-title {
margin-top: 1rem;
font-size: 1.5rem;
font-weight: bold;
text-align: center;
i.fa {
padding: 0.25rem;
}
i.fa-times {
background-color: red;
color: white;
}
}
li.badge, div.badge {
padding-bottom: 0;
padding-top: 0;
padding-left: 0;
i.fa {
padding: 0.25rem;
}
i.fa-plus {
background-color: green;
}
} }
} }
#persons { #persons {
@ -210,7 +291,7 @@
grid-area: handling; grid-area: handling;
} }
#thirdParties { #thirdParties {
grid-area: 3parties; grid-area: tparties;
} }
} }
@ -227,6 +308,19 @@ import Person from 'ChillPersonAssets/vuejs/_components/Person/Person.vue';
import AddPersons from 'ChillPersonAssets/vuejs/_components/AddPersons.vue'; import AddPersons from 'ChillPersonAssets/vuejs/_components/AddPersons.vue';
import ShowAddress from 'ChillMainAssets/vuejs/_components/ShowAddress.vue'; import ShowAddress from 'ChillMainAssets/vuejs/_components/ShowAddress.vue';
const i18n = {
messages: {
fr: {
action_title: "Action d'accompagnement",
startDate: "Date de début",
endDate: "Date de fin",
results_without_objective: "Résultats sans objectifs",
add_objectif: "Ajouter un motif - objectif - dispositif",
persons_involved: "Usagers concernés",
}
}
};
export default { export default {
name: 'App', name: 'App',
components: { components: {
@ -236,6 +330,7 @@ export default {
Person, Person,
ShowAddress, ShowAddress,
}, },
i18n,
data() { data() {
return { return {
editor: ClassicEditor, editor: ClassicEditor,

View File

@ -1,37 +1,93 @@
<template> <template>
<div class="addResult" v-if="hasResult"> <div class="addResult" v-if="hasResult">
<ul> <p class="chill-no-data-statement" v-if="pickedResults.length ===0">
<li v-for="r in pickedResults" @click="removeResult(r)"> Aucun résultat associé
</p>
<ul class="list-results">
<li v-for="r in pickedResults" @click="removeResult(r)" class="badge badge-primary">
<i class="fa fa-times"></i> <i class="fa fa-times"></i>
{{ r.title.fr }} {{ r.title.fr }}
</li> </li>
</ul> <template v-if="isExpanded">
<div v-if="isExpanded"> <li v-for="r in availableForCheckResults" @click="addResult(r)" class="badge badge-primary">
<p>pick result</p>
<ul>
<li v-for="r in availableForCheckResults" @click="addResult(r)">
<i class="fa fa-plus"></i> <i class="fa fa-plus"></i>
{{ r.title.fr }} {{ r.title.fr }}
</li> </li>
</ul> </template>
</div> </ul>
<button @click="toggleSelect"> <ul class="record_actions">
{{ $t('add_a_result') }} <li v-if="isExpanded">
</button> <button @click="toggleSelect" class="sc-button bt-hide" >
<i class="fa fa-eye-slash"></i>
Masquer résultats et orientations disponibles
</button>
</li>
<li v-else>
<button @click="toggleSelect" class="sc-button bt-show">
Afficher résultats et orientations disponibles
</button>
</li>
</ul>
</div> </div>
<div class="noResult" v-if="!hasResult"> <div class="noResult" v-if="!hasResult">
<div> <div class="chill-no-data-statement">
{{ $t('goal_has_ho_result') }} {{ $t('goal_has_ho_result') }}
</div> </div>
</div> </div>
</template> </template>
<style lang="scss">
button.hide {
background-color: rgb(51, 77, 92);
}
ul.list-results {
list-style-type: none;
padding: 0;
li {
margin: 0.5rem;
}
li.badge {
padding-bottom: 0;
padding-top: 0;
padding-left: 0;
i.fa {
/*border-radius: 0.25rem; */
padding: 0.25rem;
}
i.fa-plus {
background-color: green;
}
i.fa-times {
background-color: red;
color: white;
}
}
}
</style>
<script> <script>
const i18n = {
messages: {
fr: {
add_a_result: "Résultat - orientation disponibles",
goal_has_no_result: "Aucun résultat - orientation disponible",
}
}
};
export default { export default {
name: "AddResult", name: "AddResult",
props: [ 'destination', 'goal' ], props: [ 'destination', 'goal' ],
i18n,
data() { data() {
return { return {
isExpanded: false, isExpanded: false,

View File

@ -330,6 +330,10 @@ Move household: Nouveau déménagement
Addresses history for household: Historique des adresses Addresses history for household: Historique des adresses
# accompanying course work # accompanying course work
Accompanying Course Actions: Actions d'accompagnements
accompanying_course_work: accompanying_course_work:
create: Créer une action
Create accompanying course work: Créer une action d'accompagnement Create accompanying course work: Créer une action d'accompagnement
Edit accompanying course work: Modifier une action d'accompagnement
List accompanying course work: Liste des actions d'accompagnement