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.announce.modules.workflow.service;
35
36 import fr.paris.lutece.plugins.announce.business.Announce;
37 import fr.paris.lutece.plugins.announce.business.AnnounceHome;
38 import fr.paris.lutece.plugins.announce.modules.workflow.business.TaskChangeAnnounceStatusConfig;
39 import fr.paris.lutece.plugins.workflowcore.business.resource.ResourceHistory;
40 import fr.paris.lutece.plugins.workflowcore.service.config.ITaskConfigService;
41 import fr.paris.lutece.plugins.workflowcore.service.resource.IResourceHistoryService;
42 import fr.paris.lutece.plugins.workflowcore.service.task.SimpleTask;
43 import fr.paris.lutece.portal.service.i18n.I18nService;
44
45 import org.apache.commons.lang.StringUtils;
46
47 import java.util.Locale;
48
49 import javax.inject.Inject;
50 import javax.inject.Named;
51 import javax.servlet.http.HttpServletRequest;
52
53
54
55
56 public class TaskChangeAnnounceStatus extends SimpleTask
57 {
58
59
60
61 public static final String CONFIG_SERVICE_BEAN_NAME = "announce-workflow.taskChangeAnnounceStatusConfigService";
62
63
64 private static final String MESSAGE_PUBLISH_ANNOUNCE = "module.announce.workflow.task_change_announce_status.labelPublishAnnounce";
65 private static final String MESSAGE_UNPUBLISH_ANNOUNCE = "module.announce.workflow.task_change_announce_status.labelUnpublishAnnounce";
66
67
68 @Inject
69 private IResourceHistoryService _resourceHistoryService;
70 @Inject
71 @Named( CONFIG_SERVICE_BEAN_NAME )
72 private ITaskConfigService _taskChangeAppointmentStatusConfigService;
73
74
75
76
77 @Override
78 public void processTask( int nIdResourceHistory, HttpServletRequest request, Locale locale )
79 {
80 ResourceHistory resourceHistory = _resourceHistoryService.findByPrimaryKey( nIdResourceHistory );
81 TaskChangeAnnounceStatusConfig config = _taskChangeAppointmentStatusConfigService.findByPrimaryKey( this.getId( ) );
82
83 if ( ( config != null ) && ( resourceHistory != null ) && Announce.RESOURCE_TYPE.equals( resourceHistory.getResourceType( ) ) )
84 {
85
86 Announce announce = AnnounceHome.findByPrimaryKey( resourceHistory.getIdResource( ) );
87
88 if ( announce != null )
89 {
90 if ( config.getPublish( ) )
91 {
92 AnnounceHome.setPublished( announce );
93 }
94 else
95 {
96 AnnounceHome.setSuspended( announce );
97 }
98 }
99 }
100 }
101
102
103
104
105 @Override
106 public void doRemoveConfig( )
107 {
108 _taskChangeAppointmentStatusConfigService.remove( this.getId( ) );
109 }
110
111
112
113
114 @Override
115 public String getTitle( Locale locale )
116 {
117 TaskChangeAnnounceStatusConfig config = _taskChangeAppointmentStatusConfigService.findByPrimaryKey( this.getId( ) );
118
119 if ( config != null )
120 {
121 return I18nService.getLocalizedString( config.getPublish( ) ? MESSAGE_PUBLISH_ANNOUNCE : MESSAGE_UNPUBLISH_ANNOUNCE, locale );
122 }
123
124 return StringUtils.EMPTY;
125 }
126 }