diff --git a/src/Bundle/ChillPersonBundle/Resources/public/mod/AccompanyingPeriod/setReferrer.js b/src/Bundle/ChillPersonBundle/Resources/public/mod/AccompanyingPeriod/setReferrer.js
index b06dba5b9..b73c0afea 100644
--- a/src/Bundle/ChillPersonBundle/Resources/public/mod/AccompanyingPeriod/setReferrer.js
+++ b/src/Bundle/ChillPersonBundle/Resources/public/mod/AccompanyingPeriod/setReferrer.js
@@ -2,25 +2,44 @@ import {createApp} from 'vue';
import SetReferrer from 'ChillPersonAssets/vuejs/_components/AccompanyingPeriod/SetReferrer.vue';
import {fetchResults} from 'ChillMainAssets/lib/api/apiMethods.js';
+/**
+ *
+ * To start this app, add this container into recordAction passed as argument to
+ * `ChillPerson/AccompanyingPeriod/_list_item.html.twig`:
+ *
+ * ```html+twig
+ * {% if is_granted('CHILL_PERSON_ACCOMPANYING_PERIOD_UPDATE', period) %}
+ *
+ *
+ *
+ * {% endif %}
+ * ```
+ *
+ * The app will update the referrer displayed into dedicated span
+ */
+
document.querySelectorAll('[data-set-referrer-app]').forEach(function (el) {
let
periodId = Number.parseInt(el.dataset.setReferrerAccompanyingPeriodId);
const url = `/api/1.0/person/accompanying-course/${periodId}/referrers-suggested.json`;
+
fetchResults(url).then(suggested => {
+
const app = createApp({
components: {
SetReferrer,
},
template:
- '',
+ '',
data() {
return {
- suggested, periodId,
+ periodId, suggested, original: suggested,
}
},
methods: {
onReferrerSet(ref) {
+
const bloc = document.querySelector(`[data-accompanying-period-id="${this.periodId}"]`);
if (bloc === null) {
console.error('bloc not found');
@@ -37,6 +56,7 @@ document.querySelectorAll('[data-set-referrer-app]').forEach(function (el) {
label.textContent = ref.text;
label.classList.remove('chill-no-data-statement');
+ this.suggested = this.original.filter(user => user.id !== ref.id);
}
}
});
diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/AccompanyingPeriod/SetReferrer.vue b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/AccompanyingPeriod/SetReferrer.vue
index 049dabff6..3d3675c73 100644
--- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/AccompanyingPeriod/SetReferrer.vue
+++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/AccompanyingPeriod/SetReferrer.vue
@@ -1,6 +1,6 @@
-
@@ -11,16 +11,23 @@ import {makeFetch} from 'ChillMainAssets/lib/api/apiMethods.js';
export default {
name: "SetReferrer",
props: {
- suggested: {
+ suggested: {
type: Array,
required: false,
- default: [],
+ //default: [],
},
periodId: {
type: Number,
required: true
}
},
+ data() {
+ return {
+ /*suggested: [
+ {id: 5, text: 'Robert'}, {id: 8, text: 'Monique'},
+ ]*/
+ }
+ },
emits: ['referrerSet'],
methods: {
setReferrer: function(ref) {
diff --git a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/_list_item.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/_list_item.html.twig
index b53631e86..5f12f60f1 100644
--- a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/_list_item.html.twig
+++ b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/_list_item.html.twig
@@ -1,4 +1,4 @@
-