diff --git a/Configuration/NodeTypes.FormElements.FileUpload.yaml b/Configuration/NodeTypes.FormElements.FileUpload.yaml
index 40bee68..5e690f7 100644
--- a/Configuration/NodeTypes.FormElements.FileUpload.yaml
+++ b/Configuration/NodeTypes.FormElements.FileUpload.yaml
@@ -2,6 +2,7 @@
superTypes:
'Neos.Form.Builder:FormElement': true
'Neos.Form.Builder:DefaultValueMixin': false
+ 'Neos.Form.Builder:FileValidatorsMixin': true
postprocessors:
'Neos.Form.Builder:ResourceCollectionsPostprocessor':
postprocessor: 'Neos\Form\Builder\NodeType\ResourceCollectionsPostprocessor'
@@ -14,37 +15,6 @@
'formElement':
icon: 'icon-upload'
properties:
- 'allowedExtensions':
- type: array
- ui:
- label: i18n
- reloadIfChanged: true
- inspector:
- group: 'formElement'
- editor: 'Neos.Neos/Inspector/Editors/SelectBoxEditor'
- editorOptions:
- values:
- 'pdf':
- label: '.pdf'
- icon: 'icon-file-pdf-o'
- 'xls':
- label: '.xls'
- icon: 'icon-file-excel-o'
- 'xlsx':
- label: '.xlsx'
- icon: 'icon-file-excel-o'
- 'doc':
- label: '.doc'
- icon: 'icon-file-text'
- 'docx':
- label: '.docx'
- icon: 'icon-file-text'
- 'odt':
- label: '.odt'
- icon: 'icon-file-text'
- 'csv':
- label: '.csv'
- icon: 'icon-file-text'
'resourceCollection':
type: string
ui:
diff --git a/Configuration/NodeTypes.Mixin.File.yaml b/Configuration/NodeTypes.Mixin.File.yaml
new file mode 100644
index 0000000..4ba01be
--- /dev/null
+++ b/Configuration/NodeTypes.Mixin.File.yaml
@@ -0,0 +1,10 @@
+'Neos.Form.Builder:FileMixin':
+ abstract: true
+ superTypes:
+ 'Neos.Form.Builder:ValidatorsMixin': true
+ childNodes:
+ 'validators':
+ constraints:
+ nodeTypes:
+ 'Neos.Form.Builder:FileSizeValidator': true
+ 'Neos.Form.Builder:FileTypeValidator': true
diff --git a/Configuration/NodeTypes.Mixin.FileValidators.yaml b/Configuration/NodeTypes.Mixin.FileValidators.yaml
new file mode 100644
index 0000000..d3e7b50
--- /dev/null
+++ b/Configuration/NodeTypes.Mixin.FileValidators.yaml
@@ -0,0 +1,10 @@
+'Neos.Form.Builder:FileValidatorsMixin':
+ abstract: true
+ superTypes:
+ 'Neos.Form.Builder:ValidatorsMixin': true
+ childNodes:
+ 'validators':
+ constraints:
+ nodeTypes:
+ 'Neos.Form.Builder:FileSizeValidator': true
+ 'Neos.Form.Builder:FileExtensionValidator': true
diff --git a/Configuration/NodeTypes.Validator.FileExtension.yaml b/Configuration/NodeTypes.Validator.FileExtension.yaml
new file mode 100644
index 0000000..e013eac
--- /dev/null
+++ b/Configuration/NodeTypes.Validator.FileExtension.yaml
@@ -0,0 +1,45 @@
+'Neos.Form.Builder:FileExtensionValidator':
+ superTypes:
+ 'Neos.Form.Builder:AbstractValidator': true
+ ui:
+ label: 'File-Extension Validator'
+ icon: 'icon-file-archive'
+ inspector:
+ groups:
+ 'validator':
+ icon: 'icon-filter'
+ properties:
+ 'allowedExtensions':
+ type: array
+ ui:
+ label: i18n
+ reloadIfChanged: true
+ inspector:
+ group: 'validator'
+ editor: 'Neos.Neos/Inspector/Editors/SelectBoxEditor'
+ editorOptions:
+ values:
+ 'pdf':
+ label: '.pdf'
+ icon: 'icon-file-pdf-o'
+ 'xls':
+ label: '.xls'
+ icon: 'icon-file-excel-o'
+ 'xlsx':
+ label: '.xlsx'
+ icon: 'icon-file-excel-o'
+ 'doc':
+ label: '.doc'
+ icon: 'icon-file-text'
+ 'docx':
+ label: '.docx'
+ icon: 'icon-file-text'
+ 'odt':
+ label: '.odt'
+ icon: 'icon-file-text'
+ 'csv':
+ label: '.csv'
+ icon: 'icon-file-text'
+ 'zip':
+ label: '.zip'
+ icon: 'icon-file-text'
\ No newline at end of file
diff --git a/Configuration/NodeTypes.Validator.FileSize.yaml b/Configuration/NodeTypes.Validator.FileSize.yaml
new file mode 100644
index 0000000..fe35fdc
--- /dev/null
+++ b/Configuration/NodeTypes.Validator.FileSize.yaml
@@ -0,0 +1,25 @@
+'Neos.Form.Builder:FileSizeValidator':
+ superTypes:
+ 'Neos.Form.Builder:AbstractValidator': true
+ ui:
+ label: 'File-Size range Validator'
+ icon: 'icon-arrows-alt-h'
+ inspector:
+ groups:
+ 'validator':
+ icon: 'icon-filter'
+ properties:
+ 'minimum':
+ type: integer
+ defaultValue: 0
+ ui:
+ label: i18n
+ inspector:
+ group: 'validator'
+ 'maximum':
+ type: integer
+ defaultValue: 100
+ ui:
+ label: i18n
+ inspector:
+ group: 'validator'
diff --git a/Resources/Private/Fusion/Validators/FileExtensionValidator.fusion b/Resources/Private/Fusion/Validators/FileExtensionValidator.fusion
new file mode 100644
index 0000000..8ffdaa9
--- /dev/null
+++ b/Resources/Private/Fusion/Validators/FileExtensionValidator.fusion
@@ -0,0 +1,16 @@
+# See Neos\Flow\Validation\Validator\FileTypeValidator
+prototype(Neos.Form.Builder:FileExtensionValidator.Definition) < prototype(Neos.Form.Builder:Validator.Definition) {
+ formElementType = 'Neos.Flow:FileExtension'
+ options {
+ allowedExtensions = Neos.Fusion:DataStructure {
+ pdf = 'pdf'
+ xls = 'xls'
+ xlsx = 'xlsx'
+ doc = 'doc'
+ docx = 'docx'
+ odt = 'odt'
+ csv = 'csv'
+ zip = 'zip'
+ }
+ }
+}
\ No newline at end of file
diff --git a/Resources/Private/Fusion/Validators/FileSizeValidator.fusion b/Resources/Private/Fusion/Validators/FileSizeValidator.fusion
new file mode 100644
index 0000000..b5e38c2
--- /dev/null
+++ b/Resources/Private/Fusion/Validators/FileSizeValidator.fusion
@@ -0,0 +1,8 @@
+# See Neos\Flow\Validation\Validator\FileSizeValidator
+prototype(Neos.Form.Builder:FileSizeValidator.Definition) < prototype(Neos.Form.Builder:Validator.Definition) {
+ formElementType = 'Neos.Flow:FileSize'
+ options {
+ minimum = 0
+ maximum = 10000000
+ }
+}
\ No newline at end of file
diff --git a/Resources/Private/Translations/da/NodeTypes/FileExtensionValidator.xlf b/Resources/Private/Translations/da/NodeTypes/FileExtensionValidator.xlf
new file mode 100644
index 0000000..6db51a8
--- /dev/null
+++ b/Resources/Private/Translations/da/NodeTypes/FileExtensionValidator.xlf
@@ -0,0 +1,11 @@
+
+
+
+
+
+ Allowed file types
+ Tilladte filtyper
+
+
+
+
diff --git a/Resources/Private/Translations/da/NodeTypes/FileSizeValidator.xlf b/Resources/Private/Translations/da/NodeTypes/FileSizeValidator.xlf
new file mode 100644
index 0000000..508d2bb
--- /dev/null
+++ b/Resources/Private/Translations/da/NodeTypes/FileSizeValidator.xlf
@@ -0,0 +1,15 @@
+
+
+
+
+
+ Minimum value
+ Mindste værdi i bytes
+
+
+ Maximum value
+ Højeste værdi i bytes
+
+
+
+
diff --git a/Resources/Private/Translations/de/NodeTypes/FileExtensionValidator.xlf b/Resources/Private/Translations/de/NodeTypes/FileExtensionValidator.xlf
new file mode 100644
index 0000000..b78efe3
--- /dev/null
+++ b/Resources/Private/Translations/de/NodeTypes/FileExtensionValidator.xlf
@@ -0,0 +1,13 @@
+
+
+
+
+
+ Allowed file types
+ Erlaubte Dateitypen
+
+ Target Resource Collection
+ Ziel "Resource Collection"
+
+
+
diff --git a/Resources/Private/Translations/de/NodeTypes/FileSizeValidator.xlf b/Resources/Private/Translations/de/NodeTypes/FileSizeValidator.xlf
new file mode 100644
index 0000000..e1b9e30
--- /dev/null
+++ b/Resources/Private/Translations/de/NodeTypes/FileSizeValidator.xlf
@@ -0,0 +1,13 @@
+
+
+
+
+
+ Minimum value
+ Mindestwert in Bytes
+
+ Maximum value
+ Maximalwert in Bytes
+
+
+
diff --git a/Resources/Private/Translations/en/NodeTypes/FileExtensionValidator.xlf b/Resources/Private/Translations/en/NodeTypes/FileExtensionValidator.xlf
new file mode 100644
index 0000000..3a9da01
--- /dev/null
+++ b/Resources/Private/Translations/en/NodeTypes/FileExtensionValidator.xlf
@@ -0,0 +1,10 @@
+
+
+
+
+
+ Allowed file types
+
+
+
+
diff --git a/Resources/Private/Translations/en/NodeTypes/FileSizeValidator.xlf b/Resources/Private/Translations/en/NodeTypes/FileSizeValidator.xlf
new file mode 100644
index 0000000..fed98e5
--- /dev/null
+++ b/Resources/Private/Translations/en/NodeTypes/FileSizeValidator.xlf
@@ -0,0 +1,13 @@
+
+
+
+
+
+ Minimum value in bytes
+
+
+ Maximum value in bytes
+
+
+
+