You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
consul/ui-v2/app/initializers/route-urldecode-params.js

33 lines
970 B

import Route from '@ember/routing/route';
import { routes } from 'consul-ui/router';
import wildcard from 'consul-ui/utils/routing/wildcard';
const isWildcard = wildcard(routes);
/**
* This initializer adds urldecoding to the `params` passed into
* ember `model` hooks, plus of course anywhere else where `paramsFor`
* is used. This means the entire ember app is now changed so that all
* paramsFor calls returns urldecoded params instead of raw ones
*/
Route.reopen({
paramsFor: function() {
const params = this._super(...arguments);
if (isWildcard(this.routeName)) {
return Object.keys(params).reduce(function(prev, item) {
if (typeof params[item] !== 'undefined') {
prev[item] = decodeURIComponent(params[item]);
} else {
prev[item] = params[item];
}
return prev;
}, {});
} else {
return params;
}
},
});
export function initialize() {}
export default {
initialize,
};