diff --git a/CHANGELOG.md b/CHANGELOG.md index 66745e5b..2141aed7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +# v5.0.1 +## 03/17/2021 + +1. [](#improved) + * Updated `de` language [#510](https://github.com/getgrav/grav-plugin-form/pull/510) + * Better field type definitions for avatar and file fields +1. [](#bugfix) + * Fixed toggle highlight when there's no value + * Fixed wrong selected values in `select` field with integer and boolean values + * Fixed changelog display [#502](https://github.com/getgrav/grav-plugin-form/pull/502) + # v5.0.0 ## 02/17/2021 @@ -116,6 +127,7 @@ # v4.0.6 ## 03/19/2020 + 1. [](#new) * CHANGE: Form labels are now displayed in `raw` format so you can use HTML in them * Added support for `name` attribute on buttons [#411](https://github.com/getgrav/grav-plugin-form/issues/411) diff --git a/blueprints.yaml b/blueprints.yaml index 7faa657d..66b8ab07 100644 --- a/blueprints.yaml +++ b/blueprints.yaml @@ -1,8 +1,7 @@ name: Form slug: form type: plugin -version: 5.0.0 -testing: false +version: 5.0.1 description: Enables the forms handling icon: check-square author: diff --git a/form.php b/form.php index 8a0df42e..6fad1d53 100644 --- a/form.php +++ b/form.php @@ -813,7 +813,8 @@ public function getFormFieldTypes() { return [ 'avatar' => [ - 'input@' => false + 'input@' => false, + 'media_field' => true ], 'captcha' => [ 'input@' => false @@ -835,6 +836,7 @@ public function getFormFieldTypes() ], 'file' => [ 'array' => true, + 'media_field' => true, 'validate' => [ 'type' => 'ignore' ] diff --git a/languages.yaml b/languages.yaml index 3a730130..a6bd8bdf 100644 --- a/languages.yaml +++ b/languages.yaml @@ -148,45 +148,45 @@ de: ALLOW_MULTIPLE_HELP: "Erlaubt es, mehr als eine Datei zum Hochladen auszuwählen." DESTINATION: "Ziel" DESTINATION_HELP: "Das Ziel, wohin die Dateien hochgeladen werden sollen." - ACCEPT: "Erlaube MIME-Typen" + ACCEPT: "Erlaubte MIME-Typen" ACCEPT_HELP: "Eine Liste von MIME-Typen, die hochgeladen werden dürfen." ERROR_VALIDATING_CAPTCHA: "Die Überprüfung des Captcha ist fehlgeschlagen." - DATA_SUMMARY: "Hier die Zusammenfassung von dem, was Sie geschrieben haben:" + DATA_SUMMARY: "Hier die Zusammenfassung dessen, was du geschrieben hast:" YES: "Ja" NO: "Nein" NO_FORM_DATA: "Keine Formulardaten vorhanden" RECAPTCHA: "ReCaptcha" - RECAPTCHA_SITE_KEY: "Seiten Schlüssel" + RECAPTCHA_SITE_KEY: "Seitenschlüssel" RECAPTCHA_SITE_KEY_HELP: "Für mehr Informationen besuche https://developers.google.com/recaptcha" RECAPTCHA_SECRET_KEY: "Privater Schlüssel" RECAPTCHA_SECRET_KEY_HELP: "Für mehr Informationen besuche https://developers.google.com/recaptcha" GENERAL: "General" - USE_BUILT_IN_CSS: "Benutze built-in CSS" + USE_BUILT_IN_CSS: "Benutze eingebautes CSS" USE_INLINE_CSS: "Benutze inline CSS" FILEUPLOAD_PREVENT_SELF: '"%s" kann nicht ausserhalb der Seiten verwendet werden.' - FILEUPLOAD_UNABLE_TO_UPLOAD: 'Upload Fehler %s: %s' - FILEUPLOAD_UNABLE_TO_MOVE: 'Fehler beim verschieben von %s nach "%s"' + FILEUPLOAD_UNABLE_TO_UPLOAD: 'Upload-Fehler %s: %s' + FILEUPLOAD_UNABLE_TO_MOVE: 'Fehler beim Verschieben von %s nach "%s"' DROPZONE_CANCEL_UPLOAD: 'Upload abgebrochen' - DROPZONE_CANCEL_UPLOAD_CONFIRMATION: 'Bist du sicher das Du diesen Upload abbrechen möchtest??' - DROPZONE_DEFAULT_MESSAGE: 'Ziehe deine Dateien hierhin Klicke hier' + DROPZONE_CANCEL_UPLOAD_CONFIRMATION: 'Bist du sicher, dass du diesen Upload abbrechen möchtest??' + DROPZONE_DEFAULT_MESSAGE: 'Ziehe deine Dateien hierhin: Klicke hier' DROPZONE_FALLBACK_MESSAGE: 'Dein Browser unterstützt kein "drag and drop".' - DROPZONE_FILE_TOO_BIG: 'Datei zu gross ({{filesize}}MiB). Max Dateigrösse: {{maxFilesize}}MiB.' + DROPZONE_FILE_TOO_BIG: 'Datei zu gross ({{filesize}}MiB). Maximale Dateigrösse: {{maxFilesize}}MiB.' DROPZONE_INVALID_FILE_TYPE: "Du kannst keine Dateien dieses Typs hochladen." - DROPZONE_MAX_FILES_EXCEEDED: "DU kannst keine weiteren Dateien hochladen." + DROPZONE_MAX_FILES_EXCEEDED: "Du kannst keine weiteren Dateien hochladen." DROPZONE_REMOVE_FILE: "Datei entfernen" DROPZONE_REMOVE_FILE_CONFIRMATION: 'Möchtest du diese Datei wirklich löschen?' DROPZONE_RESPONSE_ERROR: "Server antwortet mit {{statusCode}}." LIMIT_HELP: "Maximale anzahl erlaubter Dateien (Mehrfachauswahl erforderlich) " - FILESIZE: "Max Dateigrösse" + FILESIZE: "Maximale Dateigrösse" FILESIZE_HELP: "Maximale Dateigrösse (in MB), 0 = Benutze Standart" - AVOID_OVERWRITING: "Überschreibungen verhindern" - AVOID_OVERWRITING_HELP: "Verhindert überschreibungen und fügt ein Prefix an." + AVOID_OVERWRITING: "Überschreiben verhindern" + AVOID_OVERWRITING_HELP: "Verhindert das Überschreiben und fügt einen Dateipräfix hinzu." RANDOM_NAME: "Zufälliger Name" - RANDOM_NAME_HELP: "Generiert einen 15 Zeichen langen Zufalls Name." + RANDOM_NAME_HELP: "Generiert einen 15 Zeichen langen Zufallsnamen." CLIENT_SIDE_VALIDATION: "Klientseitige Überprüfung" - INLINE_ERRORS: "Inline errors" + INLINE_ERRORS: "Inline-Fehler" DESTINATION_NOT_SPECIFIED: "Zielort nicht definiert" - INVALID_MIME_TYPE: "Der MIME-Type %s für die Datei %s ist nicht erlaubt." + INVALID_MIME_TYPE: "Der MIME-Typ %s für die Datei %s ist nicht erlaubt." INVALID_FILE_EXTENSION: "Die Dateiendung %s ist nicht erlaubt." es: diff --git a/templates/forms/fields/select/select.html.twig b/templates/forms/fields/select/select.html.twig index f3eb2a31..81f58c8e 100644 --- a/templates/forms/fields/select/select.html.twig +++ b/templates/forms/fields/select/select.html.twig @@ -35,6 +35,7 @@ {% set options = options|merge(value|default([]))|array_unique %} {% endif %} + {% set value = value is iterable ? value : value|string %} {% for key, item_value in options %} {% if item_value is iterable and item_value.value %} {% set akey = field.selectize and field.multiple ? item_value : key %} @@ -50,17 +51,18 @@ {% set optgroup_label = item_value|keys|first %} {% for subkey, suboption in field.options[key][optgroup_label] %} - {% set selected = field.selectize ? suboption : subkey %} - {% set item_value = field.selectize and field.multiple ? suboption : subkey %} - {% endfor %} {% else %} - {% set selected = field.selectize ? item_value : key %} - {% set val = field.selectize and field.multiple ? item_value : key %} - + {% set val = (field.selectize and field.multiple ? item_value : key)|string %} + {% set selected = (field.selectize ? item_value : key)|string %} + {% endif %} {% endfor %} diff --git a/templates/forms/fields/toggle/toggle.html.twig b/templates/forms/fields/toggle/toggle.html.twig index b8c137ec..e1353e9b 100644 --- a/templates/forms/fields/toggle/toggle.html.twig +++ b/templates/forms/fields/toggle/toggle.html.twig @@ -27,7 +27,10 @@ {% set maxLen = max(translation|length, maxLen) %} {% endfor %} - {% set value = value|string %} + {# Value falls back to highlight instead of default #} + {% set highlight = field.highlight|string %} + {% set value = (value ?? default ?? highlight)|string %} + {% for key, text in field.options %} {% set key = key|string %} {% set id = "toggle_" ~ field.name ~ key %} @@ -37,15 +40,11 @@ value="{{ key }}" id="{{ id }}" name="{{ (scope ~ field.name)|fieldName }}" - {% if field.highlight is defined %} - class="{{ field.highlight|string is same as(key) ? 'highlight' : '' }}" - {% endif %} - {% if field.disabled or isDisabledToggleable %}disabled="disabled"{% endif %} - {% if key is same as(value) %} - checked="checked" - {% endif %} - {% if required %}required="required"{% endif %} - {% if field.tabindex %}tabindex="{{ field.tabindex }}"{% endif %} + {% if highlight is same as(key) %}class="highlight"{% endif %} + {% if field.disabled or isDisabledToggleable %}disabled="disabled"{% endif %} + {% if key is same as(value) %}checked="checked"{% endif %} + {% if required %}required="required"{% endif %} + {% if field.tabindex %}tabindex="{{ field.tabindex }}"{% endif %} /> {% endfor %}