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