Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
O
OHR Support
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
97
Issues
97
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
OHR Support
Commits
4a3e32b0
Commit
4a3e32b0
authored
Jul 08, 2011
by
Eric Davis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[#514] Fix forum notifications, only one email per created Message
parent
1bfe6715
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
13 additions
and
7 deletions
+13
-7
mailer.rb
app/models/mailer.rb
+1
-1
message_observer.rb
app/models/message_observer.rb
+2
-5
mailer_test.rb
test/unit/mailer_test.rb
+1
-1
message_test.rb
test/unit/message_test.rb
+9
-0
No files found.
app/models/mailer.rb
View file @
4a3e32b0
...
@@ -185,7 +185,7 @@ class Mailer < ActionMailer::Base
...
@@ -185,7 +185,7 @@ class Mailer < ActionMailer::Base
cc
((
message
.
root
.
watcher_recipients
+
message
.
board
.
watcher_recipients
).
uniq
-
@recipients
)
cc
((
message
.
root
.
watcher_recipients
+
message
.
board
.
watcher_recipients
).
uniq
-
@recipients
)
subject
"[
#{
message
.
board
.
project
.
name
}
-
#{
message
.
board
.
name
}
- msg
#{
message
.
root
.
id
}
]
#{
message
.
subject
}
"
subject
"[
#{
message
.
board
.
project
.
name
}
-
#{
message
.
board
.
name
}
- msg
#{
message
.
root
.
id
}
]
#{
message
.
subject
}
"
body
:message
=>
message
,
body
:message
=>
message
,
:message_url
=>
url_for
(
message
.
last_journal
.
event_url
)
:message_url
=>
url_for
(
{
:controller
=>
'messages'
,
:action
=>
'show'
,
:board_id
=>
message
.
board
,
:id
=>
message
.
root
,
:r
=>
message
,
:anchor
=>
"message-
#{
message
.
id
}
"
}
)
render_multipart
(
'message_posted'
,
body
)
render_multipart
(
'message_posted'
,
body
)
end
end
...
...
app/models/message_observer.rb
View file @
4a3e32b0
...
@@ -12,10 +12,7 @@
...
@@ -12,10 +12,7 @@
#++
#++
class
MessageObserver
<
ActiveRecord
::
Observer
class
MessageObserver
<
ActiveRecord
::
Observer
def
after_save
(
message
)
def
after_create
(
message
)
if
message
.
last_journal
.
version
==
1
Mailer
.
deliver_message_posted
(
message
)
if
Setting
.
notified_events
.
include?
(
'message_posted'
)
# Only deliver mails for the first journal
Mailer
.
deliver_message_posted
(
message
)
if
Setting
.
notified_events
.
include?
(
'message_posted'
)
end
end
end
end
end
test/unit/mailer_test.rb
View file @
4a3e32b0
...
@@ -179,7 +179,7 @@ class MailerTest < ActiveSupport::TestCase
...
@@ -179,7 +179,7 @@ class MailerTest < ActiveSupport::TestCase
assert_nil
mail
.
references
assert_nil
mail
.
references
assert_select_email
do
assert_select_email
do
# link to the message
# link to the message
assert_select
"a[href=?]"
,
"http://mydomain.foo/boards/
#{
message
.
board
.
id
}
/topics/
#{
message
.
id
}
"
,
:text
=>
message
.
subject
assert_select
"a[href
*
=?]"
,
"http://mydomain.foo/boards/
#{
message
.
board
.
id
}
/topics/
#{
message
.
id
}
"
,
:text
=>
message
.
subject
end
end
end
end
...
...
test/unit/message_test.rb
View file @
4a3e32b0
...
@@ -16,6 +16,7 @@ class MessageTest < ActiveSupport::TestCase
...
@@ -16,6 +16,7 @@ class MessageTest < ActiveSupport::TestCase
fixtures
:projects
,
:roles
,
:members
,
:member_roles
,
:boards
,
:messages
,
:users
,
:watchers
fixtures
:projects
,
:roles
,
:members
,
:member_roles
,
:boards
,
:messages
,
:users
,
:watchers
def
setup
def
setup
Setting
.
notified_events
=
[
'message_posted'
]
@board
=
Board
.
find
(
1
)
@board
=
Board
.
find
(
1
)
@user
=
User
.
find
(
1
)
@user
=
User
.
find
(
1
)
end
end
...
@@ -138,4 +139,12 @@ class MessageTest < ActiveSupport::TestCase
...
@@ -138,4 +139,12 @@ class MessageTest < ActiveSupport::TestCase
message
.
sticky
=
'1'
message
.
sticky
=
'1'
assert_equal
1
,
message
.
sticky
assert_equal
1
,
message
.
sticky
end
end
test
"email notifications for creating a message"
do
assert_difference
(
"ActionMailer::Base.deliveries.count"
)
do
message
=
Message
.
new
(
:board
=>
@board
,
:subject
=>
'Test message'
,
:content
=>
'Test message content'
,
:author
=>
@user
)
assert
message
.
save
end
end
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment