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: {},