+
+
+ {{ conc.person.text }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdMembersEditor/js/i18n.js b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdMembersEditor/js/i18n.js
index d297ba1d7..c7724daff 100644
--- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdMembersEditor/js/i18n.js
+++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdMembersEditor/js/i18n.js
@@ -5,10 +5,18 @@ const appMessages = {
fr: {
household_members_editor: {
concerned: {
- title: "Personnes concernées",
+ title: "Usagers concernés",
add_persons: "Ajouter d'autres usagers",
search: "Rechercher des usagers",
- }
+ move_to: "Déplacer vers",
+ },
+ holder: "Titulaire du ménage",
+ remove_position: "Retirer des {position}",
+ remove_concerned: "Enlever du ménage",
+ household_part: "Ménage de destination",
+ new_household: "Nouveau ménage",
+ create_household: "Créer un ménage",
+ search_household: "Chercher un ménage",
}
}
};
diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdMembersEditor/store/index.js b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdMembersEditor/store/index.js
index 257a46e57..f5db83c66 100644
--- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdMembersEditor/store/index.js
+++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdMembersEditor/store/index.js
@@ -6,7 +6,8 @@ const concerned = window.household_members_editor_data.persons.map(p => {
return {
person: p,
position: null,
- start_date: null
+ start_date: null,
+ allowRemove: false,
};
});
@@ -16,17 +17,31 @@ const store = createStore({
concerned,
household: window.household_members_editor_data.household,
positions: window.household_members_editor_data.positions,
+ allowHouseholdCreate: window.household_members_editor_data.allowHouseholdCreate,
+ allowHouseholdSearch: window.household_members_editor_data.allowHouseholdSearch,
+ allowLeaveWithoutHousehold: window.household_members_editor_data.allowLeaveWithoutHousehold,
+ forceLeaveWithoutHousehold: false
},
getters: {
+ isHouseholdNew(state) {
+ console.log('isHouseholdNew', !Number.isInteger(state.household.id));
+ console.log('household', state.household);
+ return !Number.isInteger(state.household.id);
+ },
+ hasHousehold(state) {
+ return state.household !== null;
+ },
persons(state) {
return state.concerned.map(conc => conc.person);
},
- personsUnpositionned(state) {
+ concUnpositionned(state) {
return state.concerned
.filter(conc => conc.position === null)
- .map(conc => conc.person)
;
},
+ positions(state) {
+ return state.positions;
+ },
personByPosition: (state) => (position_id) => {
return state.concerned
.filter(conc =>
@@ -35,14 +50,28 @@ const store = createStore({
.map(conc => conc.person)
;
},
- positions(state) {
- return state.positions;
- }
+ concByPosition: (state) => (position_id) => {
+ return state.concerned
+ .filter(conc =>
+ conc.position !== null ? conc.position.id === position_id : false
+ )
+ ;
+ },
+ concByPersonId: (state) => (person_id) => {
+ return state.concerned
+ .find(conc => conc.person.id === person_id)
+ ;
+ },
},
mutations: {
addConcerned(state, person) {
- console.log('from mutation addConcerned');
- state.concerned.push({ person, position: null, start_date: null });
+ let persons = state.concerned.map(conc => conc.person.id);
+ if (!persons.includes(person.id)) {
+ state.concerned.push({ person, position: null,
+ start_date: null, allowRemove: true });
+ } else {
+ console.err("person already included");
+ }
},
markPosition(state, { person_id, position_id}) {
console.log('from mutation markPosition');
@@ -55,7 +84,27 @@ const store = createStore({
console.log(position);
console.log(conc);
conc.position = position;
- }
+ },
+ toggleHolder(state, conc) {
+ console.log('toggleHolder', conc);
+ conc.holder = !conc.holder;
+ },
+ removePosition(state, conc) {
+ conc.holder = false;
+ conc.position = null;
+ },
+ removeConcerned(state, conc) {
+ state.concerned = state.concerned.filter(c =>
+ c.person.id !== conc.person.id
+ )
+ },
+ createHousehold(state) {
+ state.household = { type: 'household', members: [], address: null }
+ },
+ forceLeaveWithoutHousehold(state) {
+ state.household = null;
+ state.forceLeaveWithoutHousehold = true;
+ },
},
actions: {
addConcerned({ commit }, person) {
@@ -67,7 +116,22 @@ const store = createStore({
console.log('person_id', person_id);
console.log('position_id', position_id);
commit('markPosition', { person_id, position_id });
- }
+ },
+ toggleHolder({ commit }, conc) {
+ commit('toggleHolder', conc);
+ },
+ removePosition({ commit }, conc) {
+ commit('removePosition', conc);
+ },
+ removeConcerned({ commit }, conc) {
+ commit('removeConcerned', conc);
+ },
+ createHousehold({ commit }) {
+ commit('createHousehold');
+ },
+ forceLeaveWithoutHousehold({ commit }) {
+ commit('forceLeaveWithoutHousehold');
+ },
}
});