Sha256: 69393792c8a5cc8b2b03c735afa47cc2132afd0361d073dee9baf65a061c4dbb

Contents?: true

Size: 1.31 KB

Versions: 1

Compression:

Stored size: 1.31 KB

Contents

class Lanes.Workspace.Pages extends Lanes.Views.Base

    template: 'workspace/pages'

    bindings:
        'model.screen_menu_size': { type: 'class' }
        'model.layout_size': { selector: '.page-content', type: 'class' }
        'screen_menu_class': { type: 'class' }

    derived:
        screen_menu_class:
            deps: ['model.screen_menu_position']
            fn: -> if @model.screen_menu_position == 'side' then 'with-screen-menu' else 'no-screen-menu'

    ui:
        screen: '.screen'
        screens_menu_container: '.screens-menu-container'

    initialize: (options)->
        this.listenTo( Lanes.Models.Screens.displaying, "change:active", this.onActiveChange )
        this.listenTo( Lanes.Models.Screens.displaying, "remove",        this.onRemove )
        this.listenTo( @model,'change:screen_menu_position', this.moveScreensMenu )
        super


    moveScreensMenu: ->
        return unless 'side' == this.viewport.screen_menu_position
        this.ui.screens_menu_container.append( this.viewport.menu_view.el )

    onRemove: (sv)->
        sv.view.remove()

    onActiveChange: (screen,active)->
        view = screen.view
        view.parent = this
        unless view.rendered
            view.render()

        if active
            this.ui.screen.append( view.el )
        else
            view.$el.detach()

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lanes-0.1.0 client/lanes/workspace/Pages.coffee