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 + + + +