Bladeren bron

State counting updates with subgroup

Maarten van den Berg 7 jaren geleden
bovenliggende
commit
f0337cf7a8

+ 24 - 5
app/assets/javascripts/activities.coffee

29
 @filterparticipants = (e) ->
29
 @filterparticipants = (e) ->
30
   show = e.target.value
30
   show = e.target.value
31
   if (show != 'all')
31
   if (show != 'all')
32
-	  selector = "[data-subgroup-id=" + e.target.value + "]"
33
-	  $('.participant-row').hide()
34
-	  $(selector).show()
32
+    selector = "[data-subgroup-id=" + e.target.value + "]"
33
+    $('.participant-row').hide()
34
+    $(selector).show()
35
+    @updatecounts(show)
35
   else
36
   else
36
     $('.participant-row').show()
37
     $('.participant-row').show()
38
+    @updatecounts()
37
 
39
 
38
 @updatecounts = (subgroupid) ->
40
 @updatecounts = (subgroupid) ->
39
-  selector = 'tr.participant-row'
41
+  selector = 'tr.countable.participant-row'
42
+  selectorend = '[style!="display: none;"]'
43
+
40
   if (subgroupid)
44
   if (subgroupid)
41
-    selector = 'tr.participant-row[data-subgroup-id=' + subgroupid + ']'
45
+    selectorend = '[data-subgroup-id=' + subgroupid + ']' + selectorend
46
+
47
+  pselect = selector + '.success' + selectorend
48
+  uselect = selector + '.warning' + selectorend
49
+  aselect = selector + '.danger' + selectorend
50
+
51
+  numall = $(selector + selectorend).length
52
+  numpresent = $(pselect).length
53
+  numunknown = $(uselect).length
54
+  numabsent  = $(aselect).length
55
+
56
+  $('.state-count.all-count').html(numall)
57
+  $('.state-count.present-count').html(numpresent)
58
+  $('.state-count.unknown-count').html(numunknown)
59
+  $('.state-count.absent-count').html(numabsent)
60
+  [numpresent, numabsent, numunknown]

+ 3 - 6
app/views/activities/_state_counts.html.haml

1
 (
1
 (
2
 %span.state-count.present-count
2
 %span.state-count.present-count
3
   = counts[true] or 0
3
   = counts[true] or 0
4
-  P
5
-,
4
+P,
6
 %span.state-count.unknown-count
5
 %span.state-count.unknown-count
7
   = counts[nil] or 0
6
   = counts[nil] or 0
8
-  ?
9
-,
7
+?,
10
 %span.state-count.absent-count
8
 %span.state-count.absent-count
11
   = counts[false] or 0
9
   = counts[false] or 0
12
-  A
13
-)
10
+A)

+ 6 - 5
app/views/activities/show.html.haml

90
   .row
90
   .row
91
     .col-md-6
91
     .col-md-6
92
       %h2
92
       %h2
93
-        = @num_participants
93
+        %span.state-count.all-count
94
+          = @num_participants
94
         = t 'activities.participant.plural'
95
         = t 'activities.participant.plural'
95
         = render partial: "state_counts", locals: {counts: @counts}
96
         = render partial: "state_counts", locals: {counts: @counts}
96
     .col-md-6
97
     .col-md-6
98
 
99
 
99
   %table.table.table-bordered
100
   %table.table.table-bordered
100
     - @participants.each do |p|
101
     - @participants.each do |p|
101
-      %tr.participant-row{class: p.row_class, data: {person_id: p.person.id, activity_id: @activity.id, subgroup_id: p.subgroup_id}}
102
+      %tr.participant-row.countable{class: p.row_class, data: {person_id: p.person.id, activity_id: @activity.id, subgroup_id: p.subgroup_id}}
102
         %td
103
         %td
103
           = p.person.full_name
104
           = p.person.full_name
104
           - if p.is_organizer
105
           - if p.is_organizer
129
           %i.fa.fa-angle-up
130
           %i.fa.fa-angle-up
130
 
131
 
131
         = t 'activities.state.present'
132
         = t 'activities.state.present'
132
-        %span.badge
133
+        %span.badge.state-count.present-count
133
           = @counts[true] || "0"
134
           = @counts[true] || "0"
134
 
135
 
135
     %table.table.collapse#present-collapse
136
     %table.table.collapse#present-collapse
162
 
163
 
163
         = t 'activities.state.need_response'
164
         = t 'activities.state.need_response'
164
 
165
 
165
-        %span.badge
166
+        %span.badge.state-count.unknown-count
166
           = @counts[nil] || "0"
167
           = @counts[nil] || "0"
167
 
168
 
168
     %table.table.collapse#unknown-collapse
169
     %table.table.collapse#unknown-collapse
194
 
195
 
195
         = t 'activities.state.absent'
196
         = t 'activities.state.absent'
196
 
197
 
197
-        %span.badge
198
+        %span.badge.state-count.absent-count
198
           = @counts[false] || "0"
199
           = @counts[false] || "0"
199
 
200
 
200
     %table.table.collapse#absent-collapse
201
     %table.table.collapse#absent-collapse