Add JS helper extending url params

This commit is contained in:
Thomas Gelf 2014-03-25 12:11:39 +00:00
parent f612610fa7
commit e36fb2558e
1 changed files with 36 additions and 5 deletions

View File

@ -53,16 +53,20 @@
return hours + ':' + minutes + ':' + seconds;
},
getUrlHelper: function () {
if (this.urlHelper === null) {
this.urlHelper = document.createElement('a');
}
return this.urlHelper;
},
/**
* Parse a given Url and return an object
*/
parseUrl: function (url) {
if (this.urlHelper === null) {
this.urlHelper = document.createElement('a');
}
var a = this.urlHelper;
var a = this.getUrlHelper();
a.href = url;
var result = {
@ -83,6 +87,33 @@
return result;
},
// Local URLs only
addUrlParams: function (url, params) {
var parts = this.parseUrl(url);
var result = parts.path;
var newparams = parts.params;
var idx, p;
$.each(params, function (idx, p) {
// We overwrite existing params
newparams[p.name] = p.value;
});
if (Object.keys(newparams).length > 0) {
var queryString = '?';
$.each(newparams, function (key, value) {
if (queryString !== '?') {
queryString += '&';
}
queryString += encodeURIComponent(key) + '=' + encodeURIComponent(value);
});
result += queryString;
}
if (parts.hash.length > 0) {
result += '#' + parts.hash;
}
return result;
},
/**
* Parse url params
*/