mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Fixed 2 bugs in Agent Steps page. (#1953)
* fixed bug where steps werent being shown * fixed customer reported issue
This commit is contained in:
@@ -154,7 +154,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<div #jobsteps>
|
<div #jobsteps style="height: 100%">
|
||||||
<jobstepsview-component *ngIf="showSteps === true"></jobstepsview-component>
|
<jobstepsview-component *ngIf="showSteps === true"></jobstepsview-component>
|
||||||
</div>
|
</div>
|
||||||
<h3 *ngIf="showSteps === false">No Steps Available</h3>
|
<h3 *ngIf="showSteps === false">No Steps Available</h3>
|
||||||
|
|||||||
@@ -174,10 +174,12 @@ export class JobHistoryComponent extends JobManagementView implements OnInit {
|
|||||||
if (self.agentJobHistoryInfo) {
|
if (self.agentJobHistoryInfo) {
|
||||||
self.agentJobHistoryInfo.runDate = self.formatTime(self.agentJobHistoryInfo.runDate);
|
self.agentJobHistoryInfo.runDate = self.formatTime(self.agentJobHistoryInfo.runDate);
|
||||||
if (self.agentJobHistoryInfo.steps) {
|
if (self.agentJobHistoryInfo.steps) {
|
||||||
|
let jobStepStatus = this.didJobFail(self.agentJobHistoryInfo);
|
||||||
self._stepRows = self.agentJobHistoryInfo.steps.map(step => {
|
self._stepRows = self.agentJobHistoryInfo.steps.map(step => {
|
||||||
let stepViewRow = new JobStepsViewRow();
|
let stepViewRow = new JobStepsViewRow();
|
||||||
stepViewRow.message = step.message;
|
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);
|
self._runStatus = JobManagementUtilities.convertToStatusString(self.agentJobHistoryInfo.runStatus);
|
||||||
stepViewRow.stepName = step.stepName;
|
stepViewRow.stepName = step.stepName;
|
||||||
stepViewRow.stepID = step.stepId.toString();
|
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[]) {
|
private buildHistoryTree(self: any, jobHistories: sqlops.AgentJobHistoryInfo[]) {
|
||||||
self._treeController.jobHistories = jobHistories;
|
self._treeController.jobHistories = jobHistories;
|
||||||
self._jobCacheObject.setJobHistory(self._agentViewComponent.jobId, jobHistories);
|
self._jobCacheObject.setJobHistory(self._agentViewComponent.jobId, jobHistories);
|
||||||
|
|||||||
@@ -104,7 +104,6 @@ export interface IListTemplate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class JobHistoryRenderer implements tree.IRenderer {
|
export class JobHistoryRenderer implements tree.IRenderer {
|
||||||
private _statusIcon: HTMLElement;
|
|
||||||
|
|
||||||
public getHeight(tree: tree.ITree, element: JobHistoryRow): number {
|
public getHeight(tree: tree.ITree, element: JobHistoryRow): number {
|
||||||
return 30;
|
return 30;
|
||||||
@@ -121,11 +120,10 @@ export class JobHistoryRenderer implements tree.IRenderer {
|
|||||||
public renderTemplate(tree: tree.ITree, templateId: string, container: HTMLElement): IListTemplate {
|
public renderTemplate(tree: tree.ITree, templateId: string, container: HTMLElement): IListTemplate {
|
||||||
let row = DOM.$('.list-row');
|
let row = DOM.$('.list-row');
|
||||||
let label = DOM.$('.label');
|
let label = DOM.$('.label');
|
||||||
this._statusIcon = this.createStatusIcon();
|
let statusIcon = this.createStatusIcon();
|
||||||
row.appendChild(this._statusIcon);
|
row.appendChild(statusIcon);
|
||||||
row.appendChild(label);
|
row.appendChild(label);
|
||||||
container.appendChild(row);
|
container.appendChild(row);
|
||||||
let statusIcon = this._statusIcon;
|
|
||||||
return { statusIcon, label };
|
return { statusIcon, label };
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,13 +131,13 @@ export class JobHistoryRenderer implements tree.IRenderer {
|
|||||||
templateData.label.innerHTML = element.runDate + ' ' + element.runStatus;
|
templateData.label.innerHTML = element.runDate + ' ' + element.runStatus;
|
||||||
let statusClass: string;
|
let statusClass: string;
|
||||||
if (element.runStatus === 'Succeeded') {
|
if (element.runStatus === 'Succeeded') {
|
||||||
statusClass = ' job-passed';
|
statusClass = 'status-icon job-passed';
|
||||||
} else if (element.runStatus === 'Failed') {
|
} else if (element.runStatus === 'Failed') {
|
||||||
statusClass = ' job-failed';
|
statusClass = 'status-icon job-failed';
|
||||||
} else {
|
} 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 {
|
public disposeTemplate(tree: tree.ITree, templateId: string, templateData: IListTemplate): void {
|
||||||
@@ -148,7 +146,6 @@ export class JobHistoryRenderer implements tree.IRenderer {
|
|||||||
|
|
||||||
private createStatusIcon(): HTMLElement {
|
private createStatusIcon(): HTMLElement {
|
||||||
let statusIcon: HTMLElement = DOM.$('div');
|
let statusIcon: HTMLElement = DOM.$('div');
|
||||||
statusIcon.className += ' status-icon';
|
|
||||||
return statusIcon;
|
return statusIcon;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,15 +88,6 @@ export class JobStepsViewComponent extends JobManagementView implements OnInit,
|
|||||||
}
|
}
|
||||||
|
|
||||||
public layout() {
|
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));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user