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.
113 lines (106 loc) • 2.23 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
},
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 );