flexbiz-server
Version:
Flexible Server
8 lines (7 loc) • 3.3 kB
JavaScript
const mongoose=require("mongoose"),Schema=mongoose.Schema,apiMappingSchema=new Schema({value:{type:String},label:{type:String},label_as:{type:String}},{_id:!1}),OptionSchema=new Schema({label:{type:String,required:!0},value:{type:Schema.Types.Mixed,required:!0}},{_id:!1}),quickFilterConfigSchema=new Schema({field:{type:String},api:{type:String},apiCondition:{type:Schema.Types.Mixed},apiSort:{type:Schema.Types.Mixed},apiMapping:apiMappingSchema,options:[OptionSchema]},{_id:!1}),optionsSchema=new Schema({label:{type:String,
required:!0},sort:{type:Schema.Types.Mixed,required:!0}}),FieldSchema=new Schema({field:{type:String,required:!0},label:{type:String,required:!0},type:{type:String,default:"String"},required:{type:Boolean,default:!1},errorMessage:{type:String},helpText:{type:String},maxLength:{type:Number},min:{type:Number},max:{type:Number},step:{type:Number},listOrder:{type:Number,default:999},isTitle:{type:Boolean,default:!1},isSubTitle:{type:Boolean,default:!1},multiline:{type:Boolean,default:!1},row:{type:Boolean,
default:!0},slider:{type:Boolean,default:!1},marks:{type:Schema.Types.Mixed},gridEdit:{type:Schema.Types.Mixed},gridView:{type:Schema.Types.Mixed},gridFilter:{type:Schema.Types.Mixed},hideInForm:{type:Schema.Types.Mixed,default:!1},hideInList:{type:Schema.Types.Mixed,default:!1},hideInView:{type:Schema.Types.Mixed,default:!1},searchable:{type:Schema.Types.Mixed,default:!0},readOnly:{type:Schema.Types.Mixed,default:!1},options:[OptionSchema],default:{type:Schema.Types.Mixed},actionScript:{type:String},
multiple:{type:Boolean,default:!1},api:{type:String},apiFields:{type:String},apiCondition:{type:Schema.Types.Mixed},apiConditionFn:{type:String},apiMapping:apiMappingSchema,canQuickAdd:{type:Boolean,default:!1},quickAddFields:{type:Schema.Types.Mixed},quickAddPrefill:{type:Schema.Types.Mixed},mapTo:[{type:String}],onValueChanged:{type:String,trim:!0},formStep:{type:Number},stepLabel:{type:String}},{_id:!1});FieldSchema.add({subFields:[FieldSchema]});
const DataListConfigSchema=new Schema({moduleCode:{type:String,required:!0,unique:!0,index:!0},apiCode:{type:String,required:!0},title:{type:String,required:!0},canAdd:{type:Boolean,default:!0},canEdit:{type:Boolean,default:!0},canDelete:{type:Boolean,default:!0},canCopy:{type:Boolean,default:!0},requireLogin:{type:Boolean,default:!0},defaultViewMode:{type:String,enum:["table","card"],default:"table"},formSize:{type:String,enum:["sm","md","lg","full"],default:"md"},actionBarPosition:{type:String,
enum:["top","bottom"],default:"bottom"},hideHeader:{type:Boolean,default:!1},limit:{type:Number,default:20},gridProps:{type:Schema.Types.Mixed,default:{xs:12,sm:6,md:4,lg:3}},condition:{type:Schema.Types.Mixed},defaultValues:{type:Schema.Types.Mixed},sortOptions:[optionsSchema],quickFilterConfig:quickFilterConfigSchema,customFormScript:{type:String,trim:!0},customListScript:{type:String,trim:!0},customViewScript:{type:String,trim:!0},fields:[FieldSchema],date_created:{type:Date,default:Date.now},
date_updated:{type:Date},user_created:{type:String,default:""},user_updated:{type:String,default:""},status:{type:Boolean,default:!0}});DataListConfigSchema.pre("save",function($next$$){this.date_updated=Date.now();$next$$()});module.exports=mongoose.model("data_list_config",DataListConfigSchema);