Return to site

Webform 8.x-5.x-beta14: Ajaxifying Webforms and Improving User Submission Management

June 29, 2017

Webform 8.x-5.x-beta14 has become a significant release because it addresses several important features and milestones listed on the Webform roadmap, including support for multiple drafts, Ajax-enhancing submission forms and the administrative UI.

Before I start to "show-n-telling" you about these cool new features, wanted to announce that I am targeting monthly releases and explain my goals for each release of the Webform module.

Monthly Releases

Initially,I was reluctant to publically commit to regular releases for software that I am maintaining for free. Turns out my public commitment is a good thing. Targeting regular releases motivates me to organize the Webform's roadmap and issue queue while iteratively working on fixing bugs and adding new features. I’m trying to take an agile approach with maintaining the Webform module that seeks to iteratively implement working features knowing that features and functionality can and should evolve over time.

The Webform for Drupal 8 (formerly known as YAML Form module) is a completely new codebase striving to reach reasonable feature parity with the Webform 7.x-4.x module, which is used by a half million Drupal 7 websites. I've also looked at the Webform ecosystem for Drupal 7 - gradually I’m integrating key Webform add-on modules into the core Webform module for Drupal 8.

Ajaxifying Webform Forms and User Interface

The Webform Ajax module is a perfect example of a contrib module for Drupal 7 that I wanted to add to the core Webform module. Personally, similar to the Views module's Ajax support, I anticipated there’d be a simple checkbox to Ajaxify a webform. Ultimately, the Drupal community's discussion about porting the Webform Ajax module and AndyF's very well thought out starting point, helped me get this work done.

Another benefit of figuring out how to Ajaxify a webform, was abstracting the Ajax callbacks and behaviors into a reusable PHP traits, which then could be used to add the Ajax support to the Webform admin UI. The performance of the Webform UI was, and still is, a pain point for me. Reloading the entire page after every element update seems kludgy in this day and age of rich front-end applications. When combined with experimental system tray, the Ajax-enabled Webform UI is not merely cool - the Webform module's user experience starts to feel fluid and easy to use.

It is time for the "show" part of this "show-n-tell" blog post.

User Submission Management

Aside from improving the overall user experience, I also feel it’s important to continually broaden the Webform module's comprehensive capabilities. For the past decade, the Webform module has been used to quickly build forms and surveys. Some developers have also built custom application systems, using a variety of add-on modules and custom code. A key aspect to building custom applications using the Webform module is managing user submissions. The Webform module includes the ability to allow users to save a draft and view previous submissions. A few months ago, ptsimard posted a feature request with a patch to allow multiple drafts per users, leading me to contemplate additional user submission management improvements. Along with supporting multiple drafts, I concluded that users need to also be able to quickly review their drafts and previous submissions using customized user submission listing pages that link to submissions with customized submission page titles.

Once again, it is time for me to show the new and improved user draft and submission user experience.

What’s ironic about the improved user submission management experience is that even though it can address some of a project's requirement with these new features, limitations still exist. It’s starting to become clear that the Webform module's Views integration is going to be the next feature that needs some love and support. Please checkout the Webform Views module and hopefully we can get it moving forward.

So what’s next?

I just presented Designing and Theme Webforms for Drupal 8 at Design4Drupal. While there, Ethan Marcotte's "Responsive Design: Beyond Our Devices" presentation completely blew me away. Component-based design patterns are being implemented in most Drupal 8 themes and designs. Ethan's presentation made me realize that the Webform module needs to provide a style guide so that designers can fully understand how to design and customize forms and element in Drupal 8.

It’s also time to start thinking about providing a supported Webform migration from D6/D7 to Drupal 8. No migration in Drupal is 100% perfect, but we need to provide developers with a solid starting pointing for migrating webforms and submissions.

Finally, I’ll be doing a Webform 8-x.5.x presentation at Drupal GovCon, which focuses on building rich applications, like event registrations, petitions, and job applications using the Webform module.

For now, I hope you enjoy the latest release of the Webform module for Drupal 8.