Add the ability to view the system logs in the superuser endpoint
This commit is contained in:
parent
1f9f4ef26b
commit
5c7a9d0daf
10 changed files with 440 additions and 145 deletions
|
@ -1,4 +1,96 @@
|
|||
angular.module("core-ui", [])
|
||||
.directive('corLogBox', function() {
|
||||
var directiveDefinitionObject = {
|
||||
priority: 1,
|
||||
templateUrl: '/static/directives/cor-log-box.html',
|
||||
replace: true,
|
||||
transclude: true,
|
||||
restrict: 'C',
|
||||
scope: {
|
||||
'logs': '=logs'
|
||||
},
|
||||
controller: function($rootScope, $scope, $element, $timeout) {
|
||||
$scope.hasNewLogs = false;
|
||||
|
||||
var scrollHandlerBound = false;
|
||||
var isAnimatedScrolling = false;
|
||||
var isScrollBottom = true;
|
||||
|
||||
var scrollHandler = function() {
|
||||
if (isAnimatedScrolling) { return; }
|
||||
var element = $element.find("#co-log-viewer")[0];
|
||||
isScrollBottom = element.scrollHeight - element.scrollTop === element.clientHeight;
|
||||
|
||||
if (isScrollBottom) {
|
||||
$scope.hasNewLogs = false;
|
||||
}
|
||||
};
|
||||
|
||||
var animateComplete = function() {
|
||||
isAnimatedScrolling = false;
|
||||
};
|
||||
|
||||
$scope.moveToBottom = function() {
|
||||
$scope.hasNewLogs = false;
|
||||
isAnimatedScrolling = true;
|
||||
isScrollBottom = true;
|
||||
|
||||
$element.find("#co-log-viewer").animate(
|
||||
{ scrollTop: $element.find("#co-log-content").height() }, "slow", null, animateComplete);
|
||||
};
|
||||
|
||||
$scope.$watch('logs', function(value, oldValue) {
|
||||
if (!value) { return; }
|
||||
|
||||
$timeout(function() {
|
||||
if (!scrollHandlerBound) {
|
||||
$element.find("#co-log-viewer").on('scroll', scrollHandler);
|
||||
scrollHandlerBound = true;
|
||||
}
|
||||
|
||||
if (!isScrollBottom) {
|
||||
$scope.hasNewLogs = true;
|
||||
return;
|
||||
}
|
||||
|
||||
$scope.moveToBottom();
|
||||
}, 500);
|
||||
});
|
||||
}
|
||||
};
|
||||
return directiveDefinitionObject;
|
||||
})
|
||||
|
||||
.directive('corOptionsMenu', function() {
|
||||
var directiveDefinitionObject = {
|
||||
priority: 1,
|
||||
templateUrl: '/static/directives/cor-options-menu.html',
|
||||
replace: true,
|
||||
transclude: true,
|
||||
restrict: 'C',
|
||||
scope: {},
|
||||
controller: function($rootScope, $scope, $element) {
|
||||
}
|
||||
};
|
||||
return directiveDefinitionObject;
|
||||
})
|
||||
|
||||
.directive('corOption', function() {
|
||||
var directiveDefinitionObject = {
|
||||
priority: 1,
|
||||
templateUrl: '/static/directives/cor-option.html',
|
||||
replace: true,
|
||||
transclude: true,
|
||||
restrict: 'C',
|
||||
scope: {
|
||||
'optionClick': '&optionClick'
|
||||
},
|
||||
controller: function($rootScope, $scope, $element) {
|
||||
}
|
||||
};
|
||||
return directiveDefinitionObject;
|
||||
})
|
||||
|
||||
|
||||
.directive('corTitle', function() {
|
||||
var directiveDefinitionObject = {
|
||||
|
|
Reference in a new issue