simple_teams 0.1.4 → 0.1.6

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 (75) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +62 -7
  3. data/app/controllers/simple_teams/accept_invitations_controller.rb +1 -1
  4. data/app/controllers/simple_teams/invitations_controller.rb +1 -1
  5. data/app/controllers/simple_teams/memberships_controller.rb +1 -1
  6. data/app/forms/application_form.rb +3 -0
  7. data/app/forms/simple_teams/invitation_forms/create.rb +1 -1
  8. data/app/forms/simple_teams/invitation_forms/create_bulk.rb +1 -1
  9. data/app/forms/simple_teams/invitation_forms/update.rb +1 -1
  10. data/app/forms/simple_teams/membership_form.rb +1 -1
  11. data/app/helpers/simple_teams/base_helper.rb +11 -0
  12. data/app/helpers/simple_teams/teams_helper.rb +7 -0
  13. data/app/mailers/simple_teams/application_mailer.rb +1 -1
  14. data/app/models/concerns/simple_teams/member_object.rb +1 -0
  15. data/app/models/simple_teams/ability.rb +2 -2
  16. data/app/notifiers/concerns/simple_teams/invitation_notifier.rb +59 -0
  17. data/app/notifiers/concerns/simple_teams/membership_notifier.rb +63 -0
  18. data/app/notifiers/simple_teams/application_notifier.rb +6 -0
  19. data/app/notifiers/simple_teams/bulk_invitations_notifier.rb +52 -0
  20. data/app/notifiers/simple_teams/invitations/accepted_notifier.rb +16 -0
  21. data/app/notifiers/simple_teams/invitations/created_notifier.rb +16 -0
  22. data/app/notifiers/simple_teams/invitations/destroyed_notifier.rb +16 -0
  23. data/app/notifiers/simple_teams/invitations/updated_notifier.rb +16 -0
  24. data/app/notifiers/simple_teams/memberships/destroyed_notifier.rb +16 -0
  25. data/app/notifiers/simple_teams/memberships/left_notifier.rb +20 -0
  26. data/app/notifiers/simple_teams/memberships/updated_notifier.rb +20 -0
  27. data/app/service_objects/simple_teams/leave_team_service.rb +1 -1
  28. data/app/views/simple_teams/_nested_action_breadcrumb.html.erb +8 -0
  29. data/app/views/simple_teams/_roles_field.html.erb +2 -2
  30. data/app/views/simple_teams/invitations/_invitation.html.erb +1 -1
  31. data/app/views/simple_teams/invitations/edit.html.erb +1 -6
  32. data/app/views/simple_teams/invitations/new.html.erb +1 -6
  33. data/app/views/simple_teams/memberships/_membership.html.erb +1 -1
  34. data/app/views/simple_teams/memberships/edit.html.erb +1 -6
  35. data/app/views/simple_teams/teams/_add_member_link.html.erb +1 -1
  36. data/app/views/simple_teams/teams/_dropdown_menu.html.erb +13 -0
  37. data/app/views/simple_teams/teams/_index_breadcrumb.html.erb +7 -0
  38. data/app/views/simple_teams/teams/_members_table.html.erb +1 -1
  39. data/app/views/simple_teams/teams/show.html.erb +6 -33
  40. data/config/locales/simple_teams.en.yml +18 -3
  41. data/lib/simple_teams/engine.rb +5 -0
  42. data/lib/simple_teams/version.rb +1 -1
  43. metadata +78 -38
  44. data/app/controllers/simple_teams/admin/invitations_controller.rb +0 -60
  45. data/app/controllers/simple_teams/admin/memberships_controller.rb +0 -60
  46. data/app/controllers/simple_teams/admin/teams_controller.rb +0 -60
  47. data/app/notifications/application_notification.rb +0 -4
  48. data/app/notifications/simple_teams/bulk_invitations_notification.rb +0 -51
  49. data/app/notifications/simple_teams/invitation_notification.rb +0 -54
  50. data/app/notifications/simple_teams/invitations/accepted_notification.rb +0 -13
  51. data/app/notifications/simple_teams/invitations/created_notification.rb +0 -13
  52. data/app/notifications/simple_teams/invitations/destroyed_notification.rb +0 -13
  53. data/app/notifications/simple_teams/invitations/updated_notification.rb +0 -13
  54. data/app/notifications/simple_teams/membership_notification.rb +0 -58
  55. data/app/notifications/simple_teams/memberships/destroyed_notification.rb +0 -13
  56. data/app/notifications/simple_teams/memberships/left_notification.rb +0 -17
  57. data/app/notifications/simple_teams/memberships/updated_notification.rb +0 -17
  58. data/app/views/simple_teams/admin/invitations/_form.html.erb +0 -62
  59. data/app/views/simple_teams/admin/invitations/_invitation.html.erb +0 -47
  60. data/app/views/simple_teams/admin/invitations/edit.html.erb +0 -10
  61. data/app/views/simple_teams/admin/invitations/index.html.erb +0 -14
  62. data/app/views/simple_teams/admin/invitations/new.html.erb +0 -9
  63. data/app/views/simple_teams/admin/invitations/show.html.erb +0 -10
  64. data/app/views/simple_teams/admin/memberships/_form.html.erb +0 -32
  65. data/app/views/simple_teams/admin/memberships/_membership.html.erb +0 -17
  66. data/app/views/simple_teams/admin/memberships/edit.html.erb +0 -10
  67. data/app/views/simple_teams/admin/memberships/index.html.erb +0 -14
  68. data/app/views/simple_teams/admin/memberships/new.html.erb +0 -9
  69. data/app/views/simple_teams/admin/memberships/show.html.erb +0 -10
  70. data/app/views/simple_teams/admin/teams/_form.html.erb +0 -22
  71. data/app/views/simple_teams/admin/teams/_team.html.erb +0 -7
  72. data/app/views/simple_teams/admin/teams/edit.html.erb +0 -10
  73. data/app/views/simple_teams/admin/teams/index.html.erb +0 -14
  74. data/app/views/simple_teams/admin/teams/new.html.erb +0 -9
  75. data/app/views/simple_teams/admin/teams/show.html.erb +0 -10
@@ -0,0 +1,7 @@
1
+ <nav aria-label="breadcrumb">
2
+ <ol class="breadcrumb">
3
+ <li class="breadcrumb-item"><%= link_to @team.teamable.class.model_name.human(count: 2), main_app.url_for(@team.teamable.class) %></li>
4
+ <li class="breadcrumb-item"><%= link_to @team.teamable.name, main_app.url_for(@team.teamable) %></li>
5
+ <li class="breadcrumb-item active" aria-current="page">Team Members</li>
6
+ </ol>
7
+ </nav>
@@ -1,4 +1,4 @@
1
- <table class="table table-bordered mb-5">
1
+ <table class="table table-bordered my-5">
2
2
  <thead>
3
3
  <tr>
4
4
  <th class="col-3">Name</th>
@@ -1,38 +1,11 @@
1
- <nav aria-label="breadcrumb">
2
- <ol class="breadcrumb">
3
- <li class="breadcrumb-item"><%= link_to "Teams", teams_path %></li>
4
- <li class="breadcrumb-item active" aria-current="page"><%= @team.name %></li>
5
- </ol>
6
- </nav>
1
+ <%= render "index_breadcrumb" %>
7
2
 
8
- <div class="heading-with-dropdown-menu">
9
- <h1><%= @team.name %></h1>
3
+ <div class="heading-with-dropdown-menu d-flex justify-content-between">
4
+ <h1><%= @team.name %>: Team Members</h1>
10
5
 
11
- <div class="dropdown">
12
- <% if can? :update, @team %>
13
- <button class="btn btn-outline-dark btn-sm dropdown-toggle" type="button" id="<%= @team.id %>-dropdown-menu" data-bs-toggle="dropdown" aria-expanded="false">
14
- Actions
15
- </button>
16
- <ul class="dropdown-menu" aria-labelledby="<%= @team.id %>-dropdown-menu">
17
- <%= link_to "Invite User", new_team_invitation_path(@team), :class => "dropdown-item" %>
18
-
19
- <li><hr class="dropdown-divider"></li>
20
- <%= link_to "Edit", edit_team_path(@team), :class => "dropdown-item" %>
21
-
22
- <% if current_user.membership_for_team(@team).present? %>
23
- <li><hr class="dropdown-divider"></li>
24
- <%= button_to "Leave", team_leave_team_path(@team), :method => :delete, :class => "btn btn-link dropdown-item", :form => { :data => { "turbo-confirm" => "Are you sure you want to leave this #{ @team.teamable.class.model_name.human }?" } } %>
25
- <% end %>
26
-
27
- <% if can? :destroy, @team %>
28
- <li><hr class="dropdown-divider"></li>
29
- <%= button_to "Delete", team_path(@team), :method => :delete, :class => "btn btn-link dropdown-item", :form => { :data => { "turbo-confirm" => "Are you sure you want to delete this #{ @team.teamable.class.model_name.human }?" } } %>
30
- <% end %>
31
- </ul>
32
- <% end %>
33
- </div>
6
+ <%= render "dropdown_menu" %>
34
7
  </div>
35
8
 
36
- <h2 class="mt-5">Members</h2>
37
-
38
9
  <%= render "members_table" %>
10
+
11
+ <%= render "add_member_link" %>
@@ -1,9 +1,24 @@
1
1
  en:
2
2
  simple_teams:
3
3
  roles:
4
- member: "Can view content"
5
- administrator: "Can create and delete content, and invite and remove other members"
6
- owner: "Same as administrator, but cannot be removed except by another owner"
4
+ names:
5
+ member: "Member"
6
+ administrator: "Administrator"
7
+ owner: "Owner"
8
+ descriptions:
9
+ member: "Can view content"
10
+ administrator: "Can create and delete content, and invite and remove other members"
11
+ owner: "Same as administrator, but cannot be removed except by another owner"
12
+ organizations:
13
+ roles:
14
+ names:
15
+ member: "Member A"
16
+ administrator: "Member B"
17
+ owner: "Member C"
18
+ descriptions:
19
+ member: "Description A"
20
+ administrator: "Description B"
21
+ owner: "Description C"
7
22
  simple_form:
8
23
  labels:
9
24
  invitation_forms_create_combo:
@@ -7,6 +7,7 @@ module SimpleTeams
7
7
  mattr_accessor :parent_controller
8
8
  mattr_accessor :layout
9
9
  mattr_accessor :roles
10
+ mattr_accessor :from_address
10
11
 
11
12
  def self.member_class
12
13
  (@@member_class || "User").constantize
@@ -24,4 +25,8 @@ module SimpleTeams
24
25
  (@@roles || [:member, :administrator, :owner])
25
26
  end
26
27
 
28
+ def self.from_address
29
+ (@@from_address || "please-change-me@example.com")
30
+ end
31
+
27
32
  end
@@ -1,3 +1,3 @@
1
1
  module SimpleTeams
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.6"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_teams
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Laney Stroup
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-11 00:00:00.000000000 Z
11
+ date: 2025-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -24,6 +24,62 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 7.0.7.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: devise
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 4.8.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 4.8.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: cancancan
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 3.5.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 3.5.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: noticed
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 2.4.1
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 2.4.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: simple_form
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 5.1.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 5.1.0
27
83
  description: SimpleTeams is an all-in-one solution for implementing teams quickly
28
84
  in a Ruby on Rails (RoR) application. It follows best practices, using the Rails
29
85
  Engine design pattern for easy configurability, CanCan for authorization, and polymorphic
@@ -40,9 +96,6 @@ files:
40
96
  - app/assets/config/simple_teams_manifest.js
41
97
  - app/assets/stylesheets/simple_teams/application.css
42
98
  - app/controllers/simple_teams/accept_invitations_controller.rb
43
- - app/controllers/simple_teams/admin/invitations_controller.rb
44
- - app/controllers/simple_teams/admin/memberships_controller.rb
45
- - app/controllers/simple_teams/admin/teams_controller.rb
46
99
  - app/controllers/simple_teams/application_controller.rb
47
100
  - app/controllers/simple_teams/base_controller.rb
48
101
  - app/controllers/simple_teams/invitations_controller.rb
@@ -50,6 +103,7 @@ files:
50
103
  - app/controllers/simple_teams/memberships_controller.rb
51
104
  - app/controllers/simple_teams/related_members_controller.rb
52
105
  - app/controllers/simple_teams/teams_controller.rb
106
+ - app/forms/application_form.rb
53
107
  - app/forms/simple_teams/invitation_form.rb
54
108
  - app/forms/simple_teams/invitation_forms/create.rb
55
109
  - app/forms/simple_teams/invitation_forms/create_bulk.rb
@@ -57,6 +111,7 @@ files:
57
111
  - app/forms/simple_teams/invitation_forms/update.rb
58
112
  - app/forms/simple_teams/membership_form.rb
59
113
  - app/helpers/simple_teams/application_helper.rb
114
+ - app/helpers/simple_teams/base_helper.rb
60
115
  - app/helpers/simple_teams/invitations_helper.rb
61
116
  - app/helpers/simple_teams/memberships_helper.rb
62
117
  - app/helpers/simple_teams/teams_helper.rb
@@ -70,42 +125,25 @@ files:
70
125
  - app/models/simple_teams/invitation.rb
71
126
  - app/models/simple_teams/membership.rb
72
127
  - app/models/simple_teams/team.rb
73
- - app/notifications/application_notification.rb
74
- - app/notifications/simple_teams/bulk_invitations_notification.rb
75
- - app/notifications/simple_teams/invitation_notification.rb
76
- - app/notifications/simple_teams/invitations/accepted_notification.rb
77
- - app/notifications/simple_teams/invitations/created_notification.rb
78
- - app/notifications/simple_teams/invitations/destroyed_notification.rb
79
- - app/notifications/simple_teams/invitations/updated_notification.rb
80
- - app/notifications/simple_teams/membership_notification.rb
81
- - app/notifications/simple_teams/memberships/destroyed_notification.rb
82
- - app/notifications/simple_teams/memberships/left_notification.rb
83
- - app/notifications/simple_teams/memberships/updated_notification.rb
128
+ - app/notifiers/concerns/simple_teams/invitation_notifier.rb
129
+ - app/notifiers/concerns/simple_teams/membership_notifier.rb
130
+ - app/notifiers/simple_teams/application_notifier.rb
131
+ - app/notifiers/simple_teams/bulk_invitations_notifier.rb
132
+ - app/notifiers/simple_teams/invitations/accepted_notifier.rb
133
+ - app/notifiers/simple_teams/invitations/created_notifier.rb
134
+ - app/notifiers/simple_teams/invitations/destroyed_notifier.rb
135
+ - app/notifiers/simple_teams/invitations/updated_notifier.rb
136
+ - app/notifiers/simple_teams/memberships/destroyed_notifier.rb
137
+ - app/notifiers/simple_teams/memberships/left_notifier.rb
138
+ - app/notifiers/simple_teams/memberships/updated_notifier.rb
84
139
  - app/service_objects/simple_teams/accept_invitation_service.rb
85
140
  - app/service_objects/simple_teams/initialize_team_service.rb
86
141
  - app/service_objects/simple_teams/leave_team_service.rb
87
142
  - app/views/layouts/simple_teams/application.html.erb
143
+ - app/views/simple_teams/_nested_action_breadcrumb.html.erb
88
144
  - app/views/simple_teams/_roles_field.html.erb
89
145
  - app/views/simple_teams/accept_invitations/invalid_token.html.erb
90
146
  - app/views/simple_teams/accept_invitations/new.html.erb
91
- - app/views/simple_teams/admin/invitations/_form.html.erb
92
- - app/views/simple_teams/admin/invitations/_invitation.html.erb
93
- - app/views/simple_teams/admin/invitations/edit.html.erb
94
- - app/views/simple_teams/admin/invitations/index.html.erb
95
- - app/views/simple_teams/admin/invitations/new.html.erb
96
- - app/views/simple_teams/admin/invitations/show.html.erb
97
- - app/views/simple_teams/admin/memberships/_form.html.erb
98
- - app/views/simple_teams/admin/memberships/_membership.html.erb
99
- - app/views/simple_teams/admin/memberships/edit.html.erb
100
- - app/views/simple_teams/admin/memberships/index.html.erb
101
- - app/views/simple_teams/admin/memberships/new.html.erb
102
- - app/views/simple_teams/admin/memberships/show.html.erb
103
- - app/views/simple_teams/admin/teams/_form.html.erb
104
- - app/views/simple_teams/admin/teams/_team.html.erb
105
- - app/views/simple_teams/admin/teams/edit.html.erb
106
- - app/views/simple_teams/admin/teams/index.html.erb
107
- - app/views/simple_teams/admin/teams/new.html.erb
108
- - app/views/simple_teams/admin/teams/show.html.erb
109
147
  - app/views/simple_teams/invitations/_bulk_form.html.erb
110
148
  - app/views/simple_teams/invitations/_form.html.erb
111
149
  - app/views/simple_teams/invitations/_invitation.html.erb
@@ -120,6 +158,8 @@ files:
120
158
  - app/views/simple_teams/related_members/index.json.jbuilder
121
159
  - app/views/simple_teams/related_members/select2.json.jbuilder
122
160
  - app/views/simple_teams/teams/_add_member_link.html.erb
161
+ - app/views/simple_teams/teams/_dropdown_menu.html.erb
162
+ - app/views/simple_teams/teams/_index_breadcrumb.html.erb
123
163
  - app/views/simple_teams/teams/_members_table.html.erb
124
164
  - app/views/simple_teams/teams/show.html.erb
125
165
  - config/locales/simple_teams.en.yml
@@ -139,7 +179,7 @@ metadata:
139
179
  homepage_uri: https://github.com/strouptl/simple_teams
140
180
  source_code_uri: https://github.com/strouptl/simple_teams
141
181
  changelog_uri: https://github.com/strouptl/simple_teams/blob/main/CHANGELOG.md
142
- post_install_message:
182
+ post_install_message:
143
183
  rdoc_options: []
144
184
  require_paths:
145
185
  - lib
@@ -154,8 +194,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
154
194
  - !ruby/object:Gem::Version
155
195
  version: '0'
156
196
  requirements: []
157
- rubygems_version: 3.3.26
158
- signing_key:
197
+ rubygems_version: 3.5.11
198
+ signing_key:
159
199
  specification_version: 4
160
200
  summary: A simple gem for adding teams to a Ruby on Rails application
161
201
  test_files: []
@@ -1,60 +0,0 @@
1
- module SimpleTeams
2
- class InvitationsController < ApplicationController
3
- before_action :set_invitation, only: %i[ show edit update destroy ]
4
-
5
- # GET /invitations
6
- def index
7
- @invitations = Invitation.all
8
- end
9
-
10
- # GET /invitations/1
11
- def show
12
- end
13
-
14
- # GET /invitations/new
15
- def new
16
- @invitation = Invitation.new
17
- end
18
-
19
- # GET /invitations/1/edit
20
- def edit
21
- end
22
-
23
- # POST /invitations
24
- def create
25
- @invitation = Invitation.new(invitation_params)
26
-
27
- if @invitation.save
28
- redirect_to @invitation, notice: "Invitation was successfully created."
29
- else
30
- render :new, status: :unprocessable_entity
31
- end
32
- end
33
-
34
- # PATCH/PUT /invitations/1
35
- def update
36
- if @invitation.update(invitation_params)
37
- redirect_to @invitation, notice: "Invitation was successfully updated.", status: :see_other
38
- else
39
- render :edit, status: :unprocessable_entity
40
- end
41
- end
42
-
43
- # DELETE /invitations/1
44
- def destroy
45
- @invitation.destroy
46
- redirect_to invitations_url, notice: "Invitation was successfully destroyed.", status: :see_other
47
- end
48
-
49
- private
50
- # Use callbacks to share common setup or constraints between actions.
51
- def set_invitation
52
- @invitation = Invitation.find(params[:id])
53
- end
54
-
55
- # Only allow a list of trusted parameters through.
56
- def invitation_params
57
- params.require(:invitation).permit(:team_id, :inviter_id, :membership_id, :email, :role, :token, :status, :sent_at, :expires_at)
58
- end
59
- end
60
- end
@@ -1,60 +0,0 @@
1
- module SimpleTeams
2
- class MembershipsController < ApplicationController
3
- before_action :set_membership, only: %i[ show edit update destroy ]
4
-
5
- # GET /memberships
6
- def index
7
- @memberships = Membership.all
8
- end
9
-
10
- # GET /memberships/1
11
- def show
12
- end
13
-
14
- # GET /memberships/new
15
- def new
16
- @membership = Membership.new
17
- end
18
-
19
- # GET /memberships/1/edit
20
- def edit
21
- end
22
-
23
- # POST /memberships
24
- def create
25
- @membership = Membership.new(membership_params)
26
-
27
- if @membership.save
28
- redirect_to @membership, notice: "Membership was successfully created."
29
- else
30
- render :new, status: :unprocessable_entity
31
- end
32
- end
33
-
34
- # PATCH/PUT /memberships/1
35
- def update
36
- if @membership.update(membership_params)
37
- redirect_to @membership, notice: "Membership was successfully updated.", status: :see_other
38
- else
39
- render :edit, status: :unprocessable_entity
40
- end
41
- end
42
-
43
- # DELETE /memberships/1
44
- def destroy
45
- @membership.destroy
46
- redirect_to memberships_url, notice: "Membership was successfully destroyed.", status: :see_other
47
- end
48
-
49
- private
50
- # Use callbacks to share common setup or constraints between actions.
51
- def set_membership
52
- @membership = Membership.find(params[:id])
53
- end
54
-
55
- # Only allow a list of trusted parameters through.
56
- def membership_params
57
- params.require(:membership).permit(:team_id, :member_id, :role)
58
- end
59
- end
60
- end
@@ -1,60 +0,0 @@
1
- module SimpleTeams
2
- class TeamsController < ApplicationController
3
- before_action :set_team, only: %i[ show edit update destroy ]
4
-
5
- # GET /teams
6
- def index
7
- @teams = Team.all
8
- end
9
-
10
- # GET /teams/1
11
- def show
12
- end
13
-
14
- # GET /teams/new
15
- def new
16
- @team = Team.new
17
- end
18
-
19
- # GET /teams/1/edit
20
- def edit
21
- end
22
-
23
- # POST /teams
24
- def create
25
- @team = Team.new(team_params)
26
-
27
- if @team.save
28
- redirect_to @team, notice: "Team was successfully created."
29
- else
30
- render :new, status: :unprocessable_entity
31
- end
32
- end
33
-
34
- # PATCH/PUT /teams/1
35
- def update
36
- if @team.update(team_params)
37
- redirect_to @team, notice: "Team was successfully updated.", status: :see_other
38
- else
39
- render :edit, status: :unprocessable_entity
40
- end
41
- end
42
-
43
- # DELETE /teams/1
44
- def destroy
45
- @team.destroy
46
- redirect_to teams_url, notice: "Team was successfully destroyed.", status: :see_other
47
- end
48
-
49
- private
50
- # Use callbacks to share common setup or constraints between actions.
51
- def set_team
52
- @team = Team.find(params[:id])
53
- end
54
-
55
- # Only allow a list of trusted parameters through.
56
- def team_params
57
- params.require(:team).permit(:teamable_id, :teamable_type)
58
- end
59
- end
60
- end
@@ -1,4 +0,0 @@
1
- class ApplicationNotification < Noticed::Base
2
- deliver_by :database
3
-
4
- end
@@ -1,51 +0,0 @@
1
- module SimpleTeams
2
- class BulkInvitationsNotification < ApplicationNotification
3
-
4
- param :team_id, :user_id, :team_name, :user_name, :invitation_names
5
-
6
- def message
7
- "#{user_name} invited #{invitation_names.to_sentence} to #{team_name}."
8
- end
9
-
10
- def subject
11
- "Users Invited"
12
- end
13
-
14
- def url
15
- if team.present? and team.members.include? recipient
16
- "/teams/#{team.id}"
17
- end
18
- end
19
-
20
- def link_text
21
- "View Invitations"
22
- end
23
-
24
- # Objects
25
- def team
26
- Team.find_by(id: params[:team_id])
27
- end
28
-
29
- def user
30
- SimpleTeams.member_class.find_by(id: params[:user_id])
31
- end
32
-
33
- # Names (fallback)
34
- def team_name
35
- team.present? ? team.name : params[:team_name]
36
- end
37
-
38
- def invitation_names
39
- params[:invitation_names]
40
- end
41
-
42
- def user_name
43
- if recipient.id == params[:user_id]
44
- "You"
45
- else
46
- user.present? ? user.full_name : params[:user_name]
47
- end
48
- end
49
-
50
- end
51
- end
@@ -1,54 +0,0 @@
1
- module SimpleTeams
2
- class InvitationNotification < ApplicationNotification
3
- param :team_id, :invitation_id, :user_id, :team_name, :invitation_name, :user_name
4
-
5
- def message
6
- raise NotImplemented
7
- end
8
-
9
- def subject
10
- raise NotImplemented
11
- end
12
-
13
- def url
14
- if team.present? and team.members.include? recipient
15
- "/teams/#{team.id}"
16
- end
17
- end
18
-
19
- def link_text
20
- "View Invitations"
21
- end
22
-
23
- # Objects
24
- def team
25
- Team.find_by(id: params[:team_id])
26
- end
27
-
28
- def user
29
- SimpleTeams.member_class.find_by(id: params[:user_id])
30
- end
31
-
32
- def invitation
33
- team.invitations.find_by(id: params[:invitation_id]) if team.present?
34
- end
35
-
36
- # Names (fallback)
37
- def team_name
38
- team.present? ? team.name : params[:team_name]
39
- end
40
-
41
- def invitation_name
42
- invitation.present? ? invitation.email : params[:invitation_name]
43
- end
44
-
45
- def user_name
46
- if recipient.id == params[:user_id]
47
- "You"
48
- else
49
- user.present? ? user.full_name : params[:user_name]
50
- end
51
- end
52
-
53
- end
54
- end
@@ -1,13 +0,0 @@
1
- module SimpleTeams
2
- class Invitations::AcceptedNotification < SimpleTeams::InvitationNotification
3
-
4
- def message
5
- "#{user_name} accepted the invitation to #{team_name}."
6
- end
7
-
8
- def subject
9
- "Invitation Accepted"
10
- end
11
-
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- module SimpleTeams
2
- class Invitations::CreatedNotification < SimpleTeams::InvitationNotification
3
-
4
- def message
5
- "#{user_name} invited #{invitation_name} to #{team_name}."
6
- end
7
-
8
- def subject
9
- "User Invited"
10
- end
11
-
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- module SimpleTeams
2
- class Invitations::DestroyedNotification < SimpleTeams::InvitationNotification
3
-
4
- def message
5
- "#{user_name} deleted the invitation for #{invitation_name} to #{team_name}."
6
- end
7
-
8
- def subject
9
- "Invitation Deleted"
10
- end
11
-
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- module SimpleTeams
2
- class Invitations::UpdatedNotification < SimpleTeams::InvitationNotification
3
-
4
- def message
5
- "#{user_name} updated the invitation for #{invitation_name} to #{team_name}."
6
- end
7
-
8
- def subject
9
- "Invitation Updated"
10
- end
11
-
12
- end
13
- end