mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-23 01:25:38 -05:00
Adding telemetry to ads OE filter (#23089)
* Adding telemetry to ads oe filter * Fixing prop names * fixing prop name * Fixing localized strings * Update src/sql/azdata.proposed.d.ts Co-authored-by: Charles Gagnon <chgagnon@microsoft.com> * Update src/sql/workbench/contrib/objectExplorer/browser/serverTreeView.ts Co-authored-by: Charles Gagnon <chgagnon@microsoft.com> --------- Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>
This commit is contained in:
@@ -48,6 +48,8 @@ import { IHostService } from 'vs/workbench/services/host/browser/host';
|
||||
import { USE_ASYNC_SERVER_TREE_CONFIG } from 'sql/workbench/contrib/objectExplorer/common/serverGroup.contribution';
|
||||
import { INotificationService } from 'vs/platform/notification/common/notification';
|
||||
import { FilterDialog } from 'sql/workbench/services/objectExplorer/browser/filterDialog/filterDialog';
|
||||
import * as TelemetryKeys from 'sql/platform/telemetry/common/telemetryKeys';
|
||||
import { IAdsTelemetryService } from 'sql/platform/telemetry/common/telemetry';
|
||||
|
||||
export const CONTEXT_SERVER_TREE_VIEW = new RawContextKey<ServerTreeViewView>('serverTreeView.view', ServerTreeViewView.all);
|
||||
export const CONTEXT_SERVER_TREE_HAS_CONNECTIONS = new RawContextKey<boolean>('serverTreeView.hasConnections', false);
|
||||
@@ -79,7 +81,8 @@ export class ServerTreeView extends Disposable implements IServerTreeView {
|
||||
@IKeybindingService private _keybindingService: IKeybindingService,
|
||||
@IContextKeyService contextKeyService: IContextKeyService,
|
||||
@IHostService private _hostService: IHostService,
|
||||
@INotificationService private _notificationService: INotificationService
|
||||
@INotificationService private _notificationService: INotificationService,
|
||||
@IAdsTelemetryService private _telemetryService: IAdsTelemetryService
|
||||
) {
|
||||
super();
|
||||
this._hasConnectionsKey = CONTEXT_SERVER_TREE_HAS_CONNECTIONS.bindTo(contextKeyService);
|
||||
@@ -619,6 +622,13 @@ export class ServerTreeView extends Disposable implements IServerTreeView {
|
||||
if (errorListener) {
|
||||
errorListener.dispose();
|
||||
}
|
||||
|
||||
this._telemetryService.createActionEvent(TelemetryKeys.TelemetryView.ObjectExplorer, TelemetryKeys.TelemetryAction.ObjectExplorerFilter)
|
||||
.withAdditionalProperties({
|
||||
filterPropertyNames: JSON.stringify(filters.map(f => node.filterProperties.find(p => f.displayName === p.displayName)?.name)),
|
||||
filterCount: filters.length,
|
||||
objectType: node.objectType
|
||||
}).send();
|
||||
}
|
||||
return;
|
||||
},
|
||||
|
||||
@@ -39,7 +39,7 @@ suite('ServerTreeView onAddConnectionProfile handler tests', () => {
|
||||
);
|
||||
mockConnectionManagementService.setup(x => x.getConnectionGroups()).returns(x => []);
|
||||
mockConnectionManagementService.setup(x => x.hasRegisteredServers()).returns(() => true);
|
||||
serverTreeView = new ServerTreeView(mockConnectionManagementService.object, instantiationService, undefined, new TestThemeService(), undefined, new TestConfigurationService(), capabilitiesService, undefined, undefined, new MockContextKeyService(), undefined, undefined);
|
||||
serverTreeView = new ServerTreeView(mockConnectionManagementService.object, instantiationService, undefined, new TestThemeService(), undefined, new TestConfigurationService(), capabilitiesService, undefined, undefined, new MockContextKeyService(), undefined, undefined, undefined);
|
||||
mockTree = TypeMoq.Mock.ofType<ITree>(TestTree);
|
||||
(serverTreeView as any)._tree = mockTree.object;
|
||||
mockRefreshTreeMethod = TypeMoq.Mock.ofType(Function);
|
||||
|
||||
@@ -21,6 +21,8 @@ import { ILogService } from 'vs/platform/log/common/log';
|
||||
import { AsyncServerTree, ServerTreeElement } from 'sql/workbench/services/objectExplorer/browser/asyncServerTree';
|
||||
import { SqlIconId } from 'sql/base/common/codicons';
|
||||
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
|
||||
import { IAdsTelemetryService } from 'sql/platform/telemetry/common/telemetry';
|
||||
import * as TelemetryKeys from 'sql/platform/telemetry/common/telemetryKeys';
|
||||
|
||||
export interface IServerView {
|
||||
showFilteredTree(filter: string): void;
|
||||
@@ -338,7 +340,8 @@ export class RemoveFilterAction extends Action {
|
||||
private _node: TreeNode,
|
||||
private _tree: AsyncServerTree | ITree,
|
||||
private _profile: ConnectionProfile | undefined,
|
||||
@IObjectExplorerService private _objectExplorerService: IObjectExplorerService
|
||||
@IObjectExplorerService private _objectExplorerService: IObjectExplorerService,
|
||||
@IAdsTelemetryService private _telemetryService: IAdsTelemetryService
|
||||
) {
|
||||
super(id, label);
|
||||
}
|
||||
@@ -362,5 +365,11 @@ export class RemoveFilterAction extends Action {
|
||||
await this._tree.refresh(nodeToRefresh);
|
||||
await this._tree.expand(nodeToRefresh);
|
||||
}
|
||||
this._telemetryService.createActionEvent(
|
||||
TelemetryKeys.TelemetryView.ObjectExplorer,
|
||||
TelemetryKeys.TelemetryAction.ObjectExplorerRemoveFilter
|
||||
).withAdditionalProperties({
|
||||
objectType: node.objectType
|
||||
}).send();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user