Add listing and creation of silences
This commit is contained in:
parent
942a4f91ed
commit
3e213ddb3d
|
@ -4,10 +4,11 @@ angular.module('am.services', ['ngResource']);
|
||||||
|
|
||||||
angular.module('am.services').factory('Silence',
|
angular.module('am.services').factory('Silence',
|
||||||
function($resource){
|
function($resource){
|
||||||
return $resource('', {}, {
|
return $resource('', {id: '@id'}, {
|
||||||
|
'query': {method: 'GET', url: '/api/v1/silences'},
|
||||||
|
'create': {method: 'POST', url: '/api/v1/silences'},
|
||||||
'get': {method: 'GET', url: '/api/v1/silence/:id'},
|
'get': {method: 'GET', url: '/api/v1/silence/:id'},
|
||||||
'save': {method: 'POST', url: '/api/v1/silence/:id'},
|
'save': {method: 'POST', url: '/api/v1/silence/:id'},
|
||||||
'query': {method: 'GET', url: '/api/v1/silences'},
|
|
||||||
'delete': {method: 'DELETE', url: '/api/v1/silence/:id'}
|
'delete': {method: 'DELETE', url: '/api/v1/silence/:id'}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -18,13 +19,48 @@ angular.module('am.controllers', []);
|
||||||
angular.module('am.controllers').controller('SilencesCtrl',
|
angular.module('am.controllers').controller('SilencesCtrl',
|
||||||
function($scope, Silence) {
|
function($scope, Silence) {
|
||||||
$scope.silences = [];
|
$scope.silences = [];
|
||||||
|
$scope.order = "startsAt";
|
||||||
|
|
||||||
Silence.query(
|
$scope.refresh = function() {
|
||||||
{},
|
Silence.query({},
|
||||||
function(data) {
|
function(data) {
|
||||||
$scope.silences = data.data || [];
|
console.log(data);
|
||||||
}
|
$scope.silences = data.data || [];
|
||||||
);
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.delete = function(sil) {
|
||||||
|
Silence.delete({id: sil.id})
|
||||||
|
$scope.refresh()
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.refresh();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
angular.module('am.controllers').controller('SilenceCreateCtrl',
|
||||||
|
function($scope, Silence) {
|
||||||
|
var now = new Date(),
|
||||||
|
end = new Date();
|
||||||
|
|
||||||
|
now.setMilliseconds(0);
|
||||||
|
end.setMilliseconds(0);
|
||||||
|
now.setSeconds(0);
|
||||||
|
end.setSeconds(0);
|
||||||
|
|
||||||
|
end.setHours(end.getHours() + 2)
|
||||||
|
|
||||||
|
$scope.silence = {
|
||||||
|
startsAt: now,
|
||||||
|
endsAt: end,
|
||||||
|
matchers: []
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.create = function() {
|
||||||
|
Silence.create($scope.silence);
|
||||||
|
$scope.$parent.refresh();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,32 @@
|
||||||
<div ng-show="silences.length == 0">No silences configured</div>
|
<div id="silence-create" ng-controller="SilenceCreateCtrl">
|
||||||
|
<form>
|
||||||
|
Start: <input ng-model="silence.startsAt" type="datetime-local">
|
||||||
|
End: <input ng-model="silence.endsAt" type="datetime-local">
|
||||||
|
|
||||||
<ul class="silences">
|
<input ng-model="silence.matchers[0].name">
|
||||||
<li ng-repeat="sil in silences">
|
<input ng-model="silence.matchers[0].value">
|
||||||
{{ sil.id }}
|
<input type="checkbox" ng-model="silence.matchers[0].isRegex">
|
||||||
</li>
|
|
||||||
</ul>
|
<button ng-click="create()">Create</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="silences-query">
|
||||||
|
<input type="text" ng-model="query">
|
||||||
|
<select ng-model="order">
|
||||||
|
<option value="startsAt">Start</option>
|
||||||
|
<option value="endsAt">End</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div ng-show="silences.length == 0">No silences configured</div>
|
||||||
|
<div ng-hide="silences.length == 0" id="silences-list">
|
||||||
|
<div ng-repeat="sil in silences | filter:query | orderBy:order">
|
||||||
|
{{ sil.startsAt }} – {{ sil.endsAt }}
|
||||||
|
created: {{ sil.createdAt }}
|
||||||
|
<div ng-repeat="m in sil.matchers | orderBy:name">
|
||||||
|
{{ m.name }} = {{ m.value }} <span ng-show="m.isRegex">[re]</span>
|
||||||
|
</div>
|
||||||
|
<button ng-click="delete(sil)">Delete</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
Loading…
Reference in New Issue