mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-30 01:25:38 -05:00
add save/load filter feature to profiler (#6170)
* save/load profiler filter * add role for custom buttons
This commit is contained in:
@@ -17,6 +17,7 @@ export type ProfilerSessionID = string;
|
||||
|
||||
export const PROFILER_VIEW_TEMPLATE_SETTINGS = 'profiler.viewTemplates';
|
||||
export const PROFILER_SESSION_TEMPLATE_SETTINGS = 'profiler.sessionTemplates';
|
||||
export const PROFILER_FILTER_SETTINGS = 'profiler.filters';
|
||||
export const PROFILER_SETTINGS = 'profiler';
|
||||
|
||||
/**
|
||||
@@ -130,11 +131,21 @@ export interface IProfilerService {
|
||||
* @param input input object
|
||||
*/
|
||||
launchFilterSessionDialog(input: ProfilerInput): void;
|
||||
/**
|
||||
* Gets the filters
|
||||
*/
|
||||
getFilters(): Array<ProfilerFilter>;
|
||||
/**
|
||||
* Saves the filter
|
||||
* @param filter filter object
|
||||
*/
|
||||
saveFilter(filter: ProfilerFilter): void;
|
||||
}
|
||||
|
||||
export interface IProfilerSettings {
|
||||
viewTemplates: Array<IProfilerViewTemplate>;
|
||||
sessionTemplates: Array<IProfilerSessionTemplate>;
|
||||
filters: Array<ProfilerFilter>;
|
||||
}
|
||||
|
||||
export interface IColumnViewTemplate {
|
||||
@@ -160,6 +171,7 @@ export interface IProfilerSessionTemplate {
|
||||
}
|
||||
|
||||
export interface ProfilerFilter {
|
||||
name?: string;
|
||||
clauses: ProfilerFilterClause[];
|
||||
}
|
||||
|
||||
|
||||
@@ -4,17 +4,14 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { IConnectionManagementService, IConnectionCompletionOptions, ConnectionType, RunQueryOnConnectionMode } from 'sql/platform/connection/common/connectionManagement';
|
||||
import {
|
||||
ProfilerSessionID, IProfilerSession, IProfilerService, IProfilerViewTemplate, IProfilerSessionTemplate,
|
||||
PROFILER_SETTINGS, IProfilerSettings, EngineType
|
||||
} from './interfaces';
|
||||
import { ProfilerSessionID, IProfilerSession, IProfilerService, IProfilerViewTemplate, IProfilerSessionTemplate, PROFILER_SETTINGS, IProfilerSettings, EngineType, ProfilerFilter, PROFILER_FILTER_SETTINGS } from './interfaces';
|
||||
import { IConnectionProfile } from 'sql/platform/connection/common/interfaces';
|
||||
import { ProfilerInput } from 'sql/workbench/parts/profiler/browser/profilerInput';
|
||||
import { ProfilerColumnEditorDialog } from 'sql/workbench/parts/profiler/browser/profilerColumnEditorDialog';
|
||||
|
||||
import * as azdata from 'azdata';
|
||||
|
||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
import { IConfigurationService, ConfigurationTarget } from 'vs/platform/configuration/common/configuration';
|
||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||
import { INotificationService } from 'vs/platform/notification/common/notification';
|
||||
import { ICommandService } from 'vs/platform/commands/common/commands';
|
||||
@@ -242,4 +239,14 @@ export class ProfilerService implements IProfilerService {
|
||||
let dialog = this._instantiationService.createInstance(ProfilerFilterDialog);
|
||||
dialog.open(input);
|
||||
}
|
||||
|
||||
public getFilters(): ProfilerFilter[] {
|
||||
const config = <ProfilerFilter[]>this._configurationService.getValue(PROFILER_FILTER_SETTINGS);
|
||||
return config;
|
||||
}
|
||||
|
||||
public saveFilter(filter: ProfilerFilter): void {
|
||||
const config = [filter];
|
||||
this._configurationService.updateValue(PROFILER_FILTER_SETTINGS, config, ConfigurationTarget.USER);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user