Connect calendar moderation with outside moderation

This commit is contained in:
Antoine Bartuccio 2025-02-25 15:35:01 +01:00
parent f9c36c8f99
commit 2e71275f5b
2 changed files with 36 additions and 0 deletions

View File

@ -96,6 +96,14 @@ export class IcsCalendar extends inheritHtmlElement("div") {
news_id: id, news_id: id,
}, },
}); });
this.dispatchEvent(
new CustomEvent("calendar-moderate", {
bubbles: true,
detail: {
id: id,
},
}),
);
await this.refreshEvents(); await this.refreshEvents();
} }
@ -106,6 +114,14 @@ export class IcsCalendar extends inheritHtmlElement("div") {
news_id: id, news_id: id,
}, },
}); });
this.dispatchEvent(
new CustomEvent("calendar-remove", {
bubbles: true,
detail: {
id: id,
},
}),
);
await this.refreshEvents(); await this.refreshEvents();
} }
@ -116,6 +132,14 @@ export class IcsCalendar extends inheritHtmlElement("div") {
news_id: id, news_id: id,
}, },
}); });
this.dispatchEvent(
new CustomEvent("calendar-delete", {
bubbles: true,
detail: {
id: id,
},
}),
);
await this.refreshEvents(); await this.refreshEvents();
} }

View File

@ -180,6 +180,18 @@
<a target="#" href="{{ url("com:news_feed") }}"><i class="fa fa-rss feed"></i></a> <a target="#" href="{{ url("com:news_feed") }}"><i class="fa fa-rss feed"></i></a>
</h3> </h3>
<ics-calendar <ics-calendar
x-data
x-ref="calendar"
@news-moderated.window="
// Avoid triggering a refresh with a dispatch
// from the calendar itself
if ($event.target !== $refs.calendar){
$refs.calendar.refreshEvents($event);
}
"
@calendar-remove="$dispatch('news-moderated', {newsId: $event.detail.id, state: AlertState.PENDING})"
@calendar-delete="$dispatch('news-moderated', {newsId: $event.detail.id, state: AlertState.DELETED})"
@calendar-moderate="$dispatch('news-moderated', {newsId: $event.detail.id, state: AlertState.MODERATED})"
locale="{{ get_language() }}" locale="{{ get_language() }}"
can_moderate="{{ user.has_perm("com.moderate_news") }}" can_moderate="{{ user.has_perm("com.moderate_news") }}"
can_delete="{{ user.has_perm("com.delete_news") }}" can_delete="{{ user.has_perm("com.delete_news") }}"