2015-06-29 15:51:29 -07:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Module dependencies.
|
|
|
|
*/
|
|
|
|
var mongoose = require('mongoose'),
|
|
|
|
Schema = mongoose.Schema;
|
|
|
|
|
|
|
|
// questionType Validation
|
|
|
|
function validateFormFieldType(value) {
|
2015-07-21 16:25:45 -07:00
|
|
|
if (!value) { return false; }
|
2015-06-29 15:51:29 -07:00
|
|
|
|
2015-06-30 09:15:16 -07:00
|
|
|
var validTypes = [
|
|
|
|
'textfield',
|
2015-07-05 21:29:05 -07:00
|
|
|
'date',
|
2015-06-30 09:15:16 -07:00
|
|
|
'email',
|
|
|
|
'legal',
|
|
|
|
'url',
|
|
|
|
'number',
|
2015-07-05 21:29:05 -07:00
|
|
|
'textarea',
|
|
|
|
'statement',
|
|
|
|
'welcome',
|
|
|
|
'thankyou',
|
|
|
|
'file',
|
|
|
|
'dropdown',
|
|
|
|
'scale',
|
|
|
|
'rating',
|
2015-06-30 09:15:16 -07:00
|
|
|
'radio',
|
|
|
|
'checkbox',
|
|
|
|
'hidden',
|
|
|
|
];
|
2015-06-30 07:21:53 -07:00
|
|
|
|
2015-06-29 15:51:29 -07:00
|
|
|
if (validTypes.indexOf(value) > -1) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Question Schema
|
|
|
|
*/
|
|
|
|
var FormFieldSchema = new Schema({
|
2015-07-27 11:11:43 -07:00
|
|
|
// created: {
|
|
|
|
// type: Date,
|
|
|
|
// default: Date.now
|
|
|
|
// },
|
|
|
|
// lastModified: {
|
|
|
|
// type: Date,
|
|
|
|
// default: Date.now
|
|
|
|
// },
|
2015-07-21 16:25:45 -07:00
|
|
|
title: {
|
2015-06-29 15:51:29 -07:00
|
|
|
type: String,
|
|
|
|
default: '',
|
|
|
|
trim: true,
|
|
|
|
required: 'Title cannot be blank'
|
|
|
|
},
|
|
|
|
description: {
|
|
|
|
type: String,
|
|
|
|
default: '',
|
|
|
|
},
|
2015-07-06 18:21:43 -07:00
|
|
|
fieldOptions: [{
|
2015-07-21 16:25:45 -07:00
|
|
|
type: Schema.Types.Mixed
|
2015-07-06 18:21:43 -07:00
|
|
|
}],
|
2015-06-29 15:51:29 -07:00
|
|
|
required: {
|
|
|
|
type: Boolean,
|
2015-06-30 04:05:44 -07:00
|
|
|
default: true,
|
2015-06-29 15:51:29 -07:00
|
|
|
},
|
|
|
|
disabled: {
|
|
|
|
type: Boolean,
|
|
|
|
default: false,
|
|
|
|
},
|
2015-07-27 11:11:43 -07:00
|
|
|
|
|
|
|
deletePreserved: {
|
|
|
|
type: Boolean,
|
|
|
|
default: false
|
|
|
|
},
|
2015-06-29 15:51:29 -07:00
|
|
|
fieldType: {
|
|
|
|
type: String,
|
|
|
|
required: 'Field type cannot be blank',
|
|
|
|
validate: [validateFormFieldType, 'Invalid field type']
|
|
|
|
},
|
2015-07-21 16:25:45 -07:00
|
|
|
fieldValue: Schema.Types.Mixed
|
2015-06-29 15:51:29 -07:00
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
module.exports = FormFieldSchema;
|
|
|
|
|
|
|
|
// mongoose.model('Field', FormFieldSchema);
|