[TASK] EXT:form - add empty option to select elements
[Packages/TYPO3.CMS.git] / typo3 / sysext / form / Configuration / Yaml / FormEditorSetup.yaml
1 TYPO3:
2   CMS:
3     Form:
4       ########### FORM MANAGER CONFIGURATION ###########
5       formManager:
6         dynamicRequireJsModules:
7           app: 'TYPO3/CMS/Form/Backend/FormManager'
8           viewModel: 'TYPO3/CMS/Form/Backend/FormManager/ViewModel'
9         stylesheets:
10           100: 'EXT:form/Resources/Public/Css/form.css'
11         translationFile: 'EXT:form/Resources/Private/Language/Database.xlf'
12         javaScriptTranslationFile: 'EXT:form/Resources/Private/Language/locallang_formManager_javascript.xlf'
13         selectablePrototypesConfiguration:
14           100:
15             identifier: 'standard'
16             label: 'formManager.selectablePrototypesConfiguration.standard.label'
17             newFormTemplates:
18               100:
19                 templatePath: 'EXT:form/Resources/Private/Backend/Templates/FormEditor/Yaml/NewForms/BlankForm.yaml'
20                 label: 'formManager.selectablePrototypesConfiguration.standard.newFormTemplates.blankForm.label'
21               200:
22                 templatePath: 'EXT:form/Resources/Private/Backend/Templates/FormEditor/Yaml/NewForms/SimpleContactForm.yaml'
23                 label: 'formManager.selectablePrototypesConfiguration.standard.newFormTemplates.simpleContactForm.label'
24         controller:
25           deleteAction:
26             errorTitle: 'formManagerController.deleteAction.error.title'
27             errorMessage: 'formManagerController.deleteAction.error.body'
28
29       ########### FORMEDITOR CONFIGURATION ###########
30       prototypes:
31         standard:
32           formEditor:
33             translationFile: 'EXT:form/Resources/Private/Language/Database.xlf'
34             dynamicRequireJsModules:
35               app: 'TYPO3/CMS/Form/Backend/FormEditor'
36               mediator: 'TYPO3/CMS/Form/Backend/FormEditor/Mediator'
37               viewModel: 'TYPO3/CMS/Form/Backend/FormEditor/ViewModel'
38               additionalViewModelModules:
39
40             addInlineSettings: []
41             maximumUndoSteps: 10
42
43             stylesheets:
44               # @toDo: move form.less to the TYPO3 Build folder
45               200: 'EXT:form/Resources/Public/Css/form.css'
46
47             formEditorFluidConfiguration:
48               templatePathAndFilename: 'EXT:form/Resources/Private/Backend/Templates/FormEditor/InlineTemplates.html'
49               partialRootPaths:
50                 10: 'EXT:form/Resources/Private/Backend/Partials/FormEditor/'
51               layoutRootPaths:
52                 10: 'EXT:form/Resources/Private/Backend/Layouts/FormEditor/'
53
54             formEditorPartials:
55               # abstract form element partials
56               FormElement-_ElementToolbar: 'Stage/_ElementToolbar'
57               FormElement-_UnknownElement: 'Stage/_UnknownElement'
58               FormElement-Page: 'Stage/Page'
59               FormElement-SummaryPage: 'Stage/SummaryPage'
60               FormElement-Fieldset: 'Stage/Fieldset'
61               FormElement-Text: 'Stage/SimpleTemplate'
62               FormElement-Password: 'Stage/SimpleTemplate'
63               FormElement-AdvancedPassword: 'Stage/SimpleTemplate'
64               FormElement-Textarea: 'Stage/SimpleTemplate'
65               FormElement-Checkbox: 'Stage/SimpleTemplate'
66               FormElement-MultiCheckbox: 'Stage/SelectTemplate'
67               FormElement-MultiSelect: 'Stage/SelectTemplate'
68               FormElement-RadioButton: 'Stage/SelectTemplate'
69               FormElement-SingleSelect: 'Stage/SelectTemplate'
70               FormElement-DatePicker: 'Stage/SimpleTemplate'
71               FormElement-StaticText: 'Stage/StaticText'
72               FormElement-Hidden: 'Stage/SimpleTemplate'
73               FormElement-ContentElement: 'Stage/ContentElement'
74               FormElement-FileUpload: 'Stage/FileUploadTemplate'
75               FormElement-ImageUpload: 'Stage/FileUploadTemplate'
76
77               # modals
78               Modal-InsertElements: 'Modals/InsertElements'
79               Modal-InsertPages: 'Modals/InsertPages'
80               Modal-ValidationErrors: 'Modals/ValidationErrors'
81
82               # inspector editors
83               Inspector-FormElementHeaderEditor: 'Inspector/FormElementHeaderEditor'
84               Inspector-CollectionElementHeaderEditor: 'Inspector/CollectionElementHeaderEditor'
85               Inspector-TextEditor: 'Inspector/TextEditor'
86               Inspector-PropertyGridEditor: 'Inspector/PropertyGridEditor'
87               Inspector-SingleSelectEditor: 'Inspector/SingleSelectEditor'
88               Inspector-MultiSelectEditor: 'Inspector/MultiSelectEditor'
89               Inspector-TextareaEditor: 'Inspector/TextareaEditor'
90               Inspector-RemoveElementEditor: 'Inspector/RemoveElementEditor'
91               Inspector-FinishersEditor: 'Inspector/FinishersEditor'
92               Inspector-ValidatorsEditor: 'Inspector/ValidatorsEditor'
93               Inspector-RequiredValidatorEditor: 'Inspector/RequiredValidatorEditor'
94               Inspector-CheckboxEditor: 'Inspector/CheckboxEditor'
95               Inspector-Typo3WinBrowserEditor: 'Inspector/Typo3WinBrowserEditor'
96
97             formElementPropertyValidatorsDefinition:
98               NotEmpty:
99                 errorMessage: 'formEditor.formElementPropertyValidatorsDefinition.NotEmpty.label'
100               Integer:
101                 errorMessage: 'formEditor.formElementPropertyValidatorsDefinition.Integer.label'
102               NaiveEmail:
103                 errorMessage: 'formEditor.formElementPropertyValidatorsDefinition.NaiveEmail.label'
104               NaiveEmailOrEmpty:
105                 errorMessage: 'formEditor.formElementPropertyValidatorsDefinition.NaiveEmail.label'
106               FormElementIdentifierWithinCurlyBracesInclusive:
107                 errorMessage: 'formEditor.formElementPropertyValidatorsDefinition.FormElementIdentifierWithinCurlyBraces.label'
108               FormElementIdentifierWithinCurlyBracesExclusive:
109                 errorMessage: 'formEditor.formElementPropertyValidatorsDefinition.FormElementIdentifierWithinCurlyBraces.label'
110
111             formElementGroups:
112               input:
113                 label: 'formEditor.formElementGroups.input.label'
114               select:
115                 label: 'formEditor.formElementGroups.select.label'
116               custom:
117                 label: 'formEditor.formElementGroups.custom.label'
118               container:
119                 label: 'formEditor.formElementGroups.container.label'
120               page:
121                 label: 'formEditor.formElementGroups.page.label'
122
123           ########### DEFAULT FORM ELEMENT DEFINITIONS ###########
124           formElementsDefinition:
125             Form:
126               formEditor:
127                 _isCompositeFormElement: false
128                 _isTopLevelFormElement: true
129
130                 saveSuccessFlashMessageTitle: 'formEditor.elements.Form.saveSuccessFlashMessageTitle'
131                 saveSuccessFlashMessageMessage: 'formEditor.elements.Form.saveSuccessFlashMessageMessage'
132
133                 modalValidationErrorsDialogTitle: 'formEditor.modals.validationErrors.dialogTitle'
134                 modalValidationErrorsConfirmButton: 'formEditor.modals.validationErrors.confirmButton'
135
136                 modalInsertElementsDialogTitle: 'formEditor.modals.insertElements.dialogTitle'
137                 modalInsertPagesDialogTitle: 'formEditor.modals.newPages.dialogTitle'
138
139                 modalCloseDialogMessage: 'formEditor.modals.close.dialogMessage'
140                 modalCloseDialogTitle: 'formEditor.modals.close.dialogTitle'
141                 modalCloseConfirmButton: 'formEditor.modals.close.confirmButton'
142                 modalCloseCancleButton: 'formEditor.modals.close.cancleButton'
143
144                 modalRemoveElementDialogTitle: 'formEditor.modals.removeElement.dialogTitle'
145                 modalRemoveElementDialogMessage: 'formEditor.modals.removeElement.dialogMessage'
146                 modalRemoveElementConfirmButton: 'formEditor.modals.removeElement.confirmButton'
147                 modalRemoveElementCancleButton: 'formEditor.modals.removeElement.cancleButton'
148                 modalRemoveElementLastAvailablePageFlashMessageTitle: 'formEditor.modals.removeElement.lastAvailablePageFlashMessageTitle'
149                 modalRemoveElementLastAvailablePageFlashMessageMessage: 'formEditor.modals.removeElement.lastAvailablePageFlashMessageMessage'
150
151                 inspectorEditorFormElementSelectorNoElements: 'formEditor.inspector.editor.formelement_selector.no_elements'
152
153                 paginationTitle: 'formEditor.pagination.title'
154
155                 iconIdentifier: 'content-elements-mailform'
156                 predefinedDefaults: []
157                 editors:
158                   900:
159                     identifier: 'finishers'
160                     templateName: 'Inspector-FinishersEditor'
161                     label: 'formEditor.elements.Form.editor.finishers.label'
162                     selectOptions:
163                       10:
164                         value: ''
165                         label: 'formEditor.elements.Form.editor.finishers.EmptyValue.label'
166                       20:
167                         value: 'EmailToSender'
168                         label: 'formEditor.elements.Form.editor.finishers.EmailToSender.label'
169                       30:
170                         value: 'EmailToReceiver'
171                         label: 'formEditor.elements.Form.editor.finishers.EmailToReceiver.label'
172                       40:
173                         value: 'Redirect'
174                         label: 'formEditor.elements.Form.editor.finishers.Redirect.label'
175                       50:
176                         value: 'DeleteUploads'
177                         label: 'formEditor.elements.Form.editor.finishers.DeleteUploads.label'
178
179                 propertyCollections:
180                   finishers:
181                     10:
182                       __inheritances:
183                         10: 'TYPO3.CMS.Form.mixins.formElementMixins.formEmailFinisherMixin'
184                       identifier: 'EmailToSender'
185
186                     20:
187                       __inheritances:
188                         10: 'TYPO3.CMS.Form.mixins.formElementMixins.formEmailFinisherMixin'
189                       identifier: 'EmailToReceiver'
190                       editors:
191                         100:
192                           label: 'formEditor.elements.Form.finisher.EmailToReceiver.editor.header.label'
193                         200:
194                           label: 'formEditor.elements.Form.finisher.EmailToReceiver.editor.subject.label'
195                         300:
196                           label: 'formEditor.elements.Form.finisher.EmailToReceiver.editor.recipientAddress.label'
197                         400:
198                           label: 'formEditor.elements.Form.finisher.EmailToReceiver.editor.recipientName.label'
199                         500:
200                           label: 'formEditor.elements.Form.finisher.EmailToReceiver.editor.senderAddress.label'
201                         600:
202                           label: 'formEditor.elements.Form.finisher.EmailToReceiver.editor.senderName.label'
203                         700:
204                           label: 'formEditor.elements.Form.finisher.EmailToReceiver.editor.replyToAddress.label'
205                         800:
206                           label: 'formEditor.elements.Form.finisher.EmailToReceiver.editor.carbonCopyAddress.label'
207                         900:
208                           label: 'formEditor.elements.Form.finisher.EmailToReceiver.editor.blindCarbonCopyAddress.label'
209                         1000:
210                           label: 'formEditor.elements.Form.finisher.EmailToReceiver.editor.format.label'
211                         1100:
212                           label: 'formEditor.elements.Form.finisher.EmailToReceiver.editor.attachUploads.label'
213                         1200:
214                           identifier: 'language'
215                           templateName: 'Inspector-SingleSelectEditor'
216                           label: 'formEditor.elements.Form.finisher.EmailToReceiver.editor.language.label'
217                           propertyPath: 'options.translation.language'
218                           selectOptions:
219                             10:
220                               value: 'default'
221                               label: 'formEditor.elements.Form.finisher.EmailToReceiver.editor.language.1'
222
223                     30:
224                       identifier: 'Redirect'
225                       editors:
226                         __inheritances:
227                           10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin'
228                         100:
229                           label: 'formEditor.elements.Form.finisher.Redirect.editor.header.label'
230                         200:
231                           identifier: 'pageUid'
232                           templateName: 'Inspector-Typo3WinBrowserEditor'
233                           label: 'formEditor.elements.Form.finisher.Redirect.editor.pageUid.label'
234                           buttonLabel: 'formEditor.elements.Form.finisher.Redirect.editor.pageUid.buttonLabel'
235                           browsableType: pages
236                           propertyPath: 'options.pageUid'
237                           propertyValidatorsMode: 'OR'
238                           propertyValidators:
239                             10: 'Integer'
240                             20: 'FormElementIdentifierWithinCurlyBracesExclusive'
241
242                         300:
243                           identifier: 'additionalParameters'
244                           templateName: 'Inspector-TextEditor'
245                           label: 'formEditor.elements.Form.finisher.Redirect.editor.additionalParameters.label'
246                           propertyPath: 'options.additionalParameters'
247
248                     40:
249                       identifier: 'DeleteUploads'
250                       editors:
251                         __inheritances:
252                           10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin'
253                         100:
254                           label: 'formEditor.elements.Form.finisher.DeleteUploads.editor.header.label'
255
256                     50:
257                       identifier: 'Confirmation'
258                       editors:
259                         __inheritances:
260                           10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin'
261                         100:
262                           label: 'formEditor.elements.Form.finisher.Confirmation.editor.header.label'
263
264                     60:
265                       identifier: 'Closure'
266                       editors:
267                         __inheritances:
268                           10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin'
269                         100:
270                           label: 'formEditor.elements.Form.finisher.Closure.editor.header.label'
271
272                     70:
273                       identifier: 'FlashMessage'
274                       editors:
275                         __inheritances:
276                           10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin'
277                         100:
278                           label: 'formEditor.elements.Form.finisher.FlashMessage.editor.header.label'
279
280                     80:
281                       identifier: 'SaveToDatabase'
282                       editors:
283                         __inheritances:
284                           10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin'
285                         100:
286                           label: 'formEditor.elements.Form.finisher.SaveToDatabase.editor.header.label'
287
288             ### FORM ELEMENTS: CONTAINER ###
289             Fieldset:
290               formEditor:
291                 label: 'formEditor.elements.Fieldset.label'
292                 group: container
293                 groupSorting: 100
294                 _isCompositeFormElement: true
295                 iconIdentifier: 't3-form-icon-fieldset'
296                 editors:
297                   200:
298                     label: 'formEditor.elements.Fieldset.editor.label.label'
299                   800: null
300
301             ### FORM ELEMENTS: PAGE TYPES ###
302             Page:
303               formEditor:
304                 __inheritances:
305                   10: 'TYPO3.CMS.Form.mixins.formElementMixins.RemovableFormElementMixin'
306                 predefinedDefaults: []
307                 label: 'formEditor.elements.Page.label'
308                 group: page
309                 groupSorting: 100
310                 _isTopLevelFormElement: true
311                 _isCompositeFormElement: true
312                 iconIdentifier: 't3-form-icon-page'
313                 editors:
314                   200:
315                     label: 'formEditor.elements.Page.editor.label.label'
316
317             SummaryPage:
318               formEditor:
319                 predefinedDefaults: []
320                 label: 'formEditor.elements.SummaryPage.label'
321                 group: page
322                 groupSorting: 200
323                 _isTopLevelFormElement: true
324                 _isCompositeFormElement: false
325                 iconIdentifier: 't3-form-icon-summary-page'
326                 editors:
327                   200:
328                     label: 'formEditor.elements.SummaryPage.editor.label.label'
329
330             ### FORM ELEMENTS: INPUT ###
331
332             Text:
333               formEditor:
334                 label: 'formEditor.elements.Text.label'
335                 group: input
336                 groupSorting: 100
337                 iconIdentifier: 't3-form-icon-text'
338
339             Password:
340               formEditor:
341                 label: 'formEditor.elements.Password.label'
342                 group: input
343                 groupSorting: 300
344                 iconIdentifier: 't3-form-icon-password'
345
346             AdvancedPassword:
347               formEditor:
348                 label: 'formEditor.elements.AdvancedPassword.label'
349                 group: input
350                 groupSorting: 400
351                 predefinedDefaults:
352                   properties:
353                     confirmationLabel: 'formEditor.element.AdvancedPassword.editor.confirmationLabel.predefinedDefaults'
354                   defaultValue: null
355                 iconIdentifier: 't3-form-icon-advanced-password'
356                 editors:
357                   300:
358                     identifier: 'confirmationLabel'
359                     templateName: 'Inspector-TextEditor'
360                     label: 'formEditor.elements.AdvancedPassword.editor.confirmationLabel.label'
361                     propertyPath: 'properties.confirmationLabel'
362                   500: null
363
364             Hidden:
365               formEditor:
366                 label: 'formEditor.elements.Hidden.label'
367                 group: input
368                 groupSorting: 500
369                 iconIdentifier: 't3-form-icon-hidden'
370                 predefinedDefaults:
371                   defaultValue: ''
372                 editors:
373                   300:
374                     identifier: 'defaultValue'
375                     templateName: 'Inspector-TextEditor'
376                     label: 'formEditor.elements.Hidden.editor.defaultValue.label'
377                     propertyPath: 'defaultValue'
378                   800: null
379
380             Textarea:
381               formEditor:
382                 label: 'formEditor.elements.Textarea.label'
383                 group: input
384                 groupSorting: 200
385                 iconIdentifier: 't3-form-icon-textarea'
386                 editors:
387                   600: null
388                   900:
389                     selectOptions:
390                       # remove email validator
391                       50: null
392
393             ### FORM ELEMENTS: SELECT ###
394             Checkbox:
395               formEditor:
396                 label: 'formEditor.elements.Checkbox.label'
397                 group: select
398                 groupSorting: 100
399                 iconIdentifier: 't3-form-icon-checkbox'
400
401             MultiCheckbox:
402               formEditor:
403                 label: 'formEditor.elements.MultiCheckbox.label'
404                 group: select
405                 groupSorting: 500
406                 iconIdentifier: 't3-form-icon-multi-checkbox'
407
408             MultiSelect:
409               formEditor:
410                 label: 'formEditor.elements.MultiSelect.label'
411                 group: select
412                 groupSorting: 400
413                 iconIdentifier: 't3-form-icon-multi-select'
414                 editors:
415                   250:
416                     identifier: 'inactiveOption'
417                     templateName: 'Inspector-TextEditor'
418                     label: 'formEditor.elements.SelectionMixin.editor.inactiveOption.label'
419                     propertyPath: 'properties.prependOptionLabel'
420                     fieldExplanationText: 'formEditor.elements.SelectionMixin.editor.inactiveOption.fieldExplanationText'
421                     doNotSetIfPropertyValueIsEmpty: true
422
423             RadioButton:
424               formEditor:
425                 label: 'formEditor.elements.RadioButton.label'
426                 group: select
427                 groupSorting: 300
428                 iconIdentifier: 't3-form-icon-radio-button'
429
430             SingleSelect:
431               formEditor:
432                 label: 'formEditor.elements.SingleSelect.label'
433                 group: select
434                 groupSorting: 200
435                 iconIdentifier: 't3-form-icon-single-select'
436                 editors:
437                   250:
438                     identifier: 'inactiveOption'
439                     templateName: 'Inspector-TextEditor'
440                     label: 'formEditor.elements.SelectionMixin.editor.inactiveOption.label'
441                     propertyPath: 'properties.prependOptionLabel'
442                     fieldExplanationText: 'formEditor.elements.SelectionMixin.editor.inactiveOption.fieldExplanationText'
443                     doNotSetIfPropertyValueIsEmpty: true
444
445             ### FORM ELEMENTS: CUSTOM ###
446             DatePicker:
447               formEditor:
448                 label: 'formEditor.elements.DatePicker.label'
449                 group: custom
450                 groupSorting: 100
451                 predefinedDefaults:
452                   properties:
453                     dateFormat: 'Y-m-d'
454                     enableDatePicker: true
455                     displayTimeSelector: false
456                 iconIdentifier: 't3-form-icon-date-picker'
457                 editors:
458                   300:
459                     identifier: 'dateFormat'
460                     templateName: 'Inspector-TextEditor'
461                     label: 'formEditor.elements.DatePicker.editor.dateFormat.label'
462                     propertyPath: 'properties.dateFormat'
463                   400:
464                     identifier: 'enableDatePicker'
465                     templateName: 'Inspector-CheckboxEditor'
466                     label: 'formEditor.elements.DatePicker.editor.enableDatePicker.label'
467                     propertyPath: 'properties.enableDatePicker'
468                   500:
469                     identifier: 'displayTimeSelector'
470                     templateName: 'Inspector-CheckboxEditor'
471                     label: 'formEditor.elements.DatePicker.editor.displayTimeSelector.label'
472                     propertyPath: 'properties.displayTimeSelector'
473                   900:
474                     identifier: 'validators'
475                     templateName: 'Inspector-ValidatorsEditor'
476                     label: 'formEditor.elements.DatePicker.editor.validators.label'
477                     selectOptions:
478                       10:
479                         value: ''
480                         label: 'formEditor.elements.DatePicker.editor.validators.EmptyValue.label'
481                       20:
482                         value: 'DateTime'
483                         label: 'formEditor.elements.DatePicker.editor.validators.DateTime.label'
484
485                 propertyCollections:
486                   validators:
487                     10:
488                       identifier: 'DateTime'
489                       editors:
490                         __inheritances:
491                           10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin'
492                         100:
493                           label: 'formEditor.elements.DatePicker.validators.DateTime.editor.header.label'
494
495             StaticText:
496               formEditor:
497                 label: 'formEditor.elements.StaticText.label'
498                 group: custom
499                 groupSorting: 400
500                 predefinedDefaults:
501                   properties:
502                     text: ''
503                 iconIdentifier: 't3-form-icon-static-text'
504                 editors:
505                   300:
506                     identifier: 'staticText'
507                     templateName: 'Inspector-TextareaEditor'
508                     label: 'formEditor.elements.StaticText.editor.staticText.label'
509                     propertyPath: 'properties.text'
510
511             ContentElement:
512               formEditor:
513                 label: 'formEditor.elements.ContentElement.label'
514                 group: custom
515                 groupSorting: 500
516                 predefinedDefaults:
517                   properties:
518                     contentElementUid: ''
519                 iconIdentifier: 't3-form-icon-content-element'
520                 editors:
521                   200: null
522                   300:
523                     identifier: 'contentElement'
524                     templateName: 'Inspector-Typo3WinBrowserEditor'
525                     label: 'formEditor.elements.ContentElement.editor.contentElement.label'
526                     buttonLabel: 'formEditor.elements.ContentElement.editor.contentElement.buttonLabel'
527                     browsableType: tt_content
528                     propertyPath: 'properties.contentElementUid'
529                     propertyValidatorsMode: 'OR'
530                     propertyValidators:
531                       10: 'Integer'
532                       20: 'FormElementIdentifierWithinCurlyBracesExclusive'
533
534             ### FORM ELEMENTS: UPLOADS ###
535             FileUpload:
536               formEditor:
537                 label: 'formEditor.elements.FileUpload.label'
538                 group: custom
539                 groupSorting: 200
540                 predefinedDefaults:
541                   properties:
542                     allowedMimeTypes: ['application/pdf']
543                 iconIdentifier: 't3-form-icon-file-upload'
544                 editors:
545                   300:
546                     identifier: 'allowedMimeTypes'
547                     templateName: 'Inspector-MultiSelectEditor'
548                     label: 'formEditor.elements.FileUpload.editor.allowedMimeTypes.label'
549                     propertyPath: 'properties.allowedMimeTypes'
550                     selectOptions:
551                       10:
552                         value: 'application/msword'
553                         label: 'formEditor.elements.FileUpload.editor.allowedMimeTypes.doc'
554                       20:
555                         value: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
556                         label: 'formEditor.elements.FileUpload.editor.allowedMimeTypes.docx'
557                       30:
558                         value: 'application/msexcel'
559                         label: 'formEditor.elements.FileUpload.editor.allowedMimeTypes.xls'
560                       40:
561                         value: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
562                         label: 'formEditor.elements.FileUpload.editor.allowedMimeTypes.xlsx'
563                       50:
564                         value: 'application/pdf'
565                         label: 'formEditor.elements.FileUpload.editor.allowedMimeTypes.pdf'
566                       60:
567                         value: 'application/vnd.oasis.opendocument.text'
568                         label: 'formEditor.elements.FileUpload.editor.allowedMimeTypes.odt'
569                       70:
570                         value: 'application/vnd.oasis.opendocument.spreadsheet-template'
571                         label: 'formEditor.elements.FileUpload.editor.allowedMimeTypes.ods'
572
573             ImageUpload:
574               formEditor:
575                 label: 'formEditor.elements.ImageUpload.label'
576                 group: custom
577                 groupSorting: 300
578                 predefinedDefaults:
579                   properties:
580                     allowedMimeTypes: ['image/jpeg']
581                 iconIdentifier: 't3-form-icon-image-upload'
582                 editors:
583                   300:
584                     identifier: 'allowedMimeTypes'
585                     templateName: 'Inspector-MultiSelectEditor'
586                     label: 'formEditor.elements.ImageUpload.editor.allowedMimeTypes.label'
587                     propertyPath: 'properties.allowedMimeTypes'
588                     selectOptions:
589                       10:
590                         value: 'image/jpeg'
591                         label: 'formEditor.elements.ImageUpload.editor.allowedMimeTypes.jpg'
592                       20:
593                         value: 'image/png'
594                         label: 'formEditor.elements.ImageUpload.editor.allowedMimeTypes.png'
595                       30:
596                         value: 'image/bmp'
597                         label: 'formEditor.elements.ImageUpload.editor.allowedMimeTypes.bmp'
598
599           ### FINISHERS ###
600           finishersDefinition:
601             EmailToSender:
602               formEditor:
603                 iconIdentifier: 't3-form-icon-finisher'
604                 label: 'formEditor.elements.Form.finisher.EmailToSender.editor.header.label'
605                 predefinedDefaults:
606                   options:
607                     subject: ''
608                     recipientAddress: ''
609                     recipientName: ''
610                     senderAddress: ''
611                     senderName: ''
612                     replyToAddress: ''
613                     carbonCopyAddress: ''
614                     blindCarbonCopyAddress: ''
615                     format: 'html'
616                     attachUploads: true
617
618             EmailToReceiver:
619               formEditor:
620                 iconIdentifier: 't3-form-icon-finisher'
621                 label: 'formEditor.elements.Form.finisher.EmailToReceiver.editor.header.label'
622                 predefinedDefaults:
623                   options:
624                     subject: ''
625                     recipientAddress: ''
626                     recipientName: ''
627                     senderAddress: ''
628                     senderName: ''
629                     replyToAddress: ''
630                     carbonCopyAddress: ''
631                     blindCarbonCopyAddress: ''
632                     format: 'html'
633                     attachUploads: true
634                     translation:
635                       language: ''
636
637             Redirect:
638               formEditor:
639                 iconIdentifier: 't3-form-icon-finisher'
640                 label: 'formEditor.elements.Form.finisher.Redirect.editor.header.label'
641                 predefinedDefaults:
642                   options:
643                     pageUid: ''
644                     additionalParameters: ''
645
646             Closure:
647               formEditor:
648                 iconIdentifier: 't3-form-icon-finisher'
649                 label: 'formEditor.elements.Form.finisher.Closure.editor.header.label'
650                 predefinedDefaults:
651                   options:
652                     closure: ''
653
654             Confirmation:
655               formEditor:
656                 iconIdentifier: 't3-form-icon-finisher'
657                 label: 'formEditor.elements.Form.finisher.Confirmation.editor.header.label'
658                 predefinedDefaults:
659                   options:
660                     message: ''
661
662             FlashMessage:
663               formEditor:
664                 iconIdentifier: 't3-form-icon-finisher'
665                 label: 'formEditor.elements.Form.finisher.FlashMessage.editor.header.label'
666                 predefinedDefaults:
667                   options:
668                     messageBody: ''
669                     messageTitle: ''
670                     messageArguments: ''
671                     messageCode: 0
672                     severity: 0
673
674             SaveToDatabase:
675               formEditor:
676                 iconIdentifier: 't3-form-icon-finisher'
677                 label: 'formEditor.elements.Form.finisher.SaveToDatabase.editor.header.label'
678                 predefinedDefaults:
679                   options: []
680
681             DeleteUploads:
682               formEditor:
683                 iconIdentifier: 't3-form-icon-finisher'
684                 label: 'formEditor.elements.Form.finisher.DeleteUploads.editor.header.label'
685
686           ### VALIDATORS ###
687           validatorsDefinition:
688             NotEmpty:
689               formEditor:
690                 iconIdentifier: 't3-form-icon-validator'
691                 label : 'formEditor.elements.FormElement.editor.requiredValidator.label'
692             DateTime:
693               formEditor:
694                 iconIdentifier: 't3-form-icon-validator'
695                 label: 'formEditor.elements.DatePicker.validators.DateTime.editor.header.label'
696             Alphanumeric:
697               formEditor:
698                 iconIdentifier: 't3-form-icon-validator'
699                 label: 'formEditor.elements.TextMixin.editor.validators.Alphanumeric.label'
700             Text:
701               formEditor:
702                 iconIdentifier: 't3-form-icon-validator'
703                 label: 'formEditor.elements.TextMixin.editor.validators.Text.label'
704             StringLength:
705               formEditor:
706                 iconIdentifier: 't3-form-icon-validator'
707                 label: 'formEditor.elements.TextMixin.editor.validators.StringLength.label'
708                 predefinedDefaults:
709                   options:
710                     minimum: ''
711                     maximum: ''
712             EmailAddress:
713               formEditor:
714                 iconIdentifier: 't3-form-icon-validator'
715                 label: 'formEditor.elements.TextMixin.editor.validators.EmailAddress.label'
716             Integer:
717               formEditor:
718                 iconIdentifier: 't3-form-icon-validator'
719                 label: 'formEditor.elements.TextMixin.editor.validators.Integer.label'
720             Float:
721               formEditor:
722                 iconIdentifier: 't3-form-icon-validator'
723                 label: 'formEditor.elements.TextMixin.editor.validators.Float.label'
724             NumberRange:
725               formEditor:
726                 iconIdentifier: 't3-form-icon-validator'
727                 label: 'formEditor.elements.TextMixin.editor.validators.NumberRange.label'
728                 predefinedDefaults:
729                   options:
730                     minimum: ''
731                     maximum: ''
732             RegularExpression:
733               formEditor:
734                 iconIdentifier: 't3-form-icon-validator'
735                 label: 'formEditor.elements.TextMixin.editor.validators.RegularExpression.label'
736                 predefinedDefaults:
737                   options:
738                     regularExpression: ''
739             Count:
740               formEditor:
741                 iconIdentifier: 't3-form-icon-validator'
742                 label: 'formEditor.elements.MultiSelectionMixin.validators.Count.editor.header.label'
743                 predefinedDefaults:
744                   options:
745                     minimum: ''
746                     maximum: ''
747
748       ########### MIXINS ###########
749       mixins:
750         ########### FORM ELEMENT MIXINS ###########
751         formElementMixins:
752           BaseFormElementMixin:
753             formEditor:
754               predefinedDefaults: []
755               editors:
756                 100:
757                   identifier: 'header'
758                   templateName: 'Inspector-FormElementHeaderEditor'
759                 200:
760                   identifier: 'label'
761                   templateName: 'Inspector-TextEditor'
762                   label: 'formEditor.elements.BaseFormElementMixin.editor.label.label'
763                   propertyPath: 'label'
764
765           RemoveButtonMixin:
766             9999:
767               identifier: 'removeButton'
768               templateName: 'Inspector-RemoveElementEditor'
769
770           RemovableFormElementMixin:
771             editors:
772               __inheritances:
773                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.RemoveButtonMixin'
774
775           BaseCollectionEditorsMixin:
776             __inheritances:
777               10: 'TYPO3.CMS.Form.mixins.formElementMixins.RemoveButtonMixin'
778             100:
779               identifier: 'header'
780               templateName: 'Inspector-CollectionElementHeaderEditor'
781               label: ''
782
783           MinimumMaximumEditorsMixin:
784             200:
785               identifier: 'minimum'
786               templateName: 'Inspector-TextEditor'
787               label: 'formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label'
788               propertyPath: 'options.minimum'
789               propertyValidatorsMode: 'OR'
790               propertyValidators:
791                 10: 'Integer'
792                 20: 'FormElementIdentifierWithinCurlyBracesExclusive'
793             300:
794               identifier: 'maximum'
795               templateName: 'Inspector-TextEditor'
796               label: 'formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label'
797               propertyPath: 'options.maximum'
798               propertyValidatorsMode: 'OR'
799               propertyValidators:
800                 10: 'Integer'
801                 20: 'FormElementIdentifierWithinCurlyBracesExclusive'
802
803           ReadOnlyFormElementMixin:
804             formEditor:
805               __inheritances:
806                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.RemovableFormElementMixin'
807               editors:
808                 200:
809                   label: 'formEditor.elements.ReadOnlyFormElement.editor.label.label'
810
811           FormElementMixin:
812             formEditor:
813               __inheritances:
814                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.RemovableFormElementMixin'
815               editors:
816                 200:
817                   label: 'formEditor.elements.FormElement.editor.label.label'
818                 800:
819                   identifier: 'requiredValidator'
820                   templateName: 'Inspector-RequiredValidatorEditor'
821                   label: 'formEditor.elements.FormElement.editor.requiredValidator.label'
822                   validatorIdentifier: 'NotEmpty'
823                   propertyPath: 'properties.fluidAdditionalAttributes.required'
824                   propertyValue: 'required'
825
826           TextMixin:
827             formEditor:
828               predefinedDefaults:
829                 defaultValue: ''
830               editors:
831                 400:
832                   identifier: 'placeholder'
833                   templateName: 'Inspector-TextEditor'
834                   label: 'formEditor.elements.TextMixin.editor.placeholder.label'
835                   propertyPath: 'properties.fluidAdditionalAttributes.placeholder'
836                   compatibilityPropertyPath: 'properties.placeholder'
837                   doNotSetIfPropertyValueIsEmpty: true
838                 500:
839                   identifier: 'defaultValue'
840                   templateName: 'Inspector-TextEditor'
841                   label: 'formEditor.elements.TextMixin.editor.defaultValue.label'
842                   propertyPath: 'defaultValue'
843                 900:
844                   identifier: 'validators'
845                   templateName: 'Inspector-ValidatorsEditor'
846                   label: 'formEditor.elements.TextMixin.editor.validators.label'
847                   selectOptions:
848                     10:
849                       value: ''
850                       label: 'formEditor.elements.TextMixin.editor.validators.EmptyValue.label'
851                     20:
852                       value: 'Alphanumeric'
853                       label: 'formEditor.elements.TextMixin.editor.validators.Alphanumeric.label'
854                     30:
855                       value: 'Text'
856                       label: 'formEditor.elements.TextMixin.editor.validators.Text.label'
857                     40:
858                       value: 'StringLength'
859                       label: 'formEditor.elements.TextMixin.editor.validators.StringLength.label'
860                     50:
861                       value: 'EmailAddress'
862                       label: 'formEditor.elements.TextMixin.editor.validators.EmailAddress.label'
863                     60:
864                       value: 'Integer'
865                       label: 'formEditor.elements.TextMixin.editor.validators.Integer.label'
866                     70:
867                       value: 'Float'
868                       label: 'formEditor.elements.TextMixin.editor.validators.Float.label'
869                     80:
870                       value: 'NumberRange'
871                       label: 'formEditor.elements.TextMixin.editor.validators.NumberRange.label'
872                     90:
873                       value: 'RegularExpression'
874                       label: 'formEditor.elements.TextMixin.editor.validators.RegularExpression.label'
875
876               propertyCollections:
877                 validators:
878                   10:
879                     identifier: 'Alphanumeric'
880                     editors:
881                       __inheritances:
882                         10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin'
883                       100:
884                         label: 'formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label'
885                   20:
886                     identifier: 'Text'
887                     editors:
888                       __inheritances:
889                         10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin'
890                       100:
891                         label: 'formEditor.elements.TextMixin.validators.Text.editor.header.label'
892                   30:
893                     identifier: 'StringLength'
894                     editors:
895                       __inheritances:
896                         10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin'
897                         20: 'TYPO3.CMS.Form.mixins.formElementMixins.MinimumMaximumEditorsMixin'
898                       100:
899                         label: 'formEditor.elements.TextMixin.validators.StringLength.editor.header.label'
900                   40:
901                     identifier: 'EmailAddress'
902                     editors:
903                       __inheritances:
904                         10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin'
905                       100:
906                         label: 'formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label'
907                   50:
908                     identifier: 'Integer'
909                     editors:
910                       __inheritances:
911                         10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin'
912                       100:
913                         label: 'formEditor.elements.TextMixin.validators.Integer.editor.header.label'
914                   60:
915                     identifier: 'Float'
916                     editors:
917                       __inheritances:
918                         10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin'
919                       100:
920                         label: 'formEditor.elements.TextMixin.validators.Float.editor.header.label'
921                   70:
922                     identifier: 'NumberRange'
923                     editors:
924                       __inheritances:
925                         10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin'
926                         20: 'TYPO3.CMS.Form.mixins.formElementMixins.MinimumMaximumEditorsMixin'
927                       100:
928                         label: 'formEditor.elements.TextMixin.validators.NumberRange.editor.header.label'
929                   80:
930                     identifier: 'RegularExpression'
931                     editors:
932                       __inheritances:
933                         10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin'
934                       100:
935                         label: 'formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label'
936                       200:
937                         identifier: 'regex'
938                         templateName: 'Inspector-TextEditor'
939                         label: 'formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label'
940                         fieldExplanationText: 'formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText'
941                         propertyPath: 'options.regularExpression'
942                         propertyValidators:
943                           10: 'NotEmpty'
944
945           SelectionMixin:
946             formEditor:
947               predefinedDefaults:
948                 properties:
949                   options: []
950               editors:
951                 300:
952                   identifier: 'options'
953                   templateName: 'Inspector-PropertyGridEditor'
954                   label: 'formEditor.elements.SelectionMixin.editor.options.label'
955                   propertyPath: 'properties.options'
956                   isSortable: true
957                   enableAddRow: true
958                   enableDeleteRow: true
959                   removeLastAvailableRowFlashMessageTitle: 'formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageTitle'
960                   removeLastAvailableRowFlashMessageMessage: 'formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageMessage'
961
962           SingleSelectionMixin:
963             formEditor:
964               editors:
965                 300:
966                   shouldShowPreselectedValueColumn: 'single'
967                   multiSelection: false
968
969           MultiSelectionMixin:
970             formEditor:
971               editors:
972                 300:
973                   shouldShowPreselectedValueColumn: 'multiple'
974                   multiSelection: true
975                 900:
976                   identifier: 'validators'
977                   templateName: 'Inspector-ValidatorsEditor'
978                   label: 'formEditor.elements.MultiSelectionMixin.editor.validators.label'
979                   selectOptions:
980                     10:
981                       value: ''
982                       label: 'formEditor.elements.MultiSelectionMixin.editor.validators.EmptyValue.label'
983                     20:
984                       value: 'Count'
985                       label: 'formEditor.elements.MultiSelectionMixin.editor.validators.Count.label'
986
987               propertyCollections:
988                 validators:
989                   10:
990                     identifier: 'Count'
991                     editors:
992                       __inheritances:
993                         10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin'
994                         20: 'TYPO3.CMS.Form.mixins.formElementMixins.MinimumMaximumEditorsMixin'
995                       100:
996                         label: 'formEditor.elements.MultiSelectionMixin.validators.Count.editor.header.label'
997
998           FileUploadMixin:
999             formEditor:
1000               predefinedDefaults:
1001                 properties:
1002                   saveToFileMount: '1:/user_upload/'
1003               editors:
1004                 400:
1005                   identifier: 'saveToFileMount'
1006                   templateName: 'Inspector-SingleSelectEditor'
1007                   label: 'formEditor.elements.FileUploadMixin.editor.saveToFileMount.label'
1008                   propertyPath: 'properties.saveToFileMount'
1009                   selectOptions:
1010                     10:
1011                       value: '1:/user_upload/'
1012                       label: '1:/user_upload/'
1013
1014           formEmailFinisherMixin:
1015             editors:
1016               __inheritances:
1017                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin'
1018               100:
1019                 label: 'formEditor.elements.Form.finisher.EmailToSender.editor.header.label'
1020               200:
1021                 identifier: 'subject'
1022                 templateName: 'Inspector-TextEditor'
1023                 label: 'formEditor.elements.Form.finisher.EmailToSender.editor.subject.label'
1024                 propertyPath: 'options.subject'
1025                 enableFormelementSelectionButton: true
1026                 propertyValidators:
1027                   10: 'NotEmpty'
1028                   20: 'FormElementIdentifierWithinCurlyBracesInclusive'
1029               300:
1030                 identifier: 'recipientAddress'
1031                 templateName: 'Inspector-TextEditor'
1032                 label: 'formEditor.elements.Form.finisher.EmailToSender.editor.recipientAddress.label'
1033                 propertyPath: 'options.recipientAddress'
1034                 enableFormelementSelectionButton: true
1035                 propertyValidatorsMode: 'OR'
1036                 propertyValidators:
1037                   10: 'NaiveEmail'
1038                   20: 'FormElementIdentifierWithinCurlyBracesExclusive'
1039               400:
1040                 identifier: 'recipientName'
1041                 templateName: 'Inspector-TextEditor'
1042                 label: 'formEditor.elements.Form.finisher.EmailToSender.editor.recipientName.label'
1043                 propertyPath: 'options.recipientName'
1044                 enableFormelementSelectionButton: true
1045                 propertyValidators:
1046                   10: 'FormElementIdentifierWithinCurlyBracesInclusive'
1047               500:
1048                 identifier: 'senderAddress'
1049                 templateName: 'Inspector-TextEditor'
1050                 label: 'formEditor.elements.Form.finisher.EmailToSender.editor.senderAddress.label'
1051                 propertyPath: 'options.senderAddress'
1052                 enableFormelementSelectionButton: true
1053                 propertyValidatorsMode: 'OR'
1054                 propertyValidators:
1055                   10: 'NaiveEmail'
1056                   20: 'FormElementIdentifierWithinCurlyBracesExclusive'
1057               600:
1058                 identifier: 'senderName'
1059                 templateName: 'Inspector-TextEditor'
1060                 label: 'formEditor.elements.Form.finisher.EmailToSender.editor.senderName.label'
1061                 propertyPath: 'options.senderName'
1062                 enableFormelementSelectionButton: true
1063                 propertyValidators:
1064                   10: 'FormElementIdentifierWithinCurlyBracesInclusive'
1065               700:
1066                 identifier: 'replyToAddress'
1067                 templateName: 'Inspector-TextEditor'
1068                 label: 'formEditor.elements.Form.finisher.EmailToSender.editor.replyToAddress.label'
1069                 propertyPath: 'options.replyToAddress'
1070                 enableFormelementSelectionButton: true
1071                 propertyValidatorsMode: 'OR'
1072                 propertyValidators:
1073                   10: 'NaiveEmailOrEmpty'
1074                   20: 'FormElementIdentifierWithinCurlyBracesExclusive'
1075               800:
1076                 identifier: 'carbonCopyAddress'
1077                 templateName: 'Inspector-TextEditor'
1078                 label: 'formEditor.elements.Form.finisher.EmailToSender.editor.carbonCopyAddress.label'
1079                 propertyPath: 'options.carbonCopyAddress'
1080                 enableFormelementSelectionButton: true
1081                 propertyValidatorsMode: 'OR'
1082                 propertyValidators:
1083                   10: 'NaiveEmailOrEmpty'
1084                   20: 'FormElementIdentifierWithinCurlyBracesExclusive'
1085               900:
1086                 identifier: 'blindCarbonCopyAddress'
1087                 templateName: 'Inspector-TextEditor'
1088                 label: 'formEditor.elements.Form.finisher.EmailToSender.editor.blindCarbonCopyAddress.label'
1089                 propertyPath: 'options.blindCarbonCopyAddress'
1090                 enableFormelementSelectionButton: true
1091                 propertyValidatorsMode: 'OR'
1092                 propertyValidators:
1093                   10: 'NaiveEmailOrEmpty'
1094                   20: 'FormElementIdentifierWithinCurlyBracesExclusive'
1095               1000:
1096                 identifier: 'format'
1097                 templateName: 'Inspector-SingleSelectEditor'
1098                 label: 'formEditor.elements.Form.finisher.EmailToSender.editor.format.label'
1099                 propertyPath: 'options.format'
1100                 selectOptions:
1101                   10:
1102                     value: 'plaintext'
1103                     label: 'formEditor.elements.Form.finisher.EmailToSender.editor.format.1'
1104                   20:
1105                     value: 'html'
1106                     label: 'formEditor.elements.Form.finisher.EmailToSender.editor.format.2'
1107               1100:
1108                 identifier: 'attachUploads'
1109                 templateName: 'Inspector-CheckboxEditor'
1110                 label: 'formEditor.elements.Form.finisher.EmailToSender.editor.attachUploads.label'
1111                 propertyPath: 'options.attachUploads'