Sha256: b09fea7aca9340ec72e99021342d86a11d2a8bf8434ffedfacf54d26d65a4b02

Contents?: true

Size: 1.12 KB

Versions: 2

Compression:

Stored size: 1.12 KB

Contents

class OverlayMe.MenuItem extends Backbone.View

  tagName: 'li'
  className: 'menu-item'

  initialize: (attributes, options) ->
    @id = attributes.id
    @el.appendChild @collapseButton()
    @title = this.make 'label', { class: 'title' }, attributes.title
    $o(@title).bind 'click', =>
      @toggleCollapse()
    @el.appendChild @title
    @content = this.make 'div', { class: 'item-content' }
    @el.appendChild @content
    @collapsed = (if localStorage.getItem("#{@id}-collapsed") == '' then false else true)
    @setCollapse @collapsed

  collapseButton: () ->
    @collapseButton = this.make 'a', { class: 'collaps-button' }, '<span>o</span>'
    $o(@collapseButton).bind 'click', =>
      @toggleCollapse()
    @collapseButton

  toggleCollapse: ->
    @collapsed = !@collapsed
    @setCollapse @collapsed
    @saveState()

  setCollapse: (toCollapse) ->
    if toCollapse
      $o(@el).addClass 'collapsed'
    else
      $o(@el).removeClass 'collapsed'

  append: (childElemt) ->
    @content.appendChild childElemt

  render: ->
    @el

  saveState: ->
    localStorage.setItem "#{@id}-collapsed", (if @collapsed then 1 else '')

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
overlay_me-0.13.0 javascripts/menu_item.js.coffee
overlay_me-0.12.1 javascripts/menu_item.js.coffee