Author: mfranklin
Date: Fri Oct 26 00:29:32 2012
New Revision: 1402359

URL: http://svn.apache.org/viewvc?rev=1402359&view=rev
Log:
Fixed widget bugs

Modified:
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPersonRepository.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepository.java
    
rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/tag/RegionWidgetTag.java
    
rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/tags/navbar.tag
    
rave/branches/mongo/rave-portal-resources/src/main/webapp/static/script/rave_person_profile.js

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPersonRepository.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPersonRepository.java?rev=1402359&r1=1402358&r2=1402359&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPersonRepository.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPersonRepository.java
 Fri Oct 26 00:29:32 2012
@@ -23,7 +23,9 @@ import com.google.common.base.Function;
 import com.google.common.collect.Lists;
 import org.apache.commons.lang.NotImplementedException;
 import org.apache.rave.portal.model.*;
+import org.apache.rave.portal.repository.MongoPageOperations;
 import org.apache.rave.portal.repository.MongoUserOperations;
+import org.apache.rave.portal.repository.MongoWidgetOperations;
 import org.apache.rave.portal.repository.PersonRepository;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.query.Query;
@@ -44,6 +46,12 @@ public class MongoDbPersonRepository imp
     @Autowired
     private MongoUserOperations template;
 
+    @Autowired
+    private MongoPageOperations pageTemplate;
+
+    @Autowired
+    private MongoWidgetOperations widgetOperations;
+
     @Override
     public Person findByUsername(String username) {
         return template.findOne(getUsernameQuery(username)).toPerson();
@@ -56,7 +64,7 @@ public class MongoDbPersonRepository imp
 
     @Override
     public List<Person> findAllConnectedPeople(String username, String appId) {
-        throw new NotImplementedException();  //TODO build query
+        return findFriends(username, appId);  //TODO update when groups is 
implemented
     }
 
     @Override
@@ -66,7 +74,7 @@ public class MongoDbPersonRepository imp
 
     @Override
     public List<Person> findFriends(String username) {
-        MongoDbUser user = 
(MongoDbUser)template.findOne(getUsernameQuery(username));
+        MongoDbUser user = (MongoDbUser) 
template.findOne(getUsernameQuery(username));
         return Lists.transform(filterByRequestType(user.getFriends(), 
FriendRequestStatus.ACCEPTED), new Function<MongoDbPersonAssociation, Person>() 
{
             @Override
             public Person apply(@Nullable MongoDbPersonAssociation input) {
@@ -74,20 +82,25 @@ public class MongoDbPersonRepository imp
             }
         });
     }
+
     @Override
     public List<Person> findFriends(String username, String appId) {
-        throw new NotImplementedException();  //TODO build query
+        MongoDbUser user = (MongoDbUser) 
template.findOne(getUsernameQuery(username));
+        Widget w = widgetOperations.findOne(query(where("url").is(appId)));
+        Query q = 
query(where("ownerId").in(getFriendIds(user.getFriends())).and("regions").elemMatch(where("regionWidgets").elemMatch(where("widgetId").is(w.getId()))));
+        List<Page> pages = pageTemplate.find(q);
+        return getPersonListFromPages(pages);
     }
 
     @Override
     public List<Person> findFriendsWithFriend(String username, String 
friendUsername) {
-        MongoDbUser follower = 
(MongoDbUser)template.findOne(getUsernameQuery(username));
-        MongoDbUser followed = 
(MongoDbUser)template.findOne(getUsernameQuery(friendUsername));
+        MongoDbUser follower = (MongoDbUser) 
template.findOne(getUsernameQuery(username));
+        MongoDbUser followed = (MongoDbUser) 
template.findOne(getUsernameQuery(friendUsername));
         List<Long> commonFriends = getCommonFriends(follower, followed);
         return Lists.transform(commonFriends, new Function<Long, Person>() {
             @Override
             public Person apply(@Nullable Long id) {
-                return id == null? null : template.get(id).toPerson();
+                return id == null ? null : template.get(id).toPerson();
             }
         });
     }
@@ -109,8 +122,8 @@ public class MongoDbPersonRepository imp
 
     @Override
     public boolean addFriend(String friendUsername, String username) {
-        MongoDbUser follower = 
(MongoDbUser)template.findOne(getUsernameQuery(username));
-        MongoDbUser followed = 
(MongoDbUser)template.findOne(getUsernameQuery(friendUsername));
+        MongoDbUser follower = (MongoDbUser) 
template.findOne(getUsernameQuery(username));
+        MongoDbUser followed = (MongoDbUser) 
template.findOne(getUsernameQuery(friendUsername));
 
         MongoDbPersonAssociation outgoing = new 
MongoDbPersonAssociation(followed.getId(), FriendRequestStatus.SENT, 
MongoDbPersonAssociation.Direction.OUTGOING);
         MongoDbPersonAssociation incoming = new 
MongoDbPersonAssociation(follower.getId(), FriendRequestStatus.RECEIVED, 
MongoDbPersonAssociation.Direction.INCOMING);
@@ -125,8 +138,8 @@ public class MongoDbPersonRepository imp
 
     @Override
     public void removeFriend(String friendUsername, String username) {
-        MongoDbUser follower = 
(MongoDbUser)template.findOne(getUsernameQuery(username));
-        MongoDbUser followed = 
(MongoDbUser)template.findOne(getUsernameQuery(friendUsername));
+        MongoDbUser follower = (MongoDbUser) 
template.findOne(getUsernameQuery(username));
+        MongoDbUser followed = (MongoDbUser) 
template.findOne(getUsernameQuery(friendUsername));
         removeAssociation(follower, followed);
         removeAssociation(followed, follower);
         template.save(follower);
@@ -144,8 +157,8 @@ public class MongoDbPersonRepository imp
 
     @Override
     public boolean acceptFriendRequest(String friendUsername, String username) 
{
-        MongoDbUser follower = 
(MongoDbUser)template.findOne(getUsernameQuery(username));
-        MongoDbUser followed = 
(MongoDbUser)template.findOne(getUsernameQuery(friendUsername));
+        MongoDbUser follower = (MongoDbUser) 
template.findOne(getUsernameQuery(username));
+        MongoDbUser followed = (MongoDbUser) 
template.findOne(getUsernameQuery(friendUsername));
         setAccepted(follower, followed);
         setAccepted(followed, follower);
         template.save(follower);
@@ -155,24 +168,14 @@ public class MongoDbPersonRepository imp
 
     @Override
     public List<Person> findFriendRequestsReceived(String username) {
-        MongoDbUser followed = 
(MongoDbUser)template.findOne(getUsernameQuery(username));
-        return Lists.transform(filterByRequestType(followed.getFriends(), 
FriendRequestStatus.RECEIVED), new Function<MongoDbPersonAssociation, Person>() 
{
-            @Override
-            public Person apply(@Nullable MongoDbPersonAssociation input) {
-                return input == null ? null : 
template.get(input.getPersonId()).toPerson();
-            }
-        });
+        MongoDbUser followed = (MongoDbUser) 
template.findOne(getUsernameQuery(username));
+        return getPersonListFromAssociations(followed, 
FriendRequestStatus.RECEIVED);
     }
 
     @Override
     public List<Person> findFriendRequestsSent(String username) {
-        MongoDbUser follower = 
(MongoDbUser)template.findOne(getUsernameQuery(username));
-        return Lists.transform(filterByRequestType(follower.getFriends(), 
FriendRequestStatus.SENT), new Function<MongoDbPersonAssociation, Person>() {
-            @Override
-            public Person apply(@Nullable MongoDbPersonAssociation input) {
-                return input == null ? null : 
template.get(input.getPersonId()).toPerson();
-            }
-        });
+        MongoDbUser follower = (MongoDbUser) 
template.findOne(getUsernameQuery(username));
+        return getPersonListFromAssociations(follower, 
FriendRequestStatus.SENT);
     }
 
     @Override
@@ -188,7 +191,7 @@ public class MongoDbPersonRepository imp
     @Override
     public Person save(Person item) {
         //TODO Support saving people other than users
-        return item instanceof User ? template.save((User)item) : null;
+        return item instanceof User ? template.save((User) item) : null;
     }
 
     @Override
@@ -196,14 +199,42 @@ public class MongoDbPersonRepository imp
         template.remove(getUsernameQuery(item.getUsername()));
     }
 
+    private List<Person> getPersonListFromAssociations(MongoDbUser follower, 
FriendRequestStatus status) {
+        return Lists.transform(filterByRequestType(follower.getFriends(), 
status), new Function<MongoDbPersonAssociation, Person>() {
+            @Override
+            public Person apply(@Nullable MongoDbPersonAssociation input) {
+                return input == null ? null : 
template.get(input.getPersonId()).toPerson();
+            }
+        });
+    }
+
+    private List<Person> getPersonListFromPages(List<Page> pages) {
+        return Lists.transform(pages, new Function<Page, Person>() {
+            @Override
+            public Person apply(@Nullable Page input) {
+                return input == null ? null : input.getOwner().toPerson();
+            }
+        });
+    }
+
+    private List<Long> getFriendIds(List<MongoDbPersonAssociation> friends) {
+        List<Long> ids = Lists.newArrayList();
+        for (MongoDbPersonAssociation friend : friends) {
+            if 
(friend.getRequestStatus().equals(FriendRequestStatus.ACCEPTED)) {
+                ids.add(friend.getPersonId());
+            }
+        }
+        return ids;
+    }
+
     private Query getUsernameQuery(String username) {
         return query(where("username").is(username));
     }
 
     private List<MongoDbPersonAssociation> 
filterByRequestType(List<MongoDbPersonAssociation> friends, FriendRequestStatus 
received) {
         List<MongoDbPersonAssociation> filtered = Lists.newArrayList();
-        for(MongoDbPersonAssociation association : friends) {
-            if(association.getRequestStatus().equals(received)) {
+        for (MongoDbPersonAssociation association : friends) {
+            if (association.getRequestStatus().equals(received)) {
                 filtered.add(association);
             }
         }
@@ -211,8 +242,8 @@ public class MongoDbPersonRepository imp
     }
 
     private void removeAssociation(MongoDbUser friend, MongoDbUser person) {
-        for(MongoDbPersonAssociation association : person.getFriends()) {
-            if(association.getPersonId().equals(friend.getId())) {
+        for (MongoDbPersonAssociation association : person.getFriends()) {
+            if (association.getPersonId().equals(friend.getId())) {
                 person.getFriends().remove(association);
                 break;
             }
@@ -220,18 +251,18 @@ public class MongoDbPersonRepository imp
     }
 
     private void setAccepted(MongoDbUser friend, MongoDbUser person) {
-        for(MongoDbPersonAssociation association : person.getFriends()) {
-            if(association.getPersonId().equals(friend.getId())) {
+        for (MongoDbPersonAssociation association : person.getFriends()) {
+            if (association.getPersonId().equals(friend.getId())) {
                 association.setRequestStatus(FriendRequestStatus.ACCEPTED);
             }
         }
     }
 
     private List<Long> getCommonFriends(MongoDbUser follower, MongoDbUser 
followed) {
-        List<Long> ids= Lists.newArrayList();
-        for(MongoDbPersonAssociation association : follower.getFriends()) {
-            for(MongoDbPersonAssociation friendAssociation : 
followed.getFriends()) {
-                
if(association.getPersonId().equals(friendAssociation.getPersonId()) &&
+        List<Long> ids = Lists.newArrayList();
+        for (MongoDbPersonAssociation association : follower.getFriends()) {
+            for (MongoDbPersonAssociation friendAssociation : 
followed.getFriends()) {
+                if 
(association.getPersonId().equals(friendAssociation.getPersonId()) &&
                         
association.getRequestStatus().equals(FriendRequestStatus.ACCEPTED) &&
                         
friendAssociation.getRequestStatus().equals(FriendRequestStatus.ACCEPTED)) {
                     ids.add(friendAssociation.getPersonId());

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepository.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepository.java?rev=1402359&r1=1402358&r2=1402359&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepository.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepository.java
 Fri Oct 26 00:29:32 2012
@@ -52,8 +52,6 @@ public class MongoDbWidgetRepository imp
     public static final String RATINGS_REDUCE = 
"classpath:/org/apache/rave/WidgetRatingsReduce.js";
     public static final String USERS_MAP = 
"classpath:/org/apache/rave/WidgetUsersMap.js";
     public static final String USERS_REDUCE = 
"classpath:/org/apache/rave/WidgetUsersReduce.js";
-    public static final String PAGE_COLLECTION = "page";
-
     @Autowired
     private MongoWidgetOperations template;
 
@@ -277,7 +275,7 @@ public class MongoDbWidgetRepository imp
     }
 
     private Query addSort(Query query) {
-        query.sort().on("title", Order.ASCENDING);
+        query.sort().on("featured", Order.DESCENDING).on("title", 
Order.ASCENDING);
         return query;
     }
 

Modified: 
rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/tag/RegionWidgetTag.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/tag/RegionWidgetTag.java?rev=1402359&r1=1402358&r2=1402359&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/tag/RegionWidgetTag.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/tag/RegionWidgetTag.java
 Fri Oct 26 00:29:32 2012
@@ -39,11 +39,11 @@ public class RegionWidgetTag extends Abs
 
     // Script block for disabled gadget
     private static final String DISABLED_SCRIPT_BLOCK =
-            "<script>rave.registerWidget(%1$s, {type: 'DISABLED'," +
-            " regionWidgetId: %2$s," +
+            "<script>rave.registerWidget('%1$s', {type: 'DISABLED'," +
+            " regionWidgetId: '%2$s'," +
             " disabledMessage: '%3$s'," +
             " collapsed: %4$s," +
-            " widgetId: %5$s});</script>";
+            " widgetId: '%5$s'});</script>";
 
     public RegionWidgetTag() {
         super(RenderService.class);
@@ -74,7 +74,7 @@ public class RegionWidgetTag extends Abs
                         
StringEscapeUtils.escapeJavaScript(regionWidget.getWidget().getDisableRenderingMessage()),
                         regionWidget.isCollapsed(),
                         regionWidget.getWidget().getId());
-                String key = REGISTER_DISABLED_WIDGET_KEY + "-" + 
regionWidget.getWidget().getId();
+                String key = REGISTER_DISABLED_WIDGET_KEY + "-" + 
regionWidget.getId();
                 scriptManager.registerScriptBlock(key, widgetScript, 
ScriptLocation.AFTER_RAVE, RenderScope.CURRENT_REQUEST, getContext());
             } else {
                 writeString(getBean().render(regionWidget, getContext()));

Modified: 
rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/tags/navbar.tag
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/tags/navbar.tag?rev=1402359&r1=1402358&r2=1402359&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/tags/navbar.tag
 (original)
+++ 
rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/tags/navbar.tag
 Fri Oct 26 00:29:32 2012
@@ -44,7 +44,7 @@
                                                <c:when 
test="${navItem.hasChildren}">
                                                        <ul 
class="dropdown-menu friendRequestDropdown">
                                                                                
        <c:forEach items="${navItem.childNavigationItems}" var="childItem">
-                                                                               
                <li class="requestItem">${childItem.name}
+                                                                               
                <li class="requestItem"><c:out value="${childItem.name}" />
                                                                                
                <a class="acceptFriendRequest" id="${childItem.nameParam}" 
href="#"><i class="icon-ok"></i></a>
                                                                                
                <a class="declineFriendRequest" id="${childItem.nameParam}" 
href="#"><i class="icon-remove"></i></a>
                                                                                
                </li>

Modified: 
rave/branches/mongo/rave-portal-resources/src/main/webapp/static/script/rave_person_profile.js
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-portal-resources/src/main/webapp/static/script/rave_person_profile.js?rev=1402359&r1=1402358&r2=1402359&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-portal-resources/src/main/webapp/static/script/rave_person_profile.js
 (original)
+++ 
rave/branches/mongo/rave-portal-resources/src/main/webapp/static/script/rave_person_profile.js
 Fri Oct 26 00:29:32 2012
@@ -130,33 +130,33 @@ rave.personprofile = rave.personprofile 
                      )
                      .append(
                          $("<td/>")
-                         .attr("id", "friendStatusButtonHolder" + 
this.entityId)
+                         .attr("id", "friendStatusButtonHolder" + this.id)
                      )
                  );
 
                  if(this.username != currentUser){
                      // check if already added
                      if(rave.personprofile.isUserAlreadyFriend(this.username)){
-                         $('#friendStatusButtonHolder'+this.entityId)
+                         $('#friendStatusButtonHolder'+this.id)
                          .append(
                              $("<a/>")
                              .attr("href", "#")
                              .attr("id", this.entityId)
-                             .attr("onclick", 
"rave.personprofile.removeFriend("+this.entityId+", '"+this.username+"');")
+                             .attr("onclick", 
"rave.personprofile.removeFriend("+this.id+", '"+this.username+"');")
                              .text(rave.getClientMessage("common.remove"))
                          );
                      // check if already sent friend request
                      }else 
if(rave.personprofile.isFriendRequestSent(this.username)){
-                         $('#friendStatusButtonHolder'+this.entityId)
+                         $('#friendStatusButtonHolder'+this.id)
                          .append(
                              $("<a/>")
                              .attr("href", "#")
                              .attr("id", this.entityId)
-                             .attr("onclick", 
"rave.personprofile.removeFriendRequestSent("+this.entityId+", 
'"+this.username+"');")
+                             .attr("onclick", 
"rave.personprofile.removeFriendRequestSent("+this.id+", '"+this.username+"');")
                              
.text(rave.getClientMessage("common.cancel.request"))
                          );
                      }else 
if(rave.personprofile.isFriendRequestReceived(this.username)){
-                         $('#friendStatusButtonHolder'+this.entityId)
+                         $('#friendStatusButtonHolder'+this.id)
                          .append(
                              $("<a/>")
                              .attr("href", "#")
@@ -166,17 +166,17 @@ rave.personprofile = rave.personprofile 
                              ' / ',
                              $("<a/>")
                              .attr("href", "#")
-                             .attr("id", this.entityId)
-                             .attr("onclick", 
"rave.personprofile.declineFriendRequest("+this.entityId+", 
'"+this.username+"');")
+                             .attr("id", this.id)
+                             .attr("onclick", 
"rave.personprofile.declineFriendRequest("+this.id+", '"+this.username+"');")
                              .text(rave.getClientMessage("common.decline"))
                          );
                      }else {
-                         $('#friendStatusButtonHolder'+this.entityId)
+                         $('#friendStatusButtonHolder'+this.id)
                          .append(
                              $("<a/>")
                              .attr("href", "#")
-                             .attr("id", this.entityId)
-                             .attr("onclick", 
"rave.personprofile.addFriend("+this.entityId+", '"+this.username+"');")
+                             .attr("id", this.id)
+                             .attr("onclick", 
"rave.personprofile.addFriend("+this.id+", '"+this.username+"');")
                              .text(rave.getClientMessage("common.add"))
                          );
                      }


Reply via email to