2 if (!CRM
.Schema
) CRM
.Schema
= {};
5 * Civi data models require more attributes than basic Backbone models:
6 * - sections: array of field-groupings
7 * - schema: array of fields, keyed by field name, per backbone-forms
9 * @see https://github.com/powmedia/backbone-forms
12 CRM
.Schema
.IndividualModel
= CRM
.Backbone
.Model
.extend({
14 'default': {title
: 'Individual'},
15 'custom1': {title
: 'Individual: Favorite Things', is_addable
: true},
16 'custom2': {title
: 'Individual: Custom Things', is_addable
: true}
19 first_name
: { type
: 'Text', title
: 'First name', civiFieldType
: 'Individual' },
20 last_name
: { type
: 'Text', title
: 'Last name', civiFieldType
: 'Individual' },
21 legal_name
: { type
: 'Text', title
: 'Legal name', civiFieldType
: 'Contact' },
22 street_address
: { validators
: ['required', 'email'], title
: 'Email', civiFieldType
: 'Contact', civiIsLocation
: true, civiIsPhone
: false },
23 email
: { validators
: ['required', 'email'], title
: 'Email', civiFieldType
: 'Contact', civiIsLocation
: true, civiIsPhone
: true },
24 custom_123
: { type
: 'Checkbox', section
: 'custom1', title
: 'Likes whiskers on kittens', civiFieldType
: 'Individual'},
25 custom_456
: { type
: 'Checkbox', section
: 'custom1', title
: 'Likes dog bites', civiFieldType
: 'Individual' },
26 custom_789
: { type
: 'Checkbox', section
: 'custom1', title
: 'Likes bee stings', civiFieldType
: 'Individual' },
27 custom_012
: { type
: 'Text', section
: 'custom2', title
: 'Pass phrase', civiFieldType
: 'Contact' }
29 initialize: function() {
34 CRM
.Schema
.ActivityModel
= CRM
.Backbone
.Model
.extend({
36 'default': {title
: 'Activity'},
37 'custom3': {title
: 'Activity: Questions', is_addable
: true}
40 subject
: { type
: 'Text', title
: 'Subject', civiFieldType
: 'Activity' },
41 location
: { type
: 'Text', title
: 'Location', civiFieldType
: 'Activity' },
42 activity_date_time
: { type
: 'DateTime', title
: 'Date-Time', civiFieldType
: 'Activity' },
43 custom_789
: { type
: 'Select', section
: 'custom3', title
: 'How often do you eat cheese?',
44 options
: ['Never', 'Sometimes', 'Often'],
45 civiFieldType
: 'Activity'
48 initialize: function() {