diff --git a/src/main/java/se/su/dsv/scipro/message/models/PrivateMessageModel.java b/src/main/java/se/su/dsv/scipro/message/models/PrivateMessageModel.java index 0276bbfce9..ea6ce889bb 100644 --- a/src/main/java/se/su/dsv/scipro/message/models/PrivateMessageModel.java +++ b/src/main/java/se/su/dsv/scipro/message/models/PrivateMessageModel.java @@ -74,39 +74,10 @@ public class PrivateMessageModel implements IClusterable { rec.setToUser(selectedUser); rec.setPrivateMessage(pm); rec = recipientDao.save(rec); + notificationController.createNotificationForPrivateMessage(selectedUser, subject +"\n\n" + textMessage, PrivateMessagesPage.getAbsoluteForPrivateMessageURL()); } - for(User user: users){ - createNotification(user, subject +"\n\n" + textMessage); - } } } - private void createNotification(final User user,final String message){ - Properties props = null; - try { - props = PropsUtils.load("notification.properties"); - } catch (Exception e) { - e.printStackTrace(); - } - String mailSubject = props.getProperty("mailSubject"); - String privateMessageNotification = props.getProperty("privateMessageNotification"); - String twoNewLines = props.getProperty("twoNewLines"); - - String webNotificationMessage = SciProSession.get() - .getUser() - + privateMessageNotification; - - String mailMessage = webNotificationMessage + twoNewLines + message; - - NotificationMessage notificationMessage = new NotificationMessage(webNotificationMessage, mailSubject, mailMessage); - notificationController.processNotification(user, notificationMessage, - getAbsoluteForPrivateMessageURL(), NotificationPriority.MEDIUM); - - } - - private String getAbsoluteForPrivateMessageURL() { - PageParameters pageParameters = new PageParameters(); - return RequestUtils.toAbsolutePath(RequestCycle.get().urlFor(PrivateMessagesPage.class, pageParameters).toString()); - } } \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/message/models/ReplyMessageModel.java b/src/main/java/se/su/dsv/scipro/message/models/ReplyMessageModel.java index f40d7eb96c..42c00856ee 100644 --- a/src/main/java/se/su/dsv/scipro/message/models/ReplyMessageModel.java +++ b/src/main/java/se/su/dsv/scipro/message/models/ReplyMessageModel.java @@ -1,17 +1,23 @@ package se.su.dsv.scipro.message.models; import java.util.List; +import java.util.Properties; import org.apache.wicket.IClusterable; import org.apache.wicket.injection.web.InjectorHolder; import org.apache.wicket.spring.injection.annot.SpringBean; import se.su.dsv.scipro.SciProSession; +import se.su.dsv.scipro.data.controllers.NotificationController; +import se.su.dsv.scipro.data.controllers.NotificationMessage; import se.su.dsv.scipro.data.dao.interfaces.PrivateMessageDao; import se.su.dsv.scipro.data.dao.interfaces.RecipientDao; import se.su.dsv.scipro.data.dataobjects.PrivateMessage; import se.su.dsv.scipro.data.dataobjects.Recipient; import se.su.dsv.scipro.data.dataobjects.User; +import se.su.dsv.scipro.data.enums.NotificationPriority; +import se.su.dsv.scipro.message.pages.PrivateMessagesPage; +import se.su.dsv.scipro.util.PropsUtils; public class ReplyMessageModel implements IClusterable { @@ -21,6 +27,8 @@ public class ReplyMessageModel implements IClusterable { private PrivateMessageDao pmDao; @SpringBean private RecipientDao recipientDao; + @SpringBean + private NotificationController notificationController; private PrivateMessage originalMessage; @@ -81,5 +89,10 @@ public class ReplyMessageModel implements IClusterable { r.setToUser(originalMessage.getFromUser()); r.setPrivateMessage(pm); r = recipientDao.save(r); + notificationController.createNotificationForReplyPrivateMessage(originalMessage.getFromUser(), getReplySubject() +"\n\n" + getReplyText(), PrivateMessagesPage.getAbsoluteForPrivateMessageURL()); + } + + + } diff --git a/src/main/java/se/su/dsv/scipro/message/pages/PrivateMessagesPage.java b/src/main/java/se/su/dsv/scipro/message/pages/PrivateMessagesPage.java index bfb8a147fe..8d0884e19c 100644 --- a/src/main/java/se/su/dsv/scipro/message/pages/PrivateMessagesPage.java +++ b/src/main/java/se/su/dsv/scipro/message/pages/PrivateMessagesPage.java @@ -3,6 +3,7 @@ package se.su.dsv.scipro.message.pages; import java.util.Iterator; import org.apache.wicket.PageParameters; +import org.apache.wicket.RequestCycle; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxLink; import org.apache.wicket.ajax.markup.html.form.AjaxButton; @@ -14,6 +15,7 @@ import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.model.CompoundPropertyModel; import org.apache.wicket.model.Model; import org.apache.wicket.model.PropertyModel; +import org.apache.wicket.protocol.http.RequestUtils; import org.apache.wicket.spring.injection.annot.SpringBean; import org.odlabs.wiquery.ui.dialog.Dialog; import org.odlabs.wiquery.ui.tabs.Tabs; @@ -192,5 +194,11 @@ public class PrivateMessagesPage extends MenuPage { } } + + public static String getAbsoluteForPrivateMessageURL() { + PageParameters pageParameters = new PageParameters(); + return RequestUtils.toAbsolutePath(RequestCycle.get() + .urlFor(PrivateMessagesPage.class, pageParameters).toString()); + } } diff --git a/src/main/java/se/su/dsv/scipro/message/panels/PrivateMessagesPanel.java b/src/main/java/se/su/dsv/scipro/message/panels/PrivateMessagesPanel.java index 7e81c88fab..03ce02c093 100644 --- a/src/main/java/se/su/dsv/scipro/message/panels/PrivateMessagesPanel.java +++ b/src/main/java/se/su/dsv/scipro/message/panels/PrivateMessagesPanel.java @@ -95,18 +95,16 @@ public class PrivateMessagesPanel extends Panel { PageableListView<Recipient> lv = new PageableListView<Recipient>("message-list-item", new PropertyModel<List<Recipient>>(messageListModel, "privateMessages"), PAGE_LIMIT) { private static final long serialVersionUID = 7851212974239684966L; - protected Recipient rec; - protected PrivateMessage pm; @Override protected void populateItem(final ListItem<Recipient> item) { - this.rec = item.getModelObject(); - this.pm = rec.getPrivateMessage(); + final Recipient rec = item.getModelObject(); + final PrivateMessage pm = rec.getPrivateMessage(); item.add(new Label("dateField", dateFormat.format(pm.getDateCreated()))); item.add(new Label("fromField", pm.getFromUser().getFirstName() + " " + pm.getFromUser().getLastName())); item.add(new Label("subjectField", pm.getSubject())); - if (this.rec.getDateRead() == null) + if (rec.getDateRead() == null) item.add(new SimpleAttributeModifier("class", "unread-message-table-row")); item.add(new AjaxLink<String>("readLink") { @@ -114,13 +112,12 @@ public class PrivateMessagesPanel extends Panel { @Override public void onClick(AjaxRequestTarget target) { - pm = pmDao.reLoad(pm); - currentMessage = pm; + currentMessage = pmDao.reLoad(pm); - rec = recipientDao.reLoad(item.getModelObject()); - if (rec.getDateRead() == null) { - rec.setDateRead(GregorianCalendar.getInstance().getTime()); - recipientDao.save(rec); + Recipient rec2 = recipientDao.reLoad(item.getModelObject()); + if (rec2.getDateRead() == null) { + rec2.setDateRead(GregorianCalendar.getInstance().getTime()); + recipientDao.save(rec2); } messageContainer = new WebMarkupContainer("messageContainer");