Skip to content

Commit fc59d73

Browse files
committed
WIP: finished up building the form
It's better than it was. Requesting clients will need to pass some kind of callback_url, and be ready to process it when it returns
1 parent 82ccd12 commit fc59d73

File tree

5 files changed

+33
-7
lines changed

5 files changed

+33
-7
lines changed

app/controllers/admin/member_search_controller.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,17 @@ def index
33
@params = params[:member_search] || {}
44
@name = @params[:name]
55
@members = @name.blank? ? Member.none : Member.find_members(@name).select(:id, :name, :surname, :pronouns)
6-
@callback_url = @params[:callback] || root_path
6+
@callback_url = @params[:callback] || results_admin_member_search_index_path
77
if (@members.size == 1) && @callback_url.present?
88
return redirect_to @callback_url, member_id: @members.first.id
99
end
1010

1111
render 'index', locals: { members: @members, callback: @callback_url }
1212
end
13+
14+
def results
15+
params.require(:member_pick).permit(members: [])
16+
@members = params[:member_pick].present? ? Member.find(params[:member_pick][:members]) : Member.none
17+
render 'show', locals: { members: @members }
18+
end
1319
end

app/views/admin/member_search/_search_form.html.haml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
.row
33
.col-12.col-md-6
44
= f.input :name, label: 'Member Name', input_html: { placeholder: 'Enter member name' }
5-
= f.button :submit, 'Search', class: 'btn btn-primary mt-3'
5+
= f.button :submit, 'Search', class: 'btn btn-primary mt-3, name: nil

app/views/admin/member_search/index.html.haml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,13 @@
1111
.col.col-md-10.col-lg-8
1212
- if @members.present?
1313
%h2 Select Member
14-
15-
= simple_form_for :member_pick, url: @callback_url, method: :get, html: {:multipart => true, novalidate: true } do |f|
14+
= simple_form_for :member_pick, url: results_admin_member_search_index_path, method: :get do |f|
1615
.row
1716
.col-12.col-md-6
18-
= f.input :name, collection: @members, label: 'Member Name', input_html: { multiple: true }, required: true
19-
= f.button :submit, 'Take me back', class: 'btn btn-primary mt-3'
17+
= f.label :members, 'Member Name'
18+
- @members.each do |member|
19+
.form-check
20+
= f.check_box :members, { multiple: true, checked: member.id }, member.id, nil
21+
= f.label "member_#{member.id}", member.name_and_surname, class: 'form-check-label'
22+
= f.button :submit, 'Take me back', class: 'btn btn-primary mt-3', name: nil
2023

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
.container.py-4.py-lg-5
2+
.row.mb-4
3+
.col
4+
%h1 Results
5+
6+
.row
7+
.col.col-md-10.col-lg-8
8+
%h2 Search Results
9+
%ul.list-group
10+
- @members.each do |member|
11+
%li.list-group-item
12+
= link_to member.name_and_surname, admin_member_path(member)

config/routes.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,12 @@
141141

142142
resources :testimonials, only: %i[index]
143143

144-
resources :member_search, only: %i[index], :path => 'member-search'
144+
resources :member_search, :path => 'member-search', only: [:index, :results] do
145+
collection do
146+
get 'index'
147+
get 'results'
148+
end
149+
end
145150
end
146151

147152
get '/login', to: 'auth_services#new'

0 commit comments

Comments
 (0)