diff --git a/app/controllers/invitations_controller.rb b/app/controllers/invitations_controller.rb index 8448bd6c2..95de0e13c 100644 --- a/app/controllers/invitations_controller.rb +++ b/app/controllers/invitations_controller.rb @@ -7,8 +7,8 @@ class InvitationsController < Devise::InvitationsController before_filter :check_token, :only => [:edit] def new - sent_invitations = current_user.invitations_from_me.includes(:recipient) - @emails_delivered = sent_invitations.map!{ |i| i.recipient.email } + @sent_invitations = current_user.invitations_from_me.includes(:recipient) + #emails_delivered = sent_invitations.map!{ |i| i.recipient.email } end def create @@ -59,7 +59,10 @@ class InvitationsController < Devise::InvitationsController def resend invitation = current_user.invitations_from_me.where(:id => params[:id]).first - Resque.enqueue(Job::ResendInvitation, invitation.id) if invitation + if invitation + Resque.enqueue(Job::ResendInvitation, invitation.id) + flash[:notice] = I18n.t('invitations.create.sent') + invitation.recipient.email + end redirect_to :back end diff --git a/app/models/invitation.rb b/app/models/invitation.rb index d9752a4be..2e5c787d8 100644 --- a/app/models/invitation.rb +++ b/app/models/invitation.rb @@ -79,6 +79,10 @@ class Invitation < ActiveRecord::Base invitee end + def resend + recipient.invite! + end + def to_request! request = sender.send_contact_request_to(recipient.person, aspect) destroy if request diff --git a/app/views/invitations/new.html.haml b/app/views/invitations/new.html.haml index bc22cd3ea..48d0f137c 100644 --- a/app/views/invitations/new.html.haml +++ b/app/views/invitations/new.html.haml @@ -36,10 +36,11 @@ %p = invite.submit t('.send_an_invitation') - - if !@emails_delivered.empty? + - if !@sent_invitations.empty? .span-4.last #already_invited_pane %h4 = t('.already_invited') - - for email in @emails_delivered - = email + - for invitation in @sent_invitations + = invitation.recipient.email + = link_to "Resend", invitation_resend_path(invitation), :confirm => t('are_you_sure') diff --git a/config/routes.rb b/config/routes.rb index 9c6f061f5..505642ec7 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -31,10 +31,15 @@ Diaspora::Application.routes.draw do match 'photos/make_profile_photo' => 'photos#make_profile_photo' resources :photos, :except => [:index] - match 'invitations/resend/:id' => 'invitations#resend' + devise_for :users, :controllers => {:registrations => "registrations", :password => "devise/passwords", - :invitations => "invitations"} + :invitations => "invitations"} do + + get 'invitations/resend/:id' => 'invitations#resend', :as => 'invitation_resend' + end + + # added public route to user match 'public/:username', :to => 'users#public' match 'getting_started', :to => 'users#getting_started', :as => 'getting_started' diff --git a/spec/models/invitation_spec.rb b/spec/models/invitation_spec.rb index 0e9a72742..42518572d 100644 --- a/spec/models/invitation_spec.rb +++ b/spec/models/invitation_spec.rb @@ -301,7 +301,8 @@ describe Invitation do describe '.resend' do before do aspect - @invitation = Invitation.new(:sender => user, :recipient => user2, :aspect => aspect) + user.invite_user("a@a.com", aspect.id) + @invitation = user.reload.invitations_from_me.first end it 'sends another email' do