few cucumber steps failing. wip.
This commit is contained in:
parent
dfeb4f3a13
commit
ebb17ff70c
13 changed files with 98 additions and 8 deletions
|
|
@ -8,7 +8,7 @@ module LikesHelper
|
||||||
links.join(", ").html_safe
|
links.join(", ").html_safe
|
||||||
end
|
end
|
||||||
|
|
||||||
def like_action(post)
|
def like_action(post, current_user=current_user)
|
||||||
if current_user.liked?(post)
|
if current_user.liked?(post)
|
||||||
link_to t('shared.stream_element.unlike'), like_path(:post_id => post.id, :id => 'xxx'), :method => :delete, :class => 'unlike', :remote => true
|
link_to t('shared.stream_element.unlike'), like_path(:post_id => post.id, :id => 'xxx'), :method => :delete, :class => 'unlike', :remote => true
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,21 @@ class Notifier < ActionMailer::Base
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def liked(recipient_id, sender_id, like_id)
|
||||||
|
@receiver = User.find_by_id(recipient_id)
|
||||||
|
@sender = Person.find_by_id(sender_id)
|
||||||
|
@like = Like.find(like_id)
|
||||||
|
|
||||||
|
log_mail(recipient_id, sender_id, 'liked')
|
||||||
|
|
||||||
|
attachments.inline['logo_caps.png'] = ATTACHMENT
|
||||||
|
|
||||||
|
I18n.with_locale(@receiver.language) do
|
||||||
|
mail(:to => "\"#{@receiver.name}\" <#{@receiver.email}>",
|
||||||
|
:subject => I18n.t('notifier.liked.subject', :name => @sender.name), :host => AppConfig[:pod_uri].host)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def mentioned(recipient_id, sender_id, target_id)
|
def mentioned(recipient_id, sender_id, target_id)
|
||||||
@receiver = User.find_by_id(recipient_id)
|
@receiver = User.find_by_id(recipient_id)
|
||||||
@sender = Person.find_by_id(sender_id)
|
@sender = Person.find_by_id(sender_id)
|
||||||
|
|
|
||||||
9
app/models/jobs/mail_liked.rb
Normal file
9
app/models/jobs/mail_liked.rb
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
module Job
|
||||||
|
class MailLiked < Base
|
||||||
|
@queue = :mail
|
||||||
|
def self.perform_delegate(recipient_id, sender_id, like_id)
|
||||||
|
Notifier.liked(recipient_id, sender_id, like_id).deliver
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
@ -39,4 +39,8 @@ class Like < ActiveRecord::Base
|
||||||
def parent= parent
|
def parent= parent
|
||||||
self.post = parent
|
self.post = parent
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def notification_type(user, person)
|
||||||
|
Notifications::Liked unless user.person == person
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
8
app/models/notifications/liked.rb
Normal file
8
app/models/notifications/liked.rb
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
class Notifications::Liked < Notification
|
||||||
|
def mail_job
|
||||||
|
Job::MailLiked
|
||||||
|
end
|
||||||
|
def translation_key
|
||||||
|
'liked'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -10,7 +10,8 @@ class UserPreference < ActiveRecord::Base
|
||||||
"private_message",
|
"private_message",
|
||||||
"request_acceptance",
|
"request_acceptance",
|
||||||
"request_received",
|
"request_received",
|
||||||
"also_commented"]
|
"also_commented",
|
||||||
|
"liked"]
|
||||||
|
|
||||||
def must_be_valid_email_type
|
def must_be_valid_email_type
|
||||||
unless VALID_EMAIL_TYPES.include?(self.email_type)
|
unless VALID_EMAIL_TYPES.include?(self.email_type)
|
||||||
|
|
|
||||||
12
app/views/notifier/liked.html.haml
Normal file
12
app/views/notifier/liked.html.haml
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
%p
|
||||||
|
= t('notifier.hello', :name => @receiver.profile.first_name)
|
||||||
|
%p
|
||||||
|
= t('.liked', :name => "#{@sender.name} (#{@sender.diaspora_handle})")
|
||||||
|
|
||||||
|
%br
|
||||||
|
= link_to t('.sign_in'), status_message_url(@like.post)
|
||||||
|
|
||||||
|
%br
|
||||||
|
= t('notifier.love')
|
||||||
|
%br
|
||||||
|
= t('notifier.diaspora')
|
||||||
7
app/views/notifier/liked.text.haml
Normal file
7
app/views/notifier/liked.text.haml
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
!= t('notifier.hello', :name => @receiver.profile.first_name)
|
||||||
|
!= t('.liked', :name => "#{@sender.name} (#{@sender.diaspora_handle})")
|
||||||
|
|
||||||
|
!= link_to t('.sign_in'), status_message_url(@like.post)
|
||||||
|
|
||||||
|
!= t('notifier.love')
|
||||||
|
!= t('notifier.diaspora')
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
- unless (defined?(@commenting_disabled) && @commenting_disabled)
|
- unless (defined?(@commenting_disabled) && @commenting_disabled)
|
||||||
|
|
|
|
||||||
%span.like_action
|
%span.like_action
|
||||||
= like_action(post)
|
= like_action(post, current_user)
|
||||||
|
|
|
|
||||||
= link_to t('comments.new_comment.comment'), '#', :class => 'focus_comment_textarea'
|
= link_to t('comments.new_comment.comment'), '#', :class => 'focus_comment_textarea'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -105,6 +105,11 @@
|
||||||
= type.label t('.request_acceptence')
|
= type.label t('.request_acceptence')
|
||||||
= type.check_box :request_acceptance, {:checked => @email_prefs['request_acceptance']}, false, true
|
= type.check_box :request_acceptance, {:checked => @email_prefs['request_acceptance']}, false, true
|
||||||
|
|
||||||
|
%br
|
||||||
|
%p.checkbox_select
|
||||||
|
= type.label t('.liked')
|
||||||
|
= type.check_box :liked, {:checked => @email_prefs['liked']}, false, true
|
||||||
|
|
||||||
%br
|
%br
|
||||||
= f.submit t('.change')
|
= f.submit t('.change')
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -341,6 +341,10 @@ en:
|
||||||
private_message: "has sent you a private message:"
|
private_message: "has sent you a private message:"
|
||||||
message_subject: "Subject: %{subject}"
|
message_subject: "Subject: %{subject}"
|
||||||
sign_in: "Sign in to view it."
|
sign_in: "Sign in to view it."
|
||||||
|
liked:
|
||||||
|
subject: "%{name} has just liked your post"
|
||||||
|
liked: "%{name} has just liked your post"
|
||||||
|
sign_in: "Sign to view it"
|
||||||
|
|
||||||
people:
|
people:
|
||||||
zero: "no people"
|
zero: "no people"
|
||||||
|
|
@ -620,6 +624,7 @@ en:
|
||||||
request_received: "...you receive a new share request?"
|
request_received: "...you receive a new share request?"
|
||||||
request_acceptence: "...your share request is accepted?"
|
request_acceptence: "...your share request is accepted?"
|
||||||
private_message: "...you receive a private message?"
|
private_message: "...you receive a private message?"
|
||||||
|
liked: "...someone likes your post?"
|
||||||
change: "Change"
|
change: "Change"
|
||||||
destroy: "Account successfully closed."
|
destroy: "Account successfully closed."
|
||||||
getting_started:
|
getting_started:
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,6 @@ describe Notifier do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
describe ".mentioned" do
|
describe ".mentioned" do
|
||||||
before do
|
before do
|
||||||
@user = alice
|
@user = alice
|
||||||
|
|
@ -100,11 +99,11 @@ describe Notifier do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has the receivers name in the body' do
|
it 'has the receivers name in the body' do
|
||||||
@mail.body.encoded.include?(@user.person.profile.first_name).should be true
|
@mail.body.encoded.include?(@user.person.profile.first_name).should be_true
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has the name of person mentioning in the body' do
|
it 'has the name of person mentioning in the body' do
|
||||||
@mail.body.encoded.include?(@sm.author.name).should be true
|
@mail.body.encoded.include?(@sm.author.name).should be_true
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has the post text in the body' do
|
it 'has the post text in the body' do
|
||||||
|
|
@ -116,6 +115,30 @@ describe Notifier do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe ".liked" do
|
||||||
|
before do
|
||||||
|
@sm = Factory(:status_message, :author => alice.person)
|
||||||
|
@like = @sm.likes.create(:author => bob.person)
|
||||||
|
@mail = Notifier.liked(alice.id, @like.author.id, @like.id)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'goes to the right person' do
|
||||||
|
@mail.to.should == [alice.email]
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'has the receivers name in the body' do
|
||||||
|
@mail.body.encoded.include?(alice.person.profile.first_name).should be true
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'has the name of person liking in the body' do
|
||||||
|
@mail.body.encoded.include?(@like.author.name).should be_true
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should not include translation missing' do
|
||||||
|
@mail.body.encoded.should_not include("missing")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe ".private_message" do
|
describe ".private_message" do
|
||||||
before do
|
before do
|
||||||
@user2 = bob
|
@user2 = bob
|
||||||
|
|
@ -152,6 +175,7 @@ describe Notifier do
|
||||||
@mail.body.encoded.should_not include("missing")
|
@mail.body.encoded.should_not include("missing")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "comments" do
|
context "comments" do
|
||||||
let!(:connect) { connect_users(user, aspect, user2, aspect2)}
|
let!(:connect) { connect_users(user, aspect, user2, aspect2)}
|
||||||
let!(:sm) {user.post(:status_message, :text => "Sunny outside", :to => :all)}
|
let!(:sm) {user.post(:status_message, :text => "Sunny outside", :to => :all)}
|
||||||
|
|
|
||||||
|
|
@ -242,13 +242,13 @@ describe User do
|
||||||
alice.disable_mail = true
|
alice.disable_mail = true
|
||||||
proc {
|
proc {
|
||||||
alice.update_user_preferences({})
|
alice.update_user_preferences({})
|
||||||
}.should change(alice.user_preferences, :count).by(6)
|
}.should change(alice.user_preferences, :count).by(7)
|
||||||
end
|
end
|
||||||
it 'still sets new prefs to false on update' do
|
it 'still sets new prefs to false on update' do
|
||||||
alice.disable_mail = true
|
alice.disable_mail = true
|
||||||
proc {
|
proc {
|
||||||
alice.update_user_preferences({'mentioned' => false})
|
alice.update_user_preferences({'mentioned' => false})
|
||||||
}.should change(alice.user_preferences, :count).by(5)
|
}.should change(alice.user_preferences, :count).by(6)
|
||||||
alice.reload.disable_mail.should be_false
|
alice.reload.disable_mail.should be_false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue