diff --git a/src/theme.scss b/src/theme.scss index 4aaf24447..454fd65eb 100644 --- a/src/theme.scss +++ b/src/theme.scss @@ -600,7 +600,7 @@ multiselect { } .card { - min-height: 418px; + min-height: 453px; } @media(min-width:768px) { diff --git a/src/translation/en.json b/src/translation/en.json index ff3b2e4f3..f6a6e76af 100644 --- a/src/translation/en.json +++ b/src/translation/en.json @@ -1430,7 +1430,8 @@ }, "stopDialog": { "title": "Really stop app {{ app }}?" - } + }, + "eventlogTabTitle": "Event Log" }, "login": { "loginTo": "Login to", diff --git a/src/views/app.html b/src/views/app.html index 0390c4d55..5b0b26f84 100644 --- a/src/views/app.html +++ b/src/views/app.html @@ -515,6 +515,7 @@
{{ 'app.graphsTabTitle' | tr }}
{{ 'app.securityTabTitle' | tr }}
{{ 'app.emailTabTitle' | tr }}
+
{{ 'app.eventlogTabTitle' | tr }}
{{ 'app.updatesTabTitle' | tr }}
{{ 'app.backupsTabTitle' | tr }}
{{ 'app.repairTabTitle' | tr }}
@@ -976,6 +977,33 @@ +
+
+
+

+ + + + + + + + + + + + + + + + + + +
{{ 'eventlog.time' | tr }}{{ 'eventlog.source' | tr }}{{ 'eventlog.details' | tr }}
{{ eventLog.raw.creationTime | prettyDate }}{{ eventLog.source }}
{{ eventLog.raw.data | json }}
+
+
+
+
diff --git a/src/views/app.js b/src/views/app.js index 4e4e71000..3c3e518c8 100644 --- a/src/views/app.js +++ b/src/views/app.js @@ -811,6 +811,39 @@ angular.module('Application').controller('AppController', ['$scope', '$location' } }; + $scope.eventlog = { + busy: false, + eventlogs: [], + activeEventLog: null, + + show: function () { + $scope.eventlog.busy = true; + + // TODO if needed make those interactive + var page = 1; + var perPage = 100; + var actions = null; + + var search = $scope.app.id; + + Client.getEventLogs(actions, search, page, perPage, function (error, result) { + if (error) return console.error('Failed to get events:', error); + + $scope.eventlog.eventLogs = []; + result.forEach(function (e) { + $scope.eventlog.eventLogs.push({ raw: e, details: Client.eventLogDetails(e), source: Client.eventLogSource(e) }); + }); + + $scope.eventlog.busy = false; + }); + }, + + showDetails: function (eventLog) { + if ($scope.eventlog.activeEventLog === eventLog) $scope.eventlog.activeEventLog = null; + else $scope.eventlog.activeEventLog = eventLog; + } + }; + $scope.security = { busy: false, error: {},