The Cancel Button module allows site administrators to enable a cancel button on entity forms.

The destination where the cancel button takes the user varies based on the context.

  • If the form itself has a redirect set internally (through FormState::setRedirect(), often used in form submit handler code), the cancel button will direct the user to the form's redirect destination.
  • If there is no internal form redirect in the form's submit handler code, but there is a destination parameter in the URL (https://www.example.com/node/1/edit?destination=/admin/content), the cancel button will direct the user to the path in the destination URL parameter.
  • If there is no destination parameter in the URL, and this is the standalone edit form page for the entity (for example, https://www.example.com/node/1/edit), the cancel button will direct the user to one of the following pages, in this order of precedence:
    • If the entity has a canonical page defined (a standalone 'view' page for the entity, for example https://www.example.com/node/1), then the cancel button will direct the user there.
    • If a canonical page for the entity cannot be found, but the entity type has a 'collection' page defined (for example, https://www.example.com/admin/structure/types for a Content Type configuration entity), then the cancel button will direct the user to the collection page.
    • If there is neither a canonical page nor a collection page available for the entity, and the form is for a field configuration, then the cancel button will direct the user to page that lists the fields for the bundle on which the current field appears.
  • If none of the above are available, the module looks at the Referer in the HTTP headers to see which page the user was viewing prior to accessing the form.
  • If there is no HTTP Referer available (for example, if the user typed the URL to the form directly into the browser, or accessed the form from a browser bookmark), then the user is directed to default cancel destination configured per entity type/bundle at /admin/config/content/cancel-button.
Supporting organizations: 
developed this module while working for Workday.
sponsored development of this module and contributed code.
Drupal 10 maintenance and development

Project information

Releases