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.web;
35
36 import fr.paris.lutece.api.user.User;
37 import fr.paris.lutece.plugins.workflow.utils.WorkflowUtils;
38 import fr.paris.lutece.plugins.workflowcore.business.workflow.Workflow;
39 import fr.paris.lutece.plugins.workflowcore.business.workflow.WorkflowFilter;
40 import fr.paris.lutece.plugins.workflowcore.service.workflow.IWorkflowService;
41 import fr.paris.lutece.plugins.workflowcore.service.workflow.WorkflowService;
42 import fr.paris.lutece.portal.business.right.Right;
43 import fr.paris.lutece.portal.business.right.RightHome;
44 import fr.paris.lutece.portal.business.user.AdminUser;
45 import fr.paris.lutece.portal.service.dashboard.DashboardComponent;
46 import fr.paris.lutece.portal.service.database.AppConnectionService;
47 import fr.paris.lutece.portal.service.plugin.Plugin;
48 import fr.paris.lutece.portal.service.plugin.PluginService;
49 import fr.paris.lutece.portal.service.security.SecurityTokenService;
50 import fr.paris.lutece.portal.service.spring.SpringContextService;
51 import fr.paris.lutece.portal.service.template.AppTemplateService;
52 import fr.paris.lutece.portal.service.workgroup.AdminWorkgroupService;
53 import fr.paris.lutece.util.html.HtmlTemplate;
54 import fr.paris.lutece.util.url.UrlItem;
55
56 import org.apache.commons.lang3.StringUtils;
57
58 import java.util.HashMap;
59 import java.util.List;
60 import java.util.Map;
61
62 import javax.servlet.http.HttpServletRequest;
63
64
65
66
67 public class WorkflowDashboardComponent extends DashboardComponent
68 {
69
70 private static final String MARK_URL = "url";
71 private static final String MARK_ICON = "icon";
72 private static final String MARK_WORKFLOW_LIST = "workflow_list";
73
74
75 private static final String PARAMETER_PLUGIN_NAME = "plugin_name";
76
77
78 private static final String TEMPLATE_DASHBOARD = "/admin/plugins/workflow/workflow_dashboard.html";
79
80
81 private static final int FILTER_NO_STATUS = -1;
82
83
84
85
86 @Override
87 public String getDashboardData( AdminUser user, HttpServletRequest request )
88 {
89 Right right = RightHome.findByPrimaryKey( getRight( ) );
90 Plugin plugin = PluginService.getPlugin( right.getPluginName( ) );
91
92 if ( !( ( plugin.getDbPoolName( ) != null ) && !AppConnectionService.NO_POOL_DEFINED.equals( plugin.getDbPoolName( ) ) ) )
93 {
94 return StringUtils.EMPTY;
95 }
96
97 IWorkflowService workflowService = SpringContextService.getBean( WorkflowService.BEAN_SERVICE );
98
99 UrlItem url = new UrlItem( right.getUrl( ) );
100 url.addParameter( PARAMETER_PLUGIN_NAME, right.getPluginName( ) );
101
102 WorkflowFilter filter = new WorkflowFilter( );
103 filter.setIsEnabled( FILTER_NO_STATUS );
104 filter.setWorkGroup( AdminWorkgroupService.ALL_GROUPS );
105
106 List<Workflow> listWorkflow = workflowService.getListWorkflowsByFilter( filter );
107 listWorkflow = (List<Workflow>) AdminWorkgroupService.getAuthorizedCollection( listWorkflow, (User) user );
108
109 Map<String, Object> model = new HashMap<>( );
110 model.put( MARK_WORKFLOW_LIST, listWorkflow );
111 model.put( MARK_URL, url.getUrl( ) );
112 model.put( MARK_ICON, plugin.getIconUrl( ) );
113
114 model.put( SecurityTokenService.MARK_TOKEN , SecurityTokenService.getInstance( ).getToken( request, WorkflowUtils.CONSTANT_ACTION_MODIFY_WORKFLOW ) );
115
116 HtmlTemplate t = AppTemplateService.getTemplate( TEMPLATE_DASHBOARD, user.getLocale( ), model );
117
118 return t.getHtml( );
119 }
120 }