WordPress.org

Make WordPress Core

Opened 3 years ago

Last modified 3 years ago

#33469 new enhancement

Customizer Menus: Restore active menu to a location after selecting and unsetting another menu

Reported by: morganestes Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version: 4.3
Component: Customize Keywords: needs-patch
Focuses: javascript, administration Cc:

Description

When a location is specified for a menu and another menu is assigned to that location in the Customizer, the first menu is removed even if the new settings aren't saved.

  1. Assign a menu to a location in the customizer. Click "Save & Publish".
  2. Assign a different menu to that location, but do not save.
  3. Uncheck the location from the second menu.

Expected: The previously selected menu for that location should be restored. Actual: The location now has no menu assigned to it.

Attachments (1)

customizer-menus.mov.gif (130.8 KB) - added by morganestes 3 years ago.
Screencast of menus assigned in the customizer

Download all attachments as: .zip

Change History (7)

@morganestes
3 years ago

Screencast of menus assigned in the customizer

#1 @morganestes
3 years ago

  • Summary changed from Setting a menu location in the customizer removes current menu from that location to Customizer Menus: Setting a menu location in the customizer removes current menu from that location

This ticket was mentioned in Slack in #core-customize by voldemortensen. View the logs.


3 years ago

#3 @celloexpressions
3 years ago

  • Keywords needs-patch added
  • Summary changed from Customizer Menus: Setting a menu location in the customizer removes current menu from that location to Customizer Menus: Restore active menu to a location after selecting and unsetting another menu
  • Type changed from defect (bug) to enhancement

The reason this doesn't work this way is because the checkbox is really just a shortcut for the select controls in the Menu Locations section. Could be a nice enhancement, but likely to be very complex in terms of implementation. There isn't really a good way to persist the saved state; perhaps making the default value of the setting the saved value and restoring the default rather than clearing when unchecking a location? But would also need to make sure that you can still remove from a location by unchecking if you're on the active menu.

#4 @tywayne
3 years ago

I may be in the minority here, but I would argue that the proposed change would be confusing.

If a user chooses to remove the location assignment from a menu, it is expected that the location now has no menu assigned to it. If we insert the previous menu back into the location, we are making an assumption about what the user was intending to do that may be incorrect.

#5 @morganestes
3 years ago

My problem with it is that it breaks from my expectation with regards to saving. If I change my mind and don't save the changes to the menu locations, I shouldn't lose the existing settings.

Removing the first menu from that location in favor of the new one makes complete sense, but not restoring it if I choose to not save makes it seem broken, as that is different from "normal" use (changes should only persist on save).

#6 @morganestes
3 years ago

Last edited 3 years ago by morganestes (previous) (diff)
Note: See TracTickets for help on using tickets.