1 package org.itracker.web.actions.admin;
2
3 import java.util.Date;
4 import java.util.Enumeration;
5 import java.util.Map;
6 import java.util.ResourceBundle;
7 import java.util.Set;
8
9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11
12 import org.apache.log4j.Level;
13 import org.apache.log4j.Logger;
14 import org.apache.struts.action.ActionForm;
15 import org.apache.struts.action.ActionForward;
16 import org.apache.struts.action.ActionMapping;
17 import org.itracker.core.resources.ITrackerResources;
18 import org.itracker.model.PermissionType;
19 import org.itracker.services.ConfigurationService;
20 import org.itracker.services.IssueService;
21 import org.itracker.services.ProjectService;
22 import org.itracker.services.ReportService;
23 import org.itracker.services.UserService;
24 import org.itracker.services.util.ReportUtilities;
25 import org.itracker.services.util.SystemConfigurationUtilities;
26 import org.itracker.services.util.UserUtilities;
27 import org.itracker.web.actions.base.ItrackerBaseAction;
28 import org.itracker.web.util.RequestHelper;
29 import org.itracker.web.util.ServletContextUtils;
30 import org.itracker.web.util.SessionManager;
31
32 public class AdminHomeAction extends ItrackerBaseAction {
33
34 private static final Logger log = Logger.getLogger(AdminHomeAction.class);
35
36 public ActionForward execute(ActionMapping mapping, ActionForm form,
37 HttpServletRequest request, HttpServletResponse response)
38 throws Exception {
39 final Map<Integer, Set<PermissionType>> permissions = RequestHelper
40 .getUserPermissions(request.getSession());
41
42
43
44 if (!UserUtilities.hasPermission(permissions,
45 UserUtilities.PERMISSION_USER_ADMIN)) {
46
47 mapping.findForward("listprojectadmin");
48 }
49
50 execSetupJspEnv(request);
51
52 return mapping.findForward("adminhome");
53 }
54
55
56
57
58
59
60
61 public static final void execSetupJspEnv(HttpServletRequest request) {
62 Date time_millies = new Date(System.currentTimeMillis());
63
64
65 IssueService issueService = ServletContextUtils.getItrackerServices()
66 .getIssueService();
67
68
69 ReportService reportService = ServletContextUtils.getItrackerServices()
70 .getReportService();
71 ConfigurationService configurationService = ServletContextUtils.getItrackerServices()
72 .getConfigurationService();
73 UserService userService = ServletContextUtils.getItrackerServices().getUserService();
74
75
76 ProjectService projectService2 = ServletContextUtils
77 .getItrackerServices().getProjectService();
78
79 String exportReport = "type=all&reportOutput=XML&reportId="
80 + ReportUtilities.REPORT_EXPORT_XML;
81
82 logTimeMillies("execute: looked up services", time_millies, log,
83 Level.INFO);
84 Integer numberOfWorkflowScripts = configurationService
85 .getWorkflowScripts().size();
86 request
87 .setAttribute("numberOfWorkflowScripts",
88 numberOfWorkflowScripts);
89 logTimeMillies("execute: looked up numberOfWorkflowScripts",
90 time_millies, log, Level.INFO);
91
92 Map<String, String> numberDefinedKeys = configurationService
93 .getDefinedKeys(null);
94
95 ResourceBundle bundle = ITrackerResources.getBundle(ITrackerResources.BASE_LOCALE);
96 Enumeration<String> keysEnum = bundle.getKeys();
97 int i = 0;
98 while (keysEnum.hasMoreElements()) {
99 keysEnum.nextElement();
100 i++;
101 }
102
103 request.setAttribute("numberDefinedKeys", i);
104 logTimeMillies("execute: looked up numberDefinedKeys", time_millies,
105 log, Level.INFO);
106
107 Integer numberOfStatuses = configurationService
108 .getConfigurationItemsByType(
109 SystemConfigurationUtilities.TYPE_STATUS).size();
110 request.setAttribute("numberOfStatuses", numberOfStatuses);
111 logTimeMillies("execute: looked up numberOfStatuses", time_millies,
112 log, Level.INFO);
113
114 Integer numberOfSeverities = configurationService
115 .getConfigurationItemsByType(
116 SystemConfigurationUtilities.TYPE_SEVERITY).size();
117 request.setAttribute("numberOfSeverities", numberOfSeverities);
118 logTimeMillies("execute: looked up numberOfSeverities", time_millies,
119 log, Level.INFO);
120
121 Integer numberOfResolutions = configurationService
122 .getConfigurationItemsByType(
123 SystemConfigurationUtilities.TYPE_RESOLUTION).size();
124 request.setAttribute("numberOfResolutions", numberOfResolutions);
125 logTimeMillies("execute: looked up numberOfResolutions", time_millies,
126 log, Level.INFO);
127
128 Integer numberOfCustomProjectFields = configurationService
129 .getCustomFields().size();
130 request.setAttribute("numberOfCustomProjectFields",
131 numberOfCustomProjectFields);
132 logTimeMillies("execute: looked up numberOfCustomProjectFields",
133 time_millies, log, Level.INFO);
134
135 Integer numberofActiveSesssions = SessionManager.getNumActiveSessions();
136
137 Integer numberUsers = userService.getAllUsers().size();
138
139 request
140 .setAttribute("numberofActiveSesssions",
141 numberofActiveSesssions);
142 request
143 .setAttribute("numberUsers",
144 numberUsers);
145
146 logTimeMillies("execute: looked up numberofActiveSesssions",
147 time_millies, log, Level.INFO);
148
149 Long allIssueAttachmentsTotalNumber = issueService
150 .getAllIssueAttachmentCount();
151 request.setAttribute("allIssueAttachmentsTotalNumber",
152 allIssueAttachmentsTotalNumber);
153 logTimeMillies("execute: looked up allIssueAttachmentsTotalNumber",
154 time_millies, log, Level.INFO);
155
156 Integer numberReports = 0;
157 try {
158 numberReports = reportService.getNumberReports();
159 } catch (Exception e) {
160 log.warn("execSetupJspEnv", e);
161 }
162 request.setAttribute("numberReports",
163 numberReports);
164 Long numberIssues = issueService.getNumberIssues();
165
166
167
168
169
170 if (allIssueAttachmentsTotalNumber < 500) {
171 Long allIssueAttachmentsTotalSize = issueService
172 .getAllIssueAttachmentSize();
173 request.setAttribute("allIssueAttachmentsTotalSize",
174 allIssueAttachmentsTotalSize);
175 } else {
176 request.setAttribute("allIssueAttachmentsTotalSize", -1l);
177 }
178 logTimeMillies("execute: looked up allIssueAttachmentsTotalSize",
179 time_millies, log, Level.INFO);
180
181
182
183
184 String lastRun = null;
185
186
187
188 request.setAttribute("projectService", projectService2);
189 request.setAttribute("exportReport", exportReport);
190 request.setAttribute("sizeps", projectService2.getAllProjects().size());
191 request.setAttribute("lastRun", lastRun);
192 request.setAttribute("numberIssues", numberIssues);
193
194
195
196
197
198
199
200
201 request.setAttribute("numberAvailableLanguages", configurationService.getNumberAvailableLanguages());
202 logTimeMillies("execute: put services to request", time_millies, log,
203 Level.INFO);
204
205 String pageTitleKey = "itracker.web.admin.index.title";
206 String pageTitleArg = "";
207 request.setAttribute("pageTitleKey", pageTitleKey);
208 request.setAttribute("pageTitleArg", pageTitleArg);
209
210 logTimeMillies("execute: returning", time_millies, log, Level.INFO);
211 }
212 }