url_utility.js.coffee 1.3 KB
Newer Older
1 2 3 4 5
((w) ->

  w.gl ?= {}
  w.gl.utils ?= {}

Arinde Eniola's avatar
Arinde Eniola committed
6 7 8
  # Returns an array containing the value(s) of the
  # of the key passed as an argument
  w.gl.utils.getParameterValues = (sParam) ->
9 10 11
    sPageURL = decodeURIComponent(window.location.search.substring(1))
    sURLVariables = sPageURL.split('&')
    sParameterName = undefined
Arinde Eniola's avatar
Arinde Eniola committed
12
    values = []
13 14 15 16
    i = 0
    while i < sURLVariables.length
      sParameterName = sURLVariables[i].split('=')
      if sParameterName[0] is sParam
Arinde Eniola's avatar
Arinde Eniola committed
17
        values.push(sParameterName[1])
18
      i++
Arinde Eniola's avatar
Arinde Eniola committed
19
    values
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

  # #
  #  @param {Object} params - url keys and value to merge
  #  @param {String} url
  # #
  w.gl.utils.mergeUrlParams = (params, url) ->
    newUrl = decodeURIComponent(url)
    for paramName, paramValue of params
      pattern = new RegExp "\\b(#{paramName}=).*?(&|$)"
      if url.search(pattern) >= 0
        newUrl = newUrl.replace pattern, "$1#{paramValue}$2"
      else
        newUrl = "#{newUrl}#{(if newUrl.indexOf('?') > 0 then '&' else '?')}#{paramName}=#{paramValue}"
    newUrl

35 36 37 38 39 40 41 42
  # removes parameter query string from url. returns the modified url
  w.gl.utils.removeParamQueryString = (url, param) ->
    url = decodeURIComponent(url)
    urlVariables = url.split('&')
    (
      variables for variables in urlVariables when variables.indexOf(param) is -1
    ).join('&')

43
) window