From 6590d5f58a27a6290028493a5e0b5ca3d5d1c95c Mon Sep 17 00:00:00 2001 From: Aditya Bist Date: Mon, 18 Jun 2018 10:54:15 -0700 Subject: [PATCH] fixed refresh and removed unused imports (#1633) --- .../common/dashboardPage.component.ts | 9 +----- .../contents/controlHostContent.component.ts | 4 --- .../agent/agentView.component.ts | 6 ++-- .../views/jobHistory.component.ts | 13 ++------ .../jobManagement/views/jobHistoryActions.ts | 2 -- .../jobManagement/views/jobHistoryTree.ts | 15 --------- .../views/jobStepsView.component.ts | 12 ++----- .../jobManagement/views/jobStepsViewTree.ts | 12 ------- .../jobManagement/views/jobsView.component.ts | 31 +++++++++---------- 9 files changed, 23 insertions(+), 81 deletions(-) diff --git a/src/sql/parts/dashboard/common/dashboardPage.component.ts b/src/sql/parts/dashboard/common/dashboardPage.component.ts index 812e31ecf3..3498e3f0d7 100644 --- a/src/sql/parts/dashboard/common/dashboardPage.component.ts +++ b/src/sql/parts/dashboard/common/dashboardPage.component.ts @@ -11,8 +11,6 @@ import { Component, Inject, forwardRef, ViewChild, ElementRef, ViewChildren, Que import { DashboardServiceInterface } from 'sql/parts/dashboard/services/dashboardServiceInterface.service'; import { CommonServiceInterface, SingleConnectionManagementService } from 'sql/services/common/commonServiceInterface.service'; import { WidgetConfig, TabConfig, TabSettingConfig } from 'sql/parts/dashboard/common/dashboardWidget'; -import { Extensions, IInsightRegistry } from 'sql/platform/dashboard/common/insightRegistry'; -import { DashboardWidgetWrapper } from 'sql/parts/dashboard/contents/dashboardWidgetWrapper.component'; import { IPropertiesConfig } from 'sql/parts/dashboard/pages/serverDashboardPage.contribution'; import { PanelComponent } from 'sql/base/browser/ui/panel/panel.component'; import { IDashboardRegistry, Extensions as DashboardExtensions, IDashboardTab } from 'sql/platform/dashboard/common/dashboardRegistry'; @@ -27,13 +25,8 @@ import { AngularDisposable } from 'sql/base/common/lifecycle'; import { Registry } from 'vs/platform/registry/common/platform'; import * as types from 'vs/base/common/types'; -import { Disposable, IDisposable } from 'vs/base/common/lifecycle'; +import { IDisposable } from 'vs/base/common/lifecycle'; import * as nls from 'vs/nls'; -import { ScrollbarVisibility } from 'vs/base/common/scrollable'; -import { addDisposableListener, getContentHeight, EventType } from 'vs/base/browser/dom'; -import { IColorTheme } from 'vs/workbench/services/themes/common/workbenchThemeService'; -import * as colors from 'vs/platform/theme/common/colorRegistry'; -import * as themeColors from 'vs/workbench/common/theme'; import * as objects from 'vs/base/common/objects'; import { Event, Emitter } from 'vs/base/common/event'; import { Action } from 'vs/base/common/actions'; diff --git a/src/sql/parts/dashboard/contents/controlHostContent.component.ts b/src/sql/parts/dashboard/contents/controlHostContent.component.ts index 08dabd90a7..3f1b31f41e 100644 --- a/src/sql/parts/dashboard/contents/controlHostContent.component.ts +++ b/src/sql/parts/dashboard/contents/controlHostContent.component.ts @@ -7,11 +7,7 @@ import 'vs/css!./controlHostContent'; import { Component, forwardRef, Input, OnInit, Inject, ChangeDetectorRef, ElementRef, ViewChild } from '@angular/core'; import { Event, Emitter } from 'vs/base/common/event'; -import { Parts } from 'vs/workbench/services/part/common/partService'; import { IDisposable } from 'vs/base/common/lifecycle'; - -import { TabConfig } from 'sql/parts/dashboard/common/dashboardWidget'; -import { DashboardServiceInterface } from 'sql/parts/dashboard/services/dashboardServiceInterface.service'; import { CommonServiceInterface } from 'sql/services/common/commonServiceInterface.service'; import * as sqlops from 'sqlops'; diff --git a/src/sql/parts/jobManagement/agent/agentView.component.ts b/src/sql/parts/jobManagement/agent/agentView.component.ts index 454626e660..909573b517 100644 --- a/src/sql/parts/jobManagement/agent/agentView.component.ts +++ b/src/sql/parts/jobManagement/agent/agentView.component.ts @@ -82,7 +82,6 @@ export class AgentViewComponent { public set jobId(value: string) { this._jobId = value; - this._cd.detectChanges(); } public set showHistory(value: boolean) { @@ -92,7 +91,6 @@ export class AgentViewComponent { public set agentJobInfo(value: AgentJobInfo) { this._agentJobInfo = value; - this._cd.detectChanges(); } public set refresh(value: boolean) { @@ -104,6 +102,10 @@ export class AgentViewComponent { this._expanded.set(jobId, errorMessage); } + public set expanded(value: Map) { + this._expanded = value; + } + public layout() { this._panel.layout(); } diff --git a/src/sql/parts/jobManagement/views/jobHistory.component.ts b/src/sql/parts/jobManagement/views/jobHistory.component.ts index 5870fdf74f..2d49133275 100644 --- a/src/sql/parts/jobManagement/views/jobHistory.component.ts +++ b/src/sql/parts/jobManagement/views/jobHistory.component.ts @@ -7,31 +7,22 @@ import 'vs/css!./jobHistory'; import 'vs/css!sql/media/icons/common-icons'; import { OnInit, OnChanges, Component, Inject, Input, forwardRef, ElementRef, ChangeDetectorRef, ViewChild, ChangeDetectionStrategy, Injectable } from '@angular/core'; import { AgentJobHistoryInfo, AgentJobInfo } from 'sqlops'; - -import { Taskbar, ITaskbarContent } from 'sql/base/browser/ui/taskbar/taskbar'; +import { Taskbar } from 'sql/base/browser/ui/taskbar/taskbar'; import { RunJobAction, StopJobAction } from 'sql/parts/jobManagement/views/jobHistoryActions'; import { JobCacheObject } from 'sql/parts/jobManagement/common/jobManagementService'; import { AgentJobUtilities } from '../common/agentJobUtilities'; -import { PanelComponent } from 'sql/base/browser/ui/panel/panel.component'; import { IJobManagementService } from '../common/interfaces'; -import { DashboardServiceInterface } from 'sql/parts/dashboard/services/dashboardServiceInterface.service'; import { CommonServiceInterface } from 'sql/services/common/commonServiceInterface.service'; import { AgentViewComponent } from 'sql/parts/jobManagement/agent/agentView.component'; import { JobHistoryController, JobHistoryDataSource, JobHistoryRenderer, JobHistoryFilter, JobHistoryModel, JobHistoryRow } from 'sql/parts/jobManagement/views/jobHistoryTree'; -import { JobStepsViewComponent } from 'sql/parts/jobManagement/views/jobStepsView.component'; import { JobStepsViewRow } from './jobStepsViewTree'; - import { IWorkbenchThemeService } from 'vs/workbench/services/themes/common/workbenchThemeService'; -import { IThemeService } from 'vs/platform/theme/common/themeService'; import { attachListStyler } from 'vs/platform/theme/common/styler'; import { Tree } from 'vs/base/parts/tree/browser/treeImpl'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; -import { Disposable, IDisposable } from 'vs/base/common/lifecycle'; -import { localize } from 'vs/nls'; +import { Disposable } from 'vs/base/common/lifecycle'; import { INotificationService } from 'vs/platform/notification/common/notification'; -import Severity from 'vs/base/common/severity'; -import { ITreeOptions } from 'vs/base/parts/tree/browser/tree'; import { ScrollbarVisibility } from 'vs/base/common/scrollable'; import { IContextMenuService } from 'vs/platform/contextview/browser/contextView'; diff --git a/src/sql/parts/jobManagement/views/jobHistoryActions.ts b/src/sql/parts/jobManagement/views/jobHistoryActions.ts index bb1b2bd258..5b31b5c434 100644 --- a/src/sql/parts/jobManagement/views/jobHistoryActions.ts +++ b/src/sql/parts/jobManagement/views/jobHistoryActions.ts @@ -8,9 +8,7 @@ import { Action } from 'vs/base/common/actions'; import * as nls from 'vs/nls'; import { INotificationService } from 'vs/platform/notification/common/notification'; import Severity from 'vs/base/common/severity'; -import { BaseActionContext } from '../../../workbench/common/actions'; import { JobHistoryComponent } from 'sql/parts/jobManagement/views/jobHistory.component'; -import { JobManagementService } from '../common/jobManagementService'; import { IJobManagementService } from '../common/interfaces'; export enum JobHistoryActions { diff --git a/src/sql/parts/jobManagement/views/jobHistoryTree.ts b/src/sql/parts/jobManagement/views/jobHistoryTree.ts index 4e5b47fc96..7149531ea2 100644 --- a/src/sql/parts/jobManagement/views/jobHistoryTree.ts +++ b/src/sql/parts/jobManagement/views/jobHistoryTree.ts @@ -3,33 +3,18 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { Router } from '@angular/router'; - -import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; -import { MetadataType } from 'sql/parts/connection/common/connectionManagement'; -import { SingleConnectionManagementService } from 'sql/services/common/commonServiceInterface.service'; import { NewQueryAction, ScriptSelectAction, EditDataAction, ScriptCreateAction, ScriptExecuteAction, ScriptAlterAction, BackupAction, ManageActionContext, BaseActionContext, ManageAction, RestoreAction } from 'sql/workbench/common/actions'; -import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesService'; -import { ConnectionManagementInfo } from 'sql/parts/connection/common/connectionManagementInfo'; -import * as Constants from 'sql/parts/connection/common/constants'; import * as tree from 'vs/base/parts/tree/browser/tree'; import * as TreeDefaults from 'vs/base/parts/tree/browser/treeDefaults'; import { Promise, TPromise } from 'vs/base/common/winjs.base'; import { IMouseEvent } from 'vs/base/browser/mouseEvent'; -import { IContextMenuService } from 'vs/platform/contextview/browser/contextView'; -import { IAction } from 'vs/base/common/actions'; -import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { generateUuid } from 'vs/base/common/uuid'; import * as DOM from 'vs/base/browser/dom'; -import { OEAction } from 'sql/parts/objectExplorer/viewlet/objectExplorerActions'; -import { $ } from 'vs/base/browser/builder'; import { AgentJobHistoryInfo } from 'sqlops'; -import { Agent } from 'vs/base/node/request'; import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent'; -import { JobHistoryComponent } from './jobHistory.component'; export class JobHistoryRow { runDate: string; diff --git a/src/sql/parts/jobManagement/views/jobStepsView.component.ts b/src/sql/parts/jobManagement/views/jobStepsView.component.ts index 66c51a584c..6733efb56d 100644 --- a/src/sql/parts/jobManagement/views/jobStepsView.component.ts +++ b/src/sql/parts/jobManagement/views/jobStepsView.component.ts @@ -6,22 +6,14 @@ import 'vs/css!./jobStepsView'; import { OnInit, Component, Inject, forwardRef, ElementRef, ChangeDetectorRef, ViewChild, Injectable, AfterContentChecked } from '@angular/core'; - -import { AgentJobHistoryInfo } from 'sqlops'; - -import { IThemeService } from 'vs/platform/theme/common/themeService'; import { attachListStyler } from 'vs/platform/theme/common/styler'; import { Tree } from 'vs/base/parts/tree/browser/treeImpl'; -import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; -import { Disposable, IDisposable } from 'vs/base/common/lifecycle'; +import { Disposable } from 'vs/base/common/lifecycle'; import { ScrollbarVisibility } from 'vs/base/common/scrollable'; import { IWorkbenchThemeService } from 'vs/workbench/services/themes/common/workbenchThemeService'; - -import { IJobManagementService } from '../common/interfaces'; -import { DashboardServiceInterface } from 'sql/parts/dashboard/services/dashboardServiceInterface.service'; import { CommonServiceInterface } from 'sql/services/common/commonServiceInterface.service'; import { JobStepsViewController, JobStepsViewDataSource, JobStepsViewFilter, - JobStepsViewRenderer, JobStepsViewRow, JobStepsViewModel} from 'sql/parts/jobManagement/views/jobStepsViewTree'; + JobStepsViewRenderer, JobStepsViewModel} from 'sql/parts/jobManagement/views/jobStepsViewTree'; import { JobHistoryComponent } from 'sql/parts/jobManagement/views/jobHistory.component'; export const JOBSTEPSVIEW_SELECTOR: string = 'jobstepsview-component'; diff --git a/src/sql/parts/jobManagement/views/jobStepsViewTree.ts b/src/sql/parts/jobManagement/views/jobStepsViewTree.ts index a1d9f81231..020cbb067f 100644 --- a/src/sql/parts/jobManagement/views/jobStepsViewTree.ts +++ b/src/sql/parts/jobManagement/views/jobStepsViewTree.ts @@ -3,29 +3,17 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { Router } from '@angular/router'; - -import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; -import { MetadataType } from 'sql/parts/connection/common/connectionManagement'; -import { SingleConnectionManagementService } from 'sql/services/common/commonServiceInterface.service'; import { NewQueryAction, ScriptSelectAction, EditDataAction, ScriptCreateAction, ScriptExecuteAction, ScriptAlterAction, BackupAction, ManageActionContext, BaseActionContext, ManageAction, RestoreAction } from 'sql/workbench/common/actions'; -import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesService'; -import { ConnectionManagementInfo } from 'sql/parts/connection/common/connectionManagementInfo'; -import * as Constants from 'sql/parts/connection/common/constants'; import * as tree from 'vs/base/parts/tree/browser/tree'; import * as TreeDefaults from 'vs/base/parts/tree/browser/treeDefaults'; import { Promise, TPromise } from 'vs/base/common/winjs.base'; import { IMouseEvent } from 'vs/base/browser/mouseEvent'; -import { IAction } from 'vs/base/common/actions'; -import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { generateUuid } from 'vs/base/common/uuid'; import * as DOM from 'vs/base/browser/dom'; -import { OEAction } from 'sql/parts/objectExplorer/viewlet/objectExplorerActions'; import { AgentJobHistoryInfo } from 'sqlops'; -import { Agent } from 'vs/base/node/request'; import { AgentJobUtilities } from 'sql/parts/jobManagement/common/agentJobUtilities'; export class JobStepsViewRow { diff --git a/src/sql/parts/jobManagement/views/jobsView.component.ts b/src/sql/parts/jobManagement/views/jobsView.component.ts index 706e2af598..10b4851071 100644 --- a/src/sql/parts/jobManagement/views/jobsView.component.ts +++ b/src/sql/parts/jobManagement/views/jobsView.component.ts @@ -13,32 +13,21 @@ import 'vs/css!sql/media/icons/common-icons'; import 'vs/css!sql/base/browser/ui/table/media/table'; import { Component, Inject, forwardRef, ElementRef, ChangeDetectorRef, ViewChild, AfterContentChecked } from '@angular/core'; - import * as sqlops from 'sqlops'; import * as vscode from 'vscode'; - import * as nls from 'vs/nls'; - -import { IGridDataSet } from 'sql/parts/grid/common/interfaces'; import { Table } from 'sql/base/browser/ui/table/table'; -import { attachTableStyler } from 'sql/common/theme/styler'; -import { JobHistoryComponent } from 'src/sql/parts/jobManagement/views/jobHistory.component'; import { AgentViewComponent } from 'sql/parts/jobManagement/agent/agentView.component'; import { RowDetailView } from 'sql/base/browser/ui/table/plugins/rowdetailview'; import { JobCacheObject } from 'sql/parts/jobManagement/common/jobManagementService'; import { AgentJobUtilities } from 'sql/parts/jobManagement/common/agentJobUtilities'; import { HeaderFilter } from 'sql/base/browser/ui/table/plugins/headerFilter.plugin'; -import { BaseFocusDirectionTerminalAction } from 'vs/workbench/parts/terminal/electron-browser/terminalActions'; -import * as Utils from 'sql/parts/connection/common/utils'; import * as dom from 'vs/base/browser/dom'; import { IJobManagementService } from '../common/interfaces'; import { CommonServiceInterface } from 'sql/services/common/commonServiceInterface.service'; -import { DashboardPage } from 'sql/parts/dashboard/common/dashboardPage.component'; import { IThemeService } from 'vs/platform/theme/common/themeService'; import { TabChild } from 'sql/base/browser/ui/panel/tab.component'; - - export const JOBSVIEW_SELECTOR: string = 'jobsview-component'; @Component({ @@ -82,6 +71,7 @@ export class JobsViewComponent implements AfterContentChecked { @ViewChild('jobsgrid') _gridEl: ElementRef; private isVisible: boolean = false; private isInitialized: boolean = false; + private isRefreshing: boolean = false; private _table: Table; public jobs: sqlops.AgentJobInfo[]; public jobHistories: { [jobId: string]: sqlops.AgentJobHistoryInfo[]; } = Object.create(null); @@ -137,10 +127,14 @@ export class JobsViewComponent implements AfterContentChecked { } else if (this.isVisible === true && this._agentViewComponent.refresh === true) { this._showProgressWheel = true; this.onFirstVisible(false); + this.isRefreshing = true; this._agentViewComponent.refresh = false; } else if (this.isVisible === true && this._agentViewComponent.refresh === false) { - this._showProgressWheel = true; - this.onFirstVisible(true); + if (!this.isRefreshing) { + this._showProgressWheel = true; + this.onFirstVisible(true); + } + this.isRefreshing = false; } else if (this.isVisible === true && this._gridEl.nativeElement.offsetParent === null) { this.isVisible = false; } @@ -168,10 +162,8 @@ export class JobsViewComponent implements AfterContentChecked { columns.unshift(this.rowDetail.getColumnDefinition()); let filterPlugin = new HeaderFilter({}, this._themeService); this.filterPlugin = filterPlugin; + $(this._gridEl.nativeElement).empty(); this._table = new Table(this._gridEl.nativeElement, undefined, columns, this.options); - - - this._table.grid.setData(this.dataView, true); this._table.grid.onClick.subscribe((e, args) => { let job = self.getJob(args); @@ -195,9 +187,11 @@ export class JobsViewComponent implements AfterContentChecked { private onJobsAvailable(jobs: sqlops.AgentJobInfo[]) { let jobViews: any; + let start: boolean = true; if (!jobs) { let dataView = this._jobCacheObject.dataView; jobViews = dataView.getItems(); + start = false; } else { jobViews = jobs.map((job) => { return { @@ -321,7 +315,7 @@ export class JobsViewComponent implements AfterContentChecked { this._table.autosizeColumns(); this._table.resizeCanvas(); - this.expandJobs(true); + this.expandJobs(start); // tooltip for job name $('.jobview-jobnamerow').hover(e => { let currentTarget = e.currentTarget; @@ -579,6 +573,9 @@ export class JobsViewComponent implements AfterContentChecked { } private expandJobs(start: boolean): void { + if (start) { + this._agentViewComponent.expanded = new Map(); + } let expandedJobs = this._agentViewComponent.expanded; let expansions = 0; for (let i = 0; i < this.jobs.length; i++){