display resend link if already sent invitation in friend finder

This commit is contained in:
zhitomirskiyi 2011-01-26 16:53:03 -08:00
parent 906dd8d6d4
commit a610618057
6 changed files with 29 additions and 11 deletions

View file

@ -52,8 +52,14 @@ class ServicesController < ApplicationController
def inviter def inviter
@uid = params[:uid] @uid = params[:uid]
if i_id = params[:invitation_id]
invited_user = Invitation.find(i_id).recipient
else
invited_user = current_user.invite_user(params[:aspect_id], params[:provider], @uid)
end
@subject = t('.join_me_on_diaspora') @subject = t('.join_me_on_diaspora')
invited_user = current_user.invite_user(params[:aspect_id], params[:provider], params[:uid])
@message = <<MSG @message = <<MSG
#{t('.click_link_to_accept_invitation')}: #{t('.click_link_to_accept_invitation')}:
\n \n

View file

@ -30,7 +30,7 @@ class Services::Facebook < Service
:invitation_identifier => data_h.keys}) :invitation_identifier => data_h.keys})
invitation_objects.each do |inv| invitation_objects.each do |inv|
data_h[inv.recipient.invitation_identifier][:invitation] = true data_h[inv.recipient.invitation_identifier][:invitation_id] = inv.id
end end
service_objects = Services::Facebook.where(:uid => data_h.keys).includes(:user => :person) service_objects = Services::Facebook.where(:uid => data_h.keys).includes(:user => :person)

View file

@ -28,8 +28,10 @@
:id => friend[:person].id}, :id => friend[:person].id},
:class => 'button', :class => 'button',
:rel => 'facebox' :rel => 'facebox'
- elsif friend[:invitation] - elsif friend[:invitation_id]
= t('invitations.new.already_invited') = t('invitations.new.already_invited')
%br
= link_to t('.resend'), service_inviter_path(:uid => uid, :provider => 'facebook', :invitation_id => friend[:invitation_id])
- else - else
= form_tag service_inviter_path do = form_tag service_inviter_path do
= select_tag(:aspect_id, options_from_collection_for_select(@all_aspects, 'id', 'name')) = select_tag(:aspect_id, options_from_collection_for_select(@all_aspects, 'id', 'name'))

View file

@ -427,6 +427,8 @@ en:
inviter: inviter:
join_me_on_diaspora: "Join me on DIASPORA*" join_me_on_diaspora: "Join me on DIASPORA*"
click_link_to_accept_invitation: "Click this link to accept your invitation" click_link_to_accept_invitation: "Click this link to accept your invitation"
finder:
resend: "resend"
notifier: notifier:
hello: "Hello %{name}!" hello: "Hello %{name}!"
love: "love," love: "love,"

View file

@ -101,12 +101,6 @@ describe ServicesController do
@invite_params = {:provider => @service1.provider, :uid => @uid, :aspect_id => @user.aspects.first.id} @invite_params = {:provider => @service1.provider, :uid => @uid, :aspect_id => @user.aspects.first.id}
end end
it 'creates an invitation' do
lambda {
put :inviter, @invite_params
}.should change(Invitation, :count).by(1)
end
it 'sets the subject' do it 'sets the subject' do
put :inviter, @invite_params put :inviter, @invite_params
assigns[:subject].should_not be_nil assigns[:subject].should_not be_nil
@ -122,6 +116,20 @@ describe ServicesController do
response.location.should match(/https:\/\/www\.facebook\.com\/\?compose=1&id=.*&subject=.*&message=.*&sk=messages/) response.location.should match(/https:\/\/www\.facebook\.com\/\?compose=1&id=.*&subject=.*&message=.*&sk=messages/)
end end
it 'creates an invitation' do
lambda {
put :inviter, @invite_params
}.should change(Invitation, :count).by(1)
end
it 'does not create a duplicate invitation' do
inv = Invitation.create!(:sender_id => @user.id, :recipient_id => eve.id, :aspect_id => @user.aspects.first.id)
@invite_params[:invitation_id] = inv.id
lambda {
put :inviter, @invite_params
}.should_not change(Invitation, :count)
end
end end
end end

View file

@ -82,14 +82,14 @@ JSON
end end
it 'contains an invitation if invited' do it 'contains an invitation if invited' do
@inv = Invitation.create(:sender => @user, :recipient => @user2, :aspect => @user.aspects.first) @inv = Invitation.create(:sender => @user, :recipient => @user2, :aspect => @user.aspects.first)
@service.finder.values.first[:invitation].should be_true @service.finder.values.first[:invitation_id].should == @inv.id
end end
it 'does not find the user with a wrong identifier' do it 'does not find the user with a wrong identifier' do
@user2.invitation_identifier = 'dsaofhnadsoifnsdanf' @user2.invitation_identifier = 'dsaofhnadsoifnsdanf'
@user2.save @user2.save
@inv = Invitation.create(:sender => @user, :recipient => @user2, :aspect => @user.aspects.first) @inv = Invitation.create(:sender => @user, :recipient => @user2, :aspect => @user.aspects.first)
@service.finder.values.first[:invitation].should be_nil @service.finder.values.first[:invitation_id].should be_nil
end end
end end
end end