mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-30 17:23:29 -05:00
* working on formatting * fixed basic lint errors; starting moving things to their appropriate location * formatting * update tslint to match the version of vscode we have * remove unused code * work in progress fixing layering * formatting * moved connection management service to platform * formatting * add missing file * moving more servies * formatting * moving more services * formatting * wip * moving more services * formatting * move css file * add missing svgs * moved the rest of services * formatting * changing around some references * formatting * revert tslint * revert some changes that brake things * formatting * fix tests * fix testzx * fix tests * fix tests * fix compile issue
108 lines
3.6 KiB
TypeScript
108 lines
3.6 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import { Modal } from 'sql/workbench/browser/modal/modal';
|
|
import { IConnectionProfile } from 'sql/platform/connection/common/interfaces';
|
|
import { BackupModule } from 'sql/parts/disasterRecovery/backup/backup.module';
|
|
import { BACKUP_SELECTOR } from 'sql/parts/disasterRecovery/backup/backup.component';
|
|
import { attachModalDialogStyler } from 'sql/platform/theme/common/styler';
|
|
import { IConnectionManagementService } from 'sql/platform/connection/common/connectionManagement';
|
|
import * as TelemetryKeys from 'sql/common/telemetryKeys';
|
|
|
|
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
|
|
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
|
import { IPartService } from 'vs/workbench/services/part/common/partService';
|
|
import { Builder } from 'vs/base/browser/builder';
|
|
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
|
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
|
import { bootstrapAngular } from 'sql/services/bootstrap/bootstrapService';
|
|
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
|
|
|
|
export class BackupDialog extends Modal {
|
|
private _bodyBuilder: Builder;
|
|
private _backupTitle: string;
|
|
private _uniqueSelector: string;
|
|
private _moduleRef: any;
|
|
|
|
constructor(
|
|
@IThemeService themeService: IThemeService,
|
|
@IPartService partService: IPartService,
|
|
@IConnectionManagementService private _connectionManagementService: IConnectionManagementService,
|
|
@ITelemetryService telemetryService: ITelemetryService,
|
|
@IContextKeyService contextKeyService: IContextKeyService,
|
|
@IInstantiationService private _instantiationService: IInstantiationService,
|
|
@IClipboardService clipboardService: IClipboardService
|
|
) {
|
|
super('', TelemetryKeys.Backup, partService, telemetryService, clipboardService, themeService, contextKeyService, { isAngular: true, hasErrors: true });
|
|
}
|
|
|
|
protected renderBody(container: HTMLElement) {
|
|
new Builder(container).div({ 'class': 'backup-dialog' }, (builder) => {
|
|
this._bodyBuilder = builder;
|
|
});
|
|
}
|
|
|
|
public render() {
|
|
super.render();
|
|
attachModalDialogStyler(this, this._themeService);
|
|
|
|
// Add angular component template to dialog body
|
|
this.bootstrapAngular(this._bodyBuilder.getHTMLElement());
|
|
}
|
|
|
|
/**
|
|
* Get the bootstrap params and perform the bootstrap
|
|
*/
|
|
private bootstrapAngular(bodyContainer: HTMLElement) {
|
|
this._uniqueSelector = bootstrapAngular(this._instantiationService,
|
|
BackupModule,
|
|
bodyContainer,
|
|
BACKUP_SELECTOR,
|
|
undefined,
|
|
undefined,
|
|
(moduleRef) => this._moduleRef = moduleRef);
|
|
}
|
|
|
|
public hideError() {
|
|
this.showError('');
|
|
}
|
|
|
|
public showError(err: string) {
|
|
this.showError(err);
|
|
}
|
|
|
|
/* Overwrite escape key behavior */
|
|
protected onClose() {
|
|
this.close();
|
|
}
|
|
|
|
/**
|
|
* Clean up the module and DOM element and close the dialog
|
|
*/
|
|
public close() {
|
|
this.hide();
|
|
}
|
|
|
|
public dispose(): void {
|
|
super.dispose();
|
|
if (this._moduleRef) {
|
|
this._moduleRef.destroy();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Open the dialog
|
|
*/
|
|
public open(connection: IConnectionProfile) {
|
|
this._backupTitle = 'Backup database - ' + connection.serverName + ':' + connection.databaseName;
|
|
this.title = this._backupTitle;
|
|
this.show();
|
|
}
|
|
|
|
protected layout(height?: number): void {
|
|
// Nothing currently laid out in this class
|
|
}
|
|
|
|
} |