mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -05:00
Adding flag to hide refresh button in dashboards. (#18964)
This commit is contained in:
@@ -1,192 +1,193 @@
|
|||||||
{
|
{
|
||||||
"name": "sql-migration",
|
"name": "sql-migration",
|
||||||
"displayName": "%displayName%",
|
"displayName": "%displayName%",
|
||||||
"description": "%description%",
|
"description": "%description%",
|
||||||
"version": "0.1.14",
|
"version": "0.1.14",
|
||||||
"publisher": "Microsoft",
|
"publisher": "Microsoft",
|
||||||
"preview": true,
|
"preview": true,
|
||||||
"license": "https://raw.githubusercontent.com/Microsoft/azuredatastudio/main/LICENSE.txt",
|
"license": "https://raw.githubusercontent.com/Microsoft/azuredatastudio/main/LICENSE.txt",
|
||||||
"icon": "images/extension.png",
|
"icon": "images/extension.png",
|
||||||
"aiKey": "AIF-37eefaf0-8022-4671-a3fb-64752724682e",
|
"aiKey": "AIF-37eefaf0-8022-4671-a3fb-64752724682e",
|
||||||
"engines": {
|
"engines": {
|
||||||
"vscode": "*",
|
"vscode": "*",
|
||||||
"azdata": ">=1.35.0"
|
"azdata": ">=1.35.0"
|
||||||
},
|
},
|
||||||
"activationEvents": [
|
"activationEvents": [
|
||||||
"onDashboardOpen",
|
"onDashboardOpen",
|
||||||
"onCommand:sqlmigration.start",
|
"onCommand:sqlmigration.start",
|
||||||
"onCommand:sqlmigration.newsupportrequest",
|
"onCommand:sqlmigration.newsupportrequest",
|
||||||
"onCommand:sqlmigration.sendfeedback",
|
"onCommand:sqlmigration.sendfeedback",
|
||||||
"onCommand:sqlmigration.openNotebooks"
|
"onCommand:sqlmigration.openNotebooks"
|
||||||
],
|
],
|
||||||
"capabilities": {
|
"capabilities": {
|
||||||
"virtualWorkspaces": false,
|
"virtualWorkspaces": false,
|
||||||
"untrustedWorkspaces": {
|
"untrustedWorkspaces": {
|
||||||
"supported": true
|
"supported": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"main": "./out/main",
|
"main": "./out/main",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/Microsoft/azuredatastudio.git"
|
"url": "https://github.com/Microsoft/azuredatastudio.git"
|
||||||
},
|
},
|
||||||
"extensionDependencies": [
|
"extensionDependencies": [
|
||||||
"Microsoft.mssql"
|
"Microsoft.mssql"
|
||||||
],
|
],
|
||||||
"contributes": {
|
"contributes": {
|
||||||
"commands": [
|
"commands": [
|
||||||
{
|
|
||||||
"command": "sqlmigration.start",
|
|
||||||
"title": "%start-migration-command%",
|
|
||||||
"category": "%migration-command-category%",
|
|
||||||
"icon": "./images/migration.svg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command": "sqlmigration.newsupportrequest",
|
|
||||||
"title": "%new-support-request-command%",
|
|
||||||
"category": "%migration-command-category%",
|
|
||||||
"icon": "./images/newSupportRequest.svg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command": "sqlmigration.sendfeedback",
|
|
||||||
"title": "%send-feedback-command%",
|
|
||||||
"category": "%migration-command-category%",
|
|
||||||
"icon": "./images/sendFeedback.svg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command": "sqlmigration.openNotebooks",
|
|
||||||
"title": "%migration-notebook-command-title%",
|
|
||||||
"category": "%migration-command-category%"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command": "sqlmigration.cutover",
|
|
||||||
"title": "%complete-cutover-menu%",
|
|
||||||
"category": "%migration-context-menu-category%"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command": "sqlmigration.view.database",
|
|
||||||
"title": "%database-details-menu%",
|
|
||||||
"category": "%migration-context-menu-category%"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command": "sqlmigration.view.target",
|
|
||||||
"title": "%view-target-menu%",
|
|
||||||
"category": "%migration-context-menu-category%"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command": "sqlmigration.view.service",
|
|
||||||
"title": "%view-service-menu%",
|
|
||||||
"category": "%migration-context-menu-category%"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command": "sqlmigration.copy.migration",
|
|
||||||
"title": "%copy-migration-menu%",
|
|
||||||
"category": "%migration-context-menu-category%"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command": "sqlmigration.cancel.migration",
|
|
||||||
"title": "%cancel-migration-menu%",
|
|
||||||
"category": "%migration-context-menu-category%"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"command": "sqlmigration.retry.migration",
|
"command": "sqlmigration.start",
|
||||||
"title": "%retry-migration-menu%",
|
"title": "%start-migration-command%",
|
||||||
"category": "%migration-context-menu-category%"
|
"category": "%migration-command-category%",
|
||||||
}
|
"icon": "./images/migration.svg"
|
||||||
],
|
},
|
||||||
"menu": {
|
{
|
||||||
"commandPalette": [
|
"command": "sqlmigration.newsupportrequest",
|
||||||
{
|
"title": "%new-support-request-command%",
|
||||||
"command": "sqlmigration.newsupportrequest",
|
"category": "%migration-command-category%",
|
||||||
"when": "false"
|
"icon": "./images/newSupportRequest.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlmigration.sendfeedback",
|
"command": "sqlmigration.sendfeedback",
|
||||||
"when": "false"
|
"title": "%send-feedback-command%",
|
||||||
},
|
"category": "%migration-command-category%",
|
||||||
{
|
"icon": "./images/sendFeedback.svg"
|
||||||
"command": "sqlmigration.cutover",
|
},
|
||||||
"when": "false"
|
{
|
||||||
},
|
"command": "sqlmigration.openNotebooks",
|
||||||
{
|
"title": "%migration-notebook-command-title%",
|
||||||
"command": "sqlmigration.view.database",
|
"category": "%migration-command-category%"
|
||||||
"when": "false"
|
},
|
||||||
},
|
{
|
||||||
{
|
"command": "sqlmigration.cutover",
|
||||||
"command": "sqlmigration.view.target",
|
"title": "%complete-cutover-menu%",
|
||||||
"when": "false"
|
"category": "%migration-context-menu-category%"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlmigration.view.service",
|
"command": "sqlmigration.view.database",
|
||||||
"when": "false"
|
"title": "%database-details-menu%",
|
||||||
},
|
"category": "%migration-context-menu-category%"
|
||||||
{
|
},
|
||||||
"command": "sqlmigration.copy.migration",
|
{
|
||||||
"when": "false"
|
"command": "sqlmigration.view.target",
|
||||||
},
|
"title": "%view-target-menu%",
|
||||||
{
|
"category": "%migration-context-menu-category%"
|
||||||
"command": "sqlmigration.cancel.migration",
|
},
|
||||||
"when": "false"
|
{
|
||||||
},
|
"command": "sqlmigration.view.service",
|
||||||
|
"title": "%view-service-menu%",
|
||||||
|
"category": "%migration-context-menu-category%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "sqlmigration.copy.migration",
|
||||||
|
"title": "%copy-migration-menu%",
|
||||||
|
"category": "%migration-context-menu-category%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "sqlmigration.cancel.migration",
|
||||||
|
"title": "%cancel-migration-menu%",
|
||||||
|
"category": "%migration-context-menu-category%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "sqlmigration.retry.migration",
|
||||||
|
"title": "%retry-migration-menu%",
|
||||||
|
"category": "%migration-context-menu-category%"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"menu": {
|
||||||
|
"commandPalette": [
|
||||||
{
|
{
|
||||||
"command": "sqlmigration.retry.migration",
|
"command": "sqlmigration.newsupportrequest",
|
||||||
"when": "false"
|
"when": "false"
|
||||||
}
|
},
|
||||||
]
|
{
|
||||||
},
|
"command": "sqlmigration.sendfeedback",
|
||||||
"dashboard.tabs": [
|
"when": "false"
|
||||||
{
|
},
|
||||||
"id": "migration-dashboard",
|
{
|
||||||
"description": "%migration-dashboard-title%",
|
"command": "sqlmigration.cutover",
|
||||||
"provider": "MSSQL",
|
"when": "false"
|
||||||
"title": "%migration-dashboard-title%",
|
},
|
||||||
"icon": {
|
{
|
||||||
"light": "./images/migration.svg",
|
"command": "sqlmigration.view.database",
|
||||||
"dark": "./images/migration.svg"
|
"when": "false"
|
||||||
},
|
},
|
||||||
"when": "connectionProvider == 'MSSQL' && !mssql:iscloud && mssql:engineedition != 8",
|
{
|
||||||
"container": {
|
"command": "sqlmigration.view.target",
|
||||||
"grid-container": [
|
"when": "false"
|
||||||
{
|
},
|
||||||
"name": "",
|
{
|
||||||
"row": 0,
|
"command": "sqlmigration.view.service",
|
||||||
"col": 0,
|
"when": "false"
|
||||||
"widget": {
|
},
|
||||||
"tasks-widget": [
|
{
|
||||||
"sqlmigration.start",
|
"command": "sqlmigration.copy.migration",
|
||||||
"sqlmigration.newsupportrequest",
|
"when": "false"
|
||||||
"sqlmigration.sendfeedback"
|
},
|
||||||
]
|
{
|
||||||
}
|
"command": "sqlmigration.cancel.migration",
|
||||||
},
|
"when": "false"
|
||||||
{
|
},
|
||||||
"name": "",
|
{
|
||||||
"row": 0,
|
"command": "sqlmigration.retry.migration",
|
||||||
"col": 1,
|
"when": "false"
|
||||||
"rowspan": 2.5,
|
}
|
||||||
"colspan": 3.5,
|
]
|
||||||
"widget": {
|
},
|
||||||
"modelview": {
|
"dashboard.tabs": [
|
||||||
"id": "migration.dashboard"
|
{
|
||||||
}
|
"id": "migration-dashboard",
|
||||||
}
|
"description": "%migration-dashboard-title%",
|
||||||
}
|
"provider": "MSSQL",
|
||||||
]
|
"title": "%migration-dashboard-title%",
|
||||||
}
|
"icon": {
|
||||||
}
|
"light": "./images/migration.svg",
|
||||||
]
|
"dark": "./images/migration.svg"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"when": "connectionProvider == 'MSSQL' && !mssql:iscloud && mssql:engineedition != 8",
|
||||||
"@microsoft/ads-extension-telemetry": "^1.1.3",
|
"hideRefreshTask": true,
|
||||||
"uuid": "^8.3.2",
|
"container": {
|
||||||
"vscode-nls": "^4.1.2"
|
"grid-container": [
|
||||||
},
|
{
|
||||||
"__metadata": {
|
"name": "",
|
||||||
"publisherDisplayName": "Microsoft",
|
"row": 0,
|
||||||
"publisherId": "Microsoft",
|
"col": 0,
|
||||||
"id": "81"
|
"widget": {
|
||||||
},
|
"tasks-widget": [
|
||||||
"devDependencies": {
|
"sqlmigration.start",
|
||||||
"@types/uuid": "^8.3.1"
|
"sqlmigration.newsupportrequest",
|
||||||
}
|
"sqlmigration.sendfeedback"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"row": 0,
|
||||||
|
"col": 1,
|
||||||
|
"rowspan": 2.5,
|
||||||
|
"colspan": 3.5,
|
||||||
|
"widget": {
|
||||||
|
"modelview": {
|
||||||
|
"id": "migration.dashboard"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@microsoft/ads-extension-telemetry": "^1.1.3",
|
||||||
|
"uuid": "^8.3.2",
|
||||||
|
"vscode-nls": "^4.1.2"
|
||||||
|
},
|
||||||
|
"__metadata": {
|
||||||
|
"publisherDisplayName": "Microsoft",
|
||||||
|
"publisherId": "Microsoft",
|
||||||
|
"id": "81"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/uuid": "^8.3.1"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ export interface IDashboardTabContrib {
|
|||||||
isHomeTab?: boolean;
|
isHomeTab?: boolean;
|
||||||
group?: string;
|
group?: string;
|
||||||
icon?: IUserFriendlyIcon;
|
icon?: IUserFriendlyIcon;
|
||||||
|
hideRefreshTask?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IInsightTypeContrib {
|
export interface IInsightTypeContrib {
|
||||||
|
|||||||
@@ -83,7 +83,11 @@ export abstract class DashboardPage extends AngularDisposable implements IConfig
|
|||||||
// tslint:disable:no-unused-variable
|
// tslint:disable:no-unused-variable
|
||||||
private readonly homeTabTitle: string = nls.localize('home', "Home");
|
private readonly homeTabTitle: string = nls.localize('home', "Home");
|
||||||
private readonly homeTabId: string = 'homeTab';
|
private readonly homeTabId: string = 'homeTab';
|
||||||
private tabToolbarActionsConfig = new Map<string, any[]>();
|
private tabToolbarActionsConfig = new Map<string, {
|
||||||
|
actions: any[],
|
||||||
|
hideRefreshTask: boolean
|
||||||
|
}>();
|
||||||
|
|
||||||
private tabContents = new Map<string, string>();
|
private tabContents = new Map<string, string>();
|
||||||
|
|
||||||
static tabName = new RawContextKey<string>('tabName', undefined);
|
static tabName = new RawContextKey<string>('tabName', undefined);
|
||||||
@@ -190,10 +194,6 @@ export abstract class DashboardPage extends AngularDisposable implements IConfig
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (primary.length > 0) {
|
|
||||||
let separator: HTMLElement = Taskbar.createTaskbarSeparator();
|
|
||||||
tasks.push({ element: separator });
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return tasks;
|
return tasks;
|
||||||
}
|
}
|
||||||
@@ -219,8 +219,8 @@ export abstract class DashboardPage extends AngularDisposable implements IConfig
|
|||||||
const toolbarTasks = this.tabToolbarActionsConfig.get(tabId);
|
const toolbarTasks = this.tabToolbarActionsConfig.get(tabId);
|
||||||
let tasks = TaskRegistry.getTasks();
|
let tasks = TaskRegistry.getTasks();
|
||||||
let content = [];
|
let content = [];
|
||||||
if (types.isArray(toolbarTasks) && toolbarTasks.length > 0) {
|
if (types.isArray(toolbarTasks.actions) && toolbarTasks.actions.length > 0) {
|
||||||
tasks = toolbarTasks.map(i => {
|
tasks = toolbarTasks.actions.map(i => {
|
||||||
if (types.isString(i)) {
|
if (types.isString(i)) {
|
||||||
if (tasks.some(x => x === i)) {
|
if (tasks.some(x => x === i)) {
|
||||||
return i;
|
return i;
|
||||||
@@ -239,12 +239,29 @@ export abstract class DashboardPage extends AngularDisposable implements IConfig
|
|||||||
|
|
||||||
// get extension actions contributed to the page's toolbar
|
// get extension actions contributed to the page's toolbar
|
||||||
const contributedTasks = this.getContributedTasks(tabId);
|
const contributedTasks = this.getContributedTasks(tabId);
|
||||||
|
if (content.length > 0 && contributedTasks.length > 0) {
|
||||||
|
/**
|
||||||
|
* Adding the separator before adding contributed tasks if there other
|
||||||
|
* toolbar tasks already present in the toolbar
|
||||||
|
*/
|
||||||
|
const separator: HTMLElement = Taskbar.createTaskbarSeparator();
|
||||||
|
content.push({ element: separator });
|
||||||
|
}
|
||||||
content.push(...contributedTasks);
|
content.push(...contributedTasks);
|
||||||
|
|
||||||
const refreshAction = new RefreshWidgetAction(() => {
|
if (!toolbarTasks.hideRefreshTask) {
|
||||||
this.refresh();
|
/**
|
||||||
}, this);
|
* Adding the separator only when there are other actions present on the task
|
||||||
content.push({ action: refreshAction });
|
*/
|
||||||
|
if (content.length > 0) {
|
||||||
|
const separator: HTMLElement = Taskbar.createTaskbarSeparator();
|
||||||
|
content.push({ element: separator });
|
||||||
|
}
|
||||||
|
const refreshAction = new RefreshWidgetAction(() => {
|
||||||
|
this.refresh();
|
||||||
|
}, this);
|
||||||
|
content.push({ action: refreshAction });
|
||||||
|
}
|
||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -263,11 +280,6 @@ export abstract class DashboardPage extends AngularDisposable implements IConfig
|
|||||||
content.push({ action: a });
|
content.push({ action: a });
|
||||||
});
|
});
|
||||||
|
|
||||||
if (content.length > 0) {
|
|
||||||
let separator: HTMLElement = Taskbar.createTaskbarSeparator();
|
|
||||||
content.push({ element: separator });
|
|
||||||
}
|
|
||||||
|
|
||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -442,7 +454,7 @@ export abstract class DashboardPage extends AngularDisposable implements IConfig
|
|||||||
configs = cb.apply(this, [configs]);
|
configs = cb.apply(this, [configs]);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.processTasksWidgets(configs, value.id);
|
this.processTasksWidgets(configs, value.id, value.hideRefreshTask);
|
||||||
|
|
||||||
if (key === WIDGETS_CONTAINER) {
|
if (key === WIDGETS_CONTAINER) {
|
||||||
return { id: value.id, title: value.title, container: { 'widgets-container': configs }, alwaysShow: value.alwaysShow, iconClass: value.iconClass };
|
return { id: value.id, title: value.title, container: { 'widgets-container': configs }, alwaysShow: value.alwaysShow, iconClass: value.iconClass };
|
||||||
@@ -459,7 +471,7 @@ export abstract class DashboardPage extends AngularDisposable implements IConfig
|
|||||||
* @param widgets widgets
|
* @param widgets widgets
|
||||||
* @param tabId tab id
|
* @param tabId tab id
|
||||||
*/
|
*/
|
||||||
private processTasksWidgets(widgets: WidgetConfig[], tabId: string): void {
|
private processTasksWidgets(widgets: WidgetConfig[], tabId: string, hideRefreshTask?: boolean): void {
|
||||||
let index;
|
let index;
|
||||||
const allTasks = [];
|
const allTasks = [];
|
||||||
// do this in a while loop since there might be multiple tasks widgets in a tab
|
// do this in a while loop since there might be multiple tasks widgets in a tab
|
||||||
@@ -473,7 +485,10 @@ export abstract class DashboardPage extends AngularDisposable implements IConfig
|
|||||||
widgets.splice(index, 1);
|
widgets.splice(index, 1);
|
||||||
}
|
}
|
||||||
} while (index !== -1);
|
} while (index !== -1);
|
||||||
this.tabToolbarActionsConfig.set(tabId, allTasks);
|
this.tabToolbarActionsConfig.set(tabId, {
|
||||||
|
actions: allTasks,
|
||||||
|
hideRefreshTask: hideRefreshTask
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected getContentType(tab: TabConfig): string {
|
protected getContentType(tab: TabConfig): string {
|
||||||
|
|||||||
@@ -65,6 +65,10 @@ const tabSchema: IJSONSchema = {
|
|||||||
description: localize('azdata.extension.contributes.dashboard.tab.group', "The unique identifier of the group this tab belongs to, value for home group: home."),
|
description: localize('azdata.extension.contributes.dashboard.tab.group', "The unique identifier of the group this tab belongs to, value for home group: home."),
|
||||||
type: 'string'
|
type: 'string'
|
||||||
},
|
},
|
||||||
|
hideRefreshTask: {
|
||||||
|
description: localize('azdata.extension.contributes.dashboard.tab.hideRefreshTask', "Flag used to show/hide refresh button in toolbar. By default, the value is false"),
|
||||||
|
type: 'boolean'
|
||||||
|
},
|
||||||
icon: {
|
icon: {
|
||||||
description: localize('dazdata.extension.contributes.dashboard.tab.icon', "(Optional) Icon which is used to represent this tab in the UI. Either a file path or a themeable configuration"),
|
description: localize('dazdata.extension.contributes.dashboard.tab.icon', "(Optional) Icon which is used to represent this tab in the UI. Either a file path or a themeable configuration"),
|
||||||
anyOf: [{
|
anyOf: [{
|
||||||
@@ -101,7 +105,7 @@ const tabContributionSchema: IJSONSchema = {
|
|||||||
ExtensionsRegistry.registerExtensionPoint<IDashboardTabContrib | IDashboardTabContrib[]>({ extensionPoint: 'dashboard.tabs', jsonSchema: tabContributionSchema }).setHandler(extensions => {
|
ExtensionsRegistry.registerExtensionPoint<IDashboardTabContrib | IDashboardTabContrib[]>({ extensionPoint: 'dashboard.tabs', jsonSchema: tabContributionSchema }).setHandler(extensions => {
|
||||||
|
|
||||||
function handleTab(tab: IDashboardTabContrib, extension: IExtensionPointUser<any>) {
|
function handleTab(tab: IDashboardTabContrib, extension: IExtensionPointUser<any>) {
|
||||||
let { description, container, provider, title, when, id, alwaysShow, isHomeTab, group, icon } = tab;
|
let { description, container, provider, title, when, id, alwaysShow, isHomeTab, group, icon, hideRefreshTask } = tab;
|
||||||
|
|
||||||
// If always show is not specified, set it to true by default.
|
// If always show is not specified, set it to true by default.
|
||||||
if (!types.isBoolean(alwaysShow)) {
|
if (!types.isBoolean(alwaysShow)) {
|
||||||
@@ -155,7 +159,7 @@ ExtensionsRegistry.registerExtensionPoint<IDashboardTabContrib | IDashboardTabCo
|
|||||||
iconClass = createCSSRuleForIcon(icon, extension);
|
iconClass = createCSSRuleForIcon(icon, extension);
|
||||||
}
|
}
|
||||||
if (result) {
|
if (result) {
|
||||||
registerTab({ description, title, container, provider, when, id, alwaysShow, publisher, isHomeTab, group, iconClass });
|
registerTab({ description, title, container, provider, when, id, alwaysShow, publisher, isHomeTab, group, iconClass, hideRefreshTask });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ export interface TabConfig extends IDashboardTab {
|
|||||||
canClose: boolean;
|
canClose: boolean;
|
||||||
actions?: Array<Action>;
|
actions?: Array<Action>;
|
||||||
type?: TabType;
|
type?: TabType;
|
||||||
|
hideRefreshTask?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ export interface IDashboardTab {
|
|||||||
isHomeTab?: boolean;
|
isHomeTab?: boolean;
|
||||||
group?: string;
|
group?: string;
|
||||||
iconClass?: string;
|
iconClass?: string;
|
||||||
|
hideRefreshTask?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IDashboardTabGroup {
|
export interface IDashboardTabGroup {
|
||||||
|
|||||||
Reference in New Issue
Block a user