From 462b5d1d5393393c364a96e002361a42f102715e Mon Sep 17 00:00:00 2001 From: Amir Omidi Date: Wed, 14 Aug 2019 10:51:06 -0700 Subject: [PATCH] Fixes bug when opening the scheduler dialog (#6624) Checks if the loading component is loaded before using it --- extensions/agent/src/data/pickScheduleData.ts | 6 ++++++ extensions/agent/src/dialogs/pickScheduleDialog.ts | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/extensions/agent/src/data/pickScheduleData.ts b/extensions/agent/src/data/pickScheduleData.ts index 3f51b80296..555053e7d4 100644 --- a/extensions/agent/src/data/pickScheduleData.ts +++ b/extensions/agent/src/data/pickScheduleData.ts @@ -14,6 +14,7 @@ export class PickScheduleData implements IAgentDialogData { public schedules: azdata.AgentJobScheduleInfo[]; public selectedSchedule: azdata.AgentJobScheduleInfo; private jobName: string; + private initialized: boolean; constructor(ownerUri: string, jobName: string) { this.ownerUri = ownerUri; @@ -24,6 +25,7 @@ export class PickScheduleData implements IAgentDialogData { let agentService = await AgentUtils.getAgentService(); try { let result = await agentService.getJobSchedules(this.ownerUri); + this.initialized = true; if (result && result.success) { this.schedules = result.schedules; return this.schedules; @@ -36,4 +38,8 @@ export class PickScheduleData implements IAgentDialogData { public async save() { this.selectedSchedule.jobName = this.jobName; } + + public isInitialized() { + return this.initialized; + } } diff --git a/extensions/agent/src/dialogs/pickScheduleDialog.ts b/extensions/agent/src/dialogs/pickScheduleDialog.ts index 04142b7630..52cf6f1813 100644 --- a/extensions/agent/src/dialogs/pickScheduleDialog.ts +++ b/extensions/agent/src/dialogs/pickScheduleDialog.ts @@ -40,7 +40,9 @@ export class PickScheduleDialog { public async showDialog() { this.model.initialize().then((result) => { - this.loadingComponent.loading = false; + if (this.loadingComponent) { + this.loadingComponent.loading = false; + } if (this.model.schedules) { let data: any[][] = []; for (let i = 0; i < this.model.schedules.length; ++i) { @@ -80,7 +82,7 @@ export class PickScheduleDialog { }]).withLayout({ width: '100%' }).component(); this.loadingComponent = view.modelBuilder.loadingComponent().withItem(formModel).component(); - this.loadingComponent.loading = true; + this.loadingComponent.loading = !this.model.isInitialized(); await view.initializeModel(this.loadingComponent); }); } @@ -101,4 +103,4 @@ export class PickScheduleDialog { this.model.selectedSchedule = this.model.schedules[selectedRow]; } } -} \ No newline at end of file +}