diff --git a/src/sql/parts/dashboard/dashboard.module.ts b/src/sql/parts/dashboard/dashboard.module.ts index 9ec0ebf91a..9faa746a54 100644 --- a/src/sql/parts/dashboard/dashboard.module.ts +++ b/src/sql/parts/dashboard/dashboard.module.ts @@ -59,12 +59,13 @@ import { Checkbox } from 'sql/base/browser/ui/checkbox/checkbox.component'; import { SelectBox } from 'sql/base/browser/ui/selectBox/selectBox.component'; import { EditableDropDown } from 'sql/base/browser/ui/editableDropdown/editableDropdown.component'; import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox.component'; +import LoadingSpinner from 'sql/parts/modelComponents/loadingSpinner.component'; let baseComponents = [DashboardHomeContainer, DashboardComponent, DashboardWidgetWrapper, DashboardWebviewContainer, DashboardWidgetContainer, DashboardGridContainer, DashboardErrorContainer, DashboardNavSection, ModelViewContent, WebviewContent, WidgetContent, ComponentHostDirective, BreadcrumbComponent, ControlHostContent, DashboardControlHostContainer, JobsViewComponent, AgentViewComponent, JobHistoryComponent, JobStepsViewComponent, AlertsViewComponent, ProxiesViewComponent, OperatorsViewComponent, - DashboardModelViewContainer, ModelComponentWrapper, Checkbox, EditableDropDown, SelectBox, InputBox,]; + DashboardModelViewContainer, ModelComponentWrapper, Checkbox, EditableDropDown, SelectBox, InputBox, LoadingSpinner ]; /* Panel */ import { PanelModule } from 'sql/base/browser/ui/panel/panel.module'; diff --git a/src/sql/parts/dashboard/widgets/insights/insightsWidget.component.ts b/src/sql/parts/dashboard/widgets/insights/insightsWidget.component.ts index 8c0ae58f22..5f465aa9ad 100644 --- a/src/sql/parts/dashboard/widgets/insights/insightsWidget.component.ts +++ b/src/sql/parts/dashboard/widgets/insights/insightsWidget.component.ts @@ -48,6 +48,7 @@ interface IStorageResult {
{{lastUpdated}}
+
`, styles: [':host { width: 100%; height: 100% }'] }) @@ -58,6 +59,7 @@ export class InsightsWidget extends DashboardWidget implements IDashboardWidget, private _typeKey: string; private _init: boolean = false; + private _loading: boolean = true; private _intervalTimer: IntervalTimer; public error: string; @@ -86,6 +88,7 @@ export class InsightsWidget extends DashboardWidget implements IDashboardWidget, let cancelablePromise = createCancelablePromise(() => { return promise.then( result => { + this._loading = false; if (this._init) { this._updateChild(result); this.setupInterval(); @@ -94,6 +97,7 @@ export class InsightsWidget extends DashboardWidget implements IDashboardWidget, } }, error => { + this._loading = false; if (isPromiseCanceledError(error)) { return; } @@ -117,10 +121,12 @@ export class InsightsWidget extends DashboardWidget implements IDashboardWidget, if (this.queryObv) { this._register(toDisposableSubscription(this.queryObv.subscribe( result => { + this._loading = false; this._updateChild(result); this.setupInterval(); }, error => { + this._loading = false; this.showError(error); } )));