diff --git a/src/sql/parts/jobManagement/views/jobHistory.component.html b/src/sql/parts/jobManagement/views/jobHistory.component.html index 173ffd319a..adad1aadf2 100644 --- a/src/sql/parts/jobManagement/views/jobHistory.component.html +++ b/src/sql/parts/jobManagement/views/jobHistory.component.html @@ -154,7 +154,7 @@ -
+

No Steps Available

diff --git a/src/sql/parts/jobManagement/views/jobHistory.component.ts b/src/sql/parts/jobManagement/views/jobHistory.component.ts index c482747e9d..2e4a44b44c 100644 --- a/src/sql/parts/jobManagement/views/jobHistory.component.ts +++ b/src/sql/parts/jobManagement/views/jobHistory.component.ts @@ -174,10 +174,12 @@ export class JobHistoryComponent extends JobManagementView implements OnInit { if (self.agentJobHistoryInfo) { self.agentJobHistoryInfo.runDate = self.formatTime(self.agentJobHistoryInfo.runDate); if (self.agentJobHistoryInfo.steps) { + let jobStepStatus = this.didJobFail(self.agentJobHistoryInfo); self._stepRows = self.agentJobHistoryInfo.steps.map(step => { let stepViewRow = new JobStepsViewRow(); stepViewRow.message = step.message; - stepViewRow.runStatus = JobManagementUtilities.convertToStatusString(step.runStatus); + stepViewRow.runStatus = jobStepStatus ? JobManagementUtilities.convertToStatusString(0) : + JobManagementUtilities.convertToStatusString(step.runStatus); self._runStatus = JobManagementUtilities.convertToStatusString(self.agentJobHistoryInfo.runStatus); stepViewRow.stepName = step.stepName; stepViewRow.stepID = step.stepId.toString(); @@ -191,6 +193,15 @@ export class JobHistoryComponent extends JobManagementView implements OnInit { } } + private didJobFail(job: sqlops.AgentJobHistoryInfo): boolean { + for (let i = 0; i < job.steps.length; i++) { + if (job.steps[i].runStatus === 0) { + return true; + } + } + return false; + } + private buildHistoryTree(self: any, jobHistories: sqlops.AgentJobHistoryInfo[]) { self._treeController.jobHistories = jobHistories; self._jobCacheObject.setJobHistory(self._agentViewComponent.jobId, jobHistories); diff --git a/src/sql/parts/jobManagement/views/jobHistoryTree.ts b/src/sql/parts/jobManagement/views/jobHistoryTree.ts index 7149531ea2..e4215f216c 100644 --- a/src/sql/parts/jobManagement/views/jobHistoryTree.ts +++ b/src/sql/parts/jobManagement/views/jobHistoryTree.ts @@ -104,7 +104,6 @@ export interface IListTemplate { } export class JobHistoryRenderer implements tree.IRenderer { - private _statusIcon: HTMLElement; public getHeight(tree: tree.ITree, element: JobHistoryRow): number { return 30; @@ -121,11 +120,10 @@ export class JobHistoryRenderer implements tree.IRenderer { public renderTemplate(tree: tree.ITree, templateId: string, container: HTMLElement): IListTemplate { let row = DOM.$('.list-row'); let label = DOM.$('.label'); - this._statusIcon = this.createStatusIcon(); - row.appendChild(this._statusIcon); + let statusIcon = this.createStatusIcon(); + row.appendChild(statusIcon); row.appendChild(label); container.appendChild(row); - let statusIcon = this._statusIcon; return { statusIcon, label }; } @@ -133,13 +131,13 @@ export class JobHistoryRenderer implements tree.IRenderer { templateData.label.innerHTML = element.runDate + '  ' + element.runStatus; let statusClass: string; if (element.runStatus === 'Succeeded') { - statusClass = ' job-passed'; + statusClass = 'status-icon job-passed'; } else if (element.runStatus === 'Failed') { - statusClass = ' job-failed'; + statusClass = 'status-icon job-failed'; } else { - statusClass = ' job-unknown'; + statusClass = 'status-icon job-unknown'; } - this._statusIcon.className += statusClass; + templateData.statusIcon.className = statusClass; } public disposeTemplate(tree: tree.ITree, templateId: string, templateData: IListTemplate): void { @@ -148,7 +146,6 @@ export class JobHistoryRenderer implements tree.IRenderer { private createStatusIcon(): HTMLElement { let statusIcon: HTMLElement = DOM.$('div'); - statusIcon.className += ' status-icon'; return statusIcon; } } diff --git a/src/sql/parts/jobManagement/views/jobStepsView.component.ts b/src/sql/parts/jobManagement/views/jobStepsView.component.ts index b93074c58b..a3f448850b 100644 --- a/src/sql/parts/jobManagement/views/jobStepsView.component.ts +++ b/src/sql/parts/jobManagement/views/jobStepsView.component.ts @@ -88,15 +88,6 @@ export class JobStepsViewComponent extends JobManagementView implements OnInit, } public layout() { - let jobsViewToolbar = $('jobhistory-component .actionbar-container').get(0); - let statusBar = $('.part.statusbar').get(0); - if (jobsViewToolbar && statusBar) { - let toolbarBottom = jobsViewToolbar.getBoundingClientRect().bottom; - let statusTop = statusBar.getBoundingClientRect().top; - this._table.layout(new dom.Dimension( - dom.getContentWidth(this._tableContainer.nativeElement), - statusTop - toolbarBottom)); - } } }