Sha256: e10db0d4df7747bd0d9214d2e3ce73dbb6755cdd9886dbfa078cb2bd8b507e5a

Contents?: true

Size: 1.55 KB

Versions: 4

Compression:

Stored size: 1.55 KB

Contents

# -----------------------------------------------------------------------------
# Author: Alexander Kravets <alex@slatestudio.com>,
#         Slate Studio (http://www.slatestudio.com)
# -----------------------------------------------------------------------------
# EXPANDABLE GROUP
# -----------------------------------------------------------------------------
# TODO: refactor this to be used with group-panel
# Usage: onInitialize: (form, group) -> new ExpandableGroup(form, group, 'Details')
# -----------------------------------------------------------------------------
@_expandableGroupStateCache = {}

class @ExpandableGroup
  constructor: (@form, @group, name) ->
    @$expander =$ """<a href='#' class='group-edit hidden'>#{ name }</a>"""
    @group.$el.before @$expander

    @_restoreExpanderFromCache()

    @$expander.on 'click', (e) =>
      @$expander.toggleClass('hidden')
      @_cacheExpanderState()
      e.preventDefault()

  _restoreExpanderFromCache: ->
    if _expandableGroupStateCache.__hash

      if _expandableGroupStateCache.__hash == window.location.hash
        if _expandableGroupStateCache[@_groupId()]
          @$expander.removeClass 'hidden'

      if _expandableGroupStateCache.__hash.endsWith 'new'
        @$expander.removeClass 'hidden'

  _cacheExpanderState: ->
    _expandableGroupStateCache.__hash = window.location.hash
    _expandableGroupStateCache[@_groupId()] = @group.$el.is(':visible')

  _groupId: ->
    groupIndex = $('form').find(".group.#{ @group.klassName }").index(@group.$el)
    return "#{ @group.klassName }-#{ groupIndex }"

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
formagic-0.3.10 app/assets/javascripts/formagic/group.coffee
formagic-0.3.9 app/assets/javascripts/formagic/group.coffee
formagic-0.3.8 app/assets/javascripts/formagic/group.coffee
formagic-0.3.7 app/assets/javascripts/formagic/group.coffee