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?