Bugfix and uses notifications on sending and replying private messages
Change-Id: I1dc386b2c9d337d39989bdcbfa45e2f00fe04871
This commit is contained in:
parent
be51065103
commit
d928d0de4e
src/main/java/se/su/dsv/scipro/message
@ -74,39 +74,10 @@ public class PrivateMessageModel implements IClusterable {
|
|||||||
rec.setToUser(selectedUser);
|
rec.setToUser(selectedUser);
|
||||||
rec.setPrivateMessage(pm);
|
rec.setPrivateMessage(pm);
|
||||||
rec = recipientDao.save(rec);
|
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());
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -1,17 +1,23 @@
|
|||||||
package se.su.dsv.scipro.message.models;
|
package se.su.dsv.scipro.message.models;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
import org.apache.wicket.IClusterable;
|
import org.apache.wicket.IClusterable;
|
||||||
import org.apache.wicket.injection.web.InjectorHolder;
|
import org.apache.wicket.injection.web.InjectorHolder;
|
||||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||||
|
|
||||||
import se.su.dsv.scipro.SciProSession;
|
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.PrivateMessageDao;
|
||||||
import se.su.dsv.scipro.data.dao.interfaces.RecipientDao;
|
import se.su.dsv.scipro.data.dao.interfaces.RecipientDao;
|
||||||
import se.su.dsv.scipro.data.dataobjects.PrivateMessage;
|
import se.su.dsv.scipro.data.dataobjects.PrivateMessage;
|
||||||
import se.su.dsv.scipro.data.dataobjects.Recipient;
|
import se.su.dsv.scipro.data.dataobjects.Recipient;
|
||||||
import se.su.dsv.scipro.data.dataobjects.User;
|
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 {
|
public class ReplyMessageModel implements IClusterable {
|
||||||
|
|
||||||
@ -21,6 +27,8 @@ public class ReplyMessageModel implements IClusterable {
|
|||||||
private PrivateMessageDao pmDao;
|
private PrivateMessageDao pmDao;
|
||||||
@SpringBean
|
@SpringBean
|
||||||
private RecipientDao recipientDao;
|
private RecipientDao recipientDao;
|
||||||
|
@SpringBean
|
||||||
|
private NotificationController notificationController;
|
||||||
|
|
||||||
private PrivateMessage originalMessage;
|
private PrivateMessage originalMessage;
|
||||||
|
|
||||||
@ -81,5 +89,10 @@ public class ReplyMessageModel implements IClusterable {
|
|||||||
r.setToUser(originalMessage.getFromUser());
|
r.setToUser(originalMessage.getFromUser());
|
||||||
r.setPrivateMessage(pm);
|
r.setPrivateMessage(pm);
|
||||||
r = recipientDao.save(r);
|
r = recipientDao.save(r);
|
||||||
|
notificationController.createNotificationForReplyPrivateMessage(originalMessage.getFromUser(), getReplySubject() +"\n\n" + getReplyText(), PrivateMessagesPage.getAbsoluteForPrivateMessageURL());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package se.su.dsv.scipro.message.pages;
|
|||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
import org.apache.wicket.PageParameters;
|
import org.apache.wicket.PageParameters;
|
||||||
|
import org.apache.wicket.RequestCycle;
|
||||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||||
import org.apache.wicket.ajax.markup.html.AjaxLink;
|
import org.apache.wicket.ajax.markup.html.AjaxLink;
|
||||||
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
|
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.CompoundPropertyModel;
|
||||||
import org.apache.wicket.model.Model;
|
import org.apache.wicket.model.Model;
|
||||||
import org.apache.wicket.model.PropertyModel;
|
import org.apache.wicket.model.PropertyModel;
|
||||||
|
import org.apache.wicket.protocol.http.RequestUtils;
|
||||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||||
import org.odlabs.wiquery.ui.dialog.Dialog;
|
import org.odlabs.wiquery.ui.dialog.Dialog;
|
||||||
import org.odlabs.wiquery.ui.tabs.Tabs;
|
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());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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) {
|
PageableListView<Recipient> lv = new PageableListView<Recipient>("message-list-item", new PropertyModel<List<Recipient>>(messageListModel, "privateMessages"), PAGE_LIMIT) {
|
||||||
|
|
||||||
private static final long serialVersionUID = 7851212974239684966L;
|
private static final long serialVersionUID = 7851212974239684966L;
|
||||||
protected Recipient rec;
|
|
||||||
protected PrivateMessage pm;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void populateItem(final ListItem<Recipient> item) {
|
protected void populateItem(final ListItem<Recipient> item) {
|
||||||
this.rec = item.getModelObject();
|
final Recipient rec = item.getModelObject();
|
||||||
this.pm = rec.getPrivateMessage();
|
final PrivateMessage pm = rec.getPrivateMessage();
|
||||||
item.add(new Label("dateField", dateFormat.format(pm.getDateCreated())));
|
item.add(new Label("dateField", dateFormat.format(pm.getDateCreated())));
|
||||||
item.add(new Label("fromField", pm.getFromUser().getFirstName() + " "
|
item.add(new Label("fromField", pm.getFromUser().getFirstName() + " "
|
||||||
+ pm.getFromUser().getLastName()));
|
+ pm.getFromUser().getLastName()));
|
||||||
item.add(new Label("subjectField", pm.getSubject()));
|
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 SimpleAttributeModifier("class", "unread-message-table-row"));
|
||||||
item.add(new AjaxLink<String>("readLink") {
|
item.add(new AjaxLink<String>("readLink") {
|
||||||
|
|
||||||
@ -114,13 +112,12 @@ public class PrivateMessagesPanel extends Panel {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(AjaxRequestTarget target) {
|
public void onClick(AjaxRequestTarget target) {
|
||||||
pm = pmDao.reLoad(pm);
|
currentMessage = pmDao.reLoad(pm);
|
||||||
currentMessage = pm;
|
|
||||||
|
|
||||||
rec = recipientDao.reLoad(item.getModelObject());
|
Recipient rec2 = recipientDao.reLoad(item.getModelObject());
|
||||||
if (rec.getDateRead() == null) {
|
if (rec2.getDateRead() == null) {
|
||||||
rec.setDateRead(GregorianCalendar.getInstance().getTime());
|
rec2.setDateRead(GregorianCalendar.getInstance().getTime());
|
||||||
recipientDao.save(rec);
|
recipientDao.save(rec2);
|
||||||
}
|
}
|
||||||
|
|
||||||
messageContainer = new WebMarkupContainer("messageContainer");
|
messageContainer = new WebMarkupContainer("messageContainer");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user