Class SendCalendarNotificationFunction
- java.lang.Object
-
- org.ametys.plugins.workflow.AbstractWorkflowComponent
-
- org.ametys.plugins.explorer.workflow.AbstractExplorerNodeWorkflowComponent
-
- org.ametys.plugins.workspaces.project.notification.SendCalendarNotificationFunction
-
- All Implemented Interfaces:
com.opensymphony.workflow.FunctionProvider
,PluginAware
,Initializable
,Contextualizable
,LogEnabled
,Serviceable
public class SendCalendarNotificationFunction extends AbstractExplorerNodeWorkflowComponent implements com.opensymphony.workflow.FunctionProvider, Initializable, PluginAware, Contextualizable
OS workflow function to send mail after an action is triggered.
-
-
Field Summary
Fields Modifier and Type Field Description protected Context
_context
Context available to subclasses.protected I18nUtils
_i18nUtils
I18nUtilsprotected String
_pluginName
The plugin name.protected ProjectManager
_projectManager
The project resolverprotected RenderingContextHandler
_renderingContextHandler
The rendering context handlerprotected AmetysObjectResolver
_resolver
The ametys resolverprotected RightManager
_rightManager
The right manager.protected UserManager
_userManager
The users manager.protected WorkflowProvider
_workflowProvider
The workflow providerprotected static String
BODY_KEY
The mail body key.protected static String
RIGHTS
The mail subject key.static String
SEND_MAIL
Provide "false" to prevent the function sending the mail.protected static String
SUBJECT_KEY
The mail subject key.-
Fields inherited from class org.ametys.plugins.explorer.workflow.AbstractExplorerNodeWorkflowComponent
EXPLORERNODE_KEY
-
Fields inherited from class org.ametys.plugins.workflow.AbstractWorkflowComponent
_logger, _manager, CONTEXT_PARAMETERS_KEY, FAIL_CONDITIONS_KEY, RESULT_MAP_KEY, WORKFLOW_ERRORS_KEY, WORKFLOW_WARNS_KEY
-
-
Constructor Summary
Constructors Constructor Description SendCalendarNotificationFunction()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected String
_getRecurrentDateInfo(CalendarEvent event, DateFormat dayFormat)
Get the recurrent information on a eventvoid
contextualize(Context context)
void
execute(Map transientVars, Map args, com.opensymphony.module.propertyset.PropertySet ps)
protected List<String>
getBodyI18nParams(Project project, User issuer, CalendarEvent event)
Get the i18n parameters of mail body textprotected Page
getCalendarModulePage(Project project)
Get the module's pageprotected String
getDefaultLanguage()
Get the default language to resolve module's pageprotected String
getEventUrl(Project project, String calendarId, Date eventStartDate)
Get the absolute full url of the eventprotected String
getProjectUrl(Project project)
Get the absolute url of projectprotected List<String>
getSubjectI18nParams(Project project, User issuer, CalendarEvent event)
Get the i18n parameters of mail subjectprotected List<UserIdentity>
getUsersToNotify(AmetysObject object, String[] rightsId)
Get the users allowed to be notifiedvoid
initialize()
protected void
sendMail(Project project, CalendarEvent event, User issuer, String mailSubjecti18nKey, String mailBodyi18nKey, String[] rightIds)
Sent an emailvoid
setPluginInfo(String pluginName, String featureName, String id)
Sets the plugin info relative to the current component.
Note : The feature name may be null if the targeted component in declared at plugin level.-
Methods inherited from class org.ametys.plugins.explorer.workflow.AbstractExplorerNodeWorkflowComponent
getExplorerNode
-
Methods inherited from class org.ametys.plugins.workflow.AbstractWorkflowComponent
addWorkflowError, addWorkflowWarning, enableLogging, getConditionFailures, getContextParameters, getResultsMap, getUser, service
-
-
-
-
Field Detail
-
SEND_MAIL
public static final String SEND_MAIL
Provide "false" to prevent the function sending the mail. Useful when making large automatic workflow operations (for instance, when bulk importing and proposing in one action).- See Also:
- Constant Field Values
-
SUBJECT_KEY
protected static final String SUBJECT_KEY
The mail subject key.- See Also:
- Constant Field Values
-
RIGHTS
protected static final String RIGHTS
The mail subject key.- See Also:
- Constant Field Values
-
BODY_KEY
protected static final String BODY_KEY
The mail body key.- See Also:
- Constant Field Values
-
_rightManager
protected RightManager _rightManager
The right manager.
-
_userManager
protected UserManager _userManager
The users manager.
-
_workflowProvider
protected WorkflowProvider _workflowProvider
The workflow provider
-
_pluginName
protected String _pluginName
The plugin name.
-
_i18nUtils
protected I18nUtils _i18nUtils
I18nUtils
-
_resolver
protected AmetysObjectResolver _resolver
The ametys resolver
-
_projectManager
protected ProjectManager _projectManager
The project resolver
-
_renderingContextHandler
protected RenderingContextHandler _renderingContextHandler
The rendering context handler
-
-
Constructor Detail
-
SendCalendarNotificationFunction
public SendCalendarNotificationFunction()
-
-
Method Detail
-
initialize
public void initialize() throws Exception
- Specified by:
initialize
in interfaceInitializable
- Throws:
Exception
-
setPluginInfo
public void setPluginInfo(String pluginName, String featureName, String id)
Description copied from interface:PluginAware
Sets the plugin info relative to the current component.
Note : The feature name may be null if the targeted component in declared at plugin level.- Specified by:
setPluginInfo
in interfacePluginAware
- Parameters:
pluginName
- Unique identifier for the plugin hosting the extensionfeatureName
- Unique feature identifier (unique for a given pluginName)id
- Unique identifier of this component
-
contextualize
public void contextualize(Context context) throws ContextException
- Specified by:
contextualize
in interfaceContextualizable
- Throws:
ContextException
-
execute
public void execute(Map transientVars, Map args, com.opensymphony.module.propertyset.PropertySet ps) throws com.opensymphony.workflow.WorkflowException
- Specified by:
execute
in interfacecom.opensymphony.workflow.FunctionProvider
- Throws:
com.opensymphony.workflow.WorkflowException
-
sendMail
protected void sendMail(Project project, CalendarEvent event, User issuer, String mailSubjecti18nKey, String mailBodyi18nKey, String[] rightIds)
Sent an email- Parameters:
project
- The projectevent
- The calendar eventissuer
- The issuermailSubjecti18nKey
- The i18n key for subjectmailBodyi18nKey
- The i18n key for bodyrightIds
- The rights to check
-
getUsersToNotify
protected List<UserIdentity> getUsersToNotify(AmetysObject object, String[] rightsId)
Get the users allowed to be notified- Parameters:
object
- The object responsible of the notificationrightsId
- The id of rights to check- Returns:
- The allowed users
-
getSubjectI18nParams
protected List<String> getSubjectI18nParams(Project project, User issuer, CalendarEvent event)
Get the i18n parameters of mail subject- Parameters:
project
- the the projectissuer
- the issuerevent
- the event- Returns:
- the i18n parameters
-
getBodyI18nParams
protected List<String> getBodyI18nParams(Project project, User issuer, CalendarEvent event)
Get the i18n parameters of mail body text- Parameters:
project
- The projectissuer
- the issuerevent
- the event- Returns:
- the i18n parameters
-
_getRecurrentDateInfo
protected String _getRecurrentDateInfo(CalendarEvent event, DateFormat dayFormat)
Get the recurrent information on a event- Parameters:
event
- the eventdayFormat
- the date format for day- Returns:
- the recurrent information or empty if the event is not recurrent
-
getEventUrl
protected String getEventUrl(Project project, String calendarId, Date eventStartDate)
Get the absolute full url of the event- Parameters:
project
- The projectcalendarId
- The id of parent calendareventStartDate
- The start date of the event- Returns:
- The full uri
-
getProjectUrl
protected String getProjectUrl(Project project)
Get the absolute url of project- Parameters:
project
- The project- Returns:
- the project's url
-
getDefaultLanguage
protected String getDefaultLanguage()
Get the default language to resolve module's page- Returns:
- The default language
-
getCalendarModulePage
protected Page getCalendarModulePage(Project project)
Get the module's page- Parameters:
project
- The project- Returns:
- The page or
null
if not found
-
-