app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee in activeadmin-1.0.0 vs app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee in activeadmin-1.1.0
- old
+ new
@@ -21,18 +21,20 @@
_bind: ->
@checkboxes.change (e)=> @_didChangeCheckbox e.target
@toggle_all_checkbox.change => @_didChangeToggleAllCheckbox()
_didChangeCheckbox: (checkbox)->
- switch @checkboxes.filter(':checked').length
- when @checkboxes.length - 1 then @toggle_all_checkbox.prop checked: null
- when @checkboxes.length then @toggle_all_checkbox.prop checked: true
+ numChecked = @checkboxes.filter(':checked').length
+ allChecked = numChecked == @checkboxes.length
+ someChecked = numChecked > 0 && numChecked < @checkboxes.length
+
+ @toggle_all_checkbox.prop checked: allChecked, indeterminate: someChecked
+
_didChangeToggleAllCheckbox: ->
- setting = if @toggle_all_checkbox.prop 'checked' then true else null
- @checkboxes.each (index, el)=>
- $(el).prop checked: setting
- @_didChangeCheckbox(el)
+ setting = @toggle_all_checkbox.prop 'checked'
+ @checkboxes.prop checked: setting
+ setting
option: (key, value) ->
if $.isPlainObject(key)
@options = $.extend(true, @options, key)
else if key?