Skip to content
Enhanced scaffolding plugin for Grails 2+
Groovy JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Enhanced scaffolding plugin

This plugin adds a number of JavaScript enhancements to core Grails scaffolding. The enhancements can be loaded by adding

<r:require module="scaffolding"/>

to a page or layout. If the resources plugin is not being used then individual JavaScript and CSS files need to be included.

The current set of enhancements is:


Displays a "Loading" indicator when there are active AJAX requests pending.


Enhances Grails' flash and error messages to display as dismissible message overlays at the top of the page.


Uses the jQuery-UI autocomplete control to replace select elements used for many-to-many and one-to-many relationships. Note: jQuery-UI is an optional dependency of this plugin so this enhancement will not do anything if jQuery-UI is not found in the page.


Replaces field-specific error messages at the top of the form with tooltips next to the individual fields that are only displayed when the field is focused.


Minor form enhancements including ensuring the first field (or first field with an error) is focused.


Attempts to avoid a "Flash of unstyled content" by only displaying the document body once it has finished loading.


AJAX-enhances scaffolding list pages so that pagination and sorting are done via AJAX instead of reloading the entire page. Note: in order that bookmarking, deep-linking and history navigation (the back and forward buttons) continue to work this enhancement will only load on browsers that support the history API.


Replaces select elements used to represent domain class properties that have a range constraint with native HTML range inputs in browsers that support them.

Included libraries

The enhanced scaffolding plugin depends on the following software:



  • Use pjax instead of grails.list.
  • Get rid of the *.loader.js scripts as they are only necessary for qunit. Possibly use a config driven loader to allow apps to easily disable unwanted enhancements.
  • Move autofocus enhancement to Grails core.


  • grails.range should use a jQuery-UI slider in browsers that do not support input type="range" if jQuery-UI is available.

New enhancements

  • In-place editing of related entities using a modal popup of the relevant create or edit form.
You can’t perform that action at this time.