1
0
ohmyform/app/models/form_field.server.model.js

89 lines
1.3 KiB
JavaScript
Raw Normal View History

2015-06-29 15:51:29 -07:00
'use strict';
/**
* Module dependencies.
*/
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
// questionType Validation
function validateFormFieldType(value) {
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
// },
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: [{
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']
},
fieldValue: Schema.Types.Mixed
2015-06-29 15:51:29 -07:00
});
module.exports = FormFieldSchema;
// mongoose.model('Field', FormFieldSchema);