Browse Source

Add subgroup filtering to xs view

Maarten van den Berg 7 years ago
parent
commit
a386c65bd2
2 changed files with 14 additions and 8 deletions
  1. 1 1
      app/assets/javascripts/activities.coffee
  2. 13 7
      app/views/activities/show.html.haml

+ 1 - 1
app/assets/javascripts/activities.coffee

2
   clipboard = new Clipboard('.copy-reactions', {
2
   clipboard = new Clipboard('.copy-reactions', {
3
     'text': clipreactions
3
     'text': clipreactions
4
   })
4
   })
5
-  $('#subgroup_filter').on('change', (e) -> filterparticipants(e))
5
+  $('.subgroup-filter').on('change', (e) -> filterparticipants(e))
6
 
6
 
7
 @clipreactions = (trigger) ->
7
 @clipreactions = (trigger) ->
8
   id = trigger.dataset['activity']
8
   id = trigger.dataset['activity']

+ 13 - 7
app/views/activities/show.html.haml

94
         = t 'activities.participant.plural'
94
         = t 'activities.participant.plural'
95
         = render partial: "state_counts", locals: {counts: @counts}
95
         = render partial: "state_counts", locals: {counts: @counts}
96
     .col-md-6
96
     .col-md-6
97
-      = select_tag(:subgroup_filter, options_for_select(@subgroup_ids), class: 'form-control')
97
+      = select_tag(:subgroup_filter, options_for_select(@subgroup_ids), class: 'form-control subgroup-filter')
98
 
98
 
99
   %table.table.table-bordered
99
   %table.table.table-bordered
100
     - @participants.each do |p|
100
     - @participants.each do |p|
112
             = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
112
             = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
113
 
113
 
114
 .hidden-sm.hidden-md.hidden-lg
114
 .hidden-sm.hidden-md.hidden-lg
115
+  .panel.panel-default
116
+    .panel-heading
117
+      = t 'activerecord.attrs.activities.subgroups'
118
+    .panel-body
119
+      = select_tag(:subgroup_filter, options_for_select(@subgroup_ids), class: 'form-control subgroup-filter')
120
+
115
   .panel.panel-default.panel-success
121
   .panel.panel-default.panel-success
116
     .panel-heading
122
     .panel-heading
117
       %a{role: 'button', href: '#present-collapse', data: {toggle: 'collapse'}, 'aria-expanded': 'false'}
123
       %a{role: 'button', href: '#present-collapse', data: {toggle: 'collapse'}, 'aria-expanded': 'false'}
129
     %table.table.collapse#present-collapse
135
     %table.table.collapse#present-collapse
130
       %tbody
136
       %tbody
131
         - @participants.where(attending: true).each do |p|
137
         - @participants.where(attending: true).each do |p|
132
-          %tr{data: {person_id: p.person.id, activity_id: @activity.id}}
138
+          %tr.participant-row{data: {person_id: p.person.id, activity_id: @activity.id, subgroup_id: p.subgroup_id}}
133
             %td
139
             %td
134
               = p.person.full_name
140
               = p.person.full_name
135
               - if p.is_organizer
141
               - if p.is_organizer
139
               - if p.person.id == current_person.id || all_buttons
145
               - if p.person.id == current_person.id || all_buttons
140
                 = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
146
                 = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
141
 
147
 
142
-          %tr{data: {person_id: p.person_id, activity_id: @activity.id}}
148
+          %tr.participant-row{data: {person_id: p.person_id, activity_id: @activity.id, subgroup_id: p.subgroup_id}}
143
             %td{colspan: "2"}
149
             %td{colspan: "2"}
144
               = editable p, :notes, url: presence_group_activity_path(@activity.group, @activity, person_id: p.person_id), title: t('activities.participant.notes'), value: p.notes, emptytext: "--"
150
               = editable p, :notes, url: presence_group_activity_path(@activity.group, @activity, person_id: p.person_id), title: t('activities.participant.notes'), value: p.notes, emptytext: "--"
145
 
151
 
162
     %table.table.collapse#unknown-collapse
168
     %table.table.collapse#unknown-collapse
163
       %tbody
169
       %tbody
164
         - @participants.where(attending: nil).each do |p|
170
         - @participants.where(attending: nil).each do |p|
165
-          %tr{data: {person_id: p.person.id, activity_id: @activity.id}}
171
+          %tr.participant-row{data: {person_id: p.person.id, activity_id: @activity.id, subgroup_id: p.subgroup_id}}
166
             %td
172
             %td
167
               = p.person.full_name
173
               = p.person.full_name
168
               - if p.is_organizer
174
               - if p.is_organizer
172
               - if p.person.id == current_person.id || all_buttons
178
               - if p.person.id == current_person.id || all_buttons
173
                 = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
179
                 = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
174
 
180
 
175
-          %tr{data: {person_id: p.person_id, activity_id: @activity.id}}
181
+          %tr.participant-row{data: {person_id: p.person_id, activity_id: @activity.id, subgroup_id: p.subgroup_id}}
176
             %td{colspan: "2"}
182
             %td{colspan: "2"}
177
               = editable p, :notes, url: presence_group_activity_path(@activity.group, @activity, person_id: p.person_id), title: t('activities.participant.notes'), value: p.notes, emptytext: "--"
183
               = editable p, :notes, url: presence_group_activity_path(@activity.group, @activity, person_id: p.person_id), title: t('activities.participant.notes'), value: p.notes, emptytext: "--"
178
 
184
 
194
     %table.table.collapse#absent-collapse
200
     %table.table.collapse#absent-collapse
195
       %tbody
201
       %tbody
196
         - @participants.where(attending: false).each do |p|
202
         - @participants.where(attending: false).each do |p|
197
-          %tr{data: {person_id: p.person.id, activity_id: @activity.id}}
203
+          %tr.participant-row{data: {person_id: p.person.id, activity_id: @activity.id, subgroup_id: p.subgroup_id}}
198
             %td
204
             %td
199
               = p.person.full_name
205
               = p.person.full_name
200
               - if p.is_organizer
206
               - if p.is_organizer
204
               - if p.person.id == current_person.id || all_buttons
210
               - if p.person.id == current_person.id || all_buttons
205
                 = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
211
                 = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
206
 
212
 
207
-          %tr{data: {person_id: p.person_id, activity_id: @activity.id}}
213
+          %tr.participant-row{data: {person_id: p.person_id, activity_id: @activity.id, subgroup_id: p.subgroup_id}}
208
             %td{colspan: "2"}
214
             %td{colspan: "2"}
209
               = editable p, :notes, url: presence_group_activity_path(@activity.group, @activity, person_id: p.person_id), title: t('activities.participant.notes'), value: p.notes, emptytext: "--"
215
               = editable p, :notes, url: presence_group_activity_path(@activity.group, @activity, person_id: p.person_id), title: t('activities.participant.notes'), value: p.notes, emptytext: "--"