[wp-trac] [WordPress Trac] #25439: Prevent loss of unsaved customizer settings or provide means of restoring
WordPress Trac
noreply at wordpress.org
Sun Sep 29 06:07:23 UTC 2013
#25439: Prevent loss of unsaved customizer settings or provide means of restoring
-------------------------+-----------------------------
Reporter: westonruter | Owner:
Type: enhancement | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Appearance | Version: 3.4
Severity: normal | Keywords:
-------------------------+-----------------------------
This is to revisit #20692, opened by koopersmith for 3.4:
> Losing your changes is no fun. ¶ The way I see it, we have two options:
>
> 1) Show an AYS when leaving the customizer by using an onbeforeunload
handler.
> 2) Store unsaved customizations in a customize_data_$stylesheet option.
The fact that certain customize settings persist across theme changes
(options) while others don't (theme_mods and some theme-specific options)
could pose a problem.
In the resolution of that ticket, neither of these options were chosen.
The `beforeunload` handler with confirmation dialog (first option) was
discouraged, and then another suggestion was provided to just make the
Save button more prominent so that users would not neglect to press it
before leaving the customizer. However, it seems the more prominent
placement of the button is not enough.
For the Widgets UI Refresh feature-as-plugin effort, a user test was put
together to test integration with the Customizer. In the video at ~7:30,
after the user had made changes to the controls and previewed them, he
navigated away from the page. He forgot to hit Save & Publish, or didn't
notice it there, and so he lost all of his changes. See the video here:
http://make.wordpress.org/ui/2013/09/18/widgets-sept-16-chat-
notes/#comment-23907
For the 2nd option (storing unsaved settings), another solution than
storing drafted settings in a DB option is this: now that autosave will
store the drafted post in `localStorage`, we could do the same for
settings in the customizer. Since all of the settings are stored in memory
as JS objects, when leaving the customizer with unsaved changes it could
store those settings in `localStorage`.
After having accidentally abandoned changes, when returning to the
customizer, the initially-disabled "Saved" button could then swap out with
an enabled "Restore" button. As soon as a change is made to a setting on
the page, the Restore button would replace with the "Save & Publish"
button, and the `localStorage`-preserved settings would be discarded. But
if the user hits "Restore" then the `localStorage` settings would be
populated into the customizer settings and the button would also change
out from "Restore" to "Save & Publish".
--
Ticket URL: <http://core.trac.wordpress.org/ticket/25439>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list