Sprankelprachtig aan/afmeldsysteem

activities.coffee 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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. else
  33. $('.participant-row').show()
  34. @updatecounts()
  35. @updatecounts = (subgroupid) ->
  36. selector = 'tr.countable.participant-row'
  37. selectorend = '[style!="display: none;"]'
  38. if (subgroupid)
  39. selectorend = '[data-subgroup-id=' + subgroupid + ']' + selectorend
  40. pselect = selector + '.success' + selectorend
  41. uselect = selector + '.warning' + selectorend
  42. aselect = selector + '.danger' + selectorend
  43. numall = $(selector + selectorend).length
  44. numpresent = $(pselect).length
  45. numunknown = $(uselect).length
  46. numabsent = $(aselect).length
  47. $('.state-count.all-count').html(numall)
  48. $('.state-count.present-count').html(numpresent)
  49. $('.state-count.unknown-count').html(numunknown)
  50. $('.state-count.absent-count').html(numabsent)
  51. [numpresent, numabsent, numunknown]