Class: UserMailbox

Inherits:
Object
  • Object
show all
Defined in:
app/models/user_mailbox.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(user) ⇒ UserMailbox

Returns a new instance of UserMailbox.


4
5
6
# File 'app/models/user_mailbox.rb', line 4

def initialize(user)
  @user = user
end

Instance Attribute Details

#userObject (readonly)

Returns the value of attribute user


2
3
4
# File 'app/models/user_mailbox.rb', line 2

def user
  @user
end

Instance Method Details

#delete_allObject


28
29
30
31
32
33
# File 'app/models/user_mailbox.rb', line 28

def delete_all
  user.mailbox.inbox.each do |msg|
    delete_message(msg)
  end
  empty_trash(user)
end

#destroy(message_id) ⇒ Object


35
36
37
38
39
40
41
# File 'app/models/user_mailbox.rb', line 35

def destroy(message_id)
  msg = Mailboxer::Conversation.find(message_id)
  return "You do not have privileges to delete the notification..." unless msg.participants.include? user
  delete_message(msg)
  empty_trash(msg.participants[0])
  nil
end

#inboxObject


8
9
10
11
# File 'app/models/user_mailbox.rb', line 8

def inbox
  messages = user.mailbox.inbox
  messages.each { |m| m.mark_as_read(user) }
end

#label(locale_from_params = nil) ⇒ Object


17
18
19
20
21
22
23
24
25
26
# File 'app/models/user_mailbox.rb', line 17

def label(locale_from_params = nil)
  case unread_count
  when 0
    I18n.t("hyrax.toolbar.notifications.zero", locale: locale_from_params || preferred_locale)
  when 1
    I18n.t("hyrax.toolbar.notifications.one", locale: locale_from_params || preferred_locale)
  else
    I18n.t("hyrax.toolbar.notifications.many", count: unread_count, locale: locale_from_params || preferred_locale)
  end
end

#unread_countObject


13
14
15
# File 'app/models/user_mailbox.rb', line 13

def unread_count
  user.mailbox.inbox(unread: true).count
end