mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
Export: on filter "action by type goals, and results", restore the fields when editing a saved export
This commit is contained in:
parent
53b4747697
commit
eb01c7c203
6
.changes/unreleased/Fixed-20231116-142207.yaml
Normal file
6
.changes/unreleased/Fixed-20231116-142207.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
kind: Fixed
|
||||||
|
body: 'Export: on filter "action by type goals, and results", restore the fields when
|
||||||
|
editing a saved export'
|
||||||
|
time: 2023-11-16T14:22:07.968973002+01:00
|
||||||
|
custom:
|
||||||
|
Issue: "141"
|
@ -150,14 +150,40 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
async mounted() {
|
||||||
this.getSocialActionsList();
|
await this.getSocialActionsList();
|
||||||
|
|
||||||
this.actions.hiddenField.value = '';
|
if ('' !== this.actions.hiddenField.value) {
|
||||||
this.goals.hiddenField.value = '';
|
const actionIds = this.actions.hiddenField.value.split(',');
|
||||||
this.results.hiddenField.value = '';
|
for (const aid of actionIds) {
|
||||||
|
let action = this.actions.options.find(a => Number.parseInt(aid) === a.id);
|
||||||
|
if (undefined !== action) {
|
||||||
|
this.action.push(action);
|
||||||
|
await this.selectAction(action);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//console.log(this.actions.hiddenField, this.goals.hiddenField, this.results.hiddenField);
|
if ('' !== this.goals.hiddenField.value) {
|
||||||
|
const goalsIds = this.goals.hiddenField.value.split(',').map(s => Number.parseInt(s));
|
||||||
|
for (const gid of goalsIds) {
|
||||||
|
let goal = this.goals.options.find(g => gid === g.id);
|
||||||
|
if (undefined !== goal) {
|
||||||
|
this.goal.push(goal);
|
||||||
|
await this.selectGoal(goal);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('' !== this.results.hiddenField.value) {
|
||||||
|
const resultsIds = this.results.hiddenField.value.split(',').map(s => Number.parseInt(s));
|
||||||
|
for (const rid of resultsIds) {
|
||||||
|
let result = this.results.options.find(r => rid === r.id);
|
||||||
|
if (undefined !== result) {
|
||||||
|
this.result.push(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async getSocialActionsList() {
|
async getSocialActionsList() {
|
||||||
@ -179,6 +205,8 @@ export default {
|
|||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
})
|
})
|
||||||
|
|
||||||
|
return Promise.resolve();
|
||||||
},
|
},
|
||||||
|
|
||||||
formatSocialAction({text, issue}) {
|
formatSocialAction({text, issue}) {
|
||||||
@ -189,54 +217,51 @@ export default {
|
|||||||
* Select/unselect in Action Multiselect
|
* Select/unselect in Action Multiselect
|
||||||
* @param value
|
* @param value
|
||||||
*/
|
*/
|
||||||
selectAction(value) {
|
async selectAction(value) {
|
||||||
//console.log('----'); console.log('select action', value.id);
|
//console.log('----'); console.log('select action', value.id);
|
||||||
let children = this.getChildrensFromParent(value);
|
let children = this.getChildrensFromParent(value);
|
||||||
this.addSelectedElement('actions', children);
|
this.addSelectedElement('actions', children);
|
||||||
|
|
||||||
let parentAndChildren = [...[value], ...children];
|
let parentAndChildren = [...[value], ...children];
|
||||||
|
const promises = [];
|
||||||
parentAndChildren.forEach(elem => {
|
parentAndChildren.forEach(elem => {
|
||||||
getGoalByAction(elem.id).then(response => new Promise((resolve, reject) => {
|
promises.push(getGoalByAction(elem.id).then(goals => {
|
||||||
this.addElementInData('goals', response.results);
|
this.addElementInData('goals', goals);
|
||||||
resolve();
|
return Promise.resolve();
|
||||||
})).catch;
|
}));
|
||||||
getResultByAction(elem.id).then(response => new Promise((resolve, reject) => {
|
promises.push(getResultByAction(elem.id).then(results => {
|
||||||
this.addElementInData('results', response.results);
|
this.addElementInData('results', results);
|
||||||
resolve();
|
return Promise.resolve();
|
||||||
})).catch;
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
await Promise.all(promises);
|
||||||
|
return Promise.resolve();
|
||||||
},
|
},
|
||||||
|
|
||||||
unselectAction(value) {
|
unselectAction(value) {
|
||||||
//console.log('----'); console.log('unselect action', value.id);
|
getGoalByAction(value.id).then(goals => {
|
||||||
getGoalByAction(value.id).then(response => new Promise((resolve, reject) => {
|
[this.results.options, this.results.value ] = this.removeElementInData('goals', goals);
|
||||||
[ this.goals.options, this.goals.value ] = this.removeElementInData('goals', response.results);
|
});
|
||||||
resolve();
|
getResultByAction(value.id).then(results => {
|
||||||
})).catch;
|
[this.results.options, this.results.value ] = this.removeElementInData('results', results);
|
||||||
getResultByAction(value.id).then(response => new Promise((resolve, reject) => {
|
});
|
||||||
[ this.results.options, this.results.value ] = this.removeElementInData('results', response.results);
|
|
||||||
resolve();
|
|
||||||
})).catch;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Select/unselect in Goal Multiselect
|
* Select/unselect in Goal Multiselect
|
||||||
* @param value
|
* @param value
|
||||||
*/
|
*/
|
||||||
selectGoal(value) {
|
async selectGoal(value) {
|
||||||
//console.log('----'); console.log('select goal', value.id);
|
return getResultByGoal(value.id).then(results => {
|
||||||
getResultByGoal(value.id).then(response => new Promise((resolve, reject) => {
|
this.addElementInData('results', results);
|
||||||
this.addElementInData('results', response.results);
|
})
|
||||||
resolve();
|
|
||||||
})).catch;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
unselectGoal(value) {
|
unselectGoal(value) {
|
||||||
//console.log('----'); console.log('unselect goal', value.id);
|
getResultByGoal(value.id).then(results => {
|
||||||
getResultByGoal(value.id).then(response => new Promise((resolve, reject) => {
|
[ this.results.options, this.results.value ] = this.removeElementInData('results', results);
|
||||||
[ this.results.options, this.results.value ] = this.removeElementInData('results', response.results);
|
}).catch;
|
||||||
resolve();
|
|
||||||
})).catch;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -284,7 +309,7 @@ export default {
|
|||||||
if (dump.length > 0) {
|
if (dump.length > 0) {
|
||||||
//console.log('push ' + dump.length + ' elems in', target, dump);
|
//console.log('push ' + dump.length + ' elems in', target, dump);
|
||||||
}
|
}
|
||||||
data.sort();
|
data.options.sort();
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -8,29 +8,17 @@ const getSocialActions = () => fetchResults(
|
|||||||
|
|
||||||
const getGoalByAction = (id) => {
|
const getGoalByAction = (id) => {
|
||||||
let url = `/api/1.0/person/social-work/goal/by-social-action/${id}.json`;
|
let url = `/api/1.0/person/social-work/goal/by-social-action/${id}.json`;
|
||||||
return fetch(url)
|
return fetchResults(url);
|
||||||
.then(response => {
|
|
||||||
if (response.ok) { return response.json(); }
|
|
||||||
throw Error('Error with request resource response');
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const getResultByAction = (id) => {
|
const getResultByAction = (id) => {
|
||||||
let url = `/api/1.0/person/social-work/result/by-social-action/${id}.json`;
|
let url = `/api/1.0/person/social-work/result/by-social-action/${id}.json`;
|
||||||
return fetch(url)
|
return fetchResults(url);
|
||||||
.then(response => {
|
|
||||||
if (response.ok) { return response.json(); }
|
|
||||||
throw Error('Error with request resource response');
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const getResultByGoal = (id) => {
|
const getResultByGoal = (id) => {
|
||||||
let url = `/api/1.0/person/social-work/result/by-goal/${id}.json`;
|
let url = `/api/1.0/person/social-work/result/by-goal/${id}.json`;
|
||||||
return fetch(url)
|
return fetchResults(url);
|
||||||
.then(response => {
|
|
||||||
if (response.ok) { return response.json(); }
|
|
||||||
throw Error('Error with request resource response');
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export {
|
export {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user