Sha256: e1af3a24dd60b94ae8c5a0a365dd76cb7e0a3c4074b57c8a0a0ed89dd54986b4

Contents?: true

Size: 1.5 KB

Versions: 1

Compression:

Stored size: 1.5 KB

Contents

((window) ->
  class ForceRedirect
    get = (url, success, fail = ->) ->
      req = new XMLHttpRequest()
      req.onreadystatechange = ->
        if req.readyState is 4 and req.status is 200
          success.call(this, JSON.parse(req.responseText))
        else
          fail.call(this, req.responseText)

      req.open('GET', url, true)
      req.send(null)

    checkRedirectExists: ->
      return true if /no_force_path=true/.test(document.cookie)
      /force_path=/.test document.cookie

    checkRedirectExists: ->
      /force_path=/.test document.cookie

    redirectForce: (path) ->
      return if /no_force_path=true/.test(document.cookie)
      path = /force_path=\[(.*?)\]/.exec(document.cookie)?[1] unless path?
      return unless path?
      return if path is window?.location?.pathname
      window.location.replace?(path) if path?

    storeRedirect: (path) ->
      append = [
        "force_path=[#{path}]"
        'max-age=600',
        'path=/'
      ].join('; ')

      unless path?
        append = [
          "no_force_path=true"
          'max-age=600',
          'path=/'
        ].join('; ')

      document.cookie = append

    checkUserInfo: (callBack) ->
      get '/user-lookup.json', (data) =>
        @storeRedirect(data?.redirect)
        @redirectForce(data?.redirect)

    @init: (params = {}) ->
      new ForceRedirect(params)

    constructor: (@params = {}) ->
      return @redirectForce() if @checkRedirectExists()
      @checkUserInfo()

  window.ForceRedirect = ForceRedirect;
)(window)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
translation_cms-0.1.5 app/assets/javascripts/utils/force_redirect.js.coffee