diff --git a/public/app/features/dashboard/folder_dashboards_ctrl.ts b/public/app/features/dashboard/folder_dashboards_ctrl.ts index 5eb79c82f7e..dd0bf7772d8 100644 --- a/public/app/features/dashboard/folder_dashboards_ctrl.ts +++ b/public/app/features/dashboard/folder_dashboards_ctrl.ts @@ -6,13 +6,17 @@ export class FolderDashboardsCtrl { uid: string; /** @ngInject */ - constructor(private backendSrv, navModelSrv, private $routeParams) { + constructor(private backendSrv, navModelSrv, private $routeParams, $location) { if (this.$routeParams.uid) { this.uid = $routeParams.uid; const loader = new FolderPageLoader(this.backendSrv); - loader.load(this, this.uid, 'manage-folder-dashboards'); + loader.load(this, this.uid, 'manage-folder-dashboards').then(folder => { + if ($location.path() !== folder.meta.url) { + $location.path(folder.meta.url).replace(); + } + }); } } } diff --git a/public/app/features/dashboard/folder_permissions_ctrl.ts b/public/app/features/dashboard/folder_permissions_ctrl.ts index 7a5e4c6af7d..fa1d71ef371 100644 --- a/public/app/features/dashboard/folder_permissions_ctrl.ts +++ b/public/app/features/dashboard/folder_permissions_ctrl.ts @@ -6,11 +6,15 @@ export class FolderPermissionsCtrl { uid: string; /** @ngInject */ - constructor(private backendSrv, navModelSrv, private $routeParams) { + constructor(private backendSrv, navModelSrv, private $routeParams, $location) { if (this.$routeParams.uid) { this.uid = $routeParams.uid; - new FolderPageLoader(this.backendSrv).load(this, this.uid, 'manage-folder-permissions'); + new FolderPageLoader(this.backendSrv).load(this, this.uid, 'manage-folder-permissions').then(folder => { + if ($location.path() !== folder.meta.url) { + $location.path(`${folder.meta.url}/permissions`).replace(); + } + }); } } } diff --git a/public/app/features/dashboard/folder_settings_ctrl.ts b/public/app/features/dashboard/folder_settings_ctrl.ts index ddc35166cad..004ba2efa9f 100644 --- a/public/app/features/dashboard/folder_settings_ctrl.ts +++ b/public/app/features/dashboard/folder_settings_ctrl.ts @@ -18,10 +18,14 @@ export class FolderSettingsCtrl { this.uid = $routeParams.uid; this.folderPageLoader = new FolderPageLoader(this.backendSrv); - this.folderPageLoader.load(this, this.uid, 'manage-folder-settings').then(result => { - this.dashboard = result.dashboard; - this.meta = result.meta; - this.canSave = result.meta.canSave; + this.folderPageLoader.load(this, this.uid, 'manage-folder-settings').then(folder => { + if ($location.path() !== folder.meta.url) { + $location.path(`${folder.meta.url}/settings`).replace(); + } + + this.dashboard = folder.dashboard; + this.meta = folder.meta; + this.canSave = folder.meta.canSave; this.title = this.dashboard.title; }); } diff --git a/public/app/routes/dashboard_loaders.ts b/public/app/routes/dashboard_loaders.ts index 4ad77512ad1..80e74819069 100644 --- a/public/app/routes/dashboard_loaders.ts +++ b/public/app/routes/dashboard_loaders.ts @@ -29,6 +29,10 @@ export class LoadDashboardCtrl { } dashboardLoaderSrv.loadDashboard($routeParams.type, $routeParams.slug, $routeParams.uid).then(function(result) { + if ($location.path() !== result.meta.url) { + $location.path(result.meta.url).replace(); + } + if ($routeParams.keepRows) { result.meta.keepRows = true; }