Skip to content

Latest commit

 

History

History
1304 lines (1031 loc) · 47.9 KB

CHANGELOG.md

File metadata and controls

1304 lines (1031 loc) · 47.9 KB

v7.4.0

03/29/2024

    • Better modular form support
    • Support for multiple Ajax/XHR forms on a single page either modular-based or manually injected
    • Yarn libraries updated
    • Fixed an issue with cache being tied to core cache_id rather than the more appropriate pages cache_id, which could lead to form properties being cached even when modified.

v7.3.0

12/14/2023

    • Added XHR/Ajax form submission as an option in the form blueprint. See Learn Forms for details.

v7.2.2

12/13/2023

    • Add inline errors for file field. Useful in combination with form: no-validate: true form setting.
    • Validate filename against uploads_dangerous_extensions when using the save: action
    • Cleared 'basic captcha' value when invalid

v7.2.1

06/27/2023

    • Added some optional debug output to help isolate form loading problems
    • More robust fix for multi-language form caching

v7.2.0

06/21/2023

    • Fixed a long-standing bug with cached forms not working properly in multi-language scenarios

v7.1.3

05/09/2023

    • Removed FILTER_SANITIZE_STRING input filter in favor of htmlspecialchars(strip_tags())
    • Fixed a deprecated message when using Route::_toString()
    • Require Grav v1.7.41 as it contains GRAV_SANITIZE_STRING constant

v7.1.2

01/08/2023

    • Fixes issue with multiplication type BasicCaptcha Math Captcha #587

v7.1.1

11/29/2022

    • Fix missing blueprint entries for Turnstile configuration #583

v7.1.0

11/16/2022

v7.0.2

10/05/2022

    • Fix for modular form definitions at root-level (useful for storing shared forms)

v7.0.1

09/20/2022

    • Provided some basic CSS styling for new captcha field

v7.0.0

09/20/2022

    • Added a new custom basic-captcha option with character and math puzzles. No 3rd-part service required.

v6.0.4

08/08/2022

    • Added attributes to field #573

v6.0.3

05/05/2022

    • Regression: Fixed broken addForm() method

v6.0.2

05/02/2022

    • Fixed forms({ route: '/forms/_myform' }) not finding form from non-routable pages (second try)

v6.0.1

04/25/2022

    • Improved prepare_form_field() twig method to include plain_name
    • Fixed columns and column fields with .dotted variables inside to ignore columns and column names
    • Fixed forms({ route: '/forms/_myform' }) not finding forms from non-routable pages

v6.0.0

03/28/2022

    • Added log warning when trying to access form by non-unique name
    • Optimized form caching by not initializing the forms in onPageProcessed event anymore
    • BACKWARD COMPATIBILITY: As form initialization has been delayed, logic relaying on onPageProcessed with forms may not work anymore
    • Fixed select field where option is iterable (#558)
    • Fixed FormPlugin::getForm() to properly search the current page first
    • Fixed FormPlugin::getForm() to ignore fallback if the page was given as parameter
    • Fixed dynamic forms to work with cache turned on
    • Fix nested toggleable: originalValue now checks with ?? instead of is defined

v5.1.7

03/14/2022

    • Added access support for buttons
    • Fixed tabs in the frontend to ensure JS is loaded

v5.1.6

02/07/2022

    • Fixed Select field when using OptGroups, not allowing key/values #541
    • Support for translatable OptGroup labels in Select field #540

v5.1.5

01/24/2022

    • Fixed case in selectize field where custom new entries would not be stored in non multiple lists

v5.1.4

11/16/2021

    • Fixed buttons no longer rendered #537
    • Allow select field to customize autocomplete attribute

v5.1.3

10/26/2021

    • Require Grav 1.7.24
    • Added support to disable a form, making it readonly
    • Added |value_and_label Twig filter to convert options to value/label pairs
    • Improved Twig function include_form_field() to allow the second parameter to be an array of layouts

v5.1.2

09/29/2021

    • Improved support for Twig 2/3

v5.1.1

09/14/2021

    • Require Grav 1.7.21
    • Fixed accidental admin plugin requirement for YAML filter in the form
    • Fixed GravForm.config JS to have correct current_url and current_params settings
    • Fixed custom file upload and remove routes
    • Fixed bug where uploading file has no effect #349
    • Fixed field with numeric field name in prepare_form_fields() #530

v5.1.0

08/31/2021

    • Require Grav 1.7.19
    • Added support for custom form layouts
    • Added Twig function prepare_form_fields() and prepare_form_field() to prepare form fields and field array
    • Added Twig function include_form_field() to get all include paths for the field type
    • Make nonce to a customizable field
    • Fixed bad cookie value for remembering the position of nested tabs

v5.0.3

06/15/2021

    • Removed the windows \r\n line breaks + extraneous escaping in data.txt.twig
    • Use base64_encode filter rather than function

v5.0.2

04/23/2021

    • Better message for invalid nonce #513
    • Better error if Form::getPage() gets called too early #518
    • Added support for custom Toggle id

v5.0.1

03/17/2021

    • Updated de language #510
    • Better field type definitions for avatar and file fields
    • Fixed toggle highlight when there's no value
    • Fixed wrong selected values in select field with integer and boolean values
    • Fixed changelog display #502

v5.0.0

02/17/2021

    • Requires Grav 1.7.0
    • Allow admins to temporarily disable form process actions by setting the value to false #481
    • Add id attribute to hidden field #495
    • Escape text as YAML in multi-line textarea #464
    • Fixed reCaptcha v3 incompatibility with multiple forms on the same page sharing different actions #416
    • Toggle fields do not save false if they are toggleable #497
    • Data template fixes #494
    • Fix deprecated Twig method

v4.3.1

01/31/2021

    • Updated deprecated Twig_SimpleFunction code
    • Added Lithuanian translation #485
    • Fixed state of the checkbox if no value is provided
    • Fixed evaluating default value in hidden field (thanks @NicoHood)
    • Fixed default value to come from the Form in overridable field (thanks @NicoHood)
    • Fix for disabling client_side_validation #482
    • Fix for translations in select field in data template #475
    • PHPDoc fixes

v4.3.0

12/14/2020

    • Added a new ‘condition’ attribute for tab for logic to process if it should display or not
    • Added priority to form translations/config
    • Fix admin access check #463

v4.2.0

12/02/2020

    • Added support for arbitrary attributes on form, textarea and checkbox and buttons. #447 #448
    • Better support for array field key/value when either key or value are left empty
    • Allow data-* form parameters to be used as attributes. #336
    • Allow action param when including form partial #410
    • Also support validate min/max for textarea #455
    • Translate form labels also in text file #444
    • Fixed KeepAlive issue where too large of a session value would fire the keep alive immediately
    • Fixed stringable objects breaking the inputs
    • Remove unused route variable from file field
    • Fix condition for required attribute in toggle field #451
    • Fix form data template when select field is set to multiple #452
    • Fix has-errors for select and other fields #454
    • Fix #453 section title level #459

v4.1.2

10/07/2020

    • Added some missing class attributes

v4.1.1

09/01/2020

    • Key field should not escape the value

v4.1.0

07/29/2020

    • Support JSON based form submissions
    • Improved handling of error messages with more details + translation #428 #429
    • Various improvements for nested form data in data.html.twig and data.txt.twig
    • Use |length rather than |count twig filter
    • Various language updates
    • Disabled the EXIF library for Dropzone for fixing the orientation as it was getting applied twice #1923
    • Forked Dropzone fo fix issue with Resize + EXIF orientation #1923

v4.0.10

06/08/2020

    • Updated languages
    • Fixed redirect causing empty form on homepage forms with no action set

v4.0.9

06/03/2020

    • Fixed bad id attribute on checkbox field #421
    • Show the description span even for an empty description #313

v4.0.8

04/30/2020

    • Fixed issue with force_bool in toggle field to be more robust

v4.0.7

04/27/2020

    • Added ability to hide form fields in data.html.twig and data.txt.twig with field.store: false
    • Updated node dependencies
    • Added new force_bool: true|false option to toggle field to cast strings for use in BC situations
    • Fix markdown links in changelog #415

v4.0.6

03/19/2020

    • CHANGE: Form labels are now displayed in raw format so you can use HTML in them
    • Added support for name attribute on buttons #411
    • Added support for classes option in avatar field
    • Recompiled JS with latest NPM libraries
    • Fixed password field outputting the contents to HTML (will now always be empty when loading the page)
    • Escape default output in formdata.html.twig #384
    • Better JS rendering of captcha field scripts for VueJS template compatibility

v4.0.5

03/05/2020

    • Fixed form actions that post to page anchors should not have current base_url added (e.g. #contact-us)
    • Fixed toggleable buttons no longer holding false state #406

v4.0.4

02/25/2020

    • Fix for enctype in multipart forms #408

v4.0.3

02/11/2020

    • Pass phpstan level 1 tests

v4.0.2

02/03/2020

    • Allow checkbox field to have custom value, default to 1
    • Fixed toggle field not working with toggleable: true
    • Fixed fatal error when form type is disabled

v4.0.1

01/02/2020

    • Improve Grav 1.7 support by not using deprecated $page->modular() call
    • Use form scope if it is defined
    • Fixed bad HTML in select, radio, key, toggle, checkbox ad textarea when using tabindex attribute
    • Fixed bad looking tabs field with a single tab in admin

v4.0.0

11/06/2019

    • Added tabindex to global attributes of default field
    • Add ability to Sanitize SVGs on upload (Grav 1.7+ required)
    • Deprecate select_optgroup as select can handle optgroups now
    • Added missing tabindex checks
    • Refactored field inheritance to make things more reliable
    • Removed jQuery dependency for the reCaptcha field and VanillaJS-ified it instead
    • Removed a stray dump() command
    • Refactored the base templates/forms/default twig templates to make things more extensible
    • Added a new templates/forms/layouts set of twit templates to allow for easier customization
    • Fixed Badly encoded JSON data warning when uploading files grav#2663
    • Fixed a number of escaping issues #368

v3.0.9

09/19/2019

    • Removed jQuery dependency for the reCaptcha field and VanillaJS-ified it instead
    • Updated to ReCaptcha library version 1.2.3
    • Fixed Badly encoded JSON data warning when uploading files grav#2663

v3.0.8

08/14/2019

    • Change form save action location to user-data:// stream #353
    • Updated eu, fr and pl language
    • Make Form::initialize() chainable
    • Added folder option to save: action with fallback
    • Fixed Submit & Redirect not working as expected #355
    • Fixed oversensitive refresh prevention #354
    • Fixed issue with Form JS when pipeline is enabled grav#2592
    • Fixed accept for SVG in file field #364
    • Fixed issue with plugin not returning expected form #309
    • Fixed form message not showing up after reset process
    • Fixed form fields inside a single tab not using value from the form object if it is available
    • Fixed file form field failing resolution checks in certain circumstances

v3.0.7

07/01/2019

    • Fixed file upload when $grav['user'] is not set #352
    • Fixed label markdown being escaped #356

v3.0.6

06/24/2019

    • Fixed regression breaking forms external to the page in some sites
    • Fixed regression with form action in sub-path folders

v3.0.5

06/21/2019

    • Added support for form state saving with dynamic unique id appended to the URL
    • Avoid creating form state if there is no data to be saved
    • Fixed missing check for maximum allowed files in files field
    • Fixed unique form ids getting cached, they should change on every page reload

v3.0.4

06/14/2019

    • Captcha field: fail silently and display error in console if site_key was not defined
    • Support inline-errors, prepend, append in textarea
    • Use less-strict comparison when checking version 3 #344

v3.0.3

05/09/2019

    • Added Text field.copy-to-clipboard which can be used by admin plugin
    • Fixed Flex route issue in list page
    • Fix flex-height of signature field
    • Fix for broken field.recaptcha_site_key #344
    • Fix for checkbox data lang string #343
    • Fix for duplicate inline error messages #337
    • Fixed bad folder permissions when creating folder for file uploads

v3.0.2

04/22/2019

    • Support for Google Recaptcha theme (light/dark) doesn't work in v3 yet.
    • Visual upgrade for form field descriptions #335
    • Fixed issue with recaptcha_not_validated property not being used

v3.0.1

04/15/2019

    • Added support for form task in blueprint
    • Fix url field output in list view

v3.0.0

04/11/2019

    • Allow streams in file field widget #119
    • Use new unified |t translate filter in all fields
    • Google reCAPTCHA v3 support added
    • Google reCAPTCHA v2 Invisible support added
    • Added mutliple forms with reCAPTCHA support
    • Form no longer extends Grav\Common\Iterator (may have some backward compatibility issues with plugins, likely not)
    • Form now uses NestedArrayAccessWithGetters (with '/' separator) and FormTrait traits
    • Added view, key, ignore, section, toggle, tabs and tab form fields
    • Added support for toggleable inputs, which can be disabled/enabled by user
    • Added $grav['forms'] to allow plugins to better use forms #307
    • Added support for custom form types
    • Forms can now remember their state after page reload with YAML datasets: store-state: true set in the fields
    • Added clear-state AJAX task
    • Added task to clear form flash
    • Added support for file-upload and file-remove tasks
    • Added ability to set a custom clear_redirect_url on a form
    • Added Form::setMessage() method
    • Added new form field templates for edit list table
    • Requires Grav 1.6.0-beta.7 (and optionally Admin 1.9.0-beta.7)
    • Backwards incompatibility: Do not allow static Form::getNonce() call, only $form->getNonce() works now
    • Backwards incompatibility: All form field twig files are required to extend field.html.twig to work properly
    • Allow using custom nonce field/action by setting nonce.name and nonce.action inside the form YAML
    • Added html: true support for form buttons (will not escape the button value)
    • Added toggle, tabs and tab form fields
    • Added support for toggleable inputs, which can be disabled/enabled by user
    • Added proper support for hiding form fields in blueprints by using dynamic property like security@: admin.foobar to any field
    • Make fields formname, uniqueid and honeypot non-inputs in form validation
    • Update all Form classes to rely on PageInterface instead of Page class
    • Removed media.upload_limit references
    • Added field type hidden to ip and timestamp actions
    • Improved the hidden field logic to support value or default set
    • Set the message globally on messages object when using a redirect in form
    • Improved logic for finding the current form
    • Added support for data-sets in textarea and select fields
    • Simplify shouldProcessForm() logic
    • Do not cache flat forms list, regenerate it instead
    • Fixed some inconsistencies on how blueprints are handled
    • Improved uploads handling, added new upload: true|false process
    • Make Form implement FormInterface
    • Added field.size in array, select, and textarea
    • Enable forms in admin plugin
    • Removed submit of unchecked fields in frontend
    • Make sure that the images in the file field are not cached in browser
    • Updated code to use PHP 7.1 features
    • Added some extra blocks to file field to make it more extensible
    • Added field.classes to form field to allow customization
    • Used Google reCAPTCHA API all token validation
    • Better filename and mime type handling
    • Now using the new core Grav language prefix
    • Make all form fields to extend field.html.twig
    • Fixed old way to access form name
    • Fixed minor bugs
    • Fixed null date/time in list view
    • Fixed forms not being cached properly
    • Fixed issue with selectize, automatically selecting an unintended value
    • Throw exception if you try to add to a file and don't provide filename #324
    • Fixed file field saving with nested name
    • Fixed file saving if destination folder does not exist
    • Fixed FormFlash object not getting deleted on form post
    • Regression: Fixed ignored form action #318
    • Regression: Fixed modular form submit not triggering the action sometimes
    • Fixed modular form submits without defined action: /path inside the form
    • Fixed form processing in nested modular pages
    • Fixed container fields breaking values from the child fields
    • Fixed form fields not accepting object values
    • Fixed some form fields having no value for nested field sets
    • Fixed double escaping of file type input JSON value
    • Fixed double locking of file when calling processor save
    • Fixed some missing backwards compatibility
    • Fixed some issues with flashed form
    • Fixed Twig 2 compatibility issue
    • Fixed files uploading before captcha check
    • Fixed files uploading before data has been stored
    • Fixed some issues with reCAPTCHA v3
    • Fixed error responses when file actions fail in the form
    • Pass unique_id when uploading files if available

v2.16.4

12/14/2018

    • Better handling of invalid file names during upload
    • Better MIME type checking of files during file upload
    • Do not rely on jQuery for merging languages from form fields #290 #291
    • Remove jQuery dependency in form.html.twig (#290)
    • Added Object.assign-polyfill (#291)

v2.16.3

09/21/2018

    • Use Url:post() to get the $_POST variable (allows common security checks/filtering for the POST data)
    • Various JS tweaks and enhancements
    • Fixed issue where select set up as multiple and with selectize: create: true would not properly merge newly created values on rendering.

v2.16.2

08/23/2018

    • Switched to new Grav Yaml class to support Native + Fallback YAML libraries
    • Simple styling fixes for array field
    • Fixed issue with translations of placeholder text in array field

v2.16.1

08/20/2018

    • Fixed a regression issue with file & array field

v2.16.0

08/20/2018

    • Added new form.keep_alive option to keep session alive #275
    • Added array field for frontend use
    • Improving compatibility autocomplete spec #274

v2.15.1

06/20/2018

    • Including EXIF JS library in the modules dependencies to fix orientation when uploading images
    • Fix HTML data template for checkboxes fields where 'use' property is "keys" #258

v2.15.0

05/31/2018

    • Added support for Uri::post()
    • Added support for autocapitalize, inputmode, and spellcheck options in field definitions

v2.14.1

05/15/2018

v2.14.0

05/11/2018

    • Make pagemedia field available outside of pages context
    • Added option on fields to disable displaying of label (display_label: false)
    • Moved Dropzone HTML into an overridable Twig template
    • Added support for image upload delete in Dropzone file field
    • Added support for optgroup within select field
    • Save forms only once (stops extra work being done)
    • Allow file field to pass dropzone options
    • Added datasets support to fields
    • Added field.classes support to display field
    • Removed overridden class in password field
    • Worked around forms being lost if form cache expired before page cache, see #240
    • Fixed default form in dynamically created page if header uses forms instead of old form field
    • Escape placeholder text in default field

v2.13.3

04/13/2018

    • Added support to save form data in raw format (yaml or json)
    • Added new timestamp action to add a timestamp field

v2.13.2

04/12/2018

    • Added event onFormPrepareValidation to allow some pre-processing before form validation
    • Added new postfix and dateraw options to "Save" action
    • Added support for nest_id boolean flag to fieldset field to nest sub-fields with name of fieldset
    • Added classes attribute to spacer field
    • Fixed Form::setFields() causing validation to fail on added and removed fields

v2.13.1

03/21/2018

    • CAPTCHA fallback to cURL if Fopen is not allowed #224
    • Use visibility:hidden rather than display:none for honeypot field #235
    • Added support for markdown in checkbox field #233
    • Added option to control inline_css: true|false for fields such as honeypot
    • Added class and CSS for honeypot field

v2.13.0

03/09/2018

    • Forced registration of Form page template for admin
    • Implemented support for resolution setting for images in file field
    • Implemented support for resizeWidth, resizeHeight, resizeQuality and updated Dropzone to latest version
    • Added a new signature field
    • Force an onPageProcessed() event if page cache expires before form cache #240
    • Fixed an issue where unlimited size 0 was not being set properly in File field
    • field.description now translated and displays properly

v2.12.0

02/22/2018

    • Added toggle to enable/disable client-side HTML5 validation
    • Added toggle to enable/disable inline-error messages
    • Reformatted form.php plugin class for better readability
    • Fixed an issue with in-content Twig forms not working because forms were not initialized yet

v2.11.5

02/16/2018

    • Added support for form: process: - call: ['Class', 'method'] for custom form handling
    • Fixed regression in v2.11.4: Call to a member function post() on null grav#1720

v2.11.4

02/15/2018

    • Stopped Chrome from auto-completing admin user profile form grav#1847
    • Start using composer to autoload classes
    • Added support for switch to be treated as checkbox
    • Fixed missing form submit in dynamically created pages

v2.11.3

01/31/2018

    • Added support for file in Display field. Allows the ability to read a file and output it, works in combination with |markdown filter
    • Added minlength and maxlength to Textarea field #231

v2.11.2

01/22/2018

    • Added support for markdown in all form fields for label, help, and description when markdown: true is set on field

v2.11.1

12/18/2017

    • Updated default fields to make them more consistent with class names

v2.11.0

12/05/2017

    • Added ability to set novalidate: true on form definition to turn off all HTML5 form validation
    • Improved logic to handle dynamically added forms to be more reliable
    • Added Dutch Translation #207
    • Improved both HTML and JSON error output by utilizing form.status
    • Code Cleanup
    • Fix AJAX response message and wrong status #211
    • Escaped YAML to form save action to prevent parsing errors #206
    • Fixed RU translations #204
    • Fixed nonce check fail not setting status to error #213
    • Fixed validation fail not setting status to error #209
    • Catch ValidationException to avoid potential fatal error
    • Fixed regression issue on reset fields
    • Removed required attribute in individual checkboxes as it forces all to be checked
    • Security fix to ensure file uploads are not manipulated mid-post - thnx @FLH!

v2.10.0

10/26/2017

    • Added ability to 'remember' field values in cookie between submissions #200
    • Added back improved filesize option that falls back to PHP file upload limits by default #202
    • Added missing file upload options into blueprints and language files
    • Added the ability for a form to have an http_response_code and use it for form-messages.html.twig (requires Grav v1.3.6+)

v2.9.3

10/11/2017

    • Removed filesize plugin configuration in favor of system.media.upload_limit
    • Consolidated field.classes and field.wrapper_classes in radio/checkbox/checkboxes #193
    • Remove trailing slash from form action #195
    • Improved honeypot validation check #198

v2.9.2

09/30/2017

    • Improved Polish translation
    • Added missing @input: false attributes to some non-display fields #189

v2.9.1

09/14/2017

    • Fixed backwards compatibility issue with conditional field #188

v2.9.0

09/07/2017

    • Added Refresh Prevention capabilities (Not enabled by default) #184
    • Added support for field attributes #176
    • Added global variables for setting form classes
    • Added support for new select_optgroup form field #165
    • Moved messages output into partial to allow style overriding
    • Logic cleanup
    • Updated Italian and Russian translations
    • Fixed an issue with conditional field not always displaying properly
    • Only add Twig form variable if not already set
    • Fixed issue with multiple forms on a page failing on Captcha client-side validation #182
    • Fixed issue with Ajax forms return full form HTML on error #163

v2.8.2

08/18/2017

    • Added new columns and column fields for controlled form layout

v2.8.1

08/15/2017

    • Added extra class support to the default field for more flexible styling

v2.8.0

07/16/2017

    • Fixed a typo in the spanish translation #167

v2.8.0-rc.2

06/22/2017

    • Add default client-side validation for captcha, with error popup #139
    • Added key observe for select
    • Added Czech translation
    • Bug fix for radio type form field #154
    • Remove double escaping #155

v2.8.0-rc.1

05/22/2017

    • Bundled as RC release for Grav/Admin RC releases

v2.7.1

05/22/2017

    • Force modular sub-pages with forms to set $never_cache_twig = true to improve form processing reliability #153
    • Use new Utils::getPagePathFromToken() method

v2.7.0

05/16/2017

    • Fix issue with dynamically added forms (Registration, Profile, Comments, etc) not processed #149
    • Fixed issue with nested values not being repopulated on form error #140

v2.6.0

05/04/2017

    • Allow form item replacement in redirect location #144
    • Fix regression with file uploads introduced in 2.5.0

v2.5.0

04/24/2017

    • Support proper form handling with nested fields #141
    • Added check for valid Grav forms before trying to create a form object

v2.4.0

04/19/2017

    • Added the ability for front-end forms to use advanced blueprint features such as data-*@ and config-*@
    • Added support for dynamically added pages to process forms properly
    • Added a new avatar field for displaying account avatar
    • Added method to get all data from a form
    • Support task in button types
    • Added step to range field #136
    • Added a new default ajax handler twig template
    • Moved twig events to always process even if forms are not defined
    • Some code cleanup
    • Handle null with session-based form
    • Added support for append/prepend to number field
    • Always process form events as long as a $_POST exists login #101
    • Various fixes for file field
    • Allow manually added pages to process forms and upload files
    • Fixed issue with nested fileds not showing up in data.*.twig templates

v2.3.1

03/23/2017

    • Only include outerclasses DIV if defined #135

v2.3.0

03/17/2017

    • Ability to process any form on any page via action:. Super useful if you want to handle form processing on some other non-form page (or Ajax)
    • Added the ability for the form to set the template: to use to render the form processing response.
    • Fix number field so it works with min value 0 #130

v2.2.0

03/13/2017

    • Added new fieldset form field #125
    • Added new conditional form field to show fields only if some condition is set
    • Added the option to have outer-classes on buttons #124
    • Added the option to disable fields label if not defined #126

v2.1.1

02/17/2017

    • Better default output for select, checkbox and checkboxes fields in the form destination page and in the emails sent via form submit #121

v2.1.0

02/10/2017

    • Reworked logic so form caching is based on Pages::getPagesCacheId()
    • Added url option for button field
    • Fixed issue with honeypot field not throwing exception properly

v2.0.10

02/08/2017

    • Optimistically set 'status' to success when requesting a form via Ajax. Form processing listeners should take care of setting status to something else
    • File uploads are now adding a __form-file-uploader__ POST field to better allow identifying them with Ajax
    • Require jQuery when using the File field, as it's needed by the form.min.js file required in the file upload functionality

v2.0.9

01/24/2017

v2.0.8

12/13/2016

    • RC released as stable
    • Added a new honeypot field for form anti-spam protection

v2.0.8-rc.1

11/26/2016

    • Fixed Forms 2.0 changes for registration form #101
    • Fixed errant reference to Grav DI container in Form#getPagePathFromToken #105
    • Fixed issue with spacer fields being displayed first, not in order #104

v2.0.7

11/17/2016

    • Added method to set all data in a form
    • Added params to form action URL
    • Added ability to add ids to buttons and to set them disabled
    • Moved Files Upload GC logic to function in front-end only

v2.0.6

10/19/2016

    • Fixed translations for display field
    • Fixed #95 multilanguage forms submission
    • Fixed duplicate textarea class tag #98

v2.0.5

09/15/2016

    • Fix passing updating the header through event, no need for return value

v2.0.4

09/15/2016

    • Allow filling the page header form dynamically (e.g. use case: Comments plugin)

v2.0.3

09/12/2016

    • Use Page::slug() for form name if not set in the form itself (better backwards compatibility)

v2.0.2

09/08/2016

    • Added support for Grav's autoescape twig setting
    • Allow to add additional markup fields in form and field twig overrides
    • Updated the french language translation

v2.0.1

09/07/2016

    • Fixed a backwards compatibility issue with Admin forms

v2.0.0

09/07/2016

    • Forms now supports multiple forms per page!
    • Access forms from any other page within the current page
    • Instantiate forms directly in page content with Twig processing enabled
    • New Twig function to get forms data from any other page
    • Ability to use Twig in saved filename
    • Reworked the file field. All files get uploaded via Ajax and are stored upon Submit. Fully backward compatible, file field now includes also a limit and filesize option. The former determines how many files are allowed to be uploaded when in combination with multiple: true (default: 10), the latter determines the file size limit (in MB) allowed for each file (default: 5MB)
    • Added several missing HTML5 form input field types #87
    • Added Support for CSS id in form definition

v1.3.2

08/10/2016

    • Added Romanian translation
    • Fixed an issue with Recaptcha secret throwing errors #84

v1.3.1

07/27/2016

    • Added support for multiple emails in email field (add multiple: true to enable)
    • Fixed backward incompatibility with forms submission and data retrieval getgrav/grav#933

v1.3.0

07/14/2016

    • When uploading a file through a form, if the file is already existing prepend the current day and time to the filename instead of overwriting it.

v1.3.0-rc.4

06/21/2016

    • Fixed running on Grav 1.0.x

v1.3.0-rc.3

06/17/2016

    • Set hints for checkboxes options and allow field descriptions

v1.3.0-rc.2

06/08/2016

    • Allow to process Twig in a hidden field, by setting evaluate: true

v1.3.0-rc.1

06/01/2016

    • French updated

v1.3.0-beta.6

05/23/2016

    • Added support for advanced blueprint functionality in forms
    • Added site-wide form options to set Google Captcha site + secret keys #34
    • Session-based 'flash' storage of form for redirects #48
    • Added ability to append to file if you include a process: save: body: template attribute #65
    • Support keyname form format like admin forms
    • Added backwards compatibility for Captcha field
    • Added 'markdown-notices' style output for better errors
    • Added Forms::getValue() method to retrieve values programatically
    • Changed datetime form field to simply extend text until implemented
    • Updated french language
    • Refactored the files upload logic
    • Missing Language string
    • Fixed errors not getting output

v1.3.0-beta.5

05/12/2016

    • Moved form/field.html.twig file to the default folder, to be more easily extended in themes

v1.3.0-beta.4

05/04/2016

    • Added support for prepend and append field attributes for Text input

v1.3.0-beta.3

05/03/2016

    • Fix for select field admin translation

v1.3.0-beta.2

04/27/2016

    • Fix for autoescape in spacer and display form fields
    • Fix issue with form reset action #66

v1.3.0-beta.1

04/20/2016

    • Added the HTML5 range input field with min and max parameters
    • Allow to override classes in Form definition for the form element
    • Add more blocks in the Form twig template, so classes can be overridden more easily in themes
    • Reworked some fields to fit the new Admin
    • Use scope for form fields to allow fields to be excluded from the data by adding input@: false to their definition
    • Added german translation
    • Allow to add inline Twig to the form message definition
    • Fixed the form action URL for home page forms
    • Fix stopping form events propagation, correctly stop when one event is stopped
    • Allow to translate the fields placeholders and the form message
    • Fix captcha javascript function ordering. Also, render it in the site active language
    • Support attribute for="id" on label for checkbox
    • Fix select fields with the multiple option enabled
    • Fixed select options escaping with autoescape on - #502

v1.2.2

02/11/2016

    • Fixed case issue when including form file.

v1.2.1

02/11/2016

    • Allow placeholder for select field
    • Use common language strings in blueprints
    • Use for attribute in labels
    • Improved README.md
    • Code lint
    • Moved nl2br to correct place or will break for arrays

v1.2.0

01/06/2016

    • Correctly merge the file field configuration
    • restore full file information save

v1.1.0

12/18/2015

    • Croatian translation
    • Added id, style, and disabled options to select fields
    • Allow adding form labels and help text as lang strings
    • Allow translating field content
    • Allow translating button and checkbox labels
    • Allow adding classes to the form field container with field.outerclasses
    • Updated French translation
    • Fixed error message on file upload
    • Fixed overriding defaults for the file type in forms

v1.0.3

12/11/2015

    • Updated languages
    • Allow an action to stop processing
    • Fix captcha validation
    • Fix issue where Form was unsetting valid page

v1.0.2

12/01/2015

    • Fixed merge of defaults settings
    • Support for arrays in data.txt.twig
    • Fixed blueprint for admin

v1.0.1

12/01/2015

    • New file upload field
    • Added modular form template
    • Spanish translation
    • Hungarian translation
    • Italian translation

v1.0.0

11/21/2015

    • Server-side validation of forms #11
    • Added french translation
    • Added nonce form security
    • Show a more meaningful error when the display page is not found
    • Added links to learn site for form examples
    • Label can be omitted
    • Allow user to set the CSS class for buttons
    • Fixed multi-language forms
    • Checkbox is translatable
    • Minor fixes

v0.6.0

10/21/2015

    • Fixed for missing attributes in textarea field
    • Fixed checkbox inputs

v0.5.0

10/15/2015

    • New operation param to allow different file saving strategies
    • Ability to add new file saving strategies
    • Now calls a process() method during form processing
    • Added server-side captcha validation and removed front-end validation
    • Allow filename instead of prefix, format + extension
    • Fixed radio inputs

v0.4.0

9/16/2015

    • PHP server-side form validation
    • Added new Google Catpcha field with front-end validation
    • Add defaults for forms, moved from the themes to the Form plugin
    • Store multi-line fields with line endings converted to HTML

v0.3.0

9/11/2015

    • Refactored all the forms fields

v0.2.1

08/24/2015

    • Translated tooltips

v0.2.0

08/11/2015

    • Disable enable in admin

v0.1.0

08/04/2015

    • ChangeLog started...