Send out notifications when forum threads and posts are deleted
This commit is contained in:
parent
23295d3875
commit
c3cbf57c19
core/src/main/java/se/su/dsv/scipro
forum
ProjectForumPostDeletedEvent.javaProjectForumServiceImpl.javaProjectForumThreadDeletedEvent.java
notifications
notifications
view/src/main/java/se/su/dsv/scipro
@ -0,0 +1,5 @@
|
||||
package se.su.dsv.scipro.forum;
|
||||
|
||||
import se.su.dsv.scipro.project.Project;
|
||||
|
||||
public record ProjectForumPostDeletedEvent(Project project, String subject) {}
|
@ -129,6 +129,9 @@ public class ProjectForumServiceImpl implements ProjectForumService {
|
||||
@Override
|
||||
public void deletePost(ProjectThread projectThread, ForumPost post) {
|
||||
basicForumService.deletePost(post);
|
||||
eventBus.post(
|
||||
new ProjectForumPostDeletedEvent(projectThread.getProject(), projectThread.getForumThread().getSubject())
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -139,8 +142,11 @@ public class ProjectForumServiceImpl implements ProjectForumService {
|
||||
@Override
|
||||
@Transactional
|
||||
public void deleteThread(ProjectThread projectThread) {
|
||||
Project project = projectThread.getProject();
|
||||
String subject = projectThread.getForumThread().getSubject();
|
||||
projectThreadRepository.delete(projectThread);
|
||||
basicForumService.deleteThread(projectThread.getForumThread());
|
||||
eventBus.post(new ProjectForumThreadDeletedEvent(project, subject));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -0,0 +1,5 @@
|
||||
package se.su.dsv.scipro.forum;
|
||||
|
||||
import se.su.dsv.scipro.project.Project;
|
||||
|
||||
public record ProjectForumThreadDeletedEvent(Project project, String subject) {}
|
@ -9,6 +9,8 @@ import java.util.function.Function;
|
||||
import se.su.dsv.scipro.forum.ForumPostReadEvent;
|
||||
import se.su.dsv.scipro.forum.NewGroupForumReplyEvent;
|
||||
import se.su.dsv.scipro.forum.NewProjectForumReplyEvent;
|
||||
import se.su.dsv.scipro.forum.ProjectForumPostDeletedEvent;
|
||||
import se.su.dsv.scipro.forum.ProjectForumThreadDeletedEvent;
|
||||
import se.su.dsv.scipro.forum.dataobjects.ForumPost;
|
||||
import se.su.dsv.scipro.notifications.NotificationController;
|
||||
import se.su.dsv.scipro.notifications.NotificationService;
|
||||
@ -95,6 +97,24 @@ public class ForumNotifications {
|
||||
});
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void projectThreadDeleted(ProjectForumThreadDeletedEvent event) {
|
||||
NotificationSource source = new NotificationSource();
|
||||
source.setMessage(event.subject());
|
||||
notificationController.notifyProjectForum(
|
||||
ProjectForumEvent.Event.FORUM_THREAD_DELETED,
|
||||
source,
|
||||
event.project()
|
||||
);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void projectForumPostDeleted(ProjectForumPostDeletedEvent event) {
|
||||
NotificationSource source = new NotificationSource();
|
||||
source.setMessage(event.subject());
|
||||
notificationController.notifyProjectForum(ProjectForumEvent.Event.FORUM_POST_DELETED, source, event.project());
|
||||
}
|
||||
|
||||
private void sendAndConnect(ForumPost post, Function<NotificationSource, Set<Notification>> send) {
|
||||
NotificationSource notificationSource = new NotificationSource();
|
||||
notificationSource.setMessage(String.format("Posted by %s\n\n%s", getPostedBy(post), post.getContent()));
|
||||
|
@ -23,6 +23,8 @@ FORUM.NEW_FORUM_POST_COMMENT.body = {0}
|
||||
FORUM.NEW_REVIEWER_INTERACTION.body = {0}
|
||||
GROUP.MESSAGE_THREAD_CREATED.body = {0}
|
||||
GROUP.MESSAGE_THREAD_REPLY.body = {0}
|
||||
FORUM.FORUM_THREAD_DELETED.title = Forum thread {1} deleted in project {0}
|
||||
FORUM.FORUM_POST_DELETED.title = Reply deleted in thread {1} in project {0}
|
||||
|
||||
PROJECT = \
|
||||
***********************************\n\n\
|
||||
|
@ -17,6 +17,8 @@ public class ProjectForumEvent extends NotificationEvent {
|
||||
NEW_FORUM_POST,
|
||||
NEW_FORUM_POST_COMMENT,
|
||||
NEW_REVIEWER_INTERACTION,
|
||||
FORUM_THREAD_DELETED,
|
||||
FORUM_POST_DELETED,
|
||||
}
|
||||
|
||||
@Basic
|
||||
|
@ -99,6 +99,10 @@ FORUM.NEW_FORUM_POST_COMMENT.title = Forum reply: {2}
|
||||
FORUM.NEW_FORUM_POST_COMMENT.body = New forum reply: {1}<br /><br />{0}
|
||||
FORUM.NEW_REVIEWER_INTERACTION.title = Reviewer interaction updated in project: {0}
|
||||
FORUM.NEW_REVIEWER_INTERACTION.body = New message in reviewer interaction: {1}<br /><br />{0}
|
||||
FORUM.FORUM_THREAD_DELETED.title = Forum thread {1} deleted
|
||||
FORUM.FORUM_THREAD_DELETED.body = The forum thread {0} was deleted.
|
||||
FORUM.FORUM_POST_DELETED.title = Reply deleted in thread {1}
|
||||
FORUM.FORUM_POST_DELETED.body = A reply was deleted in the thread {0}.
|
||||
FORUM.compilationSuffix =
|
||||
|
||||
GROUP.MESSAGE_THREAD_CREATED.title = Group forum: {2}
|
||||
|
@ -340,7 +340,7 @@ public class NotificationLandingPage extends WebPage {
|
||||
pp.set(PageParameterKeys.MAP.get(Project.class), project.getId());
|
||||
|
||||
switch (projectForumEvent.getEvent()) {
|
||||
case NEW_FORUM_POST, NEW_FORUM_POST_COMMENT:
|
||||
case NEW_FORUM_POST, NEW_FORUM_POST_COMMENT, FORUM_POST_DELETED, FORUM_THREAD_DELETED:
|
||||
roleSplit(currentUser, project, ProjectForumBasePage.class, SupervisorForumBasePage.class, pp);
|
||||
break;
|
||||
case NEW_REVIEWER_INTERACTION:
|
||||
|
@ -71,6 +71,8 @@ ProjectEvent.REFLECTION_IMPROVEMENTS_SUBMITTED = Reflection improvements submitt
|
||||
ProjectForumEvent.NEW_FORUM_POST = Forum thread created.
|
||||
ProjectForumEvent.NEW_FORUM_POST_COMMENT = Comment posted in forum thread.
|
||||
ProjectForumEvent.NEW_REVIEWER_INTERACTION = Comment posted in supervisor - reviewer communication.
|
||||
ProjectForumEvent.FORUM_THREAD_DELETED = Forum thread deleted.
|
||||
ProjectForumEvent.FORUM_POST_DELETED = Forum post deleted.
|
||||
|
||||
SeminarEvent.CREATED = Final seminar created. (with date, time, place, room specified by head supervisor; authors can now upload final seminar thesis; other authors can now oppose and be active participants)
|
||||
SeminarEvent.ROOM_CHANGED = Room changed.
|
||||
|
Loading…
x
Reference in New Issue
Block a user