33 lines
970 B
JavaScript
33 lines
970 B
JavaScript
|
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,
|
||
|
};
|