From f285ce1e14127b43fef49722da9fe55e1ec38ab0 Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Tue, 10 Sep 2013 10:05:29 +0000 Subject: [PATCH] Fix for support Ticket #708 git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/news-feed@81203 82a268e6-3cf1-43bd-a215-b396298e98cf --- .classpath | 4 +- .settings/com.google.gdt.eclipse.core.prefs | 3 +- distro/changelog.xml | 14 ++- pom.xml | 2 +- .../user/newsfeed/server/NewsServiceImpl.java | 87 +++++++++++-------- 5 files changed, 67 insertions(+), 43 deletions(-) diff --git a/.classpath b/.classpath index 1def520..804906f 100644 --- a/.classpath +++ b/.classpath @@ -1,6 +1,6 @@ - + @@ -31,5 +31,5 @@ - + diff --git a/.settings/com.google.gdt.eclipse.core.prefs b/.settings/com.google.gdt.eclipse.core.prefs index 6e381ad..3c11524 100644 --- a/.settings/com.google.gdt.eclipse.core.prefs +++ b/.settings/com.google.gdt.eclipse.core.prefs @@ -1,6 +1,5 @@ -#Thu Jul 11 11:44:03 CEST 2013 eclipse.preferences.version=1 jarsExcludedFromWebInfLib= -lastWarOutDir=/Users/massi/Documents/workspace/news-feed/target/news-feed-1.1.0-SNAPSHOT +lastWarOutDir=/Users/massi/Documents/workspace/news-feed/target/news-feed-1.2.0-SNAPSHOT warSrcDir=src/main/webapp warSrcDirIsOutput=false diff --git a/distro/changelog.xml b/distro/changelog.xml index dae22b5..b4383d4 100644 --- a/distro/changelog.xml +++ b/distro/changelog.xml @@ -1,6 +1,13 @@ - - Open single feed separately enhancement implemeented #1818 + + Fix for support Ticket #708 + Fix for support Ticket #636 + + + Open single feed separately enhancement implemeented #1818 + links redirects correctly to user profiles Mavenized Smart Refresh Support Added #1539 Show HTTP URL in replies as HTML anchor links #1542 - Replies on App Feed exception fixed #580 prod. support + Replies on App Feed exception fixed #580 prod. support + Add Tag people in News Feed Portlet #1535 Notify people involved in post thread #1576 Scope Dependent News Feed #1561 diff --git a/pom.xml b/pom.xml index 531244a..ca8e57c 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ org.gcube.portlets.user news-feed war - 1.1.1-SNAPSHOT + 1.2.0-SNAPSHOT gCube News Feed Portlet diff --git a/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java b/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java index fbc1ad3..cc58721 100644 --- a/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java @@ -39,6 +39,7 @@ import org.gcube.vomanagement.usermanagement.GroupManager; import org.gcube.vomanagement.usermanagement.impl.liferay.LiferayGroupManager; import com.google.gwt.user.server.rpc.RemoteServiceServlet; +import com.liferay.portal.NoSuchUserException; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.util.WebKeys; @@ -95,8 +96,8 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService if (user == null) { _log.warn("USER IS NULL setting testing user and Running OUTSIDE PORTAL"); user = "test.user"; -// user = "massimiliano.assante"; -// SessionManager.getInstance().getASLSession(sessionID, user).setScope("/gcube/devsec/devVRE"); + // user = "massimiliano.assante"; + // SessionManager.getInstance().getASLSession(sessionID, user).setScope("/gcube/devsec/devVRE"); } else { withinPortal = true; @@ -150,7 +151,7 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService return getASLSession().getScope().isInfrastructure(); } - + @Override public ArrayList getAllUpdateUserFeeds(int feedsNoPerCategory) { @@ -210,7 +211,7 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService } //sort the feeds in reverse chronological order Collections.sort(toMerge, Collections.reverseOrder()); - + ArrayList toReturn = new ArrayList(); //return only feeds if (toMerge.size() > MAX_FEEDS_NO) @@ -471,13 +472,20 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService private ArrayList enhanceFeeds(ArrayList toEnhance, int commentsNumberPerFeed) { ArrayList toReturn = new ArrayList(); String username = getASLSession().getUsername(); - + ArrayList likedFeeds = (ArrayList) store.getAllLikedFeedIdsByUser(getASLSession().getUsername()); - + boolean skip = false; for (Feed feed : toEnhance) { + skip = false; feed.setDescription(replaceAmpersand(feed.getDescription())); - if (! feed.isApplicationFeed()) - feed.setThumbnailURL(getUserImagePortraitUrlLocal(feed.getEntityId())); + if (! feed.isApplicationFeed()) { + String thumb = getUserImagePortraitUrlLocal(feed.getEntityId()); + if (thumb == null) { + _log.warn(feed.getEntityId() + " is not avaialble on this portal, skipping this feed: " + feed.getKey()); + skip = true; + } else + feed.setThumbnailURL(thumb); + } //if likedFeeds contains this feed key it means the user already Liked it boolean liked = likedFeeds.contains(feed.getKey()); int commentsNo = 0; @@ -488,33 +496,35 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService commentsNo = 0; _log.error("NumberFormatException while reading comments number " + e.getMessage()); } - if (commentsNo == 0) { - EnhancedFeed toAdd = null; - //create the enhanced feed - if (feed.isApplicationFeed()) { - toAdd = new EnhancedFeed(feed, liked, checkisAdminUser()); - } else - toAdd = new EnhancedFeed(feed, liked, isUsers(feed, username)); - toReturn.add(toAdd); - } else { - ArrayList comments = getAllCommentsByFeed(feed.getKey()); - //sort in chronological order - Collections.sort(comments); - - int currCommentsNumber = comments.size(); - //if comments are less than $commentsNumberPerFeed they are the more recent, -1 return all the comments - if (currCommentsNumber < commentsNumberPerFeed || commentsNumberPerFeed == -1) { - EnhancedFeed toAdd = new EnhancedFeed(feed, liked, isUsers(feed, username), comments); + if (!skip) { + if (commentsNo == 0) { + EnhancedFeed toAdd = null; + //create the enhanced feed + if (feed.isApplicationFeed()) { + toAdd = new EnhancedFeed(feed, liked, checkisAdminUser()); + } else + toAdd = new EnhancedFeed(feed, liked, isUsers(feed, username)); toReturn.add(toAdd); } else { - //need to get the last two - ArrayList comments2Attach = new ArrayList(); - for (int i = currCommentsNumber -commentsNumberPerFeed; i < currCommentsNumber; i++) { - comments2Attach.add(comments.get(i)); + ArrayList comments = getAllCommentsByFeed(feed.getKey()); + //sort in chronological order + Collections.sort(comments); + + int currCommentsNumber = comments.size(); + //if comments are less than $commentsNumberPerFeed they are the more recent, -1 return all the comments + if (currCommentsNumber < commentsNumberPerFeed || commentsNumberPerFeed == -1) { + EnhancedFeed toAdd = new EnhancedFeed(feed, liked, isUsers(feed, username), comments); + toReturn.add(toAdd); + } else { + //need to get the last two + ArrayList comments2Attach = new ArrayList(); + for (int i = currCommentsNumber -commentsNumberPerFeed; i < currCommentsNumber; i++) { + comments2Attach.add(comments.get(i)); + } + EnhancedFeed toAdd = new EnhancedFeed(feed, liked, isUsers(feed, username), comments2Attach); + toReturn.add(toAdd); } - EnhancedFeed toAdd = new EnhancedFeed(feed, liked, isUsers(feed, username), comments2Attach); - toReturn.add(toAdd); - } + } } } @@ -536,7 +546,11 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService User user = null; try { user = UserLocalServiceUtil.getUserByScreenName(OrganizationsUtil.getCompany().getCompanyId(), screenName); - } catch (PortalException e) { + } + catch (com.liferay.portal.NoSuchUserException ex) { + return null; + } + catch (PortalException e) { e.printStackTrace(); } catch (SystemException e) { e.printStackTrace(); @@ -552,7 +566,9 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService ArrayList toReturn = (ArrayList) store.getAllLikesByFeed(feedid); _log.trace("Asking likes for " + feedid); for (Like like : toReturn) { - like.setThumbnailURL(getUserImagePortraitUrlLocal(like.getUserid())); + String thumb = getUserImagePortraitUrlLocal(like.getUserid()); + + like.setThumbnailURL(thumb == null ? "" : thumb); } return toReturn; } @@ -562,7 +578,8 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService _log.trace("Asking comments for " + feedid); ArrayList toReturn = (ArrayList) store.getAllCommentByFeed(feedid); for (Comment comment : toReturn) { - comment.setThumbnailURL(getUserImagePortraitUrlLocal(comment.getUserid())); + String thumb = getUserImagePortraitUrlLocal(comment.getUserid()); + comment.setThumbnailURL(thumb == null ? "" : thumb); } Collections.sort(toReturn); return toReturn;