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.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());
|
||||
}
|
||||
}
|
@ -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());
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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");
|
||||
|
Loading…
x
Reference in New Issue
Block a user