From f4a30c6afc114ae0460b75e7f4b7082858782c4b Mon Sep 17 00:00:00 2001 From: "massimiliano.assante" Date: Wed, 13 Jun 2018 10:50:16 +0000 Subject: [PATCH] implemnted support for optimised recent query git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/workspace-widget-portlet@169132 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../user/wswidget/StorageHubServiceUtil.java | 22 ++++--------------- .../user/wswidget/WorkspaceWidget.java | 7 +++--- src/main/webapp/html/workspacewidget/view.jsp | 4 ++++ 3 files changed, 11 insertions(+), 22 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 76eec52..167707a 100644 --- a/src/main/java/org/gcube/portlets/user/wswidget/StorageHubServiceUtil.java +++ b/src/main/java/org/gcube/portlets/user/wswidget/StorageHubServiceUtil.java @@ -13,18 +13,10 @@ 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; -import org.gcube.common.storagehub.model.Paths; -import org.gcube.common.storagehub.model.expressions.GenericSearchableItem; -import org.gcube.common.storagehub.model.expressions.OrderField; -import org.gcube.common.storagehub.model.expressions.SearchableItem; -import org.gcube.common.storagehub.model.expressions.logical.ISDescendant; -import org.gcube.common.storagehub.model.items.AbstractFileItem; import org.gcube.common.storagehub.model.items.Item; -import org.gcube.common.storagehub.model.query.Queries; -import org.gcube.common.storagehub.model.query.Query; import org.gcube.portlets.user.wswidget.shared.AuthorizedUser; import org.gcube.portlets.user.wswidget.shared.WSItem; -import org.gcube.common.storagehub.model.expressions.OrderField.MODE; + import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; @@ -104,20 +96,14 @@ public class StorageHubServiceUtil { * @param limit * @return */ - public static List getRecentItems(AuthorizedUser authUser, int limit, Item vreFolder) { + public static List getRecentItems(AuthorizedUser authUser) { WSItem toReturn = new WSItem("recents", "Recent Documents", true); _log.debug("getRecentItems "); ArrayList children = new ArrayList<>(); SecurityTokenProvider.instance.set(authUser.getSecurityToken()); - Query> query = Queries.queryFor(AbstractFileItem.class); - - //query.setExpression(new ISDescendant(Paths.getPath(vreFolder.getPath()))); - query.setExpression(new ISDescendant(Paths.getPath("/Home/"+authUser.getUser().getUsername()+"/Workspace/MySpecialFolders/"+vreFolder.getTitle()))); + WorkspaceManagerClient wsclient = AbstractPlugin.workspace().build(); + List theChildren = wsclient.getRecentModifiedFilePerVre(); - query.setLimit(limit); - query.setOrder(new OrderField(GenericSearchableItem.get().lastModification, MODE.DESC)); - WorkspaceManagerClient wsclient = AbstractPlugin.workspace().build(); - List theChildren = wsclient.search(query, "hl:accounting"); if (theChildren == null || theChildren.isEmpty()) { toReturn.setChildren(children); 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 4e660af..546bf96 100644 --- a/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java +++ b/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java @@ -103,12 +103,11 @@ public class WorkspaceWidget extends MVCPortlet { count = StorageHubServiceUtil.getItemChildrenCount(request, itemId); } else if (itemId.compareTo("recents") == 0) { //is in a VRE and asking for recents files - WorkspaceManagerClient wsclient = AbstractPlugin.workspace().build(); - Item vreFolder = wsclient.getVreFolder("hl:accounting"); - itemsList = StorageHubServiceUtil.getRecentItems(authUser, offset, vreFolder); + + itemsList = StorageHubServiceUtil.getRecentItems(authUser); count = offset; toSet = (Breadcrumb) request.getPortletSession().getAttribute(BREADCRUMB_ATTR, PortletSession.APPLICATION_SCOPE); - toSet.setChild(new Breadcrumb(vreFolder.getId(), "Recent")); + toSet.setChild(new Breadcrumb("", "Top 10 Recent")); request.getPortletSession().setAttribute(BREADCRUMB_ATTR, toSet, PortletSession.APPLICATION_SCOPE); } else { diff --git a/src/main/webapp/html/workspacewidget/view.jsp b/src/main/webapp/html/workspacewidget/view.jsp index e857659..b07b0f9 100644 --- a/src/main/webapp/html/workspacewidget/view.jsp +++ b/src/main/webapp/html/workspacewidget/view.jsp @@ -94,11 +94,15 @@ function loadItemsListIntoTable(itemId, itemName, hideVreFolders) { } else { $('#vreFoldersDiv').show(); } + $('#userTable_info').show(); + $('#userTable_length').show(); } function loadRecentItemsListIntoTable(itemId, itemName) { var table = $('#userTable').DataTable(); table.ajax.url('<%=usersCustomDataSourceURL%>'+itemId+'_selectedName='+itemName).load(); + $('#userTable_info').hide(); + $('#userTable_length').hide(); } function downloadItem(itemId) {