Steps to reproduce:

  1. Create a layout, give it a name, select a template.
  2. Add about as the layout path.
  3. Save

Actual behavior

Error: That path is currently assigned to be an alias for "node/2". Delete the alias first, then save this layout.

Screen Shot 2019-04-23 at 7 02 56 am

The "Delete the alias first" bit is a link that leads you to a confirmation form:

Screen Shot 2019-04-23 at 7 27 52 am

We have made this "smart", so we include a destination back to admin/structure/layouts/add . Still, when the user returns, the form is blank; the layout name, template, and path have not been retained .

Expected behavior

When the user returns to the layout add form, all previously entered data has been retained.

Even more expected behavior

Instead of showing an initial error, then having the user confirm the action, then return them back to the layout add form, we should be redirecting to the confirmation page with a message along the lines of:

That path is currently assigned to be an alias for "node/2". In order to proceed, that alias will be removed and then replaced by this layout.

...once the user responds "yes", we save the layout and provide a success message:

Layout "About" has been created, replacing the path alias for "node/2"

Go above and beyond

We store the node path of the previously removed alias in the layout settings. If the layout is deleted in the future, we check to see if the alias is in use, and we restore it (or at least offer the user the option to). UX+++

GitHub Issue #: 
3703