/// import coreModule from 'app/core/core_module'; const template = ` `; export class SaveDashboardAsModalCtrl { clone: any; dismiss: () => void; /** @ngInject */ constructor(private dashboardSrv) { var dashboard = this.dashboardSrv.getCurrent(); this.clone = dashboard.getSaveModelClone(); this.clone.id = null; this.clone.title += ' Copy'; this.clone.editable = true; this.clone.hideControls = false; // remove alerts if source dashboard is already persisted // do not want to create alert dupes if (dashboard.id > 0) { this.clone.rows.forEach(row => { row.panels.forEach(panel => { delete panel.thresholds; delete panel.alert; }); }); } delete this.clone.autoUpdate; } save() { return this.dashboardSrv.save(this.clone).then(this.dismiss); } keyDown(evt) { if (evt.keyCode === 13) { this.save(); } } } export function saveDashboardAsDirective() { return { restrict: 'E', template: template, controller: SaveDashboardAsModalCtrl, bindToController: true, controllerAs: 'ctrl', scope: {dismiss: "&"} }; } coreModule.directive('saveDashboardAsModal', saveDashboardAsDirective);