Skip to content

Commit e433eeb

Browse files
committed
Add partner to group via modal with dropdown
change partners display in group Implement remove partner from partner group
1 parent bc90be3 commit e433eeb

File tree

4 files changed

+61
-4
lines changed

4 files changed

+61
-4
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class PartnerGroupMembershipsController < ApplicationController
2+
def create
3+
@partner_group = current_organization.partner_groups.find(params[:partner_group_id])
4+
@partner = current_organization.partners.find(params[:partner_id])
5+
if @partner_group.partner_group_memberships.create(partner: @partner)
6+
redirect_to partner_group_path(@partner_group), notice: "Partner #{@partner.name} added to group!"
7+
else
8+
flash[:error] = "Something didn't work quite right -- try again?"
9+
redirect_to partner_group_path(@partner_group)
10+
end
11+
end
12+
13+
def destroy
14+
@partner_group = current_organization.partner_groups.find(params[:partner_group_id])
15+
@partner_group.partner_group_memberships.find(params[:id]).destroy
16+
redirect_to partner_group_path(@partner_group)
17+
end
18+
end

app/controllers/partner_groups_controller.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ def index
1010
def show
1111
@partner_group = current_organization.partner_groups.find(params[:id])
1212

13+
@partners_not_in_group = current_organization.partners.alphabetized - @partner_group.partners
14+
1315
respond_to do |format|
1416
format.html
1517
end

app/views/partner_groups/show.html.erb

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
<div class="card-footer">
3131
<%= edit_button_to edit_partner_group_path(@partner_group) %>
3232
<%= delete_button_to partner_group_path(@partner_group), {confirm: confirm_delete_msg(@partner_group.name)} %>
33+
<%= modal_button_to("#addPartnerModal", {text: "Add Partner to group", size: "xs"}) if can_administrate? %>
3334
</div>
3435
</div>
3536
</div>
@@ -53,19 +54,54 @@
5354
<tr>
5455
<th>Partner</th>
5556
<th>E-mail</th>
56-
<th>Monthly Limit</th>
57-
<th>Status</th>
58-
<th>Action</th>
5957
<th>&nbsp;</th>
6058
</tr>
6159
</thead>
6260
<tbody>
63-
<%= render partial: "partners/partner_row", collection: @partner_group.partners %>
61+
<% @partner_group.partner_group_memberships.each do |partner_group_membership| %>
62+
<% partner = partner_group_membership.partner %>
63+
<tr>
64+
<td><%= link_to partner.name, partner_path(partner) %></td>
65+
<td><%= link_to partner.email, "mailto:#{partner.email}" %></td>
66+
<td><%= delete_button_to(
67+
partner_group_membership_path(partner_group_id: @partner_group.id, id: partner_group_membership.id),
68+
{confirm: confirm_delete_msg("#{partner.name} from this group")}
69+
) %>
70+
</td>
71+
</tr>
72+
<% end %>
6473
</table>
6574
</div><!-- /.box-body.table-responsive -->
6675
</div>
6776
</div>
6877
</div>
6978
</div>
7079
</div>
80+
<div id="addPartnerModal" class="modal fade">
81+
<div class="modal-dialog">
82+
<!-- Modal content-->
83+
<div class="modal-content">
84+
<div class="modal-header">
85+
<h4 class="modal-title">Add a partner to <%= @partner_group.name %></h4>
86+
</div><!-- modal-header -->
87+
<div class="modal-body">
88+
<div class="box-body">
89+
<p>
90+
This will add a partner to this group.
91+
</p>
92+
<br/>
93+
<%= form_tag partner_group_memberships_path(@partner_group.id) do %>
94+
95+
<%= label_tag 'Partner: ' %>
96+
<%= select_tag :partner_id,
97+
options_from_collection_for_select(@partners_not_in_group, :id, :name)
98+
%>
99+
<br>
100+
<%= submit_button({text: "Add Partner", icon: "plus"}) %>
101+
<% end # form %>
102+
</div><!-- box-body -->
103+
</div><!-- modal-body -->
104+
</div><!-- modal-content -->
105+
</div><!-- modal-dialog -->
106+
</div><!-- addPartnerModal-->
71107
</section>

config/routes.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ def set_up_flipper
143143
end
144144

145145
resources :partner_groups do
146+
resources :memberships, controller: :partner_group_memberships, only: %i(create destroy)
146147
end
147148

148149
resources :diaper_drives

0 commit comments

Comments
 (0)