diff --git a/src/sql/parts/jobManagement/views/alertsView.component.ts b/src/sql/parts/jobManagement/views/alertsView.component.ts index 10fdea7698..19d3adc401 100644 --- a/src/sql/parts/jobManagement/views/alertsView.component.ts +++ b/src/sql/parts/jobManagement/views/alertsView.component.ts @@ -77,7 +77,7 @@ export class AlertsViewComponent extends JobManagementView implements OnInit, On constructor( @Inject(forwardRef(() => ChangeDetectorRef)) private _cd: ChangeDetectorRef, @Inject(forwardRef(() => ElementRef)) private _el: ElementRef, - @Inject(forwardRef(() => AgentViewComponent)) private _agentViewComponent: AgentViewComponent, + @Inject(forwardRef(() => AgentViewComponent)) _agentViewComponent: AgentViewComponent, @Inject(IJobManagementService) private _jobManagementService: IJobManagementService, @Inject(ICommandService) private _commandService: ICommandService, @Inject(IInstantiationService) instantiationService: IInstantiationService, @@ -85,7 +85,7 @@ export class AlertsViewComponent extends JobManagementView implements OnInit, On @Inject(IContextMenuService) contextMenuService: IContextMenuService, @Inject(IKeybindingService) keybindingService: IKeybindingService, @Inject(IDashboardService) _dashboardService: IDashboardService) { - super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService); + super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService, _agentViewComponent); this._didTabChange = false; this._isCloud = commonService.connectionManagementService.connectionInfo.serverInfo.isCloud; let alertsCacheObjectMap = this._jobManagementService.alertsCacheObjectMap; @@ -147,6 +147,7 @@ export class AlertsViewComponent extends JobManagementView implements OnInit, On $(this._gridEl.nativeElement).empty(); $(this.actionBarContainer.nativeElement).empty(); this.initActionBar(); + this._table = new Table(this._gridEl.nativeElement, { columns }, this.options); this._table.grid.setData(this.dataView, true); this._register(this._table.onContextMenu(e => { @@ -238,8 +239,4 @@ export class AlertsViewComponent extends JobManagementView implements OnInit, On } }); } - - private refreshJobs() { - this._agentViewComponent.refresh = true; - } } \ No newline at end of file diff --git a/src/sql/parts/jobManagement/views/jobHistory.component.ts b/src/sql/parts/jobManagement/views/jobHistory.component.ts index 6876af838c..f13eb8e90f 100644 --- a/src/sql/parts/jobManagement/views/jobHistory.component.ts +++ b/src/sql/parts/jobManagement/views/jobHistory.component.ts @@ -72,7 +72,7 @@ export class JobHistoryComponent extends JobManagementView implements OnInit { @Inject(forwardRef(() => ElementRef)) el: ElementRef, @Inject(forwardRef(() => ChangeDetectorRef)) private _cd: ChangeDetectorRef, @Inject(forwardRef(() => CommonServiceInterface)) commonService: CommonServiceInterface, - @Inject(forwardRef(() => AgentViewComponent)) private _agentViewComponent: AgentViewComponent, + @Inject(forwardRef(() => AgentViewComponent)) _agentViewComponent: AgentViewComponent, @Inject(IWorkbenchThemeService) private themeService: IWorkbenchThemeService, @Inject(IInstantiationService) private instantiationService: IInstantiationService, @Inject(IContextMenuService) private contextMenuService: IContextMenuService, @@ -81,7 +81,7 @@ export class JobHistoryComponent extends JobManagementView implements OnInit { @Inject(IDashboardService) dashboardService: IDashboardService, @Inject(ITelemetryService) private _telemetryService: ITelemetryService ) { - super(commonService, dashboardService, contextMenuService, keybindingService, instantiationService); + super(commonService, dashboardService, contextMenuService, keybindingService, instantiationService, _agentViewComponent); this._treeController = new JobHistoryController(); this._treeDataSource = new JobHistoryDataSource(); this._treeRenderer = new JobHistoryRenderer(); @@ -331,10 +331,6 @@ export class JobHistoryComponent extends JobManagementView implements OnInit { } } - public refreshJobs() { - this._agentViewComponent.refresh = true; - } - protected initActionBar() { let runJobAction = this.instantiationService.createInstance(RunJobAction); let stopJobAction = this.instantiationService.createInstance(StopJobAction); @@ -351,7 +347,7 @@ export class JobHistoryComponent extends JobManagementView implements OnInit { let refreshAction = this.instantiationService.createInstance(JobsRefreshAction); let taskbar = this.actionBarContainer.nativeElement; this._actionBar = new Taskbar(taskbar, this.contextMenuService); - this._actionBar.context = { targetObject: this._agentJobInfo, ownerUri: this.ownerUri, jobHistoryComponent: this }; + this._actionBar.context = { targetObject: this._agentJobInfo, ownerUri: this.ownerUri, component: this }; this._actionBar.setContent([ { action: runJobAction }, { action: stopJobAction }, diff --git a/src/sql/parts/jobManagement/views/jobManagementView.ts b/src/sql/parts/jobManagement/views/jobManagementView.ts index ab31d14f64..194fc9e69e 100644 --- a/src/sql/parts/jobManagement/views/jobManagementView.ts +++ b/src/sql/parts/jobManagement/views/jobManagementView.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as azdata from 'azdata'; -import { ElementRef, AfterContentChecked, ViewChild } from '@angular/core'; +import { ElementRef, AfterContentChecked, ViewChild, forwardRef, Inject } from '@angular/core'; import { Table } from 'sql/base/browser/ui/table/table'; import { AgentViewComponent } from 'sql/parts/jobManagement/agent/agentView.component'; import { CommonServiceInterface } from 'sql/services/common/commonServiceInterface.service'; @@ -14,7 +14,7 @@ import { IContextMenuService } from 'vs/platform/contextview/browser/contextView import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { Taskbar } from '../../../base/browser/ui/taskbar/taskbar'; -import { JobsRefreshAction } from 'sql/platform/jobManagement/common/jobActions'; +import { JobsRefreshAction, IJobActionInfo } from 'sql/platform/jobManagement/common/jobActions'; import { TabChild } from 'sql/base/browser/ui/panel/tab.component'; import { IDashboardService } from 'sql/platform/dashboard/browser/dashboardService'; @@ -37,7 +37,8 @@ export abstract class JobManagementView extends TabChild implements AfterContent protected _dashboardService: IDashboardService, protected _contextMenuService: IContextMenuService, protected _keybindingService: IKeybindingService, - protected _instantiationService: IInstantiationService) { + protected _instantiationService: IInstantiationService, + protected _agentViewComponent: AgentViewComponent) { super(); let self = this; @@ -111,11 +112,15 @@ export abstract class JobManagementView extends TabChild implements AfterContent let newAction: Action = this._instantiationService.createInstance(this.contextAction); let taskbar = this.actionBarContainer.nativeElement; this._actionBar = new Taskbar(taskbar, this._contextMenuService); - this._actionBar.context = this; this._actionBar.setContent([ { action: refreshAction }, { action: newAction } ]); + this._actionBar.context = { component: this }; + } + + public refreshJobs() { + this._agentViewComponent.refresh = true; } } diff --git a/src/sql/parts/jobManagement/views/jobStepsView.component.ts b/src/sql/parts/jobManagement/views/jobStepsView.component.ts index 75a07c90de..eeefa747a5 100644 --- a/src/sql/parts/jobManagement/views/jobStepsView.component.ts +++ b/src/sql/parts/jobManagement/views/jobStepsView.component.ts @@ -55,7 +55,7 @@ export class JobStepsViewComponent extends JobManagementView implements OnInit, @Inject(IDashboardService) dashboardService: IDashboardService, @Inject(ITelemetryService) private _telemetryService: ITelemetryService ) { - super(commonService, dashboardService, contextMenuService, keybindingService, instantiationService); + super(commonService, dashboardService, contextMenuService, keybindingService, instantiationService, undefined); } ngAfterContentChecked() { diff --git a/src/sql/parts/jobManagement/views/jobsView.component.ts b/src/sql/parts/jobManagement/views/jobsView.component.ts index 34500096cd..c74c102042 100644 --- a/src/sql/parts/jobManagement/views/jobsView.component.ts +++ b/src/sql/parts/jobManagement/views/jobsView.component.ts @@ -21,7 +21,7 @@ import { Table } from 'sql/base/browser/ui/table/table'; import { AgentViewComponent } from 'sql/parts/jobManagement/agent/agentView.component'; import { RowDetailView } from 'sql/base/browser/ui/table/plugins/rowdetailview'; import { JobCacheObject } from 'sql/platform/jobManagement/common/jobManagementService'; -import { EditJobAction, DeleteJobAction, NewJobAction } from 'sql/platform/jobManagement/common/jobActions'; +import { EditJobAction, DeleteJobAction, NewJobAction, IJobActionInfo } from 'sql/platform/jobManagement/common/jobActions'; import { JobManagementUtilities } from 'sql/platform/jobManagement/common/jobManagementUtilities'; import { HeaderFilter } from 'sql/base/browser/ui/table/plugins/headerFilter.plugin'; import { IJobManagementService } from 'sql/platform/jobManagement/common/interfaces'; @@ -99,7 +99,7 @@ export class JobsViewComponent extends JobManagementView implements OnInit, OnDe @Inject(forwardRef(() => CommonServiceInterface)) commonService: CommonServiceInterface, @Inject(forwardRef(() => ChangeDetectorRef)) private _cd: ChangeDetectorRef, @Inject(forwardRef(() => ElementRef)) private _el: ElementRef, - @Inject(forwardRef(() => AgentViewComponent)) private _agentViewComponent: AgentViewComponent, + @Inject(forwardRef(() => AgentViewComponent)) _agentViewComponent: AgentViewComponent, @Inject(IJobManagementService) private _jobManagementService: IJobManagementService, @Inject(IWorkbenchThemeService) private _themeService: IWorkbenchThemeService, @Inject(ICommandService) private _commandService: ICommandService, @@ -109,7 +109,7 @@ export class JobsViewComponent extends JobManagementView implements OnInit, OnDe @Inject(IDashboardService) _dashboardService: IDashboardService, @Inject(ITelemetryService) private _telemetryService: ITelemetryService ) { - super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService); + super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService, _agentViewComponent); let jobCacheObjectMap = this._jobManagementService.jobCacheObjectMap; let jobCache = jobCacheObjectMap[this._serverName]; if (jobCache) { @@ -952,8 +952,4 @@ export class JobsViewComponent extends JobManagementView implements OnInit, OnDe let ownerUri: string = this._commonService.connectionManagementService.connectionInfo.ownerUri; this._commandService.executeCommand('agent.openJobDialog', ownerUri); } - - public refreshJobs() { - this._agentViewComponent.refresh = true; - } } \ No newline at end of file diff --git a/src/sql/parts/jobManagement/views/operatorsView.component.ts b/src/sql/parts/jobManagement/views/operatorsView.component.ts index 8f752007ba..7feab3bfe5 100644 --- a/src/sql/parts/jobManagement/views/operatorsView.component.ts +++ b/src/sql/parts/jobManagement/views/operatorsView.component.ts @@ -76,7 +76,7 @@ export class OperatorsViewComponent extends JobManagementView implements OnInit, constructor( @Inject(forwardRef(() => ChangeDetectorRef)) private _cd: ChangeDetectorRef, @Inject(forwardRef(() => ElementRef)) private _el: ElementRef, - @Inject(forwardRef(() => AgentViewComponent)) private _agentViewComponent: AgentViewComponent, + @Inject(forwardRef(() => AgentViewComponent)) _agentViewComponent: AgentViewComponent, @Inject(IJobManagementService) private _jobManagementService: IJobManagementService, @Inject(ICommandService) private _commandService: ICommandService, @Inject(IInstantiationService) instantiationService: IInstantiationService, @@ -85,7 +85,7 @@ export class OperatorsViewComponent extends JobManagementView implements OnInit, @Inject(IKeybindingService) keybindingService: IKeybindingService, @Inject(IDashboardService) _dashboardService: IDashboardService ) { - super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService); + super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService, _agentViewComponent); this._isCloud = commonService.connectionManagementService.connectionInfo.serverInfo.isCloud; let operatorsCacheObject = this._jobManagementService.operatorsCacheObjectMap; let operatorsCache = operatorsCacheObject[this._serverName]; @@ -226,8 +226,4 @@ export class OperatorsViewComponent extends JobManagementView implements OnInit, let ownerUri: string = this._commonService.connectionManagementService.connectionInfo.ownerUri; this._commandService.executeCommand('agent.openOperatorDialog', ownerUri); } - - private refreshJobs() { - this._agentViewComponent.refresh = true; - } } \ No newline at end of file diff --git a/src/sql/parts/jobManagement/views/proxiesView.component.ts b/src/sql/parts/jobManagement/views/proxiesView.component.ts index 7d6521b217..8d77562039 100644 --- a/src/sql/parts/jobManagement/views/proxiesView.component.ts +++ b/src/sql/parts/jobManagement/views/proxiesView.component.ts @@ -80,7 +80,7 @@ export class ProxiesViewComponent extends JobManagementView implements OnInit, O constructor( @Inject(forwardRef(() => ChangeDetectorRef)) private _cd: ChangeDetectorRef, @Inject(forwardRef(() => ElementRef)) private _el: ElementRef, - @Inject(forwardRef(() => AgentViewComponent)) private _agentViewComponent: AgentViewComponent, + @Inject(forwardRef(() => AgentViewComponent)) _agentViewComponent: AgentViewComponent, @Inject(IJobManagementService) private _jobManagementService: IJobManagementService, @Inject(ICommandService) private _commandService: ICommandService, @Inject(IInstantiationService) instantiationService: IInstantiationService, @@ -89,7 +89,7 @@ export class ProxiesViewComponent extends JobManagementView implements OnInit, O @Inject(IKeybindingService) keybindingService: IKeybindingService, @Inject(IDashboardService) _dashboardService: IDashboardService ) { - super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService); + super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService, _agentViewComponent); this._isCloud = commonService.connectionManagementService.connectionInfo.serverInfo.isCloud; let proxiesCacheObjectMap = this._jobManagementService.proxiesCacheObjectMap; let proxiesCacheObject = proxiesCacheObjectMap[this._serverName]; @@ -234,8 +234,4 @@ export class ProxiesViewComponent extends JobManagementView implements OnInit, O } }); } - - private refreshJobs() { - this._agentViewComponent.refresh = true; - } } \ No newline at end of file diff --git a/src/sql/platform/jobManagement/common/jobActions.ts b/src/sql/platform/jobManagement/common/jobActions.ts index c05fe73287..c3fbd47b5b 100644 --- a/src/sql/platform/jobManagement/common/jobActions.ts +++ b/src/sql/platform/jobManagement/common/jobActions.ts @@ -19,6 +19,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import * as TelemetryKeys from 'sql/common/telemetryKeys'; import { IErrorMessageService } from 'sql/platform/errorMessage/common/errorMessageService'; +import { JobManagementView } from 'sql/parts/jobManagement/views/jobManagementView'; export const successLabel: string = nls.localize('jobaction.successLabel', 'Success'); export const errorLabel: string = nls.localize('jobaction.faillabel', 'Error'); @@ -31,8 +32,7 @@ export enum JobActions { export class IJobActionInfo { ownerUri: string; targetObject: any; - jobHistoryComponent?: JobHistoryComponent; - jobViewComponent?: JobsViewComponent; + component: JobManagementView; } // Job actions @@ -49,7 +49,9 @@ export class JobsRefreshAction extends Action { public run(context: IJobActionInfo): Promise { return new Promise((resolve, reject) => { if (context) { - context.jobHistoryComponent.refreshJobs(); + if (context.component) { + context.component.refreshJobs(); + } resolve(true); } else { reject(false);