Sha256: c550b0584da6bfc640095065c9cdd44185bc64703aafc18ff4d0f53702dd803d

Contents?: true

Size: 1.14 KB

Versions: 1

Compression:

Stored size: 1.14 KB

Contents

class App.Controllers.Base extends App.Mix App.Mixins.Connectivity
  constructor: ->
    @views = {}
    @receivers = {}
    @subController = null
    @superController = null
    @params = this.__fetchParams()

  setView: (key, view) -> @views[key] = view
  getView: (key) -> @views[key]
  getViews: -> @views

  setSubController: (cntrlr) -> @subController = cntrlr
  getSubController: -> @subController

  setSuperController: (cntrlr) -> @superController = cntrlr
  getSuperController: -> @superController

  setResource: (name) -> this.setScope name
  setScope: (name) -> App.Env.scope = name

  __fetchParams: ->
    params = {}
    match = /https?:\/\/.+\/\w+\/(\d+)/.exec window.location.href
    id = if match? then match[1] else null
    params["id"] = parseInt(id) if id?
    splitUrl = window.location.href.split '?'
    if splitUrl.length is 1
      return params
    paramsString = _.last splitUrl
    paramsArray = _.map paramsString.split('&'), (s) -> s.split '='
    for arr in paramsArray
      key = decodeURIComponent arr[0]
      val = decodeURIComponent arr[1]
      if val?
        val = val.replace /\+/g, " "
      params[key] = val
    params

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
loco-rails-0.0.1 lib/assets/javascripts/loco/controllers/base.coffee