From bd628ac035db857a6151fcea304c138acc746d3a Mon Sep 17 00:00:00 2001 From: Elastic Jasper Date: Mon, 28 Nov 2016 09:58:33 -0500 Subject: [PATCH] Add ability to delete timeline sheets Backports PR #9191 **Commit 1:** Add ability to delete timeline sheets 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. * Original sha: f53a1a8975d7c96f2c1dee1b298548d558569764 * Authored by Stacey Gammon on 2016-11-22T21:12:14Z --- src/core_plugins/timelion/public/app.js | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/core_plugins/timelion/public/app.js b/src/core_plugins/timelion/public/app.js index cd16759251b63..301176b197ec6 100644 --- a/src/core_plugins/timelion/public/app.js +++ b/src/core_plugins/timelion/public/app.js @@ -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) {