From 93d69c4ec796c157d5edec369ecae79d4dc0c910 Mon Sep 17 00:00:00 2001
From: zhitomirskiyi <ilya@joindiaspora.com>
Date: Mon, 21 Mar 2011 12:28:21 -0700
Subject: [PATCH] fixed the views for the friend finder

---
 app/controllers/services_controller.rb       | 3 ++-
 app/models/services/facebook.rb              | 4 ++--
 app/views/services/_finder.html.haml         | 2 +-
 app/views/services/_remote_friend.html.haml  | 8 ++++----
 spec/controllers/services_controller_spec.rb | 5 +++--
 5 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/app/controllers/services_controller.rb b/app/controllers/services_controller.rb
index b50a401ced..d3cc5549e9 100644
--- a/app/controllers/services_controller.rb
+++ b/app/controllers/services_controller.rb
@@ -46,7 +46,8 @@ class ServicesController < ApplicationController
 
   def finder
     service = current_user.services.where(:type => "Services::#{params[:provider].titleize}").first
-    @friends = service ? service.finder(:remote => params[:remote]) : {}
+    @friends = service ? service.finder(:remote => params[:remote]) : []
+    pp @friends.class
     render :layout => false
   end
 
diff --git a/app/models/services/facebook.rb b/app/models/services/facebook.rb
index f8a5a1f445..be1f1f922d 100644
--- a/app/models/services/facebook.rb
+++ b/app/models/services/facebook.rb
@@ -29,9 +29,9 @@ class Services::Facebook < Service
     person = Person.arel_table
     service_user = ServiceUser.arel_table
     if opts[:local]
-      ServiceUser.joins(:person).where(:service_id => self.id).where(person[:owner_id].not_eq(nil))
+      ServiceUser.joins(:person).where(:service_id => self.id).where(person[:owner_id].not_eq(nil)).all
     elsif opts[:remote]
-      ServiceUser.joins(:person).where(:service_id => self.id).where(person[:owner_id].eq(nil))
+      ServiceUser.joins(:person).where(:service_id => self.id).where(person[:owner_id].eq(nil)).all
     else
       self.service_users
     end
diff --git a/app/views/services/_finder.html.haml b/app/views/services/_finder.html.haml
index caf89a21e0..0dbe0e28dd 100644
--- a/app/views/services/_finder.html.haml
+++ b/app/views/services/_finder.html.haml
@@ -5,4 +5,4 @@
 = search_field_tag :contact_search, "", :class => 'contact_list_search', :results => 5, :placeholder => t('shared.contact_list.all_contacts')
 %ul.friend_finder
   - for friend in friends
-    = render :partial => 'services/remote_friend', :locals => {:friend => friend, :uid => friend.uid}
+    = render :partial => 'services/remote_friend', :locals => {:friend => friend}
diff --git a/app/views/services/_remote_friend.html.haml b/app/views/services/_remote_friend.html.haml
index d15e2a28e2..ebb3c16944 100644
--- a/app/views/services/_remote_friend.html.haml
+++ b/app/views/services/_remote_friend.html.haml
@@ -1,4 +1,4 @@
-%li.remote_friend{:id => "uid_" + uid, :uid => uid}
+%li.remote_friend{:id => "uid_" + friend.uid, :uid => friend.uid}
   .right
     -if friend.contact && !friend.contact.pending
       = t('people.person.already_connected')
@@ -11,7 +11,7 @@
     - elsif friend.invitation_id
       = t('invitations.new.already_invited')
       %br
-      = link_to t('.resend'), service_inviter_path(:uid => uid, :provider => 'facebook', :invitation_id => friend.invitation_id)
+      = link_to t('.resend'), service_inviter_path(:uid => friend.uid, :provider => 'facebook', :invitation_id => friend.invitation_id)
     - elsif friend.person
       = link_to t('people.show.start_sharing'),
         '#',
@@ -20,7 +20,7 @@
     - elsif current_user.invites > 0
       = form_tag service_inviter_path(:provider => 'facebook') do
         = select_tag(:aspect_id, options_from_collection_for_select(@all_aspects, 'id', 'name'))
-        = hidden_field_tag :uid, uid
+        = hidden_field_tag :uid, friend.uid
         = submit_tag t('.invite')
 
   - if friend.person
@@ -35,7 +35,7 @@
       = friend.name
 
 - unless friend.person.nil? || (friend.contact && friend.contact.pending) || (friend.request && friend.request.sender_id != friend.person.id)
-  %li{:id => "options_" + uid, :class => "share_with hidden", :style => "height:auto"}
+  %li{:id => "options_" + friend.uid, :class => "share_with hidden", :style => "height:auto"}
     - contact = friend.contact
     - contact ||= Contact.new
     = render :partial => 'contacts/share_with_list',
diff --git a/spec/controllers/services_controller_spec.rb b/spec/controllers/services_controller_spec.rb
index b02c35adcc..b57fbf17c5 100644
--- a/spec/controllers/services_controller_spec.rb
+++ b/spec/controllers/services_controller_spec.rb
@@ -87,8 +87,9 @@ describe ServicesController do
       @user.services << @service1
       @person = Factory(:person)
       @user.services.stub!(:where).and_return([@service1])
-      @hash = {"facebook_id" => {:contact => @user.contact_for(bob.person), :name => "Robert Bobson", :person => bob.person},
-              "facebook_id2" => {:name    => "Robert Bobson2"}}
+      @hash = [ ServiceUser.create(:contact => @user.contact_for(bob.person), :name => "Robert Bobson", :person => bob.person,
+                                  :service => @service1, :uid => "321" ),
+                ServiceUser.create(:name => "Robert Bobson", :service => @service1, :uid => "dsfasdfas")]
       @service1.should_receive(:finder).and_return(@hash)
     end
 
-- 
GitLab