Sprankelprachtig aan/afmeldsysteem

activities.coffee 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. $(document).on 'turbolinks:load', ->
  2. clipboard = new Clipboard('.copy-reactions', {
  3. 'text': clipreactions
  4. })
  5. $('.subgroup-filter').on('change', (e) -> filterparticipants(e))
  6. @clipreactions = (trigger) ->
  7. id = trigger.dataset['activity']
  8. dopresent = (typeof trigger.dataset['present'] != 'undefined')
  9. doabsent = (typeof trigger.dataset['absent'] != 'undefined')
  10. donoresp = (typeof trigger.dataset['unknown'] != 'undefined')
  11. req = $.ajax({
  12. async: false,
  13. method: 'GET',
  14. url: '/api/activities/' + id + '/response_summary'
  15. })
  16. resp = req.responseJSON.response_summary
  17. res = []
  18. if dopresent
  19. res.push(resp['present']['message'])
  20. if doabsent
  21. res.push(resp['absent']['message'])
  22. if donoresp
  23. res.push(resp['unknown']['message'])
  24. res.join('\n')
  25. @filterparticipants = (e) ->
  26. show = e.target.value
  27. if (show != 'all')
  28. selector = "[data-subgroup-id=" + e.target.value + "]"
  29. $('.participant-row').hide()
  30. $(selector).show()
  31. @updatecounts(show)
  32. this.subgroupfilter = show
  33. else
  34. $('.participant-row').show()
  35. @updatecounts()
  36. this.subgroupfilter = null
  37. @updatecounts = (subgroupid) ->
  38. selector = 'tr.countable.participant-row'
  39. selectorend = '[style!="display: none;"]'
  40. if (subgroupid)
  41. selectorend = '[data-subgroup-id=' + subgroupid + ']' + selectorend
  42. pselect = selector + '.success' + selectorend
  43. uselect = selector + '.warning' + selectorend
  44. aselect = selector + '.danger' + selectorend
  45. numall = $(selector + selectorend).length
  46. numpresent = $(pselect).length
  47. numunknown = $(uselect).length
  48. numabsent = $(aselect).length
  49. $('.state-count.all-count').html(numall)
  50. $('.state-count.present-count').html(numpresent)
  51. $('.state-count.unknown-count').html(numunknown)
  52. $('.state-count.absent-count').html(numabsent)
  53. [numpresent, numabsent, numunknown]