Sha256: 014fd38a906f9d3eb42386e5f6a53dfbc4deb2875c52f90ac233d79753b8cf07

Contents?: true

Size: 1.17 KB

Versions: 22

Compression:

Stored size: 1.17 KB

Contents

class ActiveAdmin.CheckboxToggler
  constructor: (@options, @container)->
    defaults = {}
    @options = $.extend defaults, @options
    @_init()
    @_bind()

  _init: ->
    if not @container
      throw new Error('Container element not found')
    else
      @$container = $(@container)

    if not @$container.find('.toggle_all').length
      throw new Error('"toggle all" checkbox not found')
    else
      @toggle_all_checkbox = @$container.find '.toggle_all'

    @checkboxes = @$container.find(':checkbox').not @toggle_all_checkbox

  _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

  _didChangeToggleAllCheckbox: ->
    setting = if @toggle_all_checkbox.prop 'checked' then true else null
    @checkboxes.each (index, el)=>
      $(el).prop checked: setting
      @_didChangeCheckbox(el)

$.widget.bridge 'checkboxToggler', ActiveAdmin.CheckboxToggler

Version data entries

22 entries across 22 versions & 3 rubygems

Version Path
activeadmin_addons-1.1.2 vendor/bundle/ruby/2.3.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
activeadmin_addons-1.1.1 vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
yousty-activeadmin-1.0.17.pre app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
yousty-activeadmin-1.0.16.pre app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
activeadmin_addons-1.1.0 vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
activeadmin_addons-1.0.1 vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
activeadmin_addons-1.0.0 vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
yousty-activeadmin-1.0.15.pre app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
yousty-activeadmin-1.0.14.pre app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
yousty-activeadmin-1.0.13.pre app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
yousty-activeadmin-1.0.12.pre app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
yousty-activeadmin-1.0.11.pre app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
yousty-activeadmin-1.0.10.pre app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
yousty-activeadmin-1.0.9.pre app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
yousty-activeadmin-1.0.8.pre app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
activeadmin-1.0.0.pre4 app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
activeadmin-1.0.0.pre3 app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
activeadmin-1.0.0.pre2 app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
activeadmin-1.0.0.pre1 app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee
yousty-activeadmin-1.0.7.pre app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee