Fixes bug when opening the scheduler dialog (#6624)

Checks if the loading component is loaded before using it
This commit is contained in:
Amir Omidi
2019-08-14 10:51:06 -07:00
committed by GitHub
parent 5528a90eaf
commit 462b5d1d53
2 changed files with 11 additions and 3 deletions

View File

@@ -14,6 +14,7 @@ export class PickScheduleData implements IAgentDialogData {
public schedules: azdata.AgentJobScheduleInfo[]; public schedules: azdata.AgentJobScheduleInfo[];
public selectedSchedule: azdata.AgentJobScheduleInfo; public selectedSchedule: azdata.AgentJobScheduleInfo;
private jobName: string; private jobName: string;
private initialized: boolean;
constructor(ownerUri: string, jobName: string) { constructor(ownerUri: string, jobName: string) {
this.ownerUri = ownerUri; this.ownerUri = ownerUri;
@@ -24,6 +25,7 @@ export class PickScheduleData implements IAgentDialogData {
let agentService = await AgentUtils.getAgentService(); let agentService = await AgentUtils.getAgentService();
try { try {
let result = await agentService.getJobSchedules(this.ownerUri); let result = await agentService.getJobSchedules(this.ownerUri);
this.initialized = true;
if (result && result.success) { if (result && result.success) {
this.schedules = result.schedules; this.schedules = result.schedules;
return this.schedules; return this.schedules;
@@ -36,4 +38,8 @@ export class PickScheduleData implements IAgentDialogData {
public async save() { public async save() {
this.selectedSchedule.jobName = this.jobName; this.selectedSchedule.jobName = this.jobName;
} }
public isInitialized() {
return this.initialized;
}
} }

View File

@@ -40,7 +40,9 @@ export class PickScheduleDialog {
public async showDialog() { public async showDialog() {
this.model.initialize().then((result) => { this.model.initialize().then((result) => {
this.loadingComponent.loading = false; if (this.loadingComponent) {
this.loadingComponent.loading = false;
}
if (this.model.schedules) { if (this.model.schedules) {
let data: any[][] = []; let data: any[][] = [];
for (let i = 0; i < this.model.schedules.length; ++i) { for (let i = 0; i < this.model.schedules.length; ++i) {
@@ -80,7 +82,7 @@ export class PickScheduleDialog {
}]).withLayout({ width: '100%' }).component(); }]).withLayout({ width: '100%' }).component();
this.loadingComponent = view.modelBuilder.loadingComponent().withItem(formModel).component(); this.loadingComponent = view.modelBuilder.loadingComponent().withItem(formModel).component();
this.loadingComponent.loading = true; this.loadingComponent.loading = !this.model.isInitialized();
await view.initializeModel(this.loadingComponent); await view.initializeModel(this.loadingComponent);
}); });
} }
@@ -101,4 +103,4 @@ export class PickScheduleDialog {
this.model.selectedSchedule = this.model.schedules[selectedRow]; this.model.selectedSchedule = this.model.schedules[selectedRow];
} }
} }
} }