Tasks schema registration (#900)

* inital task update

* fix schema update problems

* remove dead code
This commit is contained in:
Anthony Dresser
2018-03-13 13:55:08 -07:00
committed by GitHub
parent 722f5e56cd
commit bcd72d21c7
4 changed files with 26 additions and 20 deletions

View File

@@ -12,7 +12,7 @@ import { WidgetConfig } from 'sql/parts/dashboard/common/dashboardWidget';
export const WIDGETS_CONTAINER = 'widgets-container';
let widgetsSchema: IJSONSchema = {
const widgetsSchema: IJSONSchema = {
type: 'array',
description: nls.localize('dashboard.container.widgets', "The list of widgets that will be displayed in this tab."),
items: generateDashboardWidgetSchema(undefined, true)

View File

@@ -2,30 +2,36 @@
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { IJSONSchema } from 'vs/base/common/jsonSchema';
import { registerDashboardWidget } from 'sql/platform/dashboard/common/widgetRegistry';
import { TaskRegistry } from 'sql/platform/tasks/common/tasks';
import { IJSONSchema } from 'vs/base/common/jsonSchema';
const singleTaskSchema: IJSONSchema = {
type: 'string',
enum: TaskRegistry.getTasks()
};
const tasksSchema: IJSONSchema = {
type: 'array',
items: {
anyOf: [{
type: 'string',
enum: TaskRegistry.getTasks()
},
{
type: 'object',
properties: {
name: {
type: 'string',
enum: TaskRegistry.getTasks()
},
when: {
type: 'string'
anyOf: [
singleTaskSchema,
{
type: 'object',
properties: {
name: singleTaskSchema,
when: {
type: 'string'
}
}
}
}]
]
}
};
registerDashboardWidget('tasks-widget', '', tasksSchema);
TaskRegistry.onTaskRegistered(e => {
singleTaskSchema.enum.push(e);
});
registerDashboardWidget('tasks-widget', '', tasksSchema);

View File

@@ -51,7 +51,7 @@ class DashboardContainerRegistry implements IDashboardContainerRegistry {
}
public get containerTypeSchemaProperties(): IJSONSchemaMap {
return deepClone(this._dashboardContainerTypeSchemaProperties);
return this._dashboardContainerTypeSchemaProperties;
}
/**
@@ -64,7 +64,7 @@ class DashboardContainerRegistry implements IDashboardContainerRegistry {
}
public get navSectionContainerTypeSchemaProperties(): IJSONSchemaMap {
return deepClone(this._dashboardNavSectionContainerTypeSchemaProperties);
return this._dashboardNavSectionContainerTypeSchemaProperties;
}
}

View File

@@ -78,7 +78,7 @@ class DashboardWidgetRegistry implements IDashboardWidgetRegistry {
* @param val cal for default
* @param context either 'database' or 'server' for what page to register for; if not specified, will register for both
*/
registerNonCustomDashboardWidget(id: string, description: string, val: IInsightsConfig, context?: 'database' | 'server'): WidgetIdentifier {
public registerNonCustomDashboardWidget(id: string, description: string, val: IInsightsConfig, context?: 'database' | 'server'): WidgetIdentifier {
if (context === undefined || context === 'database') {
this._dashboardWidgetSchema.properties[id] = { type: 'null', default: null };
}