From 9be53f0a79753d22205a5db6ac42aa1e455a58c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 5 Jan 2015 07:58:15 +0100 Subject: [PATCH] Updates to support sub url --- src/app/components/settings.js | 3 +- src/app/controllers/grafanaCtrl.js | 1 + src/app/controllers/pro/loginCtrl.js | 24 +++++----------- src/app/partials/pro/sidemenu.html | 12 ++++---- src/app/routes/backend/dashboard.js | 6 ++-- src/app/services/backendSrv.js | 5 ++-- src/app/services/grafanaDatasource.js | 40 ++++++++++----------------- src/views/index.html | 2 +- 8 files changed, 37 insertions(+), 56 deletions(-) diff --git a/src/app/components/settings.js b/src/app/components/settings.js index 532b2e2b133..5bb1280130a 100644 --- a/src/app/components/settings.js +++ b/src/app/components/settings.js @@ -25,7 +25,8 @@ function (_, crypto) { playlist_timespan : "1m", unsaved_changes_warning : true, search : { max_results: 100 }, - admin : {} + admin : {}, + appSubUrl: "" }; // This initializes a new hash on purpose, to avoid adding parameters to diff --git a/src/app/controllers/grafanaCtrl.js b/src/app/controllers/grafanaCtrl.js index 85ba2bbbcaf..3352e1a672e 100644 --- a/src/app/controllers/grafanaCtrl.js +++ b/src/app/controllers/grafanaCtrl.js @@ -16,6 +16,7 @@ function (angular, config, _, $, store) { $rootScope.profilingEnabled = store.getBool('profilingEnabled'); $rootScope.performance = { loadStart: new Date().getTime() }; + $rootScope.appSubUrl = config.appSubUrl; $scope.init = function() { $scope._ = _; diff --git a/src/app/controllers/pro/loginCtrl.js b/src/app/controllers/pro/loginCtrl.js index 7146067d649..f193aba0047 100644 --- a/src/app/controllers/pro/loginCtrl.js +++ b/src/app/controllers/pro/loginCtrl.js @@ -1,12 +1,13 @@ define([ 'angular', + 'config', ], -function (angular) { +function (angular, config) { 'use strict'; var module = angular.module('grafana.controllers'); - module.controller('LoginCtrl', function($scope, $http, $location, $routeParams, alertSrv) { + module.controller('LoginCtrl', function($scope, backendSrv, $location, $routeParams, alertSrv) { $scope.loginModel = {}; $scope.grafana.sidemenu = false; @@ -17,14 +18,10 @@ function (angular) { }; $scope.logout = function() { - $http.post('/logout').then(function() { - + backendSrv.post('/logout').then(function() { alertSrv.set('Logged out!', '', 'success', 3000); $scope.appEvent('logged-out'); $location.search({}); - - }, function() { - alertSrv.set('Logout failed:', 'Unexpected error', 'error', 3000); }); }; @@ -35,16 +32,9 @@ function (angular) { return; } - $http.post('/login', $scope.loginModel).then(function(results) { - $scope.appEvent('logged-in', results.data.user); - window.location.href = '/'; - }, function(err) { - if (err.status === 401) { - $scope.loginError = "Username or password is incorrect"; - } - else { - $scope.loginError = "Unexpected error"; - } + backendSrv.post('/login', $scope.loginModel).then(function(results) { + $scope.appEvent('logged-in', results.user); + window.location.href = config.appSubUrl + '/'; }); }; diff --git a/src/app/partials/pro/sidemenu.html b/src/app/partials/pro/sidemenu.html index 46dfd33903b..0821f7a411e 100644 --- a/src/app/partials/pro/sidemenu.html +++ b/src/app/partials/pro/sidemenu.html @@ -8,11 +8,11 @@
  • Logout
  • - + Dashboards - + Graphs @@ -20,19 +20,19 @@ Alerts - + Data sources - + Global options - + Account settings - + Sign out diff --git a/src/app/routes/backend/dashboard.js b/src/app/routes/backend/dashboard.js index e90014553a4..c14c6b2be80 100644 --- a/src/app/routes/backend/dashboard.js +++ b/src/app/routes/backend/dashboard.js @@ -12,17 +12,17 @@ function (angular, store) { $routeProvider .when('/', { - templateUrl: '/app/partials/dashboard.html', + templateUrl: 'app/partials/dashboard.html', controller : 'DashFromDBProvider', reloadOnSearch: false, }) .when('/dashboard/db/:id', { - templateUrl: '/app/partials/dashboard.html', + templateUrl: 'app/partials/dashboard.html', controller : 'DashFromDBProvider', reloadOnSearch: false, }) .when('/dashboard/temp/:id', { - templateUrl: '/app/partials/dashboard.html', + templateUrl: 'app/partials/dashboard.html', controller : 'DashFromDBProvider', reloadOnSearch: false, }) diff --git a/src/app/services/backendSrv.js b/src/app/services/backendSrv.js index bad3412dd3f..6f5859c8a29 100644 --- a/src/app/services/backendSrv.js +++ b/src/app/services/backendSrv.js @@ -1,8 +1,9 @@ define([ 'angular', 'lodash', + 'config', ], -function (angular, _) { +function (angular, _, config) { 'use strict'; var module = angular.module('grafana.services'); @@ -27,7 +28,7 @@ function (angular, _) { this.request = function(options) { var httpOptions = { - url: options.url, + url: config.appSubUrl + options.url, method: options.method, data: options.data }; diff --git a/src/app/services/grafanaDatasource.js b/src/app/services/grafanaDatasource.js index 8a52dc2c083..d20a221b416 100644 --- a/src/app/services/grafanaDatasource.js +++ b/src/app/services/grafanaDatasource.js @@ -7,7 +7,7 @@ function (angular, _) { var module = angular.module('grafana.services'); - module.factory('GrafanaDatasource', function($q, $http) { + module.factory('GrafanaDatasource', function($q, backendSrv) { function GrafanaDatasource() { this.type = 'grafana'; @@ -21,19 +21,13 @@ function (angular, _) { url = '/temp/' + id; } - return $http.get('/api/dashboards/' + id) - .then(function(result) { - if (result.data) { - return angular.fromJson(result.data); + return backendSrv.get('/api/dashboards/' + id) + .then(function(data) { + if (data) { + return angular.fromJson(data); } else { return false; } - }, function(data) { - if(data.status === 0) { - throw "Could not contact Elasticsearch. Please ensure that Elasticsearch is reachable from your browser."; - } else { - throw "Could not find dashboard " + id; - } }); }; @@ -43,34 +37,28 @@ function (angular, _) { dashboard.id = null; } - return $http.post('/api/dashboard/', { dashboard: dashboard }) - .then(function(result) { - return { title: dashboard.title, url: '/dashboard/db/' + result.data.slug }; - }, function(data) { - throw "Failed to search: " + data; + return backendSrv.post('/api/dashboard/', { dashboard: dashboard }) + .then(function(data) { + return { title: dashboard.title, url: '/dashboard/db/' + data.slug }; }); }; GrafanaDatasource.prototype.deleteDashboard = function(id) { - return $http({ method: 'DELETE', url: '/api/dashboard/' + id }) - .then(function(result) { - return result.data.title; - }, function(err) { - throw err.data; + return backendSrv.delete('/api/dashboard/' + id) + .then(function(data) { + return data.title; }); }; GrafanaDatasource.prototype.searchDashboards = function(query) { - return $http.get('/api/search/', { params: { q: query } }) - .then(function(results) { + return backendSrv.get('/api/search/', { params: { q: query } }) + .then(function(data) { var hits = { dashboards: [], tags: [] }; - hits.dashboards = _.map(results.data, function(item) { + hits.dashboards = _.map(data, function(item) { item.id = item.slug; return item; }); return hits; - }, function(data) { - throw "Failed to search: " + data; }); }; diff --git a/src/views/index.html b/src/views/index.html index 3508ac60071..eb3152b395a 100644 --- a/src/views/index.html +++ b/src/views/index.html @@ -52,7 +52,7 @@