mirror of https://github.com/portainer/portainer
49 lines
1.6 KiB
JavaScript
49 lines
1.6 KiB
JavaScript
|
angular.module('containerLogs', [])
|
||
|
.controller('ContainerLogsController', ['$scope', '$routeParams', '$location', '$anchorScroll', 'ContainerLogs', 'Container', 'ViewSpinner',
|
||
|
function($scope, $routeParams, $location, $anchorScroll, ContainerLogs, Container, ViewSpinner) {
|
||
|
$scope.stdout = '';
|
||
|
$scope.stderr = '';
|
||
|
$scope.showTimestamps = false;
|
||
|
|
||
|
ViewSpinner.spin();
|
||
|
Container.get({id: $routeParams.id}, function(d) {
|
||
|
$scope.container = d;
|
||
|
ViewSpinner.stop();
|
||
|
}, function(e) {
|
||
|
if (e.status === 404) {
|
||
|
Messages.error("Not found", "Container not found.");
|
||
|
} else {
|
||
|
Messages.error("Failure", e.data);
|
||
|
}
|
||
|
ViewSpinner.stop();
|
||
|
});
|
||
|
|
||
|
function getLogs() {
|
||
|
ContainerLogs.get($routeParams.id, {stdout: 1, stderr: 0, timestamps: $scope.showTimestamps}, function(data, status, headers, config) {
|
||
|
// Replace carriage returns twith newlines to clean up output
|
||
|
$scope.stdout = data.replace(/[\r]/g, '\n');
|
||
|
});
|
||
|
ContainerLogs.get($routeParams.id, {stdout: 0, stderr: 1}, function(data, status, headers, config) {
|
||
|
$scope.stderr = data.replace(/[\r]/g, '\n');
|
||
|
});
|
||
|
}
|
||
|
|
||
|
// initial call
|
||
|
getLogs();
|
||
|
var logIntervalId = window.setInterval(getLogs, 5000);
|
||
|
|
||
|
$scope.$on("$destroy", function(){
|
||
|
// clearing interval when view changes
|
||
|
clearInterval(logIntervalId);
|
||
|
});
|
||
|
|
||
|
$scope.scrollTo = function(id) {
|
||
|
$location.hash(id);
|
||
|
$anchorScroll();
|
||
|
}
|
||
|
|
||
|
$scope.toggleTimestamps = function() {
|
||
|
getLogs();
|
||
|
}
|
||
|
}]);
|