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.web;
35
36 import fr.paris.lutece.api.user.User;
37 import fr.paris.lutece.plugins.announce.business.Announce;
38 import fr.paris.lutece.plugins.announce.business.AnnounceHome;
39 import fr.paris.lutece.portal.service.util.AppPathService;
40 import fr.paris.lutece.portal.service.workflow.WorkflowService;
41 import fr.paris.lutece.portal.util.mvc.admin.MVCAdminJspBean;
42 import fr.paris.lutece.portal.util.mvc.admin.annotations.Controller;
43 import fr.paris.lutece.portal.util.mvc.commons.annotations.Action;
44 import fr.paris.lutece.portal.util.mvc.commons.annotations.View;
45
46 import org.apache.commons.lang3.StringUtils;
47
48 import java.util.HashMap;
49 import java.util.Map;
50
51 import javax.servlet.http.HttpServletRequest;
52
53
54
55
56 @Controller( controllerJsp = "ManageAnnounceWorkflow.jsp", controllerPath = "jsp/admin/plugins/announce/", right = AnnounceUserJspBean.RIGHT_MANAGE_ANNOUNCE )
57 public class AnnounceWorkflowJspBean extends MVCAdminJspBean
58 {
59 private static final long serialVersionUID = -173284996603895865L;
60
61
62 private static final String PARAMETER_ID_ACTION = "id_action";
63 private static final String PARAMETER_ID_ANNOUNCE = "id_announce";
64 private static final String PARAMETER_BACK = "back";
65
66
67 private static final String MARK_TASKS_FORM = "tasks_form";
68
69
70 private static final String PROPERTY_PAGE_TITLE_TASKS_FORM_WORKFLOW = "announce.taskFormWorkflow.pageTitle";
71
72
73 private static final String TEMPLATE_TASKS_FORM_WORKFLOW = "admin/plugins/announce/tasks_form_workflow.html";
74
75
76 private static final String VIEW_WORKFLOW_ACTION_FORM = "viewWorkflowActionForm";
77
78
79 private static final String ACTION_DO_PROCESS_WORKFLOW_ACTION = "doProcessWorkflowAction";
80
81
82
83
84
85
86
87
88
89 @View( VIEW_WORKFLOW_ACTION_FORM )
90 public String getWorkflowActionForm( HttpServletRequest request )
91 {
92 String strIdAction = request.getParameter( PARAMETER_ID_ACTION );
93 String strIdAnnounce = request.getParameter( PARAMETER_ID_ANNOUNCE );
94
95 if ( StringUtils.isNotEmpty( strIdAction ) && StringUtils.isNumeric( strIdAction ) && StringUtils.isNotEmpty( strIdAnnounce )
96 && StringUtils.isNumeric( strIdAnnounce ) )
97 {
98 int nIdAction = Integer.parseInt( strIdAction );
99 int nIdAnnounce = Integer.parseInt( strIdAnnounce );
100 User user = getUser( );
101
102 if ( WorkflowService.getInstance( ).isDisplayTasksForm( nIdAction, getLocale( ) ) )
103 {
104 String strHtmlTasksForm = WorkflowService.getInstance( ).getDisplayTasksForm( nIdAnnounce, Announce.RESOURCE_TYPE, nIdAction, request,
105 getLocale( ), user );
106
107 Map<String, Object> model = new HashMap<>( );
108
109 model.put( MARK_TASKS_FORM, strHtmlTasksForm );
110 model.put( PARAMETER_ID_ACTION, nIdAction );
111 model.put( PARAMETER_ID_ANNOUNCE, nIdAnnounce );
112
113 return getPage( PROPERTY_PAGE_TITLE_TASKS_FORM_WORKFLOW, TEMPLATE_TASKS_FORM_WORKFLOW, model );
114 }
115
116 return doProcessWorkflowAction( request );
117 }
118
119 return redirect( request, AppPathService.getBaseUrl( request ) + AnnounceJspBean.getURLManageAnnounces( request ) );
120 }
121
122
123
124
125
126
127
128
129 @Action( ACTION_DO_PROCESS_WORKFLOW_ACTION )
130 public String doProcessWorkflowAction( HttpServletRequest request )
131 {
132 String strIdAction = request.getParameter( PARAMETER_ID_ACTION );
133 String strIdAnnounce = request.getParameter( PARAMETER_ID_ANNOUNCE );
134
135 if ( StringUtils.isNotEmpty( strIdAction ) && StringUtils.isNumeric( strIdAction ) && StringUtils.isNotEmpty( strIdAnnounce )
136 && StringUtils.isNumeric( strIdAnnounce ) )
137 {
138 int nIdAction = Integer.parseInt( strIdAction );
139 int nIdAnnounce = Integer.parseInt( strIdAnnounce );
140 User user = getUser( );
141
142 Announce announce = AnnounceHome.findByPrimaryKey( nIdAnnounce );
143
144 if ( request.getParameter( PARAMETER_BACK ) == null )
145 {
146 if ( WorkflowService.getInstance( ).isDisplayTasksForm( nIdAction, getLocale( ) ) )
147 {
148 String strError = WorkflowService.getInstance( ).doSaveTasksForm( nIdAnnounce, Announce.RESOURCE_TYPE, nIdAction,
149 announce.getCategory( ).getId( ), request, getLocale( ), user );
150
151 if ( strError != null )
152 {
153 return redirect( request, strError );
154 }
155 }
156
157 WorkflowService.getInstance( ).doProcessAction( nIdAnnounce, Announce.RESOURCE_TYPE, nIdAction, announce.getCategory( ).getId( ), request,
158 getLocale( ), false, user );
159 }
160 }
161
162 return redirect( request, AnnounceJspBean.getURLManageAnnounces( request ) );
163 }
164 }