Sha256: 5d00ca03e8f55713159f24982624e5e7542b2d76af30dd6dbf16dede5354bb99

Contents?: true

Size: 1.32 KB

Versions: 50

Compression:

Stored size: 1.32 KB

Contents

# TODO bettter require
stampit    = require 'indefinido-indemma/vendor/stampit.js'
observable = require('observable').mixin

define ->

  handlers =
    adapter_loaded: (composable) ->
      builder  = stampit.compose(adaptable, composable)
      @adapter = builder options: @options.adapter

      handlers.adapter_initialized.call @

    # Event handlers and state restoring
    adapter_initialized: ->

      if @sandbox.signed_in
        @adapter.user = @sandbox.current_user
      else
        @sandbox.once 'user.signed_in', handlers.user_signed_in, @

      @sandbox.on 'support.default.focus', @focus, @


    user_signed_in: (user) -> @adapter.user = @sandbox.current_user

  adaptable = stampit().methods(
    focus: -> throw new Error "Not implemented by this interface."
  ).enclose -> observable @

  type: 'Base'

  focus: -> @adapter.focus()

  initialize: (options) ->

    unless @options.adapter?
      throw new TypeError "No adapter specified for support widget '#{@identifier}'."

    @options.adapter = @sandbox.util.extend @options.adapter,
      name : options.adapterName
      token: options.adapterToken

    require ["widgets/support/adapters/#{options.adapter.name}"], (composable) => handlers.adapter_loaded.call @, composable

    # TODO implement a type of widget that does not require element
    @$el.remove();


Version data entries

50 entries across 50 versions & 1 rubygems

Version Path
ende-0.3.13 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.3.12 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.3.11 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.3.10 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.3.9 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.3.8 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.3.7 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.3.6 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.3.5 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.3.4 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.3.3 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.3.2 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.3.1 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.3.0 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.2.21 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.2.20 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.2.19 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.2.18 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.2.17 lib/assets/javascripts/widgets/support/main.js.coffee
ende-0.2.16 lib/assets/javascripts/widgets/support/main.js.coffee