/**
* ESUP-Portail Helpdesk - Copyright (c) 2004-2009 ESUP-Portail consortium.
*/
package org.esupportail.helpdesk.domain.reporting;
import java.util.Locale;
import org.esupportail.commons.aop.monitor.Monitor;
import org.esupportail.helpdesk.domain.beans.Ticket;
import org.esupportail.helpdesk.domain.beans.User;
/**
* An abstract alert sender.
*/
@Monitor
public abstract class AbstractAlertSender extends AbstractSenderFormatter {
/**
* Bean constructor.
*/
public AbstractAlertSender() {
super();
}
/**
* @param user
* @param ticket
* @return the reply-to HTML content.
*/
protected String getReplyToContent(
final User user,
@SuppressWarnings("unused")
final Ticket ticket) {
Locale locale = getDomainService().getUserStore().getUserLocale(user);
String result = "<hr/>" + getI18nService().getString(
"EMAIL.TICKET.COMMON.EMAIL_TO_COMMENT", locale);
return result;
}
/**
* Send an alert to one user for a ticket.
* @param email if not null, sent to anonymous managers.
* @param authTypeIfNullUser
* @param user
* @param ticket
* @param subject
* @param contentHeader
* @param contentFooter
* @return true if the email was sent.
*/
protected boolean ticketMonitoringSendAlert(
final String email,
final String authTypeIfNullUser,
final User user,
final Ticket ticket,
final String subject,
final String contentHeader,
final String contentFooter) {
String htmlContent = "";
htmlContent += contentHeader;
if (isUseReplyTo()) {
htmlContent += getReplyToContent(user, ticket);
}
htmlContent += getEmailOrPrintHistory(user, ticket);
htmlContent += getEmailQuickLinks(authTypeIfNullUser, user, ticket);
htmlContent += getEmailOrPrintProperties(user, ticket);
htmlContent += getEmailOrPrintFiles(user, ticket);
htmlContent += getEmailOrPrintInvitations(user, ticket);
htmlContent += getEmailOrPrintMonitoring(user, ticket);
htmlContent += getEmailOrPrintOwnerInfo(user, ticket);
htmlContent += contentFooter;
String messageId = genMessageId(ticket);
if (user == null) {
return send(email, null, messageId, subject, htmlContent);
}
return send(user, messageId, subject, htmlContent);
}
}