Fixed: [Activity] allow to set a user null

Fix https://gitlab.com/Chill-Projet/chill-bundles/-/issues/74
This commit is contained in:
2023-04-06 17:29:05 +02:00
parent 4d734714a8
commit cc69a3e86b
5 changed files with 22 additions and 18 deletions

View File

@@ -18,6 +18,7 @@ function loadDynamicPicker(element) {
isMultiple = parseInt(el.dataset.multiple) === 1,
uniqId = el.dataset.uniqid,
input = element.querySelector('[data-input-uniqid="'+ el.dataset.uniqid +'"]'),
// the "picked" will always be an array, even if multiple is false
picked = isMultiple ?
JSON.parse(input.value) : (
(input.value === '[]' || input.value === '') ?
@@ -54,15 +55,11 @@ function loadDynamicPicker(element) {
},
computed: {
notPickedSuggested() {
if (this.multiple) {
const pickedIds = new Set();
for (const p of this.picked) {
pickedIds.add(`${p.type}${p.id}`);
}
return this.suggested.filter(e => !pickedIds.has(`${e.type}${e.id}`))
const pickedIds = new Set();
for (const p of this.picked) {
pickedIds.add(`${p.type}${p.id}`);
}
return this.suggested.filter(e => e.type !== this.picked.type && e.id !== e.picked.id);
return this.suggested.filter(e => !pickedIds.has(`${e.type}${e.id}`))
}
},
methods: {
@@ -90,7 +87,11 @@ function loadDynamicPicker(element) {
this.suggested.push(entity);
}
this.picked = this.picked.filter(e => !(e.type === entity.type && e.id === entity.id));
input.value = JSON.stringify(this.picked);
if (this.multiple) {
input.value = JSON.stringify(this.picked);
} else {
input.value = "";
}
},
}
})