summaryrefslogtreecommitdiffstats
path: root/core/js/js.js
diff options
context:
space:
mode:
Diffstat (limited to 'core/js/js.js')
-rw-r--r--core/js/js.js19
1 files changed, 16 insertions, 3 deletions
diff --git a/core/js/js.js b/core/js/js.js
index 7ff010eca0a..a43df4014df 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -116,17 +116,30 @@ var OC={
/**
* Generates the absolute url for the given relative url, which can contain parameters.
+ * Parameters will be URL encoded automatically.
* @param {string} url
* @param [params] params
+ * @param [options] options
+ * @param {bool} [options.escape=true] enable/disable auto escape of placeholders (by default enabled)
* @return {string} Absolute URL for the given relative URL
*/
- generateUrl: function(url, params) {
+ generateUrl: function(url, params, options) {
+ var defaultOptions = {
+ escape: true
+ },
+ allOptions = options || {};
+ _.defaults(allOptions, defaultOptions);
+
var _build = function (text, vars) {
var vars = vars || [];
return text.replace(/{([^{}]*)}/g,
function (a, b) {
- var r = vars[b];
- return typeof r === 'string' || typeof r === 'number' ? r : a;
+ var r = (vars[b]);
+ if(allOptions.escape) {
+ return (typeof r === 'string' || typeof r === 'number') ? encodeURIComponent(r) : encodeURIComponent(a);
+ } else {
+ return (typeof r === 'string' || typeof r === 'number') ? r : a;
+ }
}
);
};