From e439e1855ad5ffa36f41e9f055f5e0ffc8c17aaa Mon Sep 17 00:00:00 2001 From: "massimiliano.assante" Date: Tue, 8 May 2018 16:02:03 +0000 Subject: [PATCH] added buttons for recent and VRE Folders, still missing the server side impl. git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/workspace-widget-portlet@167375 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../user/wswidget/StorageHubServiceUtil.java | 24 ++++++++++++ .../user/wswidget/WorkspaceWidget.java | 7 +++- src/main/webapp/css/main.css | 28 +++++++++++++ src/main/webapp/html/workspacewidget/init.jsp | 6 +++ src/main/webapp/html/workspacewidget/view.jsp | 39 ++++++++++++++++--- 5 files changed, 98 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/gcube/portlets/user/wswidget/StorageHubServiceUtil.java b/src/main/java/org/gcube/portlets/user/wswidget/StorageHubServiceUtil.java index 6e8dd59..f1f041e 100644 --- a/src/main/java/org/gcube/portlets/user/wswidget/StorageHubServiceUtil.java +++ b/src/main/java/org/gcube/portlets/user/wswidget/StorageHubServiceUtil.java @@ -5,8 +5,11 @@ import java.util.Collections; import java.util.List; import javax.portlet.ResourceRequest; +import javax.servlet.http.HttpServletRequest; import org.gcube.common.authorization.library.provider.SecurityTokenProvider; +import org.gcube.common.portal.GCubePortalConstants; +import org.gcube.common.portal.PortalContext; import org.gcube.common.storagehub.client.plugins.AbstractPlugin; import org.gcube.common.storagehub.client.proxies.ItemManagerClient; import org.gcube.common.storagehub.client.proxies.WorkspaceManagerClient; @@ -88,6 +91,27 @@ public class StorageHubServiceUtil { return null; } + public static String getWorkspaceFolderURL(HttpServletRequest request) { + String userName = Utils.getCurrentUser(request).getUsername(); + String scope = Utils.getCurrentContext(request); + String authorizationToken = Utils.getCurrentUserToken(scope, userName); + SecurityTokenProvider.instance.set(authorizationToken); + String siteLandingPagePath = PortalContext.getConfiguration().getSiteLandingPagePath(request); + String toReturn = siteLandingPagePath; + + try { + WorkspaceManagerClient wsclient = AbstractPlugin.workspace().build(); + String itemId = wsclient.getVreFolder("hl:accounting").getId(); + toReturn = new String(new StringBuffer(siteLandingPagePath) + .append(GCubePortalConstants.USER_WORKSPACE_FRIENDLY_URL) + .append("?itemid=") + .append(itemId)); + }catch (Exception e) { + e.printStackTrace(); + } + return toReturn; + } + } diff --git a/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java b/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java index df07ce5..ca11c0a 100644 --- a/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java +++ b/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java @@ -40,6 +40,11 @@ public class WorkspaceWidget extends MVCPortlet { private static com.liferay.portal.kernel.log.Log _log = LogFactoryUtil.getLog(WorkspaceWidget.class); public static String BREADCRUMB_ATTR = "BREADCRUMB_ATTR_name"; + /** + * all the AJAX calls are served by this method, to discriminate the operation we use the parameters: + * - when fileToDownloadId parameters is not empty the request is for a file download + * - when + */ @Override public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws IOException, PortletException { String fileToDownloadId = ParamUtil.getString(resourceRequest, "fileToDownloadId", null); @@ -57,7 +62,7 @@ public class WorkspaceWidget extends MVCPortlet { //the user is browsing the workspace else { String cmd = ParamUtil.getString(resourceRequest, "cmd", ""); - PortalUtil.getHttpServletRequest(resourceRequest); + System.out.println("******** CMD="+cmd); String selectedItemId = "root"; String selectedItemName = ""; if (cmd != null && cmd.split("_selectedName").length > 1) { diff --git a/src/main/webapp/css/main.css b/src/main/webapp/css/main.css index a7340c3..57fc66e 100644 --- a/src/main/webapp/css/main.css +++ b/src/main/webapp/css/main.css @@ -1,3 +1,30 @@ +.workspace-widget-portlet h1.portlet-title { + display: none; +} + +.workspace-widget-portlet div.ws-breadcrumb-container > ul.breadcrumb { + padding-left: 0; + background-color: transparent; +} + +.workspace-widget-portlet .ws-recents { + float: right; + text-align: right; +} +.workspace-widget-portlet .ws-recents a { + display: inline-flex; + vertical-align: middle; + align-items: center; + border-radius: 4px; + padding: 0 2px; +} +.workspace-widget-portlet .ws-recents a:hover { + cursor: pointer; + text-decoration: none; + background-color: #f1f1f1; + border: 1px solid #f1f1f1; +} + .workspace-widget-portlet table thead { background: #f8f8f8; color: #0a0a0a; @@ -43,6 +70,7 @@ .workspace-widget-portlet select, input[type="file"] { line-height: 15px; + width: 150px; } .workspace-widget-portlet table.dataTable tbody>tr.selected, table.dataTable tbody>tr>.selected diff --git a/src/main/webapp/html/workspacewidget/init.jsp b/src/main/webapp/html/workspacewidget/init.jsp index c2e13a8..d441688 100644 --- a/src/main/webapp/html/workspacewidget/init.jsp +++ b/src/main/webapp/html/workspacewidget/init.jsp @@ -40,6 +40,12 @@ <%@page import="com.liferay.portlet.dynamicdatamapping.model.DDMStructure"%> <%@page import="com.liferay.portal.security.permission.ActionKeys"%> <%@page import="javax.portlet.PortletSession"%> + +<%@page import="com.liferay.portal.model.User"%> +<%@page import="com.liferay.portal.service.UserLocalServiceUtil"%> +<%@page import="com.liferay.portal.service.GroupLocalServiceUtil"%> +<%@page import="org.gcube.portlets.user.wswidget.StorageHubServiceUtil"%> + diff --git a/src/main/webapp/html/workspacewidget/view.jsp b/src/main/webapp/html/workspacewidget/view.jsp index 296dcdf..98b2d15 100644 --- a/src/main/webapp/html/workspacewidget/view.jsp +++ b/src/main/webapp/html/workspacewidget/view.jsp @@ -1,18 +1,39 @@ -<%@page import="com.liferay.portal.model.User"%> -<%@page import="com.liferay.portal.service.UserLocalServiceUtil"%> + <%@include file="init.jsp"%> + +<% pageContext.setAttribute("currentGroup", GroupLocalServiceUtil.getGroup(PortalUtil.getScopeGroupId(request))); +%> - -
+ + + + + + + + + + + + + +
+ @@ -22,6 +43,14 @@
+ + +