summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/lib/url_utility.js
blob: 5fa3a4c69d36d327502fe2817d56a09e51a6e16c (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
32
33
function getUrlParameter(sParam) {
  var sPageURL = decodeURIComponent(window.location.search.substring(1)),
      sURLVariables = sPageURL.split('&'),
      sParameterName,
      i;

  for (i = 0; i < sURLVariables.length; i++) {
    sParameterName = sURLVariables[i].split('=');

    if (sParameterName[0] === sParam) {
      return sParameterName[1] === undefined ? true : sParameterName[1];
    }
  }
}

/**
 * @param {Object} params - url keys and value to merge
 * @param {String} url
 */
function mergeUrlParams(params, url){
  var newUrl = decodeURIComponent(url);

  Object.keys(params).forEach(function(paramName) {
    var pattern = new RegExp('\\b('+paramName+'=).*?(&|$)')
    if (url.search(pattern) >= 0){
      newUrl = newUrl.replace(pattern,'$1' + params[paramName] + '$2');
    } else {
      newUrl = newUrl + (newUrl.indexOf('?') > 0 ? '&' : '?') + paramName + '=' + params[paramName]
    }
  });

  return newUrl;
}