cluedin-widget
Version:
This project contains all the pages needed for browsing entities and searching them. The aim is to replace the CluedIn.Webapp project with this one when all the pages ( including the Admin page ) will be ported to REACT.
114 lines (107 loc) • 1.97 kB
JavaScript
var mongoose = require.main.require('mongoose');
var uuid = require('node-uuid');
var conf = require('../config');
var LayoutConfigurationSchema = mongoose.Schema({
name: {
type: String,
required: true
}
});
var SuggestedSearchFilterSchema = mongoose.Schema({
key: {
type: String
}
});
var TabSchemaConfig = mongoose.Schema({
name: {
type: String,
required: true
},
displayName: {
type: String,
required: true
},
includeSuggestedSearches: {
type: Boolean,
default: false
},
layout: LayoutConfigurationSchema,
suggestedSearchFilter: [SuggestedSearchFilterSchema],
placeSuggestedSearches: {
type: String
}
});
var TabsSchema = mongoose.Schema({
place: {
type: String,
required: true
},
children: [TabSchemaConfig]
});
var WidgetConfigurationSchema = mongoose.Schema({
name: {
type: String,
required: true
},
onlyAdmin: {
type: Boolean,
default: false
},
place: {
type: String
},
parameters: {
type: String,
default: '{}'
},
size: {
type: String
}
});
var EntityWidgetConfiguration = mongoose.Schema({
entityType: {
type: String,
required: true
},
owner: {
type: String
},
displayName: {
type: String
},
displayNameWithArticle: {
type: String
},
icon: {
type: String
},
isDefault: {
type: Boolean,
default: false,
},
created: {
type: Date,
default: Date.now,
},
route: {
type: String
},
includeSuggestedSearches: {
type: Boolean,
default: false
},
suggestedSearchFilter: [SuggestedSearchFilterSchema],
placeSuggestedSearches: {
type: String
},
layout: LayoutConfigurationSchema,
widgets: [WidgetConfigurationSchema],
guid: {
type: String,
required: true,
unique: true,
default: uuid.v1
},
tabs: [TabsSchema],
});
module.exports = mongoose.model(conf.EntityWidgetConfiguration, EntityWidgetConfiguration);