Add ability to delete timeline sheets (#9191)

Note there is a bug that already exists in timeline where the
notify.info message disappears immediately.  Not fixing in this PR, but
the delete info message suffers the same bug as the save info message
does already.
This commit is contained in:
Stacey Gammon 2016-11-28 08:47:52 -05:00 committed by GitHub
parent 6f1cd39f65
commit 6d271b04bf

View file

@ -46,7 +46,8 @@ require('ui/routes')
});
app.controller('timelion', function (
$scope, $http, timefilter, AppState, courier, $route, $routeParams, kbnUrl, Notifier, config, $timeout, Private, savedVisualizations) {
$scope, $http, timefilter, AppState, courier, $route, $routeParams,
kbnUrl, Notifier, config, $timeout, Private, savedVisualizations, safeConfirm) {
// TODO: For some reason the Kibana core doesn't correctly do this for all apps.
moment.tz.setDefault(config.get('dateFormat:tz'));
@ -61,7 +62,6 @@ app.controller('timelion', function (
var defaultExpression = '.es(*)';
var savedSheet = $route.current.locals.savedSheet;
var blankSheet = [defaultExpression];
$scope.topNavMenu = [{
key: 'new',
@ -78,6 +78,21 @@ app.controller('timelion', function (
description: 'Save Sheet',
template: require('plugins/timelion/partials/save_sheet.html'),
testId: 'timelionSaveButton',
}, {
key: 'delete',
description: 'Delete current sheet',
disableButton: function () {
return !savedSheet.id;
},
run: function () {
var title = savedSheet.title;
safeConfirm('Are you sure you want to delete the sheet ' + title + ' ?').then(function () {
savedSheet.delete().then(() => {
notify.info('Deleted ' + title);
kbnUrl.change('/');
}).catch(notify.fatal);
});},
testId: 'timelionDeleteButton',
}, {
key: 'open',
description: 'Open Sheet',
@ -213,7 +228,6 @@ app.controller('timelion', function (
savedSheet.timelion_columns = $scope.state.columns;
savedSheet.timelion_rows = $scope.state.rows;
savedSheet.save().then(function (id) {
//$scope.configTemplate.close('save');
if (id) {
notify.info('Saved sheet as "' + savedSheet.title + '"');
if (savedSheet.id !== $routeParams.id) {