diff --git a/backend/src/appenlight/templates/user/lost_password_generate.jinja2 b/backend/src/appenlight/templates/user/lost_password_generate.jinja2
index 8daa21d..31c1a84 100644
--- a/backend/src/appenlight/templates/user/lost_password_generate.jinja2
+++ b/backend/src/appenlight/templates/user/lost_password_generate.jinja2
@@ -1,5 +1,4 @@
{% extends "/layout.jinja2" %}
-{% block ng_app %}{% endblock %}
{% block content %}
diff --git a/backend/src/appenlight/templates/user/register.jinja2 b/backend/src/appenlight/templates/user/register.jinja2
index 60fdeb6..ceef96a 100644
--- a/backend/src/appenlight/templates/user/register.jinja2
+++ b/backend/src/appenlight/templates/user/register.jinja2
@@ -1,5 +1,4 @@
{% extends "/layout.jinja2" %}
-{% block ng_app %}{% endblock %}
{% block ng_controller %} data-ng-controller="RegisterController as
register" {% endblock %}
{% block content_class %}two-col equal{% endblock %}
diff --git a/backend/src/appenlight/views/user.py b/backend/src/appenlight/views/user.py
index 3ffee53..54946eb 100644
--- a/backend/src/appenlight/views/user.py
+++ b/backend/src/appenlight/views/user.py
@@ -181,9 +181,10 @@ def users_self(request):
request.session.flash(_('Your profile got updated.'))
else:
return HTTPUnprocessableEntity(body=form.errors_json)
- return request.user.get_dict(exclude_keys=['security_code_date', 'notes',
- 'security_code',
- 'user_password'])
+ return request.user.get_dict(
+ exclude_keys=['security_code_date', 'notes', 'security_code',
+ 'user_password'],
+ extended_info=True)
@view_config(route_name='users_self_property',
@@ -440,7 +441,7 @@ def alert_channel_DELETE(request):
channel = None
for chan in user.alert_channels:
if (chan.channel_name == request.params.get('channel_name') and
- chan.channel_value == request.params.get('channel_value')):
+ chan.channel_value == request.params.get('channel_value')):
channel = chan
break
if channel:
diff --git a/frontend/src/app.js b/frontend/src/app.js
index d9cd3d6..5175e0c 100644
--- a/frontend/src/app.js
+++ b/frontend/src/app.js
@@ -74,7 +74,6 @@ angular.module('appenlight.plugins', pluginsToLoad);
var app = angular.module('appenlight', [
'appenlight.base',
'appenlight.config',
- 'appenlight.user',
'appenlight.templates',
'appenlight.filters',
'appenlight.services',
@@ -83,10 +82,8 @@ var app = angular.module('appenlight', [
'appenlight.plugins'
]);
-function kickstartAE() {
-
-
-
+// needs manual execution because of plugin files
+function kickstartAE(initialUserData) {
app.config(['$httpProvider', '$uibTooltipProvider', '$locationProvider', function ($httpProvider, $uibTooltipProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$httpProvider.interceptors.push(['$q', '$rootScope', '$timeout', 'stateHolder', function ($q, $rootScope, $timeout, stateHolder) {
@@ -138,14 +135,14 @@ function kickstartAE() {
});
});
- app.run(['$rootScope', '$timeout', 'stateHolder', '$state', '$location', '$transitions', '$window', 'AeConfig', 'AeUser',
- function ($rootScope, $timeout, stateHolder, $state, $location, $transitions, $window, AeConfig, AeUser) {
+ app.run(['$rootScope', '$timeout', 'stateHolder', '$state', '$location', '$transitions', '$window', 'AeConfig',
+ function ($rootScope, $timeout, stateHolder, $state, $location, $transitions, $window, AeConfig) {
+ stateHolder.AeUser = buildUser(initialUserData || {"user_name": null, "id": null});
$rootScope.$state = $state;
$rootScope.stateHolder = stateHolder;
$rootScope.flash = stateHolder.flashMessages.list;
$rootScope.closeAlert = stateHolder.flashMessages.closeAlert;
$rootScope.AeConfig = AeConfig;
- $rootScope.AeUser = AeUser;
var transitionApp = function($transition$, $state) {
// redirect user to /register unless its one of open views
@@ -172,14 +169,22 @@ function kickstartAE() {
isOpenView = true;
}
});
- if (AeUser.id === null && !isGuestState && !isOpenView) {
+ if (stateHolder.AeUser.id === null && !isGuestState && !isOpenView) {
if (window.location.toString().indexOf(AeConfig.urls.otherRoutes.register) === -1) {
console.log('redirect to register');
- $window.location = AeConfig.urls.otherRoutes.register + '?came_from=' + encodeURIComponent(window.location);
+ var newLocation = AeConfig.urls.otherRoutes.register + '?came_from=' + encodeURIComponent(window.location);
+ // fix infinite digest here
+ $rootScope.$on('$locationChangeStart',
+ function(event, toState, toParams, fromState, fromParams, options){
+ event.preventDefault();
+ $window.location = newLocation;
+ });
+ $window.location = newLocation;
return false;
}
return false;
}
+ return true;
};
$transitions.onBefore({}, transitionApp);
diff --git a/frontend/src/controllers/applications/applications_create.js b/frontend/src/controllers/applications/applications_create.js
index be5c7f4..a914790 100644
--- a/frontend/src/controllers/applications/applications_create.js
+++ b/frontend/src/controllers/applications/applications_create.js
@@ -20,9 +20,9 @@
angular.module('appenlight.controllers')
.controller('ApplicationsUpdateController', ApplicationsUpdateController)
-ApplicationsUpdateController.$inject = ['$state', 'applicationsNoIdResource', 'applicationsResource', 'applicationsPropertyResource', 'AeUser'];
+ApplicationsUpdateController.$inject = ['$state', 'applicationsNoIdResource', 'applicationsResource', 'applicationsPropertyResource', 'stateHolder'];
-function ApplicationsUpdateController($state, applicationsNoIdResource, applicationsResource, applicationsPropertyResource, AeUser) {
+function ApplicationsUpdateController($state, applicationsNoIdResource, applicationsResource, applicationsPropertyResource, stateHolder) {
'use strict';
console.debug('ApplicationsUpdateController');
var vm = this;
@@ -68,9 +68,7 @@ function ApplicationsUpdateController($state, applicationsNoIdResource, applicat
vm.loading.application = true;
if (vm.resource.resource_id === null) {
applicationsNoIdResource.save(null, vm.resource, function (data) {
- console.log('apps',AeUser.applications);
- AeUser.addApplication(data);
- console.log('apps',AeUser.applications);
+ stateHolder.AeUser.addApplication(data);
$state.go('applications.update', {resourceId: data.resource_id});
setServerValidation(vm.BasicForm);
}, function (response) {
@@ -137,9 +135,7 @@ function ApplicationsUpdateController($state, applicationsNoIdResource, applicat
key: 'delete_resource'
}, vm.formDeleteModel,
function (data) {
- console.log('apps',AeUser.applications);
- AeUser.removeApplicationById(vm.resource.resource_id);
- console.log('apps',AeUser.applications);
+ stateHolder.AeUser.removeApplicationById(vm.resource.resource_id);
$state.go('applications.list');
},
function (response) {
diff --git a/frontend/src/controllers/front_dashboard.js b/frontend/src/controllers/front_dashboard.js
index 9eaeddb..0593d4d 100644
--- a/frontend/src/controllers/front_dashboard.js
+++ b/frontend/src/controllers/front_dashboard.js
@@ -20,9 +20,9 @@
angular.module('appenlight.controllers')
.controller('IndexDashboardController', IndexDashboardController);
-IndexDashboardController.$inject = ['$scope', '$location','$cookies', '$interval', 'stateHolder', 'userSelfPropertyResource', 'applicationsPropertyResource', 'AeConfig', 'AeUser'];
+IndexDashboardController.$inject = ['$scope', '$location','$cookies', '$interval', 'stateHolder', 'userSelfPropertyResource', 'applicationsPropertyResource', 'AeConfig'];
-function IndexDashboardController($scope, $location, $cookies, $interval, stateHolder, userSelfPropertyResource, applicationsPropertyResource, AeConfig, AeUser) {
+function IndexDashboardController($scope, $location, $cookies, $interval, stateHolder, userSelfPropertyResource, applicationsPropertyResource, AeConfig) {
var vm = this;
stateHolder.section = 'dashboard';
vm.timeOptions = {};
@@ -33,7 +33,7 @@ function IndexDashboardController($scope, $location, $cookies, $interval, stateH
}
});
vm.urls = AeConfig.urls;
- vm.applications = AeUser.applications_map;
+ vm.applications = stateHolder.AeUser.applications_map;
vm.show_dashboard = false;
vm.resource = null;
vm.graphType = {selected: null};
@@ -427,7 +427,7 @@ function IndexDashboardController($scope, $location, $cookies, $interval, stateH
});
vm.determineStartState = function () {
- if (AeUser.applications.length) {
+ if (stateHolder.AeUser.applications.length) {
vm.resource = Number($location.search().resource);
if (!vm.resource){
@@ -438,7 +438,7 @@ function IndexDashboardController($scope, $location, $cookies, $interval, stateH
vm.resource = cookieResource;
}
else{
- vm.resource = AeUser.applications[0].resource_id;
+ vm.resource = stateHolder.AeUser.applications[0].resource_id;
}
}
}
@@ -682,7 +682,7 @@ function IndexDashboardController($scope, $location, $cookies, $interval, stateH
;
}
- if (AeUser.applications.length){
+ if (stateHolder.AeUser.applications.length){
vm.show_dashboard = true;
vm.determineStartState();
vm.refreshData();
diff --git a/frontend/src/controllers/header.js b/frontend/src/controllers/header.js
index 1918a72..3be55c6 100644
--- a/frontend/src/controllers/header.js
+++ b/frontend/src/controllers/header.js
@@ -20,13 +20,13 @@
angular.module('appenlight.controllers')
.controller('HeaderCtrl', HeaderCtrl);
-HeaderCtrl.$inject = ['$state', 'stateHolder', 'AeUser'];
+HeaderCtrl.$inject = ['$state', 'stateHolder'];
-function HeaderCtrl($state, stateHolder, AeUser) {
+function HeaderCtrl($state, stateHolder) {
var vm = this;
vm.stateHolder = stateHolder;
- vm.assignedReports = AeUser.assigned_reports;
- vm.latestEvents = AeUser.latest_events;
+ vm.assignedReports = stateHolder.AeUser.assigned_reports;
+ vm.latestEvents = stateHolder.AeUser.latest_events;
vm.activeEvents = 0;
_.each(vm.latestEvents, function (event) {
if (event.status === 1 && event.end_date === null) {
diff --git a/frontend/src/controllers/logs.js b/frontend/src/controllers/logs.js
index 9ec3a8a..6bab3cf 100644
--- a/frontend/src/controllers/logs.js
+++ b/frontend/src/controllers/logs.js
@@ -19,9 +19,9 @@
angular.module('appenlight.controllers').controller('LogsController', LogsController);
-LogsController.$inject = ['$scope', '$location', 'stateHolder', 'typeAheadTagHelper', 'logsNoIdResource', 'sectionViewResource', 'AeUser'];
+LogsController.$inject = ['$scope', '$location', 'stateHolder', 'typeAheadTagHelper', 'logsNoIdResource', 'sectionViewResource'];
-function LogsController($scope, $location, stateHolder, typeAheadTagHelper, logsNoIdResource, sectionViewResource, AeUser) {
+function LogsController($scope, $location, stateHolder, typeAheadTagHelper, logsNoIdResource, sectionViewResource) {
var vm = this;
vm.logEventsChartConfig = {
data: {
@@ -83,7 +83,7 @@ function LogsController($scope, $location, stateHolder, typeAheadTagHelper, logs
};
vm.today();
- vm.applications = AeUser.applications_map;
+ vm.applications = stateHolder.AeUser.applications_map;
vm.logsPage = [];
vm.itemCount = 0;
vm.itemsPerPage = 250;
diff --git a/frontend/src/controllers/reports/list.js b/frontend/src/controllers/reports/list.js
index 382edcd..a55a0b5 100644
--- a/frontend/src/controllers/reports/list.js
+++ b/frontend/src/controllers/reports/list.js
@@ -21,12 +21,12 @@ angular.module('appenlight.controllers')
.controller('ReportsListController', ReportsListController);
ReportsListController.$inject = ['$scope', '$location', '$cookies',
- 'stateHolder', 'typeAheadTagHelper', 'reportsResource', 'AeUser'];
+ 'stateHolder', 'typeAheadTagHelper', 'reportsResource'];
function ReportsListController($scope, $location, $cookies, stateHolder,
- typeAheadTagHelper, reportsResource, AeUser) {
+ typeAheadTagHelper, reportsResource) {
var vm = this;
- vm.applications = AeUser.applications_map;
+ vm.applications = stateHolder.AeUser.applications_map;
stateHolder.section = 'reports';
vm.today = function () {
vm.pickerDate = new Date();
@@ -184,7 +184,7 @@ function ReportsListController($scope, $location, $cookies, stateHolder,
tag: 'Status ' + status.toUpperCase()
});
});
- _.each(AeUser.applications, function (item) {
+ _.each(stateHolder.AeUser.applications, function (item) {
vm.filterTypeAheadOptions.push({
type: 'resource',
text: 'resource:' + item.resource_id + ':' + item.resource_name,
diff --git a/frontend/src/controllers/reports/list_slow.js b/frontend/src/controllers/reports/list_slow.js
index 0244e86..2afbb30 100644
--- a/frontend/src/controllers/reports/list_slow.js
+++ b/frontend/src/controllers/reports/list_slow.js
@@ -25,11 +25,11 @@ angular.module('appenlight.controllers')
.controller('ReportsListSlowController', ReportsListSlowController);
ReportsListSlowController.$inject = ['$scope', '$location', '$cookies',
- 'stateHolder', 'typeAheadTagHelper', 'slowReportsResource', 'AeUser']
+ 'stateHolder', 'typeAheadTagHelper', 'slowReportsResource']
-function ReportsListSlowController($scope, $location, $cookies, stateHolder, typeAheadTagHelper, slowReportsResource, AeUser) {
+function ReportsListSlowController($scope, $location, $cookies, stateHolder, typeAheadTagHelper, slowReportsResource) {
var vm = this;
- vm.applications = AeUser.applications_map;
+ vm.applications = stateHolder.AeUser.applications_map;
stateHolder.section = 'slow_reports';
vm.today = function () {
vm.pickerDate = new Date();
@@ -167,7 +167,7 @@ function ReportsListSlowController($scope, $location, $cookies, stateHolder, typ
tag: 'Status ' + status.toUpperCase()
});
});
- _.each(AeUser.applications, function (item) {
+ _.each(stateHolder.AeUser.applications, function (item) {
vm.filterTypeAheadOptions.push({
type: 'resource',
text: 'resource:' + item.resource_id + ':' + item.resource_name,
diff --git a/frontend/src/controllers/reports/view.js b/frontend/src/controllers/reports/view.js
index 8b182df..6bff170 100644
--- a/frontend/src/controllers/reports/view.js
+++ b/frontend/src/controllers/reports/view.js
@@ -20,9 +20,9 @@
angular.module('appenlight.controllers').controller('ReportsViewController', ReportsViewController);
ReportsViewController.$inject = ['$window', '$location', '$state', '$uibModal',
'$cookies', 'reportGroupPropertyResource', 'reportGroupResource',
- 'logsNoIdResource', 'AeUser'];
+ 'logsNoIdResource', 'stateHolder'];
-function ReportsViewController($window, $location, $state, $uibModal, $cookies, reportGroupPropertyResource, reportGroupResource, logsNoIdResource, AeUser) {
+function ReportsViewController($window, $location, $state, $uibModal, $cookies, reportGroupPropertyResource, reportGroupResource, logsNoIdResource, stateHolder) {
var vm = this;
vm.window = $window;
vm.reportHistoryConfig = {
@@ -202,7 +202,7 @@ function ReportsViewController($window, $location, $state, $uibModal, $cookies,
vm.rawTraceback += ' ' + frame.cline + "\r\n";
});
- if (AeUser.id){
+ if (stateHolder.AeUser.id){
vm.fetchHistory();
}
diff --git a/frontend/src/services/state_holder.js b/frontend/src/services/state_holder.js
index b7cf2a3..2bd7d30 100644
--- a/frontend/src/services/state_holder.js
+++ b/frontend/src/services/state_holder.js
@@ -86,6 +86,7 @@ angular.module('appenlight.services.stateHolder', []).factory('stateHolder', ['$
resource: null,
plugins: Plugins,
flashMessages: flashMessages,
+ AeUser: {"user_name": null, "id": null}
};
return stateHolder;
}]);
diff --git a/frontend/src/templates/dashboard.html b/frontend/src/templates/dashboard.html
index 1cfa1ba..090d612 100644
--- a/frontend/src/templates/dashboard.html
+++ b/frontend/src/templates/dashboard.html
@@ -14,20 +14,20 @@