mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Add telemetry for schema compare and sql database projects options dialogs (#19799)
* add more telemetry for schema compare and sql projects options dialogs * cleanup * change to sendActionEvent
This commit is contained in:
@@ -10,6 +10,7 @@ import * as loc from '../localizedConstants';
|
|||||||
import { SchemaCompareMainWindow } from '../schemaCompareMainWindow';
|
import { SchemaCompareMainWindow } from '../schemaCompareMainWindow';
|
||||||
import { isNullOrUndefined } from 'util';
|
import { isNullOrUndefined } from 'util';
|
||||||
import { SchemaCompareOptionsModel } from '../models/schemaCompareOptionsModel';
|
import { SchemaCompareOptionsModel } from '../models/schemaCompareOptionsModel';
|
||||||
|
import { TelemetryReporter, TelemetryViews } from '../telemetry';
|
||||||
|
|
||||||
export class SchemaCompareOptionsDialog {
|
export class SchemaCompareOptionsDialog {
|
||||||
public dialog: azdata.window.Dialog;
|
public dialog: azdata.window.Dialog;
|
||||||
@@ -82,7 +83,10 @@ export class SchemaCompareOptionsDialog {
|
|||||||
this.schemaComparison.startCompare();
|
this.schemaComparison.startCompare();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
TelemetryReporter.sendActionEvent(TelemetryViews.SchemaCompareOptionsDialog, 'OptionsChanged');
|
||||||
}
|
}
|
||||||
|
|
||||||
this.disposeListeners();
|
this.disposeListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,6 +110,8 @@ export class SchemaCompareOptionsDialog {
|
|||||||
await this.updateObjectsTable();
|
await this.updateObjectsTable();
|
||||||
this.objectTypesFlexBuilder.removeItem(this.objectsTable);
|
this.objectTypesFlexBuilder.removeItem(this.objectsTable);
|
||||||
this.objectTypesFlexBuilder.addItem(this.objectsTable, { CSSStyles: { 'overflow': 'scroll', 'height': '80vh' } });
|
this.objectTypesFlexBuilder.addItem(this.objectsTable, { CSSStyles: { 'overflow': 'scroll', 'height': '80vh' } });
|
||||||
|
|
||||||
|
TelemetryReporter.sendActionEvent(TelemetryViews.SchemaCompareOptionsDialog, 'ResetOptions');
|
||||||
}
|
}
|
||||||
|
|
||||||
private initializeSchemaCompareOptionsDialogTab(): void {
|
private initializeSchemaCompareOptionsDialogTab(): void {
|
||||||
|
|||||||
@@ -15,5 +15,6 @@ export const TelemetryReporter = new AdsTelemetryReporter(packageInfo.name, pack
|
|||||||
|
|
||||||
export enum TelemetryViews {
|
export enum TelemetryViews {
|
||||||
SchemaCompareMainWindow = 'SchemaCompareMainWindow',
|
SchemaCompareMainWindow = 'SchemaCompareMainWindow',
|
||||||
SchemaCompareDialog = 'SchemaCompareDialog'
|
SchemaCompareDialog = 'SchemaCompareDialog',
|
||||||
|
SchemaCompareOptionsDialog = 'SchemaCompareOptionsDialog'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ export enum TelemetryViews {
|
|||||||
ProjectController = 'ProjectController',
|
ProjectController = 'ProjectController',
|
||||||
SqlProjectPublishDialog = 'SqlProjectPublishDialog',
|
SqlProjectPublishDialog = 'SqlProjectPublishDialog',
|
||||||
ProjectTree = 'ProjectTree',
|
ProjectTree = 'ProjectTree',
|
||||||
|
PublishOptionsDialog = 'PublishOptionsDialog'
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum TelemetryActions {
|
export enum TelemetryActions {
|
||||||
@@ -41,5 +42,7 @@ export enum TelemetryActions {
|
|||||||
publishToContainer = 'publishToContainer',
|
publishToContainer = 'publishToContainer',
|
||||||
publishToNewAzureServer = 'publishToNewAzureServer',
|
publishToNewAzureServer = 'publishToNewAzureServer',
|
||||||
generateProjectFromOpenApiSpec = 'generateProjectFromOpenApiSpec',
|
generateProjectFromOpenApiSpec = 'generateProjectFromOpenApiSpec',
|
||||||
publishConfigureOptionsClicked = 'PublishConfigureOptionsClicked'
|
publishOptionsOpened = 'publishOptionsOpened',
|
||||||
|
resetOptions = 'resetOptions',
|
||||||
|
optionsChanged = 'optionsChanged'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -916,7 +916,7 @@ export class PublishDatabaseDialog {
|
|||||||
const optionsRow = view.modelBuilder.flexContainer().withItems([this.optionsButton], { CSSStyles: { flex: '0 0 auto', 'margin': '6px 0 0 287px' } }).withLayout({ flexFlow: 'row', alignItems: 'center' }).component();
|
const optionsRow = view.modelBuilder.flexContainer().withItems([this.optionsButton], { CSSStyles: { flex: '0 0 auto', 'margin': '6px 0 0 287px' } }).withLayout({ flexFlow: 'row', alignItems: 'center' }).component();
|
||||||
|
|
||||||
this.toDispose.push(this.optionsButton.onDidClick(async () => {
|
this.toDispose.push(this.optionsButton.onDidClick(async () => {
|
||||||
TelemetryReporter.sendActionEvent(TelemetryViews.SqlProjectPublishDialog, TelemetryActions.publishConfigureOptionsClicked);
|
TelemetryReporter.sendActionEvent(TelemetryViews.SqlProjectPublishDialog, TelemetryActions.publishOptionsOpened);
|
||||||
// Create fresh options dialog with default selections each time when creating the 'configure options' button
|
// Create fresh options dialog with default selections each time when creating the 'configure options' button
|
||||||
this.publishOptionsDialog = new PublishOptionsDialog(this.deploymentOptions!, this);
|
this.publishOptionsDialog = new PublishOptionsDialog(this.deploymentOptions!, this);
|
||||||
this.publishOptionsDialog.openDialog();
|
this.publishOptionsDialog.openDialog();
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import * as utils from '../common/utils';
|
|||||||
import type * as azdataType from 'azdata';
|
import type * as azdataType from 'azdata';
|
||||||
import { PublishDatabaseDialog } from './publishDatabaseDialog';
|
import { PublishDatabaseDialog } from './publishDatabaseDialog';
|
||||||
import { DeployOptionsModel } from '../models/options/deployOptionsModel';
|
import { DeployOptionsModel } from '../models/options/deployOptionsModel';
|
||||||
|
import { TelemetryActions, TelemetryReporter, TelemetryViews } from '../common/telemetry';
|
||||||
|
|
||||||
export class PublishOptionsDialog {
|
export class PublishOptionsDialog {
|
||||||
|
|
||||||
@@ -21,6 +22,7 @@ export class PublishOptionsDialog {
|
|||||||
private optionsTable: azdataType.TableComponent | undefined;
|
private optionsTable: azdataType.TableComponent | undefined;
|
||||||
public optionsModel: DeployOptionsModel;
|
public optionsModel: DeployOptionsModel;
|
||||||
private optionsFlexBuilder: azdataType.FlexContainer | undefined;
|
private optionsFlexBuilder: azdataType.FlexContainer | undefined;
|
||||||
|
private optionsChanged: boolean = false;
|
||||||
|
|
||||||
constructor(defaultOptions: mssql.DeploymentOptions, private publish: PublishDatabaseDialog) {
|
constructor(defaultOptions: mssql.DeploymentOptions, private publish: PublishDatabaseDialog) {
|
||||||
this.optionsModel = new DeployOptionsModel(defaultOptions);
|
this.optionsModel = new DeployOptionsModel(defaultOptions);
|
||||||
@@ -85,6 +87,7 @@ export class PublishOptionsDialog {
|
|||||||
if (checkboxState && checkboxState.row !== undefined) {
|
if (checkboxState && checkboxState.row !== undefined) {
|
||||||
const label = this.optionsModel.optionsLabels[checkboxState.row];
|
const label = this.optionsModel.optionsLabels[checkboxState.row];
|
||||||
this.optionsModel.optionsLookup[label] = checkboxState.checked;
|
this.optionsModel.optionsLookup[label] = checkboxState.checked;
|
||||||
|
this.optionsChanged = true;
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
@@ -137,6 +140,10 @@ export class PublishOptionsDialog {
|
|||||||
this.optionsModel.setDeploymentOptions();
|
this.optionsModel.setDeploymentOptions();
|
||||||
this.publish.setDeploymentOptions(this.optionsModel.deploymentOptions);
|
this.publish.setDeploymentOptions(this.optionsModel.deploymentOptions);
|
||||||
this.disposeListeners();
|
this.disposeListeners();
|
||||||
|
|
||||||
|
if (this.optionsChanged) {
|
||||||
|
TelemetryReporter.sendActionEvent(TelemetryViews.PublishOptionsDialog, TelemetryActions.optionsChanged);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -159,6 +166,8 @@ export class PublishOptionsDialog {
|
|||||||
await this.updateOptionsTable();
|
await this.updateOptionsTable();
|
||||||
this.optionsFlexBuilder?.removeItem(this.optionsTable!);
|
this.optionsFlexBuilder?.removeItem(this.optionsTable!);
|
||||||
this.optionsFlexBuilder?.insertItem(this.optionsTable!, 0, { CSSStyles: { 'overflow': 'scroll', 'height': '65vh' } });
|
this.optionsFlexBuilder?.insertItem(this.optionsTable!, 0, { CSSStyles: { 'overflow': 'scroll', 'height': '65vh' } });
|
||||||
|
|
||||||
|
TelemetryReporter.sendActionEvent(TelemetryViews.PublishOptionsDialog, TelemetryActions.resetOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
private disposeListeners(): void {
|
private disposeListeners(): void {
|
||||||
|
|||||||
Reference in New Issue
Block a user