mirror of
https://github.com/flarum/core.git
synced 2025-08-11 10:55:47 +02:00
infrastructure: Add routing to common/Application
This commit is contained in:
committed by
Franz Liedke
parent
3b6e5a0caf
commit
94fe3236d7
@@ -195,7 +195,7 @@ export default class Application {
|
|||||||
|
|
||||||
// this.drawer = new Drawer();
|
// this.drawer = new Drawer();
|
||||||
|
|
||||||
// m.route(document.getElementById('content'), basePath + '/', mapRoutes(this.routes, basePath));
|
m.route(document.getElementById('content'), basePath + '/', mapRoutes(this.routes, basePath));
|
||||||
|
|
||||||
// Add a class to the body which indicates that the page has been scrolled
|
// Add a class to the body which indicates that the page has been scrolled
|
||||||
// down.
|
// down.
|
||||||
@@ -432,9 +432,19 @@ export default class Application {
|
|||||||
* @public
|
* @public
|
||||||
*/
|
*/
|
||||||
route(name, params = {}) {
|
route(name, params = {}) {
|
||||||
const url = this.routes[name].path.replace(/:([^\/]+)/g, (m, key) => extract(params, key));
|
const route = this.routes[name];
|
||||||
const queryString = m.route.buildQueryString(params);
|
|
||||||
const prefix = m.route.mode === 'pathname' ? app.forum.attribute('basePath') : '';
|
if (!route) throw new Error(`Route '${name}' does not exist`);
|
||||||
|
|
||||||
|
const url = route.path.replace(/:([^\/]+)/g, (m, key) => extract(params, key));
|
||||||
|
|
||||||
|
// Remove falsy values in params to avoid having urls like '/?sort&q'
|
||||||
|
for (const key in params) {
|
||||||
|
if (params.hasOwnProperty(key) && !params[key]) delete params[key];
|
||||||
|
}
|
||||||
|
|
||||||
|
const queryString = m.buildQueryString(params);
|
||||||
|
const prefix = m.route.prefix === '' ? this.forum.attribute('basePath') : '';
|
||||||
|
|
||||||
return prefix + url + (queryString ? '?' + queryString : '');
|
return prefix + url + (queryString ? '?' + queryString : '');
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user