activity_notification 1.5.1 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/README.md +51 -3
  4. data/app/controllers/activity_notification/notifications_controller.rb +1 -1
  5. data/app/controllers/activity_notification/subscriptions_controller.rb +2 -1
  6. data/app/views/activity_notification/notifications/default/_default.html.erb +10 -10
  7. data/app/views/activity_notification/notifications/default/_default_without_grouping.html.erb +10 -10
  8. data/app/views/activity_notification/notifications/default/_index.html.erb +3 -3
  9. data/app/views/activity_notification/notifications/default/index.html.erb +7 -7
  10. data/app/views/activity_notification/notifications/default/open.js.erb +2 -2
  11. data/app/views/activity_notification/notifications/default/open_all.js.erb +2 -2
  12. data/app/views/activity_notification/notifications/default/show.html.erb +2 -2
  13. data/app/views/activity_notification/optional_targets/default/base/_default.text.erb +1 -1
  14. data/app/views/activity_notification/optional_targets/default/slack/_default.text.erb +1 -1
  15. data/app/views/activity_notification/subscriptions/default/_notification_keys.html.erb +2 -2
  16. data/app/views/activity_notification/subscriptions/default/_subscription.html.erb +5 -5
  17. data/app/views/activity_notification/subscriptions/default/show.html.erb +1 -1
  18. data/app/views/activity_notification/subscriptions/default/subscribe.js.erb +1 -1
  19. data/app/views/activity_notification/subscriptions/default/subscribe_to_email.js.erb +1 -1
  20. data/app/views/activity_notification/subscriptions/default/subscribe_to_optional_target.js.erb +1 -1
  21. data/app/views/activity_notification/subscriptions/default/unsubscribe.js.erb +1 -1
  22. data/app/views/activity_notification/subscriptions/default/unsubscribe_to_email.js.erb +1 -1
  23. data/app/views/activity_notification/subscriptions/default/unsubscribe_to_optional_target.js.erb +1 -1
  24. data/lib/activity_notification/apis/subscription_api.rb +2 -2
  25. data/lib/activity_notification/controllers/devise_authentication_controller.rb +16 -0
  26. data/lib/activity_notification/helpers/view_helpers.rb +113 -27
  27. data/lib/activity_notification/models/concerns/subscriber.rb +2 -1
  28. data/lib/activity_notification/models/concerns/target.rb +11 -0
  29. data/lib/activity_notification/rails/routes.rb +169 -40
  30. data/lib/activity_notification/roles/acts_as_target.rb +45 -8
  31. data/lib/activity_notification/version.rb +1 -1
  32. data/spec/controllers/notifications_with_devise_controller_spec.rb +15 -0
  33. data/spec/controllers/subscriptions_controller_shared_examples.rb +4 -3
  34. data/spec/controllers/subscriptions_with_devise_controller_spec.rb +15 -0
  35. data/spec/helpers/view_helpers_spec.rb +1 -1
  36. data/spec/rails_app/app/controllers/articles_controller.rb +2 -0
  37. data/spec/rails_app/app/models/admin.rb +2 -0
  38. data/spec/rails_app/app/views/activity_notification/optional_targets/admins/amazon_sns/comment/_default.text.erb +1 -1
  39. data/spec/rails_app/app/views/articles/index.html.erb +36 -32
  40. data/spec/rails_app/app/views/layouts/_header.html.erb +9 -1
  41. data/spec/rails_app/config/routes.rb +5 -0
  42. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6396ab94a172005c0bd940742471a388e746419e
4
- data.tar.gz: 66f4b6b5162212ef397ed3fb26dfadbbe9709d97
3
+ metadata.gz: 24f6a30a0e5feec1ffcb217bf78fa3283f4e369b
4
+ data.tar.gz: efc4c998546752ccc9bca15a2d6d35e93d9e13eb
5
5
  SHA512:
6
- metadata.gz: b3c26fad67e4e3647ac81f32e46181cfe1f420d8dd820b21f2f8f2a3039f87f200b5781a7eb203ec2a6f41d9d7a62c73aea249ee760a2de94341c987c3e16d92
7
- data.tar.gz: f7d936e5c59608b736d068ee230c7919c6369ffd98c5c543343029e7fbfed58c611c2d17910ec74be2b398729a596217a02fda5c930a27b87843c1f55f81a892
6
+ metadata.gz: c30d75ab0300d5895d341fe7ca2f89b039a0cc5db82c9708b335409557aa49da457e81a74a29ad4c01b0d28f93a4abf5d7652effbaad4e0e58a337187361d743
7
+ data.tar.gz: 81698f2ec06b1cc880555a1103e24348f00ab2209621e47c3b2336dc0fb747ee96f765decca07b5e6ac230455927616d393c748efa90f31f294fa3dc8d0f618a
@@ -1,3 +1,14 @@
1
+ ## 1.6.0 / 2018-11-11
2
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v1.5.1...v1.6.0)
3
+
4
+ Enhancements:
5
+
6
+ * Add simple default routes with devise integration - [#64](https://github.com/simukappu/activity_notification/issues/64)
7
+
8
+ Bug Fixes:
9
+
10
+ * Update *Subscription.optional_targets* into HashWithIndifferentAccess to fix subscriptions with mongoid
11
+
1
12
  ## 1.5.1 / 2018-08-26
2
13
  [Full Changelog](http://github.com/simukappu/activity_notification/compare/v1.5.0...v1.5.1)
3
14
 
data/README.md CHANGED
@@ -57,6 +57,7 @@
57
57
  - [Advanced notifiable path](#advanced-notifiable-path)
58
58
  - [Configuring views](#configuring-views)
59
59
  - [Configuring routes](#configuring-routes)
60
+ - [Routes with scope](#routes-with-scope)
60
61
  - [Creating notifications](#creating-notifications)
61
62
  - [Notification API](#notification-api)
62
63
  - [Automatic tracked notifications](#automatic-tracked-notifications)
@@ -83,6 +84,9 @@
83
84
  - [Managing subscriptions](#managing-subscriptions)
84
85
  - [Customizing subscriptions](#customizing-subscriptions)
85
86
  - [Integration with Devise](#integration-with-devise)
87
+ - [Configuring integration with Devise](#configuring-integration-with-devise)
88
+ - [Using different model as target](#using-different-model-as-target)
89
+ - [Configuring simple default routes](#configuring-simple-default-routes)
86
90
  - [Optional notification targets](#optional-notification-targets)
87
91
  - [Configuring optional targets](#configuring-optional-targets)
88
92
  - [Customizing message format](#customizing-message-format)
@@ -318,7 +322,22 @@ Rails.application.routes.draw do
318
322
  end
319
323
  ```
320
324
 
321
- Then, you can access several pages like *users/1/notifications* and manage open/unopen of notifications using **notifications_controller**.
325
+ Then, you can access several pages like */users/1/notifications* and manage open/unopen of notifications using **notifications_controller**.
326
+ If you use Devise integration and you want to configure simple default routes for authenticated users, see [Configuring simple default routes](#configuring-simple-default-routes).
327
+
328
+ #### Routes with scope
329
+
330
+ You can also configure *activity_notification* routes with scope like this:
331
+
332
+ ```ruby
333
+ Rails.application.routes.draw do
334
+ scope :myscope, as: :myscope do
335
+ notify_to :users, routing_scope: :myscope
336
+ end
337
+ end
338
+ ```
339
+
340
+ Then, pages are shown as */myscope/users/1/notifications*.
322
341
 
323
342
  ### Creating notifications
324
343
 
@@ -914,7 +933,9 @@ If you would like to customize subscription controllers or views, you can use ge
914
933
 
915
934
  *activity_notification* supports to integrate with devise authentication.
916
935
 
917
- First, add **:with_devise** option in notification routing to *config/routes.rb* for the target:
936
+ #### Configuring integration with Devise
937
+
938
+ Add **:with_devise** option in notification routing to *config/routes.rb* for the target:
918
939
 
919
940
  ```ruby
920
941
  Rails.application.routes.draw do
@@ -928,6 +949,8 @@ Then *activity_notification* will use **notifications_with_devise_controller** a
928
949
 
929
950
  *Hint*: HTTP 403 Forbidden will be returned for unauthorized notifications.
930
951
 
952
+ #### Using different model as target
953
+
931
954
  You can also use different model from Devise resource as a target. When you will add this to *config/routes.rb*:
932
955
 
933
956
  ```ruby
@@ -948,7 +971,32 @@ end
948
971
  ```
949
972
 
950
973
  *activity_notification* will authenticate *:admins* notifications with devise authentication for *:users*.
951
- In this example *activity_notification* will confirm the *user* who *admin* belongs to with authenticated user by devise.
974
+ In this example, *activity_notification* will confirm *admin* belonging to authenticated *user* by Devise.
975
+
976
+ #### Configuring simple default routes
977
+
978
+ You can configure simple default routes for authenticated users, like */notifications* instead of */users/1/notifications*. Use *:devise_default_routes* option like this:
979
+
980
+ ```ruby
981
+ Rails.application.routes.draw do
982
+ devise_for :users
983
+ notify_to :users, with_devise: :users, devise_default_routes: true
984
+ end
985
+ ```
986
+
987
+ If you use multiple notification targets with Devise, you can also use this option with scope like this:
988
+
989
+ ```ruby
990
+ Rails.application.routes.draw do
991
+ devise_for :users
992
+ # Integrated with devise for different model, and use with scope
993
+ scope :admins, as: :admins do
994
+ notify_to :admins, with_devise: :users, devise_default_routes: true, routing_scope: :admins
995
+ end
996
+ end
997
+ ```
998
+
999
+ Then, you can access */admins/notifications* instead of */admins/1/notifications*.
952
1000
 
953
1001
 
954
1002
  ### Optional notification targets
@@ -135,7 +135,7 @@ module ActivityNotification
135
135
  params[:reverse].to_s.to_boolean(false) : nil
136
136
  with_group_members = params[:with_group_members].present? || params[:without_grouping].present? ?
137
137
  params[:with_group_members].to_s.to_boolean(false) || params[:without_grouping].to_s.to_boolean(false) : nil
138
- @index_options = params.permit(:filter, :filtered_by_type, :filtered_by_group_type, :filtered_by_group_id, :filtered_by_key)
138
+ @index_options = params.permit(:filter, :filtered_by_type, :filtered_by_group_type, :filtered_by_group_id, :filtered_by_key, :routing_scope, :devise_default_routes)
139
139
  .to_h.symbolize_keys
140
140
  .merge(limit: limit, reverse: reverse, with_group_members: with_group_members)
141
141
  end
@@ -52,6 +52,7 @@ module ActivityNotification
52
52
  # @param [Hash] params Request parameters
53
53
  # @return [Responce] HTML view as default
54
54
  def show
55
+ set_index_options
55
56
  end
56
57
 
57
58
  # Deletes a subscription.
@@ -190,7 +191,7 @@ module ActivityNotification
190
191
  limit = params[:limit].to_i > 0 ? params[:limit].to_i : nil
191
192
  reverse = params[:reverse].present? ?
192
193
  params[:reverse].to_s.to_boolean(false) : nil
193
- @index_options = params.permit(:filter, :filtered_by_key)
194
+ @index_options = params.permit(:filter, :filtered_by_key, :routing_scope, :devise_default_routes)
194
195
  .to_h.symbolize_keys.merge(limit: limit, reverse: reverse)
195
196
  end
196
197
 
@@ -34,31 +34,31 @@
34
34
 
35
35
  <div class='<%= "notification_#{notification.id}" %>'>
36
36
  <% if notification.unopened? %>
37
- <%= link_to open_notification_path_for(notification, reload: false), method: :post, remote: true, class: "unopened_wrapper" do %>
37
+ <%= link_to open_notification_path_for(notification, parameters.slice(:routing_scope, :devise_default_routes).merge(reload: false)), method: :post, remote: true, class: "unopened_wrapper" do %>
38
38
  <div class="unopned_circle"></div>
39
39
  <div class="unopned_description_wrapper">
40
40
  <p class="unopned_description">Open</p>
41
41
  </div>
42
42
  <% end %>
43
- <%= link_to open_notification_path_for(notification, move: true), method: :post do %>
43
+ <%= link_to open_notification_path_for(notification, parameters.slice(:routing_scope, :devise_default_routes).merge(move: true)), method: :post do %>
44
44
  <%= yield :notification_content %>
45
45
  <% end %>
46
46
  <div class="unopened_wrapper"></div>
47
47
  <% else %>
48
- <%= link_to move_notification_path_for(notification) do %>
48
+ <%= link_to move_notification_path_for(notification, parameters.slice(:routing_scope, :devise_default_routes)) do %>
49
49
  <%= yield :notification_content %>
50
50
  <% end %>
51
51
  <% end %>
52
52
 
53
- <%#= link_to "Move", move_notification_path_for(notification) %>
53
+ <%#= link_to "Move", move_notification_path_for(notification, parameters.slice(:routing_scope, :devise_default_routes)) %>
54
54
  <%# if notification.unopened? %>
55
- <%#= link_to "Open and move (GET)", move_notification_path_for(notification, open: true) %>
56
- <%#= link_to "Open and move (POST)", open_notification_path_for(notification, move: true), method: :post %>
57
- <%#= link_to "Open", open_notification_path_for(notification, index_options: @index_options), method: :post %>
58
- <%#= link_to "Open (Ajax)", open_notification_path_for(notification, reload: false), method: :post, remote: true %>
55
+ <%#= link_to "Open and move (GET)", move_notification_path_for(notification, parameters.slice(:routing_scope, :devise_default_routes).merge(open: true)) %>
56
+ <%#= link_to "Open and move (POST)", open_notification_path_for(notification, parameters.slice(:routing_scope, :devise_default_routes).merge(move: true)), method: :post %>
57
+ <%#= link_to "Open", open_notification_path_for(notification, parameters.slice(:routing_scope, :devise_default_routes).merge(index_options: @index_options))), method: :post %>
58
+ <%#= link_to "Open (Ajax)", open_notification_path_for(notification, parameters.slice(:routing_scope, :devise_default_routes).merge(reload: false)), method: :post, remote: true %>
59
59
  <%# end %>
60
- <%#= link_to "Destroy", notification_path_for(notification, index_options: @index_options), method: :delete %>
61
- <%#= link_to "Destroy (Ajax)", notification_path_for(notification, reload: false), method: :delete, remote: true %>
60
+ <%#= link_to "Destroy", notification_path_for(notification, parameters.slice(:routing_scope, :devise_default_routes).merge(index_options: @index_options)), method: :delete %>
61
+ <%#= link_to "Destroy (Ajax)", notification_path_for(notification, parameters.slice(:routing_scope, :devise_default_routes).merge(reload: false)), method: :delete, remote: true %>
62
62
 
63
63
  </div>
64
64
 
@@ -23,31 +23,31 @@
23
23
 
24
24
  <div class='<%= "notification_#{notification.id}" %>'>
25
25
  <% if notification.unopened? %>
26
- <%= link_to open_notification_path_for(notification, reload: false, without_grouping: parameters[:with_group_members]), method: :post, remote: true, class: "unopened_wrapper" do %>
26
+ <%= link_to open_notification_path_for(notification, parameters.slice(:with_group_members, :routing_scope, :devise_default_routes).merge(reload: false), method: :post, remote: true, class: "unopened_wrapper" do %>
27
27
  <div class="unopned_circle"></div>
28
28
  <div class="unopned_description_wrapper">
29
29
  <p class="unopned_description">Open</p>
30
30
  </div>
31
31
  <% end %>
32
- <%= link_to open_notification_path_for(notification, move: true), method: :post do %>
32
+ <%= link_to open_notification_path_for(notification, parameters.slice(:routing_scope, :devise_default_routes).merge(move: true)), method: :post do %>
33
33
  <%= yield :notification_content %>
34
34
  <% end %>
35
35
  <div class="unopened_wrapper"></div>
36
36
  <% else %>
37
- <%= link_to move_notification_path_for(notification) do %>
37
+ <%= link_to move_notification_path_for(notification, parameters.slice(:routing_scope, :devise_default_routes)) do %>
38
38
  <%= yield :notification_content %>
39
39
  <% end %>
40
40
  <% end %>
41
41
 
42
- <%#= link_to "Move", move_notification_path_for(notification) %>
42
+ <%#= link_to "Move", move_notification_path_for(notification, parameters.slice(:routing_scope, :devise_default_routes)) %>
43
43
  <%# if notification.unopened? %>
44
- <%#= link_to "Open and move (GET)", move_notification_path_for(notification, open: true) %>
45
- <%#= link_to "Open and move (POST)", open_notification_path_for(notification, move: true), method: :post %>
46
- <%#= link_to "Open", open_notification_path_for(notification, index_options: @index_options), method: :post %>
47
- <%#= link_to "Open (Ajax)", open_notification_path_for(notification, reload: false, with_group_members: parameters[:with_group_members]), method: :post, remote: true %>
44
+ <%#= link_to "Open and move (GET)", move_notification_path_for(notification, parameters.slice(:routing_scope, :devise_default_routes).merge(open: true)) %>
45
+ <%#= link_to "Open and move (POST)", open_notification_path_for(notification, parameters.slice(:routing_scope, :devise_default_routes).merge(move: true)), method: :post %>
46
+ <%#= link_to "Open", open_notification_path_for(notification, parameters.slice(:routing_scope, :devise_default_routes).merge(index_options: @index_options)), method: :post %>
47
+ <%#= link_to "Open (Ajax)", open_notification_path_for(notification, parameters.slice(with_group_members:, :routing_scope, :devise_default_routes).merge(reload: false)), method: :post, remote: true %>
48
48
  <%# end %>
49
- <%#= link_to "Destroy", notification_path_for(notification, index_options: @index_options), method: :delete %>
50
- <%#= link_to "Destroy (Ajax)", notification_path_for(notification, reload: false, with_group_members: parameters[:with_group_members]), method: :delete, remote: true %>
49
+ <%#= link_to "Destroy", notification_path_for(notification, index_options: parameters.slice(:routing_scope, :devise_default_routes).merge(index_options: @index_options)), method: :delete %>
50
+ <%#= link_to "Destroy (Ajax)", notification_path_for(notification, parameters.slice(with_group_members:, :routing_scope, :devise_default_routes).merge(reload: false)), method: :delete, remote: true %>
51
51
 
52
52
  </div>
53
53
 
@@ -12,16 +12,16 @@
12
12
  Notifications
13
13
  </p>
14
14
  <p class="notification_header_menu">
15
- <%= link_to "Open all", open_all_notifications_path_for(@target, parameters), method: :post, remote: true %>
15
+ <%= link_to "Open all", open_all_notifications_path_for(@target, parameters.slice(:routing_scope, :devise_default_routes)), method: :post, remote: true %>
16
16
  <% if @target.class.subscription_enabled? %>
17
- <%= link_to "Subscriptions", subscriptions_path_for(@target) %>
17
+ <%= link_to "Subscriptions", subscriptions_path_for(@target, parameters.slice(:routing_scope, :devise_default_routes)) %>
18
18
  <% end %>
19
19
  </p>
20
20
  </div>
21
21
  <div class="notifications">
22
22
  <%= yield :notification_index %>
23
23
  </div>
24
- <%= link_to notifications_path_for(@target) do %>
24
+ <%= link_to notifications_path_for(@target, parameters.slice(:routing_scope, :devise_default_routes)) do %>
25
25
  <div class="notification_link_wrapper">
26
26
  <p class="notification_link">
27
27
  See notifications
@@ -1,20 +1,20 @@
1
1
  <div class="notification_wrapper">
2
2
  <div class="notification_header">
3
- <h1>Notifications to <%= @target.printable_target_name %> <%= link_to open_all_notifications_path_for(@target, @index_options), method: :post, remote: true do %><span class="notification_count"><span class="<%= 'unopened' if @target.has_unopened_notifications?(@index_options) %>"><%= @target.unopened_notification_count(@index_options) %></span></span><% end %></h1>
3
+ <h1>Notifications to <%= @target.printable_target_name %> <%= link_to open_all_notifications_path_for(@target, @index_options.slice(:routing_scope, :devise_default_routes)), method: :post, remote: true do %><span class="notification_count"><span class="<%= 'unopened' if @target.has_unopened_notifications?(@index_options) %>"><%= @target.unopened_notification_count(@index_options) %></span></span><% end %></h1>
4
4
  </div>
5
5
  <div class="notifications">
6
6
  <% if @index_options[:with_group_members] %>
7
- <%= render_notification @notifications, fallback: :default_without_grouping, with_group_members: true %>
7
+ <%= render_notification @notifications, @index_options.slice(:routing_scope, :devise_default_routes).merge(fallback: :default_without_grouping, with_group_members: true) %>
8
8
  <% else %>
9
- <%= render_notification @notifications, fallback: :default %>
10
- <%#= render_notification @notifications, fallback: :text %>
9
+ <%= render_notification @notifications, @index_options.slice(:routing_scope, :devise_default_routes).merge(fallback: :default) %>
10
+ <%#= render_notification @notifications, @index_options.merge(fallback: :text) %>
11
11
  <% end %>
12
12
  </div>
13
13
  </div>
14
14
 
15
- <%#= render_notifications_of @target, fallback: :default, index_content: :with_attributes %>
16
- <%#= render_notifications_of @target, fallback: :default, index_content: :unopened_with_attributes, reverse: true %>
17
- <%#= render_notifications_of @target, fallback: :default_without_grouping, index_content: :with_attributes, with_group_members: true %>
15
+ <%#= render_notifications_of @target, @index_options.slice(:routing_scope, :devise_default_routes).merge(fallback: :default, index_content: :with_attributes) %>
16
+ <%#= render_notifications_of @target, @index_options.slice(:routing_scope, :devise_default_routes).merge(fallback: :default, index_content: :unopened_with_attributes, reverse: true) %>
17
+ <%#= render_notifications_of @target, @index_options.slice(:routing_scope, :devise_default_routes).merge(fallback: :default_without_grouping, index_content: :with_attributes, with_group_members: true) %>
18
18
 
19
19
  <style>
20
20
  .notification_wrapper .notification_header h1 span span{
@@ -1,6 +1,6 @@
1
1
  $(".notification_count").html("<span class=\"<%= 'unopened' if @target.has_unopened_notifications?(@index_options) %>\"><%= @target.unopened_notification_count(@index_options) %></span>");
2
2
  <% if @index_options[:with_group_members] %>
3
- $('<%= ".notification_#{@notification.id}" %>').html("<%= escape_javascript( render_notification(@notification, fallback: :default_without_grouping, with_group_members: true) ) %>");
3
+ $('<%= ".notification_#{@notification.id}" %>').html("<%= escape_javascript( render_notification(@notification, @index_options.slice(:routing_scope, :devise_default_routes).merge(fallback: :default_without_grouping, with_group_members: true)) ) %>");
4
4
  <% else %>
5
- $('<%= ".notification_#{@notification.id}" %>').html("<%= escape_javascript( render_notification(@notification, fallback: :default) ) %>");
5
+ $('<%= ".notification_#{@notification.id}" %>').html("<%= escape_javascript( render_notification(@notification, @index_options.slice(:routing_scope, :devise_default_routes).merge(fallback: :default)) ) %>");
6
6
  <% end %>
@@ -1,6 +1,6 @@
1
1
  $(".notification_count").html("<span class=\"<%= 'unopened' if @target.has_unopened_notifications?(@index_options) %>\"><%= @target.unopened_notification_count(@index_options) %></span>");
2
2
  <% if @index_options[:with_group_members] %>
3
- $(".notifications").html("<%= escape_javascript( render_notification(@notifications, fallback: :default_without_grouping, with_group_members: true) ) %>");
3
+ $(".notifications").html("<%= escape_javascript( render_notification(@notifications, @index_options.slice(:routing_scope, :devise_default_routes).merge(fallback: :default_without_grouping, with_group_members: true)) ) %>");
4
4
  <% else %>
5
- $(".notifications").html("<%= escape_javascript( render_notification(@notifications, fallback: :default) ) %>");
5
+ $(".notifications").html("<%= escape_javascript( render_notification(@notifications, @index_options.slice(:routing_scope, :devise_default_routes).merge(fallback: :default)) ) %>");
6
6
  <% end %>
@@ -4,8 +4,8 @@
4
4
  </div>
5
5
  <ul>
6
6
  <div class="notifications">
7
- <%= render_notification(@notification, fallback: :default) %>
8
- <%#= render_notification @notification, fallback: :text %>
7
+ <%= render_notification @notification, @index_options.slice(:routing_scope, :devise_default_routes).merge(fallback: :default) %>
8
+ <%#= render_notification @notification, @index_options.slice(:routing_scope, :devise_default_routes).merge(fallback: :text) %>
9
9
  </div>
10
10
  </ul>
11
11
  </div>
@@ -3,7 +3,7 @@ Dear <%= @target.printable_target_name %>
3
3
  <%= @notification.notifier.present? ? @notification.notifier.printable_notifier_name : 'Someone' %> notified you of <%= @notification.notifiable.printable_notifiable_name(@notification.target) %><%= " in #{@notification.group.printable_group_name}" if @notification.group.present? %>.
4
4
 
5
5
  <%= "Move to notified #{@notification.notifiable.printable_type.downcase}:" %>
6
- <%= move_notification_url_for(@notification, open: true) %>
6
+ <%= move_notification_url_for(@notification, parameters.slice(:routing_scope, :devise_default_routes).merge(open: true)) %>
7
7
 
8
8
  Thank you!
9
9
 
@@ -3,4 +3,4 @@
3
3
  <%= @notification.notifier.present? ? @notification.notifier.printable_notifier_name : 'Someone' %> notified you of <%= @notification.notifiable.printable_notifiable_name(@notification.target) %><%= " in #{@notification.group.printable_group_name}" if @notification.group.present? %>.
4
4
 
5
5
  <%= "Move to notified #{@notification.notifiable.printable_type.downcase}:" %>
6
- <%= move_notification_url_for(@notification, open: true) %>
6
+ <%= move_notification_url_for(@notification, parameters.slice(:routing_scope, :devise_default_routes).merge(open: true)) %>
@@ -9,7 +9,7 @@
9
9
  <%= key %>
10
10
  </h3>
11
11
  <p>
12
- <%= link_to "Notifications", notifications_path_for(target, filtered_by_key: key) %>
12
+ <%= link_to "Notifications", notifications_path_for(target, option_params.merge(filtered_by_key: key)) %>
13
13
  </p>
14
14
  </div>
15
15
  <div class="field_wrapper subscribing">
@@ -97,7 +97,7 @@
97
97
  <%#= f.submit "Save" %>
98
98
  </div>
99
99
  <%# end %>
100
- <%#= link_to "See notifications", notifications_path_for(target, filtered_by_key: key) %>
100
+ <%#= link_to "See notifications", notifications_path_for(target, option_params.merge(filtered_by_key: key)) %>
101
101
  <br/><br/>
102
102
  <%# end %>
103
103
  <%# else %>
@@ -5,7 +5,7 @@
5
5
  </h3>
6
6
 
7
7
  <p>
8
- <%= link_to "Notifications", notifications_path_for(subscription.target, filtered_by_key: subscription.key) %>
8
+ <%= link_to "Notifications", notifications_path_for(subscription.target, option_params.merge(filtered_by_key: subscription.key)) %>
9
9
  </p>
10
10
  </div>
11
11
 
@@ -48,14 +48,14 @@
48
48
  <div class="field">
49
49
  <div class="ui checkbox">
50
50
  <% if subscription.subscribing_to_email? %>
51
- <%= link_to unsubscribe_to_email_url_for(subscription, option_params), onclick: '$(this).find("input").prop("checked", false)', method: :post, remote: true do %>
51
+ <%= link_to unsubscribe_to_email_path_for(subscription, option_params), onclick: '$(this).find("input").prop("checked", false)', method: :post, remote: true do %>
52
52
  <label>
53
53
  <%= check_box :subscribing_to_email, "", { checked: true }, 'true', 'false' %>
54
54
  <div class="slider"></div>
55
55
  </label>
56
56
  <% end %>
57
57
  <% else %>
58
- <%= link_to subscribe_to_email_url_for(subscription, option_params), onclick: '$(this).find("input").prop("checked", true)', method: :post, remote: true do %>
58
+ <%= link_to subscribe_to_email_path_for(subscription, option_params), onclick: '$(this).find("input").prop("checked", true)', method: :post, remote: true do %>
59
59
  <label>
60
60
  <%= check_box :subscribing_to_email, "", { checked: false }, 'true', 'false' %>
61
61
  <div class="slider"></div>
@@ -76,14 +76,14 @@
76
76
  <div class="field">
77
77
  <div class="ui checkbox">
78
78
  <% if subscription.subscribing_to_optional_target?(optional_target_name) %>
79
- <%= link_to unsubscribe_to_optional_target_url_for(subscription, option_params.merge(optional_target_name: optional_target_name)), onclick: '$(this).find("input").prop("checked", false)', method: :post, remote: true do %>
79
+ <%= link_to unsubscribe_to_optional_target_path_for(subscription, option_params.merge(optional_target_name: optional_target_name)), onclick: '$(this).find("input").prop("checked", false)', method: :post, remote: true do %>
80
80
  <label>
81
81
  <%= check_box optional_target_name, "", { checked: true }, 'true', 'false' %>
82
82
  <div class="slider"></div>
83
83
  </label>
84
84
  <% end %>
85
85
  <% else %>
86
- <%= link_to subscribe_to_optional_target_url_for(subscription, option_params.merge(optional_target_name: optional_target_name)), onclick: '$(this).find("input").prop("checked", true)', method: :post, remote: true do %>
86
+ <%= link_to subscribe_to_optional_target_path_for(subscription, option_params.merge(optional_target_name: optional_target_name)), onclick: '$(this).find("input").prop("checked", true)', method: :post, remote: true do %>
87
87
  <label>
88
88
  <%= check_box optional_target_name, "", { checked: false }, 'true', 'false' %>
89
89
  <div class="slider"></div>
@@ -4,7 +4,7 @@
4
4
  </div>
5
5
  <div class="fields_area">
6
6
  <div class="subscription" id="subscription">
7
- <%= render 'subscription', subscription: @subscription, option_params: {} %>
7
+ <%= render 'subscription', subscription: @subscription, option_params: @index_options %>
8
8
  </div>
9
9
  </div>
10
10
  </div>
@@ -1,6 +1,6 @@
1
1
  setTimeout(function () {
2
2
  $("#subscriptions").html("<%= escape_javascript( render 'subscriptions', subscriptions: @subscriptions, option_params: @index_options ) %>");
3
- $("#subscription").html("<%= escape_javascript( render 'subscription', subscription: @subscription, option_params: {} ) %>");
3
+ $("#subscription").html("<%= escape_javascript( render 'subscription', subscription: @subscription, option_params: @index_options ) %>");
4
4
  }, 400);
5
5
  $("#notification_keys").html("<%= escape_javascript( render 'notification_keys', target: @target, notification_keys: @notification_keys, option_params: @index_options ) %>");
6
6
  $("#subscription_form").html("<%= escape_javascript( render 'form', target: @target, option_params: @index_options ) %>");
@@ -1,5 +1,5 @@
1
1
  $("#subscriptions").html("<%= escape_javascript( render 'subscriptions', subscriptions: @subscriptions, option_params: @index_options ) %>");
2
- $("#subscription").html("<%= escape_javascript( render 'subscription', subscription: @subscription, option_params: {} ) %>");
2
+ $("#subscription").html("<%= escape_javascript( render 'subscription', subscription: @subscription, option_params: @index_options ) %>");
3
3
  $("#notification_keys").html("<%= escape_javascript( render 'notification_keys', target: @target, notification_keys: @notification_keys, option_params: @index_options ) %>");
4
4
  $("#subscription_form").html("<%= escape_javascript( render 'form', target: @target, option_params: @index_options ) %>");
5
5
 
@@ -1,5 +1,5 @@
1
1
  $("#subscriptions").html("<%= escape_javascript( render 'subscriptions', subscriptions: @subscriptions, option_params: @index_options ) %>");
2
- $("#subscription").html("<%= escape_javascript( render 'subscription', subscription: @subscription, option_params: {} ) %>");
2
+ $("#subscription").html("<%= escape_javascript( render 'subscription', subscription: @subscription, option_params: @index_options ) %>");
3
3
  $("#notification_keys").html("<%= escape_javascript( render 'notification_keys', target: @target, notification_keys: @notification_keys, option_params: @index_options ) %>");
4
4
  $("#subscription_form").html("<%= escape_javascript( render 'form', target: @target, option_params: @index_options ) %>");
5
5
 
@@ -1,6 +1,6 @@
1
1
  setTimeout(function () {
2
2
  $("#subscriptions").html("<%= escape_javascript( render 'subscriptions', subscriptions: @subscriptions, option_params: @index_options ) %>");
3
- $("#subscription").html("<%= escape_javascript( render 'subscription', subscription: @subscription, option_params: {} ) %>");
3
+ $("#subscription").html("<%= escape_javascript( render 'subscription', subscription: @subscription, option_params: @index_options ) %>");
4
4
  }, 400);
5
5
  $("#notification_keys").html("<%= escape_javascript( render 'notification_keys', target: @target, notification_keys: @notification_keys, option_params: @index_options ) %>");
6
6
  $("#subscription_form").html("<%= escape_javascript( render 'form', target: @target, option_params: @index_options ) %>");
@@ -1,5 +1,5 @@
1
1
  $("#subscriptions").html("<%= escape_javascript( render 'subscriptions', subscriptions: @subscriptions, option_params: @index_options ) %>");
2
- $("#subscription").html("<%= escape_javascript( render 'subscription', subscription: @subscription, option_params: {} ) %>");
2
+ $("#subscription").html("<%= escape_javascript( render 'subscription', subscription: @subscription, option_params: @index_options ) %>");
3
3
  $("#notification_keys").html("<%= escape_javascript( render 'notification_keys', target: @target, notification_keys: @notification_keys, option_params: @index_options ) %>");
4
4
  $("#subscription_form").html("<%= escape_javascript( render 'form', target: @target, option_params: @index_options ) %>");
5
5
 
@@ -1,5 +1,5 @@
1
1
  $("#subscriptions").html("<%= escape_javascript( render 'subscriptions', subscriptions: @subscriptions, option_params: @index_options ) %>");
2
- $("#subscription").html("<%= escape_javascript( render 'subscription', subscription: @subscription, option_params: {} ) %>");
2
+ $("#subscription").html("<%= escape_javascript( render 'subscription', subscription: @subscription, option_params: @index_options ) %>");
3
3
  $("#notification_keys").html("<%= escape_javascript( render 'notification_keys', target: @target, notification_keys: @notification_keys, option_params: @index_options ) %>");
4
4
  $("#subscription_form").html("<%= escape_javascript( render 'form', target: @target, option_params: @index_options ) %>");
5
5