grafana/public/app/features/snapshot/snapshot_ctrl.ts
2016-01-19 22:04:38 -08:00

44 lines
1.2 KiB
TypeScript

///<reference path="../../headers/common.d.ts" />
import angular from 'angular';
import _ from 'lodash';
export class SnapshotsCtrl {
/** @ngInject */
constructor(backendSrv, $scope) {
$scope.init = function() {
backendSrv.get('/api/dashboard/snapshots').then(function(result) {
$scope.snapshots = result;
});
};
$scope.removeSnapshot = function(snapshot) {
$scope.appEvent('confirm-modal', {
title: 'Confirm delete snapshot',
text: 'Are you sure you want to delete snapshot ' + snapshot.Name + '?',
yesText: "Delete",
icon: "fa-warning",
onConfirm: function() {
$scope.removeSnapshotConfirmed(snapshot);
}
});
};
$scope.removeSnapshotConfirmed = function(snapshot) {
_.remove($scope.snapshots, {Key: snapshot.Key});
backendSrv.get('/api/snapshots-delete/' + snapshot.DeleteKey)
.then(function() {
$scope.appEvent('alert-success', ['Snapshot deleted', '']);
}, function() {
$scope.appEvent('alert-error', ['Unable to delete snapshot', '']);
$scope.snapshots.push(snapshot);
});
};
$scope.init();
}
}
angular.module('grafana.controllers').controller('SnapshotsCtrl', SnapshotsCtrl);