1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.workflow.modules.notification.service;
35
36 import fr.paris.lutece.plugins.workflow.modules.notification.business.TaskNotificationConfig;
37 import fr.paris.lutece.plugins.workflow.utils.WorkflowUtils;
38 import fr.paris.lutece.plugins.workflowcore.service.config.ITaskConfigService;
39 import fr.paris.lutece.plugins.workflowcore.service.task.Task;
40 import fr.paris.lutece.portal.business.mailinglist.Recipient;
41 import fr.paris.lutece.portal.service.mail.MailService;
42 import fr.paris.lutece.portal.service.mailinglist.AdminMailingListService;
43 import fr.paris.lutece.portal.service.template.AppTemplateService;
44 import fr.paris.lutece.util.html.HtmlTemplate;
45
46 import java.util.Collection;
47 import java.util.HashMap;
48 import java.util.Locale;
49 import java.util.Map;
50
51 import javax.inject.Inject;
52 import javax.inject.Named;
53
54 import javax.servlet.http.HttpServletRequest;
55
56
57
58
59
60
61 public class TaskNotification extends Task
62 {
63
64 private static final String TEMPLATE_TASK_NOTIFICATION_MAIL = "admin/plugins/workflow/modules/notification/task_notification_mail.html";
65
66
67 private static final String MARK_MESSAGE = "message";
68
69
70 private static final String BEAN_NOTIFICATION_CONFIG_SERVICE = "workflow.taskNotificationConfigService";
71 @Inject
72 @Named( BEAN_NOTIFICATION_CONFIG_SERVICE )
73 private ITaskConfigService _taskNotificationConfigService;
74
75
76
77
78 @Override
79 public void init( )
80 {
81
82 }
83
84
85
86
87 @Override
88 public void processTask( int nIdResourceHistory, HttpServletRequest request, Locale locale )
89 {
90 TaskNotificationConfig config = _taskNotificationConfigService.findByPrimaryKey( this.getId( ) );
91
92 if ( config != null )
93 {
94 String strSenderEmail = MailService.getNoReplyEmail( );
95 Collection<Recipient> listRecipients = AdminMailingListService.getRecipients( config.getIdMailingList( ) );
96 Map<String, Object> model = new HashMap<>( );
97 model.put( MARK_MESSAGE, config.getMessage( ) );
98
99 HtmlTemplate t = AppTemplateService.getTemplate( TEMPLATE_TASK_NOTIFICATION_MAIL, locale, model );
100
101
102 for ( Recipient recipient : listRecipients )
103 {
104
105 MailService.sendMailHtml( recipient.getEmail( ), config.getSenderName( ), strSenderEmail, config.getSubject( ), t.getHtml( ) );
106 }
107 }
108 }
109
110
111
112
113 @Override
114 public void doRemoveConfig( )
115 {
116 _taskNotificationConfigService.remove( this.getId( ) );
117 }
118
119
120
121
122 @Override
123 public void doRemoveTaskInformation( int nIdHistory )
124 {
125
126 }
127
128
129
130
131 @Override
132 public String getTitle( Locale locale )
133 {
134 TaskNotificationConfig config = _taskNotificationConfigService.findByPrimaryKey( this.getId( ) );
135
136 if ( config != null )
137 {
138 return config.getSubject( );
139 }
140
141 return WorkflowUtils.EMPTY_STRING;
142 }
143
144
145
146
147 @Override
148 public Map<String, String> getTaskFormEntries( Locale locale )
149 {
150 return null;
151 }
152 }