summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/lib/url_utility.js.coffee
blob: abd556e0b4e07eb20f77d242cc98a459267f74d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
((w) ->

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

  w.gl.utils.getUrlParameter = (sParam) ->
    sPageURL = decodeURIComponent(window.location.search.substring(1))
    sURLVariables = sPageURL.split('&')
    sParameterName = undefined
    i = 0
    while i < sURLVariables.length
      sParameterName = sURLVariables[i].split('=')
      if sParameterName[0] is sParam
        return if sParameterName[1] is undefined then true else sParameterName[1]
      i++

  # #
  #  @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

) window