fixed the workspace notification rename problem, enhanced the notification subject to make them even more informative

git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/application-support-layer/applicationSupportLayerSocial@95740 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Massimiliano Assante 2014-05-15 17:28:05 +00:00
parent 373a7a21cf
commit ef2ba42c70
3 changed files with 118 additions and 93 deletions

View File

@ -11,16 +11,15 @@ import java.util.UUID;
import org.gcube.application.framework.core.session.ASLSession;
import org.gcube.applicationsupportlayer.social.mailing.EmailPlugin;
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder;
import org.gcube.portal.custom.communitymanager.OrganizationsUtil;
import org.gcube.portal.databook.shared.ApplicationProfile;
import org.gcube.portal.databook.shared.Notification;
import org.gcube.portal.databook.shared.NotificationChannelType;
import org.gcube.portal.databook.shared.NotificationType;
import org.gcube.portal.databook.shared.RunningJob;
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder;
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder;
import org.gcube.vomanagement.usermanagement.UserManager;
import org.gcube.vomanagement.usermanagement.exception.UserManagementPortalException;
import org.gcube.vomanagement.usermanagement.exception.UserManagementSystemException;
@ -38,10 +37,10 @@ import org.slf4j.LoggerFactory;
*/
public class ApplicationNotificationsManager extends SocialPortalBridge implements NotificationsManager {
private static final Logger _log = LoggerFactory.getLogger(ApplicationNotificationsManager.class);
private static final String SENDER_EMAIL = "notificationSenderEmail";
private static final String GATEWAY_NAME = "portalinstancename";
private String portalName;
private String senderEmail;
/**
@ -122,7 +121,7 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
* @throws InternalErrorException
*/
@Override
public boolean notifyFolderSharing(String userIdToNotify, WorkspaceFolder sharedFolder) throws InternalErrorException {
public boolean notifyFolderSharing(String userIdToNotify, WorkspaceSharedFolder sharedFolder) throws InternalErrorException {
String sharedFolderName = sharedFolder.getName();
if (sharedFolder.isShared()) {
WorkspaceSharedFolder sharedWSFolder = (WorkspaceSharedFolder) sharedFolder;
@ -172,7 +171,7 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
* @throws UserManagementSystemException
*/
@Override
public boolean notifyFolderAddedUser(String userIdToNotify, WorkspaceFolder sharedFolder, String newAddedUserId) throws InternalErrorException, UserManagementSystemException, UserRetrievalFault, UserManagementPortalException {
public boolean notifyFolderAddedUser(String userIdToNotify, WorkspaceSharedFolder sharedFolder, String newAddedUserId) throws InternalErrorException, UserManagementSystemException, UserRetrievalFault, UserManagementPortalException {
UserManager um = new LiferayUserManager();
UserModel user = um.getUserByScreenName(newAddedUserId);
Notification not = new Notification(
@ -197,7 +196,7 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
* @throws UserManagementSystemException
*/
@Override
public boolean notifyFolderAddedUsers(String userIdToNotify, WorkspaceFolder sharedFolder, List<String> newAddedUserIds) throws InternalErrorException, UserManagementSystemException, UserRetrievalFault, UserManagementPortalException {
public boolean notifyFolderAddedUsers(String userIdToNotify, WorkspaceSharedFolder sharedFolder, List<String> newAddedUserIds) throws InternalErrorException, UserManagementSystemException, UserRetrievalFault, UserManagementPortalException {
if (newAddedUserIds != null && newAddedUserIds.size() > 0) {
if (newAddedUserIds.size() == 1)
return notifyFolderAddedUser(userIdToNotify, sharedFolder, newAddedUserIds.get(0));
@ -228,7 +227,7 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
* {@inheritDoc}
*/
@Override
public boolean notifyFolderRemovedUser(String userIdToNotify, WorkspaceFolder sharedFolder) throws InternalErrorException, UserManagementSystemException, UserRetrievalFault, UserManagementPortalException {
public boolean notifyFolderRemovedUser(String userIdToNotify, WorkspaceSharedFolder sharedFolder) throws InternalErrorException, UserManagementSystemException, UserRetrievalFault, UserManagementPortalException {
Notification not = new Notification(
UUID.randomUUID().toString(),
NotificationType.WP_FOLDER_REMOVEDUSER,
@ -249,15 +248,11 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
* @throws InternalErrorException
*/
@Override
public boolean notifyAddedItem(String userIdToNotify, WorkspaceItem item, WorkspaceFolder sharedFolder) throws InternalErrorException {
String notifyText = "added "+ item.getName() +" to your workspace shared folder "+ item.getPath().substring(0,item.getPath().lastIndexOf('/'));
if (sharedFolder.isShared()) {
WorkspaceSharedFolder sharedWSFolder = (WorkspaceSharedFolder) sharedFolder;
if (sharedWSFolder.isVreFolder()) {
notifyText = "added "+ item.getName() +" to the workspace group folder " + sharedWSFolder.getDisplayName();
}
}
public boolean notifyAddedItem(String userIdToNotify, WorkspaceItem item, WorkspaceSharedFolder sharedFolder) throws InternalErrorException {
String notifyText = sharedFolder.isVreFolder() ?
"added "+ item.getName() +" to the workspace group folder " + sharedFolder.getDisplayName() :
"added "+ item.getName() +" to your workspace shared folder "+ item.getPath().substring(0,item.getPath().lastIndexOf('/'));
Notification not = new Notification(
UUID.randomUUID().toString(),
NotificationType.WP_ITEM_NEW,
@ -278,14 +273,10 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
* @throws InternalErrorException
*/
@Override
public boolean notifyMovedItem(String userIdToNotify, WorkspaceItem item, WorkspaceFolder sharedFolder) throws InternalErrorException {
String notifyText = "removed item "+ item.getName() +" from your workspace shared folder "+ sharedFolder.getName();
if (sharedFolder.isShared()) {
WorkspaceSharedFolder sharedWSFolder = (WorkspaceSharedFolder) sharedFolder;
if (sharedWSFolder.isVreFolder()) {
notifyText = "removed item "+ item.getName() +" from the workspace group folder " + sharedWSFolder.getDisplayName();
}
}
public boolean notifyMovedItem(String userIdToNotify, WorkspaceItem item, WorkspaceSharedFolder sharedFolder) throws InternalErrorException {
String notifyText = sharedFolder.isVreFolder() ? "removed item "+ item.getName() +" from the workspace group folder " + sharedFolder.getDisplayName():
"removed item "+ item.getName() +" from your workspace shared folder "+ sharedFolder.getName();
Notification not = new Notification(
UUID.randomUUID().toString(),
NotificationType.WP_ITEM_DELETE,
@ -306,14 +297,10 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
* @throws InternalErrorException
*/
@Override
public boolean notifyRemovedItem(String userIdToNotify, String itemName, WorkspaceFolder sharedFolder) throws InternalErrorException {
String notifyText = "deleted item "+ itemName +" from your workspace shared folder "+ sharedFolder.getName();
if (sharedFolder.isShared()) {
WorkspaceSharedFolder sharedWSFolder = (WorkspaceSharedFolder) sharedFolder;
if (sharedWSFolder.isVreFolder()) {
notifyText = "deleted item "+ itemName +" from the workspace group folder " + sharedWSFolder.getDisplayName();
}
}
public boolean notifyRemovedItem(String userIdToNotify, String itemName, WorkspaceSharedFolder sharedFolder) throws InternalErrorException {
String notifyText = sharedFolder.isVreFolder() ? "deleted item "+ itemName +" from the workspace group folder " + sharedFolder.getDisplayName():
" deleted item "+ itemName +" from your workspace shared folder "+ sharedFolder.getName();
Notification not = new Notification(
UUID.randomUUID().toString(),
NotificationType.WP_ITEM_DELETE,
@ -334,14 +321,10 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
* @throws InternalErrorException
*/
@Override
public boolean notifyUpdatedItem(String userIdToNotify, WorkspaceItem item, WorkspaceFolder sharedFolder) throws InternalErrorException {
String notifyText = " updated "+ item.getName() +" to your workspace shared folder "+ item.getPath().substring(0,item.getPath().lastIndexOf('/'));
if (sharedFolder.isShared()) {
WorkspaceSharedFolder sharedWSFolder = (WorkspaceSharedFolder) sharedFolder;
if (sharedWSFolder.isVreFolder()) {
notifyText = " updated "+ item.getName() +" from the workspace group folder " + sharedWSFolder.getDisplayName();
}
}
public boolean notifyUpdatedItem(String userIdToNotify, WorkspaceItem item, WorkspaceSharedFolder sharedFolder) throws InternalErrorException {
String notifyText = sharedFolder.isVreFolder() ? " updated "+ item.getName() +" from the workspace group folder " + sharedFolder.getDisplayName():
" updated "+ item.getName() +" to your workspace shared folder "+ item.getPath().substring(0,item.getPath().lastIndexOf('/'));
Notification not = new Notification(
UUID.randomUUID().toString(),
NotificationType.WP_ITEM_UPDATED,
@ -362,15 +345,10 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
* @throws InternalErrorException
*/
@Override
public boolean notifyItemRenaming(String userIdToNotify, String previousName, WorkspaceItem renamedItem, WorkspaceFolder rootSharedFolder) throws InternalErrorException {
String notifyText = "renamed " + previousName +" as " + renamedItem.getName() +" in your shared folder " + renamedItem.getPath().substring(0, renamedItem.getPath().lastIndexOf('/'));
if (rootSharedFolder.isShared()) {
WorkspaceSharedFolder sharedWSFolder = (WorkspaceSharedFolder) renamedItem.getParent();
if (sharedWSFolder.isVreFolder()) {
notifyText = "renamed "+ previousName +" as " + renamedItem.getName() +" in the workspace group folder " + sharedWSFolder.getDisplayName();
}
}
public boolean notifyItemRenaming(String userIdToNotify, String previousName, WorkspaceItem renamedItem, WorkspaceSharedFolder rootSharedFolder) throws InternalErrorException {
String notifyText = rootSharedFolder.isVreFolder() ? "renamed "+ previousName +" as " + renamedItem.getName() +" in the workspace group folder " + rootSharedFolder.getDisplayName():
"renamed " + previousName +" as " + renamedItem.getName() +" in your shared folder " + renamedItem.getPath().substring(0, renamedItem.getPath().lastIndexOf('/'));
Notification not = new Notification(
UUID.randomUUID().toString(),
NotificationType.WP_ITEM_RENAMED,
@ -411,12 +389,12 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
*/
@Override
public boolean notifyPost(String userIdToNotify, String feedid, String feedText) {
StringBuilder notificationText = new StringBuilder();
notificationText.append("posted a news on <b>").append(aslSession.getGroupName()).append(":</b>") // has done something
.append("<br /><br /> ").append(escapeHtml(feedText)).append(". ")
.append("<br /><br />Follow the discussion and comment it. ");
Notification not = new Notification(
UUID.randomUUID().toString(),
NotificationType.POST_ALERT,
@ -673,18 +651,18 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
@Override
public boolean notifyNewCalendarEvent(String userIdToNotify, String eventTitle, String eventType, Date startDate, Date endingDate) {
SimpleDateFormat spf = new SimpleDateFormat("EEE dd MMMMM, yyyy");
String endDateToDisplay="";
if (endingDate != null) {
endDateToDisplay = " to " + spf.format(endingDate);
}
StringBuilder notificationText = new StringBuilder();
notificationText.append("added the following event in the <b>").append(aslSession.getGroupName()).append("</b> shared calendar: ") // has done something
.append("<strong>").append(eventTitle).append("</strong><br />")
.append("<br /><strong> Time:</strong> ").append(spf.format(startDate)).append(endDateToDisplay).append("<br />")
.append("<br /><strong> Category: </strong> ").append(eventType);
Notification not = new Notification(
UUID.randomUUID().toString(),
NotificationType.CALENDAR_ADDED_EVENT,
@ -700,25 +678,25 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
return saveNotification(not);
}
/**
* {@inheritDoc}
*/
@Override
public boolean notifyEditedCalendarEvent(String userIdToNotify, String eventTitle, String eventType, Date startDate, Date endingDate) {
SimpleDateFormat spf = new SimpleDateFormat("EEE dd MMMMM, yyyy");
String endDateToDisplay="";
if (endingDate != null) {
endDateToDisplay = " to " + spf.format(endingDate);
}
StringBuilder notificationText = new StringBuilder();
notificationText.append("edited the following event in the <b>").append(aslSession.getGroupName()).append("</b> shared calendar: ") // has done something
.append("<strong>").append(eventTitle).append("</strong><br />")
.append("<br /><strong> Time:</strong> ").append(spf.format(startDate)).append(endDateToDisplay).append("<br />")
.append("<br /><strong> Category: </strong> ").append(eventType);
Notification not = new Notification(
UUID.randomUUID().toString(),
NotificationType.CALENDAR_UPDATED_EVENT,
@ -734,25 +712,25 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
return saveNotification(not);
}
/**
* {@inheritDoc}
*/
@Override
public boolean notifyDeletedCalendarEvent(String userIdToNotify, String eventTitle, String eventType, Date startDate, Date endingDate) {
SimpleDateFormat spf = new SimpleDateFormat("EEE dd MMMMM, yyyy");
String endDateToDisplay="";
if (endingDate != null) {
endDateToDisplay = " to " + spf.format(endingDate);
}
StringBuilder notificationText = new StringBuilder();
notificationText.append("deleted the following event in the <b>").append(aslSession.getGroupName()).append("</b> shared calendar: ") // has done something
.append("<strong>").append(eventTitle).append("</strong><br />")
.append("<br /><strong> Was planned:</strong> ").append(spf.format(startDate)).append(endDateToDisplay).append("<br />")
.append("<br /><strong> Category: </strong> ").append(eventType);
Notification not = new Notification(
UUID.randomUUID().toString(),
NotificationType.CALENDAR_DELETED_EVENT,
@ -768,7 +746,7 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
return saveNotification(not);
}
/**
* read the portal instance name from a property file and returns it
*/
@ -793,7 +771,7 @@ public class ApplicationNotificationsManager extends SocialPortalBridge implemen
_log.debug("Returning Gateway Name: " + toReturn );
return toReturn;
}
/**
* read the sender email for notifications name from a property file and returns it
*/

View File

@ -7,6 +7,7 @@ import org.gcube.portal.databook.shared.ApplicationProfile;
import org.gcube.portal.databook.shared.RunningJob;
import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder;
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder;
/**
*
* @author Massimiliano Assante, ISTI-CNR
@ -17,10 +18,10 @@ public interface NotificationsManager {
* use to notify a user he got a workspace folder shared
*
* @param userIdToNotify the user you want to notify
* @param sharedFolder the shared {@link WorkspaceFolder}
* @param sharedFolder the shared {@link WorkspaceSharedFolder}
* @return true if the notification is correctly delivered, false otherwise
*/
boolean notifyFolderSharing(String userIdToNotify, WorkspaceFolder sharedFolder) throws Exception;
boolean notifyFolderSharing(String userIdToNotify, WorkspaceSharedFolder sharedFolder) throws Exception;
/**
* use to notify a user he got a workspace folder renamed
*
@ -35,52 +36,52 @@ public interface NotificationsManager {
* use to notify a user that a new user was added in on of his workspace shared folder
*
* @param userIdToNotify the user you want to notify
* @param sharedFolder the shared {@link WorkspaceFolder}
* @param sharedFolder the shared {@link WorkspaceSharedFolder}
* @param newAddedUserId the new user that was added
* @return true if the notification is correctly delivered, false otherwise
*/
boolean notifyFolderAddedUser(String userIdToNotify, WorkspaceFolder sharedFolder, String newAddedUserId) throws Exception;
boolean notifyFolderAddedUser(String userIdToNotify, WorkspaceSharedFolder sharedFolder, String newAddedUserId) throws Exception;
/**
* use to notify a user that a new user was added in on of his workspace shared folder
*
* @param userIdToNotify the user you want to notify
* @param sharedFolder the shared {@link WorkspaceFolder}
* @param sharedFolder the shared {@link WorkspaceSharedFolder}
* @param newAddedUserIds List of new users that were added
* @return true if the notification is correctly delivered, false otherwise
*/
boolean notifyFolderAddedUsers(String userIdToNotify, WorkspaceFolder sharedFolder, List<String> newAddedUserIds) throws Exception;
boolean notifyFolderAddedUsers(String userIdToNotify, WorkspaceSharedFolder sharedFolder, List<String> newAddedUserIds) throws Exception;
/**
* use to notify a user that an existing user was removed from one of his workspace shared folder
*
* @param userIdToNotify the user you want to notify
* @param sharedFolder the shared {@link WorkspaceFolder}
* @param sharedFolder the shared {@link WorkspaceSharedFolder}
* @return true if the notification is correctly delivered, false otherwise
*/
boolean notifyFolderRemovedUser(String userIdToNotify, WorkspaceFolder sharedFolder) throws Exception;
boolean notifyFolderRemovedUser(String userIdToNotify, WorkspaceSharedFolder sharedFolder) throws Exception;
/**
* use to notify a user he got a workspace item new in some of his workspace shared folder
* @param userIdToNotify the user you want to notify
* @param newItem the new shared {@link WorkspaceItem}
* @param sharedFolder the shared folder {@link WorkspaceFolder}
* @param sharedFolder the shared folder {@link WorkspaceSharedFolder}
* @return true if the notification is correctly delivered, false otherwise
*/
boolean notifyAddedItem(String userIdToNotify, WorkspaceItem item, WorkspaceFolder sharedFolder) throws Exception;
boolean notifyAddedItem(String userIdToNotify, WorkspaceItem item, WorkspaceSharedFolder sharedFolder) throws Exception;
/**
* use to notify a user he got a workspace item deleted from one of his workspace shared folder
* @param userIdToNotify the user you want to notify
* @param removedItem the removed {@link WorkspaceItem}
* @param sharedFolder the shared folder {@link WorkspaceFolder}
* @param sharedFolder the shared folder {@link WorkspaceSharedFolder}
* @return true if the notification is correctly delivered, false otherwise
*/
boolean notifyMovedItem(String userIdToNotify, WorkspaceItem item, WorkspaceFolder sharedFolder) throws Exception;
boolean notifyMovedItem(String userIdToNotify, WorkspaceItem item, WorkspaceSharedFolder sharedFolder) throws Exception;
/**
* use to notify a user he got a workspace item deleted from one of his workspace shared folder
* @param userIdToNotify the user you want to notify
* @param removedItem the removed {@link WorkspaceItem}
* @param sharedFolder the shared folder {@link WorkspaceFolder}
* @param sharedFolder the shared folder {@link WorkspaceSharedFolder}
* @return true if the notification is correctly delivered, false otherwise
*/
boolean notifyRemovedItem(String userIdToNotify, String item, WorkspaceFolder sharedFolder) throws Exception;
boolean notifyRemovedItem(String userIdToNotify, String item, WorkspaceSharedFolder sharedFolder) throws Exception;
/**
* use to notify a user he got a workspace item updated from one of his workspace shared folder
@ -89,17 +90,17 @@ public interface NotificationsManager {
* @param sharedFolder the shared folder {@link WorkspaceFolder}
* @return true if the notification is correctly delivered, false otherwise
*/
boolean notifyUpdatedItem(String userIdToNotify, WorkspaceItem item, WorkspaceFolder sharedFolder) throws Exception;
boolean notifyUpdatedItem(String userIdToNotify, WorkspaceItem item, WorkspaceSharedFolder sharedFolder) throws Exception;
/**
* use to notify a user he got a workspace item renamed
*
* @param userIdToNotify the user you want to notify
* @param previousName the previous name of the folder
* @param renamedItem the renamed {@link WorkspaceItem}
* @param rootSharedFolder the root shared {@link WorkspaceFolder} of the {@link WorkspaceItem}
* @param rootSharedFolder the root shared {@link WorkspaceSharedFolder} of the {@link WorkspaceItem}
* @return true if the notification is correctly delivered, false otherwise
*/
boolean notifyItemRenaming(String userIdToNotify, String previousName, WorkspaceItem renamedItem, WorkspaceFolder rootSharedFolder) throws Exception;
boolean notifyItemRenaming(String userIdToNotify, String previousName, WorkspaceItem renamedItem, WorkspaceSharedFolder rootSharedFolder) throws Exception;
/**
*
* @param userIdToNotify the user you want to notify

View File

@ -8,10 +8,13 @@ import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import org.gcube.portal.custom.communitymanager.OrganizationsUtil;
import org.gcube.portal.databook.shared.Notification;
@ -72,6 +75,36 @@ public class EmailPlugin {
return body.toString();
}
private static String getTextEmail(Notification notification2Save, String userFirstName, String portalURL, String email) {
String removedMarkup = notification2Save.getDescription().replaceAll("&amp;", "&");
removedMarkup = removedMarkup.replaceAll("&gt;", ">");
removedMarkup = removedMarkup.replaceAll("&lt;", "<");
String sender = notification2Save.getSenderFullName();
if (notification2Save.getType() == NotificationType.DOCUMENT_WORKFLOW_STEP_REQUEST_TASK)
sender = "";
String portalHost = portalURL.replaceAll("https://", "");
portalHost = portalHost.replaceAll("http://", "");
StringBuilder body = new StringBuilder();
body.append("Dear ").append(userFirstName).append(",") //dear <user>
.append("\n").append(sender).append(" ").append(removedMarkup) // has done something
.append("\nsee: ").append(portalURL).append(notification2Save.getUri())
.append("\n\n\n----\n")
.append("This message was sent to ")
.append(email)
.append(" by ")
.append(portalHost)
.append(" If you don't want to receive these emails in the future, please unsubscribe here: ")
.append(portalURL).append("/group/data-e-infrastructure-gateway/notifications .");
return body.toString();
}
private static String getActionLink(Notification notification2Save, String portalURL) {
StringBuilder actionLink = new StringBuilder("<a style=\"color:#3B5998; text-decoration:none\" target=\"_blank\" href=\"");
@ -101,14 +134,24 @@ public class EmailPlugin {
try {
// EMAIL SENDER
Address from = new InternetAddress(senderEmail, portalName);
mimeMessage.setHeader("Content-Type", "text/html; charset=UTF-8");
mimeMessage.setFrom(from);
Address address = new InternetAddress(email);
mimeMessage.addRecipient(Message.RecipientType.TO, address);
mimeMessage.setFrom(new InternetAddress(senderEmail, portalName));
mimeMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(email));
mimeMessage.setSubject(getSubjectByNotificationType(notification2Save, portalUrl, vreName, user.getFirstName()));
mimeMessage.setContent(getHTMLEmail(notification2Save, user.getFirstName(), portalUrl, email), "text/html; charset=UTF-8");
final MimeBodyPart textPart = new MimeBodyPart();
textPart.setContent(getTextEmail(notification2Save, user.getFirstName(), portalUrl, email), "text/plain");
final MimeBodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent(getHTMLEmail(notification2Save, user.getFirstName(), portalUrl, email), "text/html; charset=UTF-8");
final Multipart mp = new MimeMultipart("alternative");
mp.addBodyPart(textPart);
mp.addBodyPart(htmlPart);
// Set Multipart as the message's content
mimeMessage.setContent(mp);
mimeMessage.setSentDate(new Date());
Transport.send(mimeMessage);
_log.trace("notification email sent successfully");
@ -117,6 +160,7 @@ public class EmailPlugin {
_log.error("While sending the notification email:", e);
}
}
/**
* construct the subjec of the email
* @param notification2Save
@ -137,13 +181,15 @@ public class EmailPlugin {
case WP_FOLDER_REMOVEDUSER:
return "Removed user in a shared folder";
case WP_FOLDER_SHARE:
return "Folder sharing notification";
return notification2Save.getSenderFullName()+ " shared a folder with you";
case WP_ITEM_NEW:
return "New item in a shared folder";
return notification2Save.getSenderFullName()+ " added an item in a shared folder";
case WP_ITEM_DELETE:
return "Deleted item in a shared folder";
return notification2Save.getSenderFullName()+ " deleted an item in a shared folder";
case WP_ITEM_UPDATED:
return "Updated item in a shared folder";
return notification2Save.getSenderFullName()+ " updated an item in a shared folder";
case WP_ITEM_RENAMED:
return notification2Save.getSenderFullName()+ " renamed an item in a shared folder";
case OWN_COMMENT:
return notification2Save.getSenderFullName() + " commented on your post";
case MENTION: