Commit 9be53f0a by Torkel Ödegaard

Updates to support sub url

parent 5feed234
...@@ -25,7 +25,8 @@ function (_, crypto) { ...@@ -25,7 +25,8 @@ function (_, crypto) {
playlist_timespan : "1m", playlist_timespan : "1m",
unsaved_changes_warning : true, unsaved_changes_warning : true,
search : { max_results: 100 }, search : { max_results: 100 },
admin : {} admin : {},
appSubUrl: ""
}; };
// This initializes a new hash on purpose, to avoid adding parameters to // This initializes a new hash on purpose, to avoid adding parameters to
......
...@@ -16,6 +16,7 @@ function (angular, config, _, $, store) { ...@@ -16,6 +16,7 @@ function (angular, config, _, $, store) {
$rootScope.profilingEnabled = store.getBool('profilingEnabled'); $rootScope.profilingEnabled = store.getBool('profilingEnabled');
$rootScope.performance = { loadStart: new Date().getTime() }; $rootScope.performance = { loadStart: new Date().getTime() };
$rootScope.appSubUrl = config.appSubUrl;
$scope.init = function() { $scope.init = function() {
$scope._ = _; $scope._ = _;
......
define([ define([
'angular', 'angular',
'config',
], ],
function (angular) { function (angular, config) {
'use strict'; 'use strict';
var module = angular.module('grafana.controllers'); 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.loginModel = {};
$scope.grafana.sidemenu = false; $scope.grafana.sidemenu = false;
...@@ -17,14 +18,10 @@ function (angular) { ...@@ -17,14 +18,10 @@ function (angular) {
}; };
$scope.logout = function() { $scope.logout = function() {
$http.post('/logout').then(function() { backendSrv.post('/logout').then(function() {
alertSrv.set('Logged out!', '', 'success', 3000); alertSrv.set('Logged out!', '', 'success', 3000);
$scope.appEvent('logged-out'); $scope.appEvent('logged-out');
$location.search({}); $location.search({});
}, function() {
alertSrv.set('Logout failed:', 'Unexpected error', 'error', 3000);
}); });
}; };
...@@ -35,16 +32,9 @@ function (angular) { ...@@ -35,16 +32,9 @@ function (angular) {
return; return;
} }
$http.post('/login', $scope.loginModel).then(function(results) { backendSrv.post('/login', $scope.loginModel).then(function(results) {
$scope.appEvent('logged-in', results.data.user); $scope.appEvent('logged-in', results.user);
window.location.href = '/'; window.location.href = config.appSubUrl + '/';
}, function(err) {
if (err.status === 401) {
$scope.loginError = "Username or password is incorrect";
}
else {
$scope.loginError = "Unexpected error";
}
}); });
}; };
......
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
<li><a href="/login?logout">Logout</a></li> <li><a href="/login?logout">Logout</a></li>
</ul> </ul>
</div> </div>
<a class="pro-sidemenu-link" href="/"> <a class="pro-sidemenu-link" ng-href="{{appSubUrl}}">
<i class="icon-th-large"></i> <i class="icon-th-large"></i>
Dashboards Dashboards
</a> </a>
<a class="pro-sidemenu-link" href="/charts"> <a class="pro-sidemenu-link" href="charts">
<i class="icon-signal"></i> <i class="icon-signal"></i>
Graphs Graphs
</a> </a>
...@@ -20,19 +20,19 @@ ...@@ -20,19 +20,19 @@
<i class="icon-bolt" style="padding-right: 23px"></i> <i class="icon-bolt" style="padding-right: 23px"></i>
Alerts Alerts
</a> </a>
<a class="pro-sidemenu-link" href="/admin/datasources"> <a class="pro-sidemenu-link" href="admin/datasources">
<i class="icon-sitemap"></i> <i class="icon-sitemap"></i>
Data sources Data sources
</a> </a>
<a class="pro-sidemenu-link" href="/admin"> <a class="pro-sidemenu-link" href="admin">
<i class="icon-tasks"></i> <i class="icon-tasks"></i>
Global options Global options
</a> </a>
<a class="pro-sidemenu-link" href="/account"> <a class="pro-sidemenu-link" href="account">
<i class="icon-user"></i> <i class="icon-user"></i>
Account settings Account settings
</a> </a>
<a class="pro-sidemenu-link" href="/login?logout"> <a class="pro-sidemenu-link" href="login?logout">
<i class="icon-signout"></i> <i class="icon-signout"></i>
Sign out Sign out
</a> </a>
......
...@@ -12,17 +12,17 @@ function (angular, store) { ...@@ -12,17 +12,17 @@ function (angular, store) {
$routeProvider $routeProvider
.when('/', { .when('/', {
templateUrl: '/app/partials/dashboard.html', templateUrl: 'app/partials/dashboard.html',
controller : 'DashFromDBProvider', controller : 'DashFromDBProvider',
reloadOnSearch: false, reloadOnSearch: false,
}) })
.when('/dashboard/db/:id', { .when('/dashboard/db/:id', {
templateUrl: '/app/partials/dashboard.html', templateUrl: 'app/partials/dashboard.html',
controller : 'DashFromDBProvider', controller : 'DashFromDBProvider',
reloadOnSearch: false, reloadOnSearch: false,
}) })
.when('/dashboard/temp/:id', { .when('/dashboard/temp/:id', {
templateUrl: '/app/partials/dashboard.html', templateUrl: 'app/partials/dashboard.html',
controller : 'DashFromDBProvider', controller : 'DashFromDBProvider',
reloadOnSearch: false, reloadOnSearch: false,
}) })
......
define([ define([
'angular', 'angular',
'lodash', 'lodash',
'config',
], ],
function (angular, _) { function (angular, _, config) {
'use strict'; 'use strict';
var module = angular.module('grafana.services'); var module = angular.module('grafana.services');
...@@ -27,7 +28,7 @@ function (angular, _) { ...@@ -27,7 +28,7 @@ function (angular, _) {
this.request = function(options) { this.request = function(options) {
var httpOptions = { var httpOptions = {
url: options.url, url: config.appSubUrl + options.url,
method: options.method, method: options.method,
data: options.data data: options.data
}; };
......
...@@ -7,7 +7,7 @@ function (angular, _) { ...@@ -7,7 +7,7 @@ function (angular, _) {
var module = angular.module('grafana.services'); var module = angular.module('grafana.services');
module.factory('GrafanaDatasource', function($q, $http) { module.factory('GrafanaDatasource', function($q, backendSrv) {
function GrafanaDatasource() { function GrafanaDatasource() {
this.type = 'grafana'; this.type = 'grafana';
...@@ -21,19 +21,13 @@ function (angular, _) { ...@@ -21,19 +21,13 @@ function (angular, _) {
url = '/temp/' + id; url = '/temp/' + id;
} }
return $http.get('/api/dashboards/' + id) return backendSrv.get('/api/dashboards/' + id)
.then(function(result) { .then(function(data) {
if (result.data) { if (data) {
return angular.fromJson(result.data); return angular.fromJson(data);
} else { } else {
return false; 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, _) { ...@@ -43,34 +37,28 @@ function (angular, _) {
dashboard.id = null; dashboard.id = null;
} }
return $http.post('/api/dashboard/', { dashboard: dashboard }) return backendSrv.post('/api/dashboard/', { dashboard: dashboard })
.then(function(result) { .then(function(data) {
return { title: dashboard.title, url: '/dashboard/db/' + result.data.slug }; return { title: dashboard.title, url: '/dashboard/db/' + data.slug };
}, function(data) {
throw "Failed to search: " + data;
}); });
}; };
GrafanaDatasource.prototype.deleteDashboard = function(id) { GrafanaDatasource.prototype.deleteDashboard = function(id) {
return $http({ method: 'DELETE', url: '/api/dashboard/' + id }) return backendSrv.delete('/api/dashboard/' + id)
.then(function(result) { .then(function(data) {
return result.data.title; return data.title;
}, function(err) {
throw err.data;
}); });
}; };
GrafanaDatasource.prototype.searchDashboards = function(query) { GrafanaDatasource.prototype.searchDashboards = function(query) {
return $http.get('/api/search/', { params: { q: query } }) return backendSrv.get('/api/search/', { params: { q: query } })
.then(function(results) { .then(function(data) {
var hits = { dashboards: [], tags: [] }; var hits = { dashboards: [], tags: [] };
hits.dashboards = _.map(results.data, function(item) { hits.dashboards = _.map(data, function(item) {
item.id = item.slug; item.id = item.slug;
return item; return item;
}); });
return hits; return hits;
}, function(data) {
throw "Failed to search: " + data;
}); });
}; };
......
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
<script> <script>
window.grafanaBootData = { window.grafanaBootData = {
user:[[.User]], user:[[.User]],
settings: [[.Settings]] settings: [[.Settings]],
}; };
</script> </script>
</html> </html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment