mirror of https://github.com/portainer/portainer
feat(ui): add events view (#86)
* feat(ui): add events view * chore(grunt): use minified angular scriptpull/88/head
parent
ea596a8701
commit
adf5184a5d
@ -0,0 +1,63 @@
|
|||||||
|
<rd-header>
|
||||||
|
<rd-header-title title="Event list">
|
||||||
|
<a data-toggle="tooltip" title="Refresh" ui-sref="events" ui-sref-opts="{reload: true}">
|
||||||
|
<i class="fa fa-refresh" aria-hidden="true"></i>
|
||||||
|
</a>
|
||||||
|
</rd-header-title>
|
||||||
|
<rd-header-content>Events</rd-header-content>
|
||||||
|
</rd-header>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-md-12 col-xs-12">
|
||||||
|
<rd-widget>
|
||||||
|
<rd-widget-header icon="fa-history" title="Events">
|
||||||
|
<div class="pull-right">
|
||||||
|
<i id="loadEventsSpinner" class="fa fa-cog fa-2x fa-spin" style="margin-top: 5px;"></i>
|
||||||
|
</div>
|
||||||
|
</rd-widget-header>
|
||||||
|
<rd-widget-taskbar classes="col-lg-12">
|
||||||
|
<div class="pull-right">
|
||||||
|
<input type="text" id="filter" ng-model="state.filter" placeholder="Filter..." class="form-control input-sm" />
|
||||||
|
</div>
|
||||||
|
</rd-widget-taskbar>
|
||||||
|
<rd-widget-body classes="no-padding">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table class="table table-hover">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<a ui-sref="events" ng-click="order('Time')">
|
||||||
|
Date
|
||||||
|
<span ng-show="sortType == 'Time' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'Time' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
<a ui-sref="events" ng-click="order('Type')">
|
||||||
|
Category
|
||||||
|
<span ng-show="sortType == 'Type' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'Type' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
<a ui-sref="events" ng-click="order('Details')">
|
||||||
|
Details
|
||||||
|
<span ng-show="sortType == 'Details' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'Details' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr ng-repeat="event in (events | filter:state.filter | orderBy:sortType:sortReverse)">
|
||||||
|
<td>{{ event.Time|getdatefromtimestamp }}</td>
|
||||||
|
<td>{{ event.Type }}</td>
|
||||||
|
<td>{{ event.Details }}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</rd-widget-body>
|
||||||
|
<rd-widget>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -0,0 +1,27 @@
|
|||||||
|
angular.module('events', [])
|
||||||
|
.controller('EventsController', ['$scope', 'Settings', 'Messages', 'Events',
|
||||||
|
function ($scope, Settings, Messages, Events) {
|
||||||
|
$scope.state = {};
|
||||||
|
$scope.sortType = 'Time';
|
||||||
|
$scope.sortReverse = true;
|
||||||
|
|
||||||
|
$scope.order = function(sortType) {
|
||||||
|
$scope.sortReverse = ($scope.sortType === sortType) ? !$scope.sortReverse : false;
|
||||||
|
$scope.sortType = sortType;
|
||||||
|
};
|
||||||
|
|
||||||
|
var from = moment().subtract(24, 'hour').unix();
|
||||||
|
var to = moment().unix();
|
||||||
|
|
||||||
|
Events.query({since: from, until: to},
|
||||||
|
function(d) {
|
||||||
|
$scope.events = d.map(function (item) {
|
||||||
|
return new EventViewModel(item);
|
||||||
|
});
|
||||||
|
$('#loadEventsSpinner').hide();
|
||||||
|
},
|
||||||
|
function (e) {
|
||||||
|
Messages.error("Unable to load events", e.data);
|
||||||
|
$('#loadEventsSpinner').hide();
|
||||||
|
});
|
||||||
|
}]);
|
Loading…
Reference in new issue