Commit 085ef2650ea5e291dd6f704b377e631922d78f98

Authored by Nathan Broadbent
1 parent 33ae78df
Exists in master and in 1 other branch production

Send notices to either all users plus watchers, or to the configured watchers

app/models/app.rb
@@ -124,7 +124,11 @@ class App @@ -124,7 +124,11 @@ class App
124 end 124 end
125 125
126 def notification_recipients 126 def notification_recipients
127 - notify_all_users ? User.all.map(&:email).reject(&:blank?) : watchers.map(&:address) 127 + if notify_all_users
  128 + (User.all.map(&:email).reject(&:blank?) + watchers.map(&:address)).uniq
  129 + else
  130 + watchers.map(&:address)
  131 + end
128 end 132 end
129 133
130 # Copy app attributes from another app. 134 # Copy app attributes from another app.
app/views/apps/_fields.html.haml
@@ -23,7 +23,7 @@ @@ -23,7 +23,7 @@
23 = f.label :notify_on_deploys, 'Notify on deploys' 23 = f.label :notify_on_deploys, 'Notify on deploys'
24 24
25 %div.checkbox 25 %div.checkbox
26 - = f.check_box :notify_all_users, 'data-hide-when-checked' => '.watchers.nested-wrapper' 26 + = f.check_box :notify_all_users
27 = f.label :notify_all_users, 'Send notifications to all users' 27 = f.label :notify_all_users, 'Send notifications to all users'
28 28
29 29
spec/models/app_spec.rb
@@ -88,12 +88,12 @@ describe App do @@ -88,12 +88,12 @@ describe App do
88 end 88 end
89 89
90 context "notification recipients" do 90 context "notification recipients" do
91 - it "should send notices to either all users, or the configured watchers" do 91 + it "should send notices to either all users plus watchers, or the configured watchers" do
92 @app = Fabricate(:app) 92 @app = Fabricate(:app)
93 3.times { Fabricate(:user) } 93 3.times { Fabricate(:user) }
94 5.times { Fabricate(:watcher, :app => @app) } 94 5.times { Fabricate(:watcher, :app => @app) }
95 @app.notify_all_users = true 95 @app.notify_all_users = true
96 - @app.notification_recipients.size.should == 3 96 + @app.notification_recipients.size.should == 8
97 @app.notify_all_users = false 97 @app.notify_all_users = false
98 @app.notification_recipients.size.should == 5 98 @app.notification_recipients.size.should == 5
99 end 99 end