Commit 609f3c1c by Marcus Efraimsson

dashboards: fix keyboard shortcut for remove panel

parent a34acdda
...@@ -171,8 +171,9 @@ export class KeybindingSrv { ...@@ -171,8 +171,9 @@ export class KeybindingSrv {
// delete panel // delete panel
this.bind('p r', () => { this.bind('p r', () => {
if (dashboard.meta.focusPanelId && dashboard.meta.canEdit) { if (dashboard.meta.focusPanelId && dashboard.meta.canEdit) {
var panelInfo = dashboard.getPanelInfoById(dashboard.meta.focusPanelId); this.$rootScope.appEvent('panel-remove', {
panelInfo.row.removePanel(panelInfo.panel); panelId: dashboard.meta.focusPanelId,
});
dashboard.meta.focusPanelId = 0; dashboard.meta.focusPanelId = 0;
} }
}); });
......
...@@ -3,6 +3,7 @@ import config from 'app/core/config'; ...@@ -3,6 +3,7 @@ import config from 'app/core/config';
import coreModule from 'app/core/core_module'; import coreModule from 'app/core/core_module';
import { PanelContainer } from './dashgrid/PanelContainer'; import { PanelContainer } from './dashgrid/PanelContainer';
import { DashboardModel } from './dashboard_model'; import { DashboardModel } from './dashboard_model';
import { PanelModel } from './panel_model';
export class DashboardCtrl implements PanelContainer { export class DashboardCtrl implements PanelContainer {
dashboard: DashboardModel; dashboard: DashboardModel;
...@@ -130,9 +131,47 @@ export class DashboardCtrl implements PanelContainer { ...@@ -130,9 +131,47 @@ export class DashboardCtrl implements PanelContainer {
return this; return this;
} }
onRemovingPanel(evt, options) {
options = options || {};
if (!options.panelId) {
return;
}
var panelInfo = this.dashboard.getPanelInfoById(options.panelId);
this.removePanel(panelInfo.panel, true);
}
removePanel(panel: PanelModel, ask: boolean) {
// confirm deletion
if (ask !== false) {
var text2, confirmText;
if (panel.alert) {
text2 = 'Panel includes an alert rule, removing panel will also remove alert rule';
confirmText = 'YES';
}
this.$scope.appEvent('confirm-modal', {
title: 'Remove Panel',
text: 'Are you sure you want to remove this panel?',
text2: text2,
icon: 'fa-trash',
confirmText: confirmText,
yesText: 'Remove',
onConfirm: () => {
this.removePanel(panel, false);
},
});
return;
}
this.dashboard.removePanel(panel);
}
init(dashboard) { init(dashboard) {
this.$scope.onAppEvent('show-json-editor', this.showJsonEditor.bind(this)); this.$scope.onAppEvent('show-json-editor', this.showJsonEditor.bind(this));
this.$scope.onAppEvent('template-variable-value-updated', this.templateVariableUpdated.bind(this)); this.$scope.onAppEvent('template-variable-value-updated', this.templateVariableUpdated.bind(this));
this.$scope.onAppEvent('panel-remove', this.onRemovingPanel.bind(this));
this.setupDashboard(dashboard); this.setupDashboard(dashboard);
} }
} }
......
...@@ -241,31 +241,10 @@ export class PanelCtrl { ...@@ -241,31 +241,10 @@ export class PanelCtrl {
}); });
} }
removePanel(ask: boolean) { removePanel() {
// confirm deletion this.publishAppEvent('panel-remove', {
if (ask !== false) { panelId: this.panel.id,
var text2, confirmText; });
if (this.panel.alert) {
text2 = 'Panel includes an alert rule, removing panel will also remove alert rule';
confirmText = 'YES';
}
appEvents.emit('confirm-modal', {
title: 'Remove Panel',
text: 'Are you sure you want to remove this panel?',
text2: text2,
icon: 'fa-trash',
confirmText: confirmText,
yesText: 'Remove',
onConfirm: () => {
this.removePanel(false);
},
});
return;
}
this.dashboard.removePanel(this.panel);
} }
editPanelJson() { editPanelJson() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment