fix url decode
This commit is contained in:
@@ -53,13 +53,32 @@ class UrlMultipleFieldView extends ArrayFieldView {
|
||||
value = this.strip(value);
|
||||
}
|
||||
|
||||
if (value === decodeURI(value)) {
|
||||
value = encodeURI(value);
|
||||
try {
|
||||
if (value === decodeURI(value)) {
|
||||
value = encodeURI(value);
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn(`Malformed URI ${value}.`);
|
||||
}
|
||||
|
||||
super.addValueFromUi(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @param {string} value
|
||||
* @return {string}
|
||||
*/
|
||||
decodeURI(value) {
|
||||
try {
|
||||
return decodeURI(value);
|
||||
} catch (e) {
|
||||
console.warn(`Malformed URI ${value}.`);
|
||||
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} value
|
||||
* @return {string}
|
||||
@@ -88,7 +107,7 @@ class UrlMultipleFieldView extends ArrayFieldView {
|
||||
return $('<a>')
|
||||
.attr('href', this.prepareUrl(value))
|
||||
.attr('target', '_blank')
|
||||
.text(decodeURI(value));
|
||||
.text(this.decodeURI(value));
|
||||
});
|
||||
|
||||
return $list
|
||||
@@ -111,7 +130,7 @@ class UrlMultipleFieldView extends ArrayFieldView {
|
||||
.attr('href', this.prepareUrl(value))
|
||||
.css('user-drag', 'none')
|
||||
.attr('target', '_blank')
|
||||
.text(decodeURI(value))
|
||||
.text(this.decodeURI(value))
|
||||
);
|
||||
|
||||
return $item.get(0).outerHTML;
|
||||
|
||||
@@ -70,7 +70,7 @@ class UrlFieldView extends VarcharFieldView {
|
||||
return;
|
||||
}
|
||||
|
||||
const decoded = parsedValue ? decodeURI(parsedValue) : '';
|
||||
const decoded = parsedValue ? this.decodeURI(parsedValue) : '';
|
||||
|
||||
this.$element.val(decoded);
|
||||
});
|
||||
@@ -80,7 +80,22 @@ class UrlFieldView extends VarcharFieldView {
|
||||
getValueForDisplay() {
|
||||
const value = this.model.get(this.name);
|
||||
|
||||
return value ? decodeURI(value) : null;
|
||||
return value ? this.decodeURI(value) : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @param {string} value
|
||||
* @return {string}
|
||||
*/
|
||||
decodeURI(value) {
|
||||
try {
|
||||
return decodeURI(value);
|
||||
} catch (e) {
|
||||
console.warn(`Malformed URI ${value}.`);
|
||||
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -94,8 +109,14 @@ class UrlFieldView extends VarcharFieldView {
|
||||
value = this.strip(value);
|
||||
}
|
||||
|
||||
if (value === decodeURI(value)) {
|
||||
value = encodeURI(value);
|
||||
try {
|
||||
if (value === decodeURI(value)) {
|
||||
value = encodeURI(value);
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn(`Malformed URI ${value}.`);
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
return value;
|
||||
|
||||
Reference in New Issue
Block a user