mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-08 17:24:01 -05:00
* Initial work of adding tab in the dashboard (#526) * refactor dashboard to have the home tab * formatting * fix grid layout issue * fix initailize issue in database dashboard * Add action bar to the panel and add close tab to the dashboard (#562) * add action bar to the panel and add close tab to the dashboard * formatting * Tab contribution (#564) * added contrib * disabled edit for extensions; fixed new name for insights contrib * fix merge issue * move file * formatting * fix builds * moving imports * Expand on tab contrib (#581) * added contrib * disabled edit for extensions; fixed new name for insights contrib * fix merge issue * move file * formatting * fix builds * adding to contrib * updated contrib * format * moving imports * updated contribution to map to current design * implemented actually using provider and edition filtering * Refactor and fix issues in close tab and add the placeholder for pin tab (#588) * refactor and fix issues in close tab and add the placeholder for pin tab * formatting * remove the redundant code * add clear all tabs in dashboard page init * Initial work for adding a feature tab dialog (#594) * initial work for add new dashboard tab * formatting * fix add panel action issue * fix breaking change * fix issues and tab and panels * formatting * minor fix * address comments * Add tab status to add extension tab dialog (#610) * add tab status to add extension tab dialog * add tab status to add extension tab dialog * rename add feature tab action * address comments * Webview widget (#618) * getting closer * webview widget now works * fix problem with rerendering webview * formatting * ensure that webview only shows up for extensions * formatting * comments * fix more compile issues * Change dashboard page init (#640) * changed init of serverpage * formatting * Webview tab (#638) * getting closer * webview widget now works * fix problem with rerendering webview * formatting * ensure that webview only shows up for extensions * formatting * comments * fix more compile issues * refacting stuff * added inital webview tab * piped through messaging and tested * Implement pin/unpin feature and always on tabs (#629) * implement pin/unpin feature * fix issue where insight can't be loaded after reopen * fix tab look and feel * implement always show tabs * make AddFeatureTabAction to track always show and pinned tabs * formatting * make dashboard tabs looks like the UX design * load always show before pinned tab * fix regression in panel for restore and connection dialog * fix merge conflict * don't worry about no widgets if its a webview (#656) * expose the dashboard server info when a webview is rendering (#644) * Fix few issues in dashboard command center (#655) * fix reloading insight wigets and create new tab when there is no extension * show possible tabIDs in the setting file * formatting * address comment * fix import name * fixes problem with size of webview widget being wrong (#654) * Refactor tab contribution to support content type (#685) * refactor tab contribution to support content type * formatting * address comment * fix rendering tab issue (#694) * Add layout option to panel for supporting horizontal and vertical navigation bar (#700) * Add left navigation panel for inner tab in the dashboard * add layout option in panel * remove panel option in dashboard Page
60 lines
1.6 KiB
TypeScript
60 lines
1.6 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
import { InjectionToken, OnDestroy } from '@angular/core';
|
|
import { NgGridItemConfig } from 'angular2-grid';
|
|
import { Action } from 'vs/base/common/actions';
|
|
import { Disposable } from 'vs/base/common/lifecycle';
|
|
import { IDashboardTab } from 'sql/platform/dashboard/common/dashboardRegistry';
|
|
|
|
export interface IDashboardWidget {
|
|
actions: Array<Action>;
|
|
actionsContext?: any;
|
|
refresh?: () => void;
|
|
layout?: () => void;
|
|
}
|
|
|
|
export const WIDGET_CONFIG = new InjectionToken<WidgetConfig>('widget_config');
|
|
|
|
export interface WidgetConfig {
|
|
id?: string; // used to track the widget lifespan operations
|
|
name?: string;
|
|
icon?: string;
|
|
context: string;
|
|
provider: string | Array<string>;
|
|
edition: number | Array<number>;
|
|
gridItemConfig?: NgGridItemConfig;
|
|
widget: Object;
|
|
background_color?: string;
|
|
border?: string;
|
|
fontSize?: string;
|
|
fontWeight?: string;
|
|
padding?: string;
|
|
}
|
|
|
|
export interface TabConfig extends IDashboardTab {
|
|
context: string;
|
|
originalConfig: Array<WidgetConfig>;
|
|
editable: boolean;
|
|
canClose: boolean;
|
|
actions?: Array<Action>;
|
|
}
|
|
|
|
export interface PinConfig {
|
|
tabId: string;
|
|
isPinned?: boolean;
|
|
}
|
|
|
|
export abstract class DashboardWidget extends Disposable implements OnDestroy {
|
|
protected _config: WidgetConfig;
|
|
|
|
get actions(): Array<Action> {
|
|
return [];
|
|
}
|
|
|
|
ngOnDestroy() {
|
|
this.dispose();
|
|
}
|
|
}
|