Sha256: 22e91397943186f0c1e5187a8fb43d4b53252e79c63c1f99870e565d1a0f58c8

Contents?: true

Size: 1.41 KB

Versions: 19

Compression:

Stored size: 1.41 KB

Contents

Luca.components.Controller = Luca.containers.CardView.extend
  initialize: (@options)->
    Luca.containers.CardView::initialize.apply @, arguments

    @defaultCard ||= @components[0]?.name

    throw "Controllers must specify a defaultCard property and/or the first component must have a name" unless @defaultCard

    @state = new Backbone.Model
      active_section: @defaultCard


  each: (fn)->
    _( @components ).each (component)=>
      fn.apply @, [component]

  default: (callback)->
    @navigate_to(@defaultCard, callback)

  # switch the active card of this controller
  # optionally passing an onActivation callback
  # will fire this callback in the context of
  # the currently active card
  navigate_to: (section, callback)->
    section ||= @defaultCard

    # activate is a method on Luca.containers.CardView which
    # selects a component and makes it visible, hiding any
    # other component which may be monopolizing the view at that time.

    # after activation it triggers a after:card:switch event
    # and if it is the first time that view is being activated,
    # it triggers a first:activation event which gets relayed to all
    # child components in that view
    @activate section, false, (activator, previous,current)=>
      @state.set(active_section: current.name )
      if _.isFunction( callback )
        callback.apply(current)

    # return the section we are navigating to
    @find(section)

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
luca-0.8.3 src/components/controller.coffee
luca-0.8.2 src/components/controller.coffee
luca-0.8.06 src/components/controller.coffee
luca-0.8 src/components/controller.coffee
luca-0.7.92 src/components/controller.coffee
luca-0.7.91 src/components/controller.coffee
luca-0.7.9 src/components/controller.coffee
luca-0.7.8 src/components/controller.coffee
luca-0.7.7 src/components/controller.coffee
luca-0.7.6 src/components/controller.coffee
luca-0.7.5 src/components/controller.coffee
luca-0.7.4 src/components/controller.coffee
luca-0.7.3 src/components/controller.coffee
luca-0.7.2 src/components/controller.coffee
luca-0.7.0 src/components/controller.coffee
luca-0.6.9 src/components/controller.coffee
luca-0.6.8 src/components/controller.coffee
luca-0.6.7 src/components/controller.coffee
luca-0.6.6 src/components/controller.coffee