Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Zeitgeist/javascripts/piwikHelper.js')
-rw-r--r--plugins/Zeitgeist/javascripts/piwikHelper.js52
1 files changed, 35 insertions, 17 deletions
diff --git a/plugins/Zeitgeist/javascripts/piwikHelper.js b/plugins/Zeitgeist/javascripts/piwikHelper.js
index 2e84968968..a2ade4c846 100644
--- a/plugins/Zeitgeist/javascripts/piwikHelper.js
+++ b/plugins/Zeitgeist/javascripts/piwikHelper.js
@@ -113,6 +113,32 @@ var piwikHelper = {
});
},
+ getQueryStringWithParametersModified: function (queryString, newParameters) {
+ if (queryString != '') {
+ var r, i, keyvalue, keysvalues = newParameters.split('&');
+ var appendUrl = '';
+ for (i = 0; i < keysvalues.length; i++) {
+ keyvalue = keysvalues[i].split('=');
+ r = new RegExp('(^|[?&])' + keyvalue[0] + '=[^&]*');
+ queryString = queryString.replace(r, '');
+
+ // empty value, eg. &segment=, we remove the parameter from URL entirely
+ if (keyvalue[1].length == 0) {
+ continue;
+ }
+ appendUrl += '&' + keyvalue[0] + '=' + keyvalue[1];
+ }
+ queryString += appendUrl;
+ if (queryString[0] == '&') {
+ queryString = '?' + queryString.substring(1);
+ }
+ } else {
+ queryString = '?' + newParameters;
+ }
+
+ return queryString;
+ },
+
/**
* Returns the current query string with the given parameters modified
* @param {object} newparams parameters to be modified
@@ -120,24 +146,13 @@ var piwikHelper = {
*/
getCurrentQueryStringWithParametersModified: function(newparams)
{
- var parameters = String(window.location.search);
- if(newparams) {
- if(parameters != '') {
- var r, i, keyvalue, keysvalues = newparams.split('&');
- for(i = 0; i < keysvalues.length; i++) {
- keyvalue = keysvalues[i].split('=');
- r = new RegExp('(^|[?&])'+keyvalue[0]+'=[^&]*');
- parameters = parameters.replace(r, '');
- }
- parameters += '&' + newparams;
- if(parameters[0] == '&') {
- parameters = '?' + parameters.substring(1);
- }
- } else {
- parameters = '?' + newparams;
- }
+ var queryString = String(window.location.search);
+ if (newparams) {
+ queryString = this.getQueryStringWithParametersModified(queryString, newparams);
}
- return String(window.location.pathname) + parameters;
+ var value = String(window.location.pathname) + queryString;
+
+ return value;
},
/**
@@ -365,6 +380,9 @@ var piwikHelper = {
*/
getApiFormatTextarea: function (textareaContent)
{
+ if(typeof textareaContent == 'undefined') {
+ return '';
+ }
return textareaContent.trim().split("\n").join(',');
}