|
43 | 43 | import org.eclipse.sw360.datahandler.thrift.vendors.VendorService;
|
44 | 44 | import org.eclipse.sw360.datahandler.thrift.vulnerabilities.*;
|
45 | 45 | import org.eclipse.sw360.exporter.ProjectExporter;
|
| 46 | +import org.eclipse.sw360.exporter.ReleaseExporter; |
46 | 47 | import org.eclipse.sw360.portal.common.*;
|
47 | 48 | import org.eclipse.sw360.portal.portlets.FossologyAwarePortlet;
|
48 | 49 | import org.eclipse.sw360.portal.users.LifeRayUserSession;
|
|
67 | 68 | import static com.liferay.portal.kernel.json.JSONFactoryUtil.createJSONObject;
|
68 | 69 | import static org.eclipse.sw360.datahandler.common.CommonUtils.nullToEmptyList;
|
69 | 70 | import static org.eclipse.sw360.datahandler.common.CommonUtils.wrapThriftOptionalReplacement;
|
| 71 | +import static org.eclipse.sw360.datahandler.common.SW360Constants.CONTENT_TYPE_OPENXML_SPREADSHEET; |
70 | 72 | import static org.eclipse.sw360.datahandler.common.SW360Utils.printName;
|
71 | 73 | import static org.eclipse.sw360.portal.common.PortalConstants.*;
|
72 | 74 | import static org.eclipse.sw360.portal.common.PortletUtils.addToMatchedByHistogram;
|
@@ -135,6 +137,8 @@ public void serveResource(ResourceRequest request, ResourceResponse response) th
|
135 | 137 | updateVulnerabilityRating(request, response);
|
136 | 138 | } else if (PortalConstants.EXPORT_TO_EXCEL.equals(action)) {
|
137 | 139 | exportExcel(request, response);
|
| 140 | + } else if (PortalConstants.EXPORT_CLEARING_TO_EXCEL.equals(action)) { |
| 141 | + exportReleasesSpreadsheet(request, response); |
138 | 142 | } else if (PortalConstants.DOWNLOAD_LICENSE_INFO.equals(action)) {
|
139 | 143 | downloadLicenseInfo(request, response);
|
140 | 144 | } else if (PortalConstants.DOWNLOAD_SOURCE_CODE_BUNDLE.equals(action)) {
|
@@ -256,12 +260,33 @@ private void exportExcel(ResourceRequest request, ResourceResponse response) {
|
256 | 260 | thriftClients.makeProjectClient(),
|
257 | 261 | user,
|
258 | 262 | extendedByReleases);
|
259 |
| - PortletResponseUtil.sendFile(request, response, "Projects.xlsx", exporter.makeExcelExport(projects), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); |
| 263 | + PortletResponseUtil.sendFile(request, response, "Projects.xlsx", exporter.makeExcelExport(projects), CONTENT_TYPE_OPENXML_SPREADSHEET); |
260 | 264 | } catch (IOException | SW360Exception e) {
|
261 | 265 | log.error("An error occurred while generating the Excel export", e);
|
262 | 266 | }
|
263 | 267 | }
|
264 | 268 |
|
| 269 | + private void exportReleasesSpreadsheet(ResourceRequest request, ResourceResponse response) { |
| 270 | + final User user = UserCacheHolder.getUserFromRequest(request); |
| 271 | + try { |
| 272 | + String id = request.getParameter(PROJECT_ID); |
| 273 | + Project project = null; |
| 274 | + if (!isNullOrEmpty(id)) { |
| 275 | + project = thriftClients.makeProjectClient().getProjectById(id, user); |
| 276 | + } |
| 277 | + if (project != null) { |
| 278 | + Map<Release, String> releaseStringMap = getReleaseStringMap(id, user); |
| 279 | + List<Release> releases = releaseStringMap.keySet().stream().sorted(Comparator.comparing(SW360Utils::printFullname)).collect(Collectors.toList()); |
| 280 | + ReleaseExporter exporter = new ReleaseExporter(thriftClients.makeComponentClient()); |
| 281 | + PortletResponseUtil.sendFile(request, response, |
| 282 | + String.format("releases-%s-%s-%s.xlsx", project.getName(), project.getVersion(), SW360Utils.getCreatedOn()), |
| 283 | + exporter.makeExcelExport(releases), CONTENT_TYPE_OPENXML_SPREADSHEET); |
| 284 | + } |
| 285 | + } catch (IOException | TException e) { |
| 286 | + log.error("An error occurred while generating the Excel export", e); |
| 287 | + } |
| 288 | + } |
| 289 | + |
265 | 290 | private RequestStatus removeProject(PortletRequest request) {
|
266 | 291 | String projectId = request.getParameter(PortalConstants.PROJECT_ID);
|
267 | 292 | final User user = UserCacheHolder.getUserFromRequest(request);
|
|
0 commit comments