diff --git a/pkg/api/api.go b/pkg/api/api.go index 2b1eaa714e3..f14802d2a70 100644 --- a/pkg/api/api.go +++ b/pkg/api/api.go @@ -56,6 +56,7 @@ func Register(r *macaron.Macaron) { r.Get("/dashboard/*", reqSignedIn, Index) r.Get("/dashboard-solo/*", reqSignedIn, Index) r.Get("/import/dashboard", reqSignedIn, Index) + r.Get("/dashboards/*", reqSignedIn, Index) r.Get("/playlists/", reqSignedIn, Index) r.Get("/playlists/*", reqSignedIn, Index) diff --git a/pkg/api/index.go b/pkg/api/index.go index 53538fd2775..b921c9d17c6 100644 --- a/pkg/api/index.go +++ b/pkg/api/index.go @@ -65,7 +65,8 @@ func setIndexViewData(c *middleware.Context) (*dtos.IndexViewData, error) { if c.OrgRole == m.ROLE_ADMIN || c.OrgRole == m.ROLE_EDITOR { dashboardChildNavs = append(dashboardChildNavs, &dtos.NavLink{Divider: true}) dashboardChildNavs = append(dashboardChildNavs, &dtos.NavLink{Text: "New", Icon: "fa fa-plus", Url: setting.AppSubUrl + "/dashboard/new"}) - dashboardChildNavs = append(dashboardChildNavs, &dtos.NavLink{Text: "Import", Icon: "fa fa-download", Url: setting.AppSubUrl + "/import/dashboard"}) + dashboardChildNavs = append(dashboardChildNavs, &dtos.NavLink{Text: "Import", Icon: "fa fa-download", Url: setting.AppSubUrl + "/dashboard/new/?editview=import"}) + dashboardChildNavs = append(dashboardChildNavs, &dtos.NavLink{Text: "Dashboard list", Icon: "fa fa-list", Url: setting.AppSubUrl + "/dashboards/list"}) } data.MainNavLinks = append(data.MainNavLinks, &dtos.NavLink{ diff --git a/public/app/core/routes/dashboard_loaders.js b/public/app/core/routes/dashboard_loaders.js index 61cdf32c128..97f7213850d 100644 --- a/public/app/core/routes/dashboard_loaders.js +++ b/public/app/core/routes/dashboard_loaders.js @@ -25,18 +25,6 @@ function (coreModule) { }); - coreModule.default.controller('DashFromImportCtrl', function($scope, $location, alertSrv) { - if (!window.grafanaImportDashboard) { - alertSrv.set('Not found', 'Cannot reload page with unsaved imported dashboard', 'warning', 7000); - $location.path(''); - return; - } - $scope.initDashboard({ - meta: { canShare: false, canStar: false }, - dashboard: window.grafanaImportDashboard - }, $scope); - }); - coreModule.default.controller('NewDashboardCtrl', function($scope) { $scope.initDashboard({ meta: { canStar: false, canShare: false }, diff --git a/public/app/core/routes/routes.ts b/public/app/core/routes/routes.ts index 1608a772e87..487e9deef27 100644 --- a/public/app/core/routes/routes.ts +++ b/public/app/core/routes/routes.ts @@ -32,20 +32,18 @@ function setupAngularRoutes($routeProvider, $locationProvider) { controller : 'SoloPanelCtrl', pageClass: 'page-dashboard', }) - .when('/dashboard-import/:file', { - templateUrl: 'public/app/partials/dashboard.html', - controller : 'DashFromImportCtrl', - reloadOnSearch: false, - pageClass: 'page-dashboard', - }) .when('/dashboard/new', { templateUrl: 'public/app/partials/dashboard.html', controller : 'NewDashboardCtrl', reloadOnSearch: false, pageClass: 'page-dashboard', }) - .when('/import/dashboard', { - templateUrl: 'public/app/features/dashboard/partials/import.html', + .when('/dashboards/list', { + templateUrl: 'public/app/features/dashboard/partials/dash_list.html', + controller : 'DashListCtrl', + }) + .when('/dashboards/migrate', { + templateUrl: 'public/app/features/dashboard/partials/migrate.html', controller : 'DashboardImportCtrl', }) .when('/datasources', { diff --git a/public/app/features/dashboard/all.js b/public/app/features/dashboard/all.js index a7b40b14b58..15c765f2281 100644 --- a/public/app/features/dashboard/all.js +++ b/public/app/features/dashboard/all.js @@ -19,4 +19,5 @@ define([ './upload', './import/import', './export/export_modal', + './dash_list_ctrl', ], function () {}); diff --git a/public/app/features/dashboard/dash_list_ctrl.ts b/public/app/features/dashboard/dash_list_ctrl.ts new file mode 100644 index 00000000000..f08d7507e65 --- /dev/null +++ b/public/app/features/dashboard/dash_list_ctrl.ts @@ -0,0 +1,11 @@ +/// + +import coreModule from 'app/core/core_module'; + +export class DashListCtrl { + /** @ngInject */ + constructor() { + } +} + +coreModule.controller('DashListCtrl', DashListCtrl); diff --git a/public/app/features/dashboard/partials/dash_list.html b/public/app/features/dashboard/partials/dash_list.html new file mode 100644 index 00000000000..3058715e0e6 --- /dev/null +++ b/public/app/features/dashboard/partials/dash_list.html @@ -0,0 +1,10 @@ + + + +
+ +
+ + diff --git a/public/app/features/dashboard/partials/import.html b/public/app/features/dashboard/partials/migrate.html similarity index 64% rename from public/app/features/dashboard/partials/import.html rename to public/app/features/dashboard/partials/migrate.html index ecf015b18cc..098dbd033cf 100644 --- a/public/app/features/dashboard/partials/import.html +++ b/public/app/features/dashboard/partials/migrate.html @@ -1,27 +1,15 @@ - +
- Upload .json file -
- -
-
-
- -
-
- -
- Migrate dashboards - Import dashboards from Elasticsearch or InfluxDB + Import dashboards from Elasticsearch or InfluxDB