Module: NotificationsHelper

Includes:
PeopleHelper, PostsHelper
Defined in:
app/helpers/notifications_helper.rb

Instance Method Summary collapse

Methods included from PostsHelper

#post_iframe_url, #post_page_title

Methods included from PeopleHelper

#birthday_format, #local_or_remote_person_path, #person_href, #person_image_link, #person_image_tag, #person_link, #profile_buttons_class, #search_header, #sharing_message

Instance Method Details

#notification_message_for(note) ⇒ Object


54
55
56
# File 'app/helpers/notifications_helper.rb', line 54

def notification_message_for(note)
  object_link(note, notification_people_link(note))
end

31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'app/helpers/notifications_helper.rb', line 31

def notification_people_link(note, people=nil)
  actors =people || note.actors
  number_of_actors = actors.size
  sentence_translations = {:two_words_connector => " #{t('notifications.index.and')} ", :last_word_connector => ", #{t('notifications.index.and')} " }
  actor_links = actors.collect{ |person|
    person_link(person, :class => 'hovercardable')
  }

  if number_of_actors < 4
    message = actor_links.to_sentence(sentence_translations)
  else
    first, second, third, *others = actor_links
    others_sentence = others.to_sentence(sentence_translations)
    if others.count == 1
      others_sentence = " #{t('notifications.index.and')} " + others_sentence
    end
    message = "#{first}, #{second}, #{third},"
    message += "<a class='more' href='#'> #{t('notifications.index.and_others', :count =>(number_of_actors - 3))}</a>"
    message += "<span class='hidden'> #{others_sentence} </span>"
  end
  message.html_safe
end

5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/helpers/notifications_helper.rb', line 5

def object_link(note, actors)
  target_type = note.popup_translation_key
  actors_count = note.actors.size

  if note.instance_of?(Notifications::Mentioned)
    if post = note.linked_object
      translation(target_type, :actors => actors, :count => actors_count, :post_link => link_to(post_page_title(post), post_path(post)).html_safe)
    else
      t(note.deleted_translation_key, :actors => actors, :count => actors_count).html_safe
    end
  elsif note.instance_of?(Notifications::CommentOnPost) || note.instance_of?(Notifications::AlsoCommented) || note.instance_of?(Notifications::Reshared) || note.instance_of?(Notifications::Liked)
    if post = note.linked_object
      translation(target_type, :actors => actors, :count => actors_count, :post_author => h(post.author_name), :post_link => link_to(post_page_title(post), post_path(post), 'data-ref' => post.id, :class => 'hard_object_link').html_safe)
    else
      t(note.deleted_translation_key, :actors => actors, :count => actors_count).html_safe
    end
  else #Notifications:StartedSharing, etc.
    translation(target_type, :actors => actors, :count => actors_count)
  end
end

#the_day(i18n) ⇒ Object


58
59
60
# File 'app/helpers/notifications_helper.rb', line 58

def the_day(i18n)
  i18n[0].match(/\d/) ? i18n[0].gsub('.', '') : i18n[1].gsub('.', '')
end

#the_month(i18n) ⇒ Object


62
63
64
# File 'app/helpers/notifications_helper.rb', line 62

def the_month(i18n)
  i18n[0].match(/\d/) ? i18n[1] : i18n[0]
end

#translation(target_type, opts = {}) ⇒ Object


26
27
28
29
# File 'app/helpers/notifications_helper.rb', line 26

def translation(target_type, opts = {})
  {:post_author => nil}.merge!(opts)
  t("#{target_type}", opts).html_safe
end