diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/Headerbar.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/Headerbar.java index 1b7043f..2b7c92b 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/Headerbar.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/Headerbar.java @@ -653,9 +653,9 @@ public class Headerbar extends Composite{ GWT.runAsync(WorkspaceLightTreeLoadPopup.class, new RunAsyncCallback() { public void onSuccess() { - WorkspaceLightTreeLoadPopup wpTreepopup = new WorkspaceLightTreeLoadPopup("Open Template", true, true); - wpTreepopup.setShowableTypes(ItemType.REPORT_TEMPLATE); - wpTreepopup.setSelectableTypes(ItemType.REPORT_TEMPLATE); + WorkspaceLightTreeLoadPopup wpTreepopup = new WorkspaceLightTreeLoadPopup("Select the Report (or Template) to encrypt ", true, true); + wpTreepopup.setShowableTypes(ItemType.REPORT_TEMPLATE, ItemType.REPORT); + wpTreepopup.setSelectableTypes(ItemType.REPORT_TEMPLATE, ItemType.REPORT); wpTreepopup.addPopupHandler(new PopupHandler() { public void onPopup(PopupEvent event) { diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/DownloadEncryptedReport.java b/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/DownloadEncryptedReport.java index f432aa9..72623f4 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/DownloadEncryptedReport.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/DownloadEncryptedReport.java @@ -5,8 +5,8 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; -import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; @@ -18,7 +18,9 @@ import org.gcube.application.framework.core.session.SessionManager; import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper; import org.gcube.portlets.user.homelibrary.home.HomeLibrary; import org.gcube.portlets.user.homelibrary.home.workspace.Workspace; -import org.gcube.portlets.user.homelibrary.home.workspace.WorkspaceItem; +import org.gcube.portlets.user.homelibrary.home.workspace.folder.FolderItem; +import org.gcube.portlets.user.homelibrary.home.workspace.folder.FolderItemType; +import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.Report; import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.ReportTemplate; import org.gcube.portlets.user.homelibrary.util.encryption.EncryptionUtil; @@ -29,17 +31,27 @@ public class DownloadEncryptedReport extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - ReportTemplate item = null; + FolderItem item = null; File tmpFile = File.createTempFile("report", "texz"); String fileName = null; + InputStream data = null; try { Workspace workspace = HomeLibrary.getUserWorkspace(getASLSession(request)); - item = (ReportTemplate)workspace.getItem(request.getParameter("itemId")); + item = (FolderItem)workspace.getItem(request.getParameter("itemId")); + + if (item.getFolderItemType() == FolderItemType.REPORT) { + Report report = (Report)item; + data = report.getData(); + } else { + ReportTemplate template = (ReportTemplate)item; + data = template.getData(); + } + fileName = item.getName() + ".texz"; EncryptionUtil util = new EncryptionUtil(); FileOutputStream out = new FileOutputStream(tmpFile); - util.encrypt(item.getData(), out); + util.encrypt(data, out); } catch (Exception e) { throw new ServletException(e);