August 3, 2017

The module formerly known as Yaml Form

The module formerly known as Yaml Form
I recently completed a project that called for a large number of forms to be built, having paid my dues with webforms in Drupal 7 and 8 this was not something I was looking forward to. Diving into webforms always felt like an exercise in frustration and I feared this would be no different. As this was still early days for Drupal 8 I did some scouting and expected to be greeted by the usual array of half ported modules but to my surprise I found Yaml Form. I did my usual peruse of the issue queue, checked out the number of active installs and was pleasantly surprised. Not only was the module working it was impressively polished and full featured. The module has been built from the ground up with an entirely new code base including lots of new features and has eliminated some of the common gripes with with webform.

What’s lived on from Webform

All the basics are there to get you started. The easy to use element builder that we’re all familiar with lives on although it’s received some much needed UI upgrades. The ability to set up conditional logic, send out emails, review and export submission are all in there with some nice extras to boot.

What’s new

Handlers

With handler you can now send submission results to external URL’s which mean building custom forms for CRM submissions is easier than ever to set up.

Testing

You can now jump over to the test tab and have your form pre-populated with values for easy testing and even use devel generate to handle multiple test submissions in one go.

Lots of advanced fields and widgets

Signatures, Likert, range sliders, CodeMirror, star ratings, the list goes on and the best part is you’re not having to scour Drupal.org hoping that someone has built a module to add in this functionality.

Webform Fields

Wizard Pages

I almost snuck this into the advanced fields section but I’ve decided it needs it’s own call out. No more contrib modules, we can now natively create multi-step forms in webform. It’s incredibly intuitive and a godsend for those massive forms we have to build from time to time.

Webform Wizard

Field input masks

While I don’t find these entirely useful for things like phone numbers that vary from country to country there are probably some use cases where these will come in handy to keep your submissions clean and concise. I’d say they fall into the nice extra category as some will definitely get more mileage out of them than others.

CSS and JS on a per element basis

Got that one field you want to do something a little flashy with? Now you can load your own custom CSS/JS on a per form basis or per element basis.

In browser source editing

Prefer setting up your forms in code? You can now edit the yaml markup directly on the admin page and even copy elements over from an existing form in a flash.

Add-ons!

This is a feature I really like and should be standard on all core module heck even contrib developers should take notice. If you jump over to the Add-ons tab you are greeted with a list of all the add-on modules currently available for webforms complete with categorization and some helpful descriptions. This is something I think is really important for increasing the usability of drupal modules, it takes the guess work out of finding the features I want and it’s a great way for module developers to rubber stamp projects they feel are adding value to their work which is a win win for everyone.

Addons!

Tutorial videos

This is something that really display the extra mile jrockowitz is going to get developers familiar with the module. If you’re having trouble figuring out how to properly configure your forms emails for instance, simply click the “Watch Video” link at the top of the page and you’ll be greeted with a handy video that goes over the ins and outs of that feature.

Tutorials

Layout elements

Webform comes equipped with flexbox elements that easily help you get your module on the right track before you ever touch it in your theme. This lets you build some really attractive forms that more often than not need very little theme help which is a huge plus when handing the site over to a hands-on client. With very little effort and a bit of training you can give your client the power to manage their own form creation from start to finish.

Translatable fields

Developers of multilingual sites rejoice, no more form duplication! Fields are now translatable, need i say more?

Final Thoughts

Whether you’re a form builder or developer who want to get in and create forms with code this module is a dream to work with. It’s incredibly powerful and scalable and will have you building beautiful forms with ease in no time. Stepping back for a second I would like to declare webform the gold standard for contrib modules in Drupal 8, it’s what every one of us should strive for when developing modules for the community. Every aspect of it is well thought out and goes the extra mile, it’s the full package and it makes webforms fun again. Play around with it, have some fun and look forward to your next project that needs a form.

P.S. If you run into jrockowitz give him a high five because he’s put an incredible amount of work into this project.