simple_teams 0.1.3 → 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.
- checksums.yaml +4 -4
- data/README.md +62 -7
- data/app/controllers/simple_teams/accept_invitations_controller.rb +4 -5
- data/app/controllers/simple_teams/application_controller.rb +1 -8
- data/app/controllers/simple_teams/base_controller.rb +12 -0
- data/app/controllers/simple_teams/invitations_controller.rb +2 -2
- data/app/controllers/simple_teams/leave_teams_controller.rb +2 -2
- data/app/controllers/simple_teams/memberships_controller.rb +2 -2
- data/app/controllers/simple_teams/related_members_controller.rb +1 -1
- data/app/controllers/simple_teams/teams_controller.rb +1 -1
- data/app/forms/application_form.rb +3 -0
- data/app/forms/simple_teams/invitation_forms/create.rb +1 -1
- data/app/forms/simple_teams/invitation_forms/create_bulk.rb +1 -1
- data/app/forms/simple_teams/invitation_forms/update.rb +1 -1
- data/app/forms/simple_teams/membership_form.rb +1 -1
- data/app/helpers/simple_teams/base_helper.rb +11 -0
- data/app/helpers/simple_teams/teams_helper.rb +7 -0
- data/app/mailers/simple_teams/application_mailer.rb +1 -1
- data/app/models/concerns/simple_teams/member_object.rb +1 -0
- data/app/models/simple_teams/ability.rb +2 -2
- data/app/notifiers/concerns/simple_teams/invitation_notifier.rb +59 -0
- data/app/notifiers/concerns/simple_teams/membership_notifier.rb +63 -0
- data/app/notifiers/simple_teams/application_notifier.rb +6 -0
- data/app/notifiers/simple_teams/bulk_invitations_notifier.rb +52 -0
- data/app/notifiers/simple_teams/invitations/accepted_notifier.rb +16 -0
- data/app/notifiers/simple_teams/invitations/created_notifier.rb +16 -0
- data/app/notifiers/simple_teams/invitations/destroyed_notifier.rb +16 -0
- data/app/notifiers/simple_teams/invitations/updated_notifier.rb +16 -0
- data/app/notifiers/simple_teams/memberships/destroyed_notifier.rb +16 -0
- data/app/notifiers/simple_teams/memberships/left_notifier.rb +20 -0
- data/app/notifiers/simple_teams/memberships/updated_notifier.rb +20 -0
- data/app/service_objects/simple_teams/accept_invitation_service.rb +1 -1
- data/app/service_objects/simple_teams/leave_team_service.rb +1 -1
- data/app/views/simple_teams/_nested_action_breadcrumb.html.erb +8 -0
- data/app/views/simple_teams/_roles_field.html.erb +2 -2
- data/app/views/simple_teams/invitations/_invitation.html.erb +1 -1
- data/app/views/simple_teams/invitations/edit.html.erb +1 -6
- data/app/views/simple_teams/invitations/new.html.erb +1 -6
- data/app/views/simple_teams/memberships/_membership.html.erb +1 -1
- data/app/views/simple_teams/memberships/edit.html.erb +1 -6
- data/app/views/simple_teams/teams/_add_member_link.html.erb +1 -1
- data/app/views/simple_teams/teams/_dropdown_menu.html.erb +13 -0
- data/app/views/simple_teams/teams/_index_breadcrumb.html.erb +7 -0
- data/app/views/simple_teams/teams/_members_table.html.erb +1 -1
- data/app/views/simple_teams/teams/show.html.erb +6 -33
- data/config/locales/simple_teams.en.yml +18 -3
- data/config/routes.rb +2 -2
- data/lib/simple_teams/engine.rb +5 -0
- data/lib/simple_teams/version.rb +1 -1
- metadata +79 -38
- data/app/controllers/simple_teams/admin/invitations_controller.rb +0 -60
- data/app/controllers/simple_teams/admin/memberships_controller.rb +0 -60
- data/app/controllers/simple_teams/admin/teams_controller.rb +0 -60
- data/app/notifications/application_notification.rb +0 -4
- data/app/notifications/simple_teams/bulk_invitations_notification.rb +0 -51
- data/app/notifications/simple_teams/invitation_notification.rb +0 -54
- data/app/notifications/simple_teams/invitations/accepted_notification.rb +0 -13
- data/app/notifications/simple_teams/invitations/created_notification.rb +0 -13
- data/app/notifications/simple_teams/invitations/destroyed_notification.rb +0 -13
- data/app/notifications/simple_teams/invitations/updated_notification.rb +0 -13
- data/app/notifications/simple_teams/membership_notification.rb +0 -58
- data/app/notifications/simple_teams/memberships/destroyed_notification.rb +0 -13
- data/app/notifications/simple_teams/memberships/left_notification.rb +0 -17
- data/app/notifications/simple_teams/memberships/updated_notification.rb +0 -17
- data/app/views/simple_teams/admin/invitations/_form.html.erb +0 -62
- data/app/views/simple_teams/admin/invitations/_invitation.html.erb +0 -47
- data/app/views/simple_teams/admin/invitations/edit.html.erb +0 -10
- data/app/views/simple_teams/admin/invitations/index.html.erb +0 -14
- data/app/views/simple_teams/admin/invitations/new.html.erb +0 -9
- data/app/views/simple_teams/admin/invitations/show.html.erb +0 -10
- data/app/views/simple_teams/admin/memberships/_form.html.erb +0 -32
- data/app/views/simple_teams/admin/memberships/_membership.html.erb +0 -17
- data/app/views/simple_teams/admin/memberships/edit.html.erb +0 -10
- data/app/views/simple_teams/admin/memberships/index.html.erb +0 -14
- data/app/views/simple_teams/admin/memberships/new.html.erb +0 -9
- data/app/views/simple_teams/admin/memberships/show.html.erb +0 -10
- data/app/views/simple_teams/admin/teams/_form.html.erb +0 -22
- data/app/views/simple_teams/admin/teams/_team.html.erb +0 -7
- data/app/views/simple_teams/admin/teams/edit.html.erb +0 -10
- data/app/views/simple_teams/admin/teams/index.html.erb +0 -14
- data/app/views/simple_teams/admin/teams/new.html.erb +0 -9
- data/app/views/simple_teams/admin/teams/show.html.erb +0 -10
@@ -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::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
|
@@ -1,58 +0,0 @@
|
|
1
|
-
module SimpleTeams
|
2
|
-
class MembershipNotification < ApplicationNotification
|
3
|
-
param :team_id, :member_id, :user_id, :team_name, :member_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 Permissions"
|
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 member
|
33
|
-
team.members.find_by(id: params[:member_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 member_name
|
42
|
-
if recipient.id == params[:member_id]
|
43
|
-
"you"
|
44
|
-
else
|
45
|
-
member.present? ? member.full_name : params[:member_name]
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def user_name
|
50
|
-
if recipient.id == params[:user_id]
|
51
|
-
"You"
|
52
|
-
else
|
53
|
-
user.present? ? user.full_name : params[:user_name]
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
end
|
58
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module SimpleTeams
|
2
|
-
class Memberships::LeftNotification < SimpleTeams::MembershipNotification
|
3
|
-
|
4
|
-
def message
|
5
|
-
if recipient.id == params[:member_id]
|
6
|
-
"You left #{team_name}."
|
7
|
-
else
|
8
|
-
"#{member_name} left #{team_name}."
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
def subject
|
13
|
-
"Member Left"
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module SimpleTeams
|
2
|
-
class Memberships::UpdatedNotification < SimpleTeams::MembershipNotification
|
3
|
-
|
4
|
-
def message
|
5
|
-
if recipient.id == params[:member_id]
|
6
|
-
"#{user_name} updated your role for #{team_name}."
|
7
|
-
else
|
8
|
-
"#{user_name} updated the role of #{member_name} for #{team_name}."
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
def subject
|
13
|
-
"Member Updated"
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|
@@ -1,62 +0,0 @@
|
|
1
|
-
<%= form_with(model: invitation) do |form| %>
|
2
|
-
<% if invitation.errors.any? %>
|
3
|
-
<div style="color: red">
|
4
|
-
<h2><%= pluralize(invitation.errors.count, "error") %> prohibited this invitation from being saved:</h2>
|
5
|
-
|
6
|
-
<ul>
|
7
|
-
<% invitation.errors.each do |error| %>
|
8
|
-
<li><%= error.full_message %></li>
|
9
|
-
<% end %>
|
10
|
-
</ul>
|
11
|
-
</div>
|
12
|
-
<% end %>
|
13
|
-
|
14
|
-
<div>
|
15
|
-
<%= form.label :team_id, style: "display: block" %>
|
16
|
-
<%= form.text_field :team_id %>
|
17
|
-
</div>
|
18
|
-
|
19
|
-
<div>
|
20
|
-
<%= form.label :inviter_id, style: "display: block" %>
|
21
|
-
<%= form.text_field :inviter_id %>
|
22
|
-
</div>
|
23
|
-
|
24
|
-
<div>
|
25
|
-
<%= form.label :membership_id, style: "display: block" %>
|
26
|
-
<%= form.text_field :membership_id %>
|
27
|
-
</div>
|
28
|
-
|
29
|
-
<div>
|
30
|
-
<%= form.label :email, style: "display: block" %>
|
31
|
-
<%= form.text_field :email %>
|
32
|
-
</div>
|
33
|
-
|
34
|
-
<div>
|
35
|
-
<%= form.label :role, style: "display: block" %>
|
36
|
-
<%= form.text_field :role %>
|
37
|
-
</div>
|
38
|
-
|
39
|
-
<div>
|
40
|
-
<%= form.label :token, style: "display: block" %>
|
41
|
-
<%= form.text_field :token %>
|
42
|
-
</div>
|
43
|
-
|
44
|
-
<div>
|
45
|
-
<%= form.label :status, style: "display: block" %>
|
46
|
-
<%= form.number_field :status %>
|
47
|
-
</div>
|
48
|
-
|
49
|
-
<div>
|
50
|
-
<%= form.label :sent_at, style: "display: block" %>
|
51
|
-
<%= form.datetime_field :sent_at %>
|
52
|
-
</div>
|
53
|
-
|
54
|
-
<div>
|
55
|
-
<%= form.label :expires_at, style: "display: block" %>
|
56
|
-
<%= form.datetime_field :expires_at %>
|
57
|
-
</div>
|
58
|
-
|
59
|
-
<div>
|
60
|
-
<%= form.submit %>
|
61
|
-
</div>
|
62
|
-
<% end %>
|
@@ -1,47 +0,0 @@
|
|
1
|
-
<div id="<%= dom_id invitation %>">
|
2
|
-
<p>
|
3
|
-
<strong>Team:</strong>
|
4
|
-
<%= invitation.team_id %>
|
5
|
-
</p>
|
6
|
-
|
7
|
-
<p>
|
8
|
-
<strong>Inviter:</strong>
|
9
|
-
<%= invitation.inviter_id %>
|
10
|
-
</p>
|
11
|
-
|
12
|
-
<p>
|
13
|
-
<strong>Membership:</strong>
|
14
|
-
<%= invitation.membership_id %>
|
15
|
-
</p>
|
16
|
-
|
17
|
-
<p>
|
18
|
-
<strong>Email:</strong>
|
19
|
-
<%= invitation.email %>
|
20
|
-
</p>
|
21
|
-
|
22
|
-
<p>
|
23
|
-
<strong>Role:</strong>
|
24
|
-
<%= invitation.role %>
|
25
|
-
</p>
|
26
|
-
|
27
|
-
<p>
|
28
|
-
<strong>Token:</strong>
|
29
|
-
<%= invitation.token %>
|
30
|
-
</p>
|
31
|
-
|
32
|
-
<p>
|
33
|
-
<strong>Status:</strong>
|
34
|
-
<%= invitation.status %>
|
35
|
-
</p>
|
36
|
-
|
37
|
-
<p>
|
38
|
-
<strong>Sent at:</strong>
|
39
|
-
<%= invitation.sent_at %>
|
40
|
-
</p>
|
41
|
-
|
42
|
-
<p>
|
43
|
-
<strong>Expires at:</strong>
|
44
|
-
<%= invitation.expires_at %>
|
45
|
-
</p>
|
46
|
-
|
47
|
-
</div>
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<p style="color: green"><%= notice %></p>
|
2
|
-
|
3
|
-
<h1>Invitations</h1>
|
4
|
-
|
5
|
-
<div id="invitations">
|
6
|
-
<% @invitations.each do |invitation| %>
|
7
|
-
<%= render invitation %>
|
8
|
-
<p>
|
9
|
-
<%= link_to "Show this invitation", invitation %>
|
10
|
-
</p>
|
11
|
-
<% end %>
|
12
|
-
</div>
|
13
|
-
|
14
|
-
<%= link_to "New invitation", new_invitation_path %>
|
@@ -1,10 +0,0 @@
|
|
1
|
-
<p style="color: green"><%= notice %></p>
|
2
|
-
|
3
|
-
<%= render @invitation %>
|
4
|
-
|
5
|
-
<div>
|
6
|
-
<%= link_to "Edit this invitation", edit_invitation_path(@invitation) %> |
|
7
|
-
<%= link_to "Back to invitations", invitations_path %>
|
8
|
-
|
9
|
-
<%= button_to "Destroy this invitation", @invitation, method: :delete %>
|
10
|
-
</div>
|
@@ -1,32 +0,0 @@
|
|
1
|
-
<%= form_with(model: membership) do |form| %>
|
2
|
-
<% if membership.errors.any? %>
|
3
|
-
<div style="color: red">
|
4
|
-
<h2><%= pluralize(membership.errors.count, "error") %> prohibited this membership from being saved:</h2>
|
5
|
-
|
6
|
-
<ul>
|
7
|
-
<% membership.errors.each do |error| %>
|
8
|
-
<li><%= error.full_message %></li>
|
9
|
-
<% end %>
|
10
|
-
</ul>
|
11
|
-
</div>
|
12
|
-
<% end %>
|
13
|
-
|
14
|
-
<div>
|
15
|
-
<%= form.label :team_id, style: "display: block" %>
|
16
|
-
<%= form.text_field :team_id %>
|
17
|
-
</div>
|
18
|
-
|
19
|
-
<div>
|
20
|
-
<%= form.label :member_id, style: "display: block" %>
|
21
|
-
<%= form.text_field :member_id %>
|
22
|
-
</div>
|
23
|
-
|
24
|
-
<div>
|
25
|
-
<%= form.label :role, style: "display: block" %>
|
26
|
-
<%= form.number_field :role %>
|
27
|
-
</div>
|
28
|
-
|
29
|
-
<div>
|
30
|
-
<%= form.submit %>
|
31
|
-
</div>
|
32
|
-
<% end %>
|
@@ -1,17 +0,0 @@
|
|
1
|
-
<div id="<%= dom_id membership %>">
|
2
|
-
<p>
|
3
|
-
<strong>Team:</strong>
|
4
|
-
<%= membership.team_id %>
|
5
|
-
</p>
|
6
|
-
|
7
|
-
<p>
|
8
|
-
<strong>Member:</strong>
|
9
|
-
<%= membership.member_id %>
|
10
|
-
</p>
|
11
|
-
|
12
|
-
<p>
|
13
|
-
<strong>Role:</strong>
|
14
|
-
<%= membership.role %>
|
15
|
-
</p>
|
16
|
-
|
17
|
-
</div>
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<p style="color: green"><%= notice %></p>
|
2
|
-
|
3
|
-
<h1>Memberships</h1>
|
4
|
-
|
5
|
-
<div id="memberships">
|
6
|
-
<% @memberships.each do |membership| %>
|
7
|
-
<%= render membership %>
|
8
|
-
<p>
|
9
|
-
<%= link_to "Show this membership", membership %>
|
10
|
-
</p>
|
11
|
-
<% end %>
|
12
|
-
</div>
|
13
|
-
|
14
|
-
<%= link_to "New membership", new_membership_path %>
|
@@ -1,10 +0,0 @@
|
|
1
|
-
<p style="color: green"><%= notice %></p>
|
2
|
-
|
3
|
-
<%= render @membership %>
|
4
|
-
|
5
|
-
<div>
|
6
|
-
<%= link_to "Edit this membership", edit_membership_path(@membership) %> |
|
7
|
-
<%= link_to "Back to memberships", memberships_path %>
|
8
|
-
|
9
|
-
<%= button_to "Destroy this membership", @membership, method: :delete %>
|
10
|
-
</div>
|
@@ -1,22 +0,0 @@
|
|
1
|
-
<%= form_with(model: team) do |form| %>
|
2
|
-
<% if team.errors.any? %>
|
3
|
-
<div style="color: red">
|
4
|
-
<h2><%= pluralize(team.errors.count, "error") %> prohibited this team from being saved:</h2>
|
5
|
-
|
6
|
-
<ul>
|
7
|
-
<% team.errors.each do |error| %>
|
8
|
-
<li><%= error.full_message %></li>
|
9
|
-
<% end %>
|
10
|
-
</ul>
|
11
|
-
</div>
|
12
|
-
<% end %>
|
13
|
-
|
14
|
-
<div>
|
15
|
-
<%= form.label :teamable_id, style: "display: block" %>
|
16
|
-
<%= form.text_field :teamable_id %>
|
17
|
-
</div>
|
18
|
-
|
19
|
-
<div>
|
20
|
-
<%= form.submit %>
|
21
|
-
</div>
|
22
|
-
<% end %>
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<p style="color: green"><%= notice %></p>
|
2
|
-
|
3
|
-
<h1>Teams</h1>
|
4
|
-
|
5
|
-
<div id="teams">
|
6
|
-
<% @teams.each do |team| %>
|
7
|
-
<%= render team %>
|
8
|
-
<p>
|
9
|
-
<%= link_to "Show this team", team %>
|
10
|
-
</p>
|
11
|
-
<% end %>
|
12
|
-
</div>
|
13
|
-
|
14
|
-
<%= link_to "New team", new_team_path %>
|