Sha256: 0113bd0398f9c33dde5bf0992e490f8a76e7f5dbca89a98a8410cf8ee2438f9d

Contents?: true

Size: 1.62 KB

Versions: 45

Compression:

Stored size: 1.62 KB

Contents

window.AA.CheckboxToggler = class AA.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.bind "change", (e) =>
      @_didChangeCheckbox(e.target)
      
    @toggle_all_checkbox.bind "change", (e) =>
      @_didChangeToggleAllCheckbox()

  _didChangeCheckbox: (checkbox) ->
    if @checkboxes.filter(":checked").length == @checkboxes.length - 1
      @_uncheckToggleAllCheckbox()
    else if @checkboxes.filter(":checked").length == @checkboxes.length
      @_checkToggleAllCheckbox()

  _didChangeToggleAllCheckbox: ->
    if @toggle_all_checkbox.prop("checked")
      @_checkAllCheckboxes()
    else
      @_uncheckAllCheckboxes()      

  _uncheckToggleAllCheckbox: ->
    @toggle_all_checkbox.removeAttr("checked")

  _checkToggleAllCheckbox: ->
    @toggle_all_checkbox.prop("checked", true)

  _uncheckAllCheckboxes: ->
    @checkboxes.each (index, el) =>
      $(el).removeAttr("checked")
      @_didChangeCheckbox(el)

  _checkAllCheckboxes: ->
    @checkboxes.each (index, el) =>
      $(el).prop("checked", true)
      @_didChangeCheckbox(el)
      

( ( $ ) ->
  $.widget.bridge 'checkboxToggler', AA.CheckboxToggler
)( jQuery )

Version data entries

45 entries across 45 versions & 1 rubygems

Version Path
lalala-4.0.0.dev.141 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.136 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.135 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.134 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.133 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.132 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.131 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.129 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.128 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.126 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.125 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.124 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.123 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.118 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.116 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.114 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.113 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.111 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.109 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee
lalala-4.0.0.dev.107 vendor/deps/active_admin/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee