Browse Source

State counting updates with subgroup

Maarten van den Berg 7 years ago
parent
commit
f0337cf7a8

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

@@ -29,13 +29,32 @@ $(document).on 'turbolinks:load', ->
29 29
 @filterparticipants = (e) ->
30 30
   show = e.target.value
31 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 36
   else
36 37
     $('.participant-row').show()
38
+    @updatecounts()
37 39
 
38 40
 @updatecounts = (subgroupid) ->
39
-  selector = 'tr.participant-row'
41
+  selector = 'tr.countable.participant-row'
42
+  selectorend = '[style!="display: none;"]'
43
+
40 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,13 +1,10 @@
1 1
 (
2 2
 %span.state-count.present-count
3 3
   = counts[true] or 0
4
-  P
5
-,
4
+P,
6 5
 %span.state-count.unknown-count
7 6
   = counts[nil] or 0
8
-  ?
9
-,
7
+?,
10 8
 %span.state-count.absent-count
11 9
   = counts[false] or 0
12
-  A
13
-)
10
+A)

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

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