initial check in for dashboard grid layout (#740)

dashboard grid layout container
This commit is contained in:
Leila Lali
2018-02-21 14:41:52 -08:00
committed by GitHub
parent db05ed840d
commit 4f9dfe9afa
9 changed files with 322 additions and 3 deletions

View File

@@ -83,6 +83,55 @@ export function generateDashboardWidgetSchema(type?: 'database' | 'server', exte
};
}
export function generateDashboardGridLayoutSchema(type?: 'database' | 'server', extension?: boolean): IJSONSchema {
let schemas;
if (extension) {
let extensionSchemas = type === 'server' ? widgetRegistry.serverWidgetSchema.extensionProperties : type === 'database' ? widgetRegistry.databaseWidgetSchema.extensionProperties : widgetRegistry.allSchema.extensionProperties;
schemas = type === 'server' ? widgetRegistry.serverWidgetSchema.properties : type === 'database' ? widgetRegistry.databaseWidgetSchema.properties : widgetRegistry.allSchema.properties;
schemas = mixin(schemas, extensionSchemas, true);
} else {
schemas = type === 'server' ? widgetRegistry.serverWidgetSchema.properties : type === 'database' ? widgetRegistry.databaseWidgetSchema.properties : widgetRegistry.allSchema.properties;
}
return {
type: 'object',
properties: {
name: {
type: 'string'
},
icon: {
type: 'string'
},
provider: {
anyOf: [
{
type: 'string'
},
{
type: 'array',
items: {
type: 'string'
}
}
]
},
edition: {
anyOf: [
{
type: 'number'
},
{
type: 'array',
items: {
type: 'number'
}
}
]
}
}
};
}
export function generateDashboardTabSchema(type?: 'database' | 'server'): IJSONSchema {
return {
type: 'object',