Go to file
Weston Ruter bb63758be8 Customize: Add changeset locking in Customizer to prevent users from overriding each other's changes.
* Customization locking is checked when changesets are saved and when heartbeat ticks.
* Lock is lifted immediately upon a user closing the Customizer.
* Heartbeat is introduced into Customizer.
* Changes made to user after it was locked by another user are stored as an autosave revision for restoration.
* Lock notification displays link to preview the other user's changes on the frontend.
* A user loading a locked Customizer changeset will be presented with an option to take over.
* Autosave revisions attached to a published changeset are converted into auto-drafts so that they will be presented to users for restoration.
* Focus constraining is improved in overlay notifications.
* Escape key is stopped from propagating in overlay notifications, and it dismisses dismissible overlay notifications.
* Introduces `changesetLocked` state which is used to disable the Save button and suppress the AYS dialog when leaving the Customizer.
* Fixes bug where users could be presented with each other's autosave revisions.

Props sayedwp, westonruter, melchoyce.
See #31436, #31897, #39896.
Fixes #42024.


git-svn-id: https://develop.svn.wordpress.org/trunk@41839 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-12 04:00:15 +00:00
src Customize: Add changeset locking in Customizer to prevent users from overriding each other's changes. 2017-10-12 04:00:15 +00:00
tests Customize: Add changeset locking in Customizer to prevent users from overriding each other's changes. 2017-10-12 04:00:15 +00:00
tools/i18n DOCS: Replace HTTP links with HTTPS. 2016-06-10 04:49:09 +00:00
.editorconfig General: Remove .jshintrc and *.json from the 2-space-indent .editorconfig group. 2017-10-12 01:57:45 +00:00
.gitignore Embeds: Add oEmbed support for someecards.com. 2017-10-02 19:09:46 +00:00
.jshintrc General: Remove .jshintrc and *.json from the 2-space-indent .editorconfig group. 2017-10-12 01:57:45 +00:00
.travis.yml Build/Test tools: Remove PHP 7.2 from the allowed failures list on Travis CI. 2017-10-04 19:53:07 +00:00
Gruntfile.js Build: Webpack instead of Browserify as JavaScript bundler. 2017-10-04 21:00:15 +00:00
jsdoc.conf.json Docs: Add jsdoc.conf.json JSDOC configuration file. 2017-09-11 13:13:40 +00:00
package.json Build: Webpack instead of Browserify as JavaScript bundler. 2017-10-04 21:00:15 +00:00
phpunit.xml.dist Tests: Rename ignored tests in phpunit.xml.dist. 2017-08-18 10:26:50 +00:00
webpack.config.dev.js Build: Webpack instead of Browserify as JavaScript bundler. 2017-10-04 21:00:15 +00:00
webpack.config.prod.js Build: Webpack instead of Browserify as JavaScript bundler. 2017-10-04 21:00:15 +00:00
wp-cli.yml Remove debug mode from WP-CLI by default, as it now outputs too much debugging information to be of use during normal development. 2015-11-28 18:36:06 +00:00
wp-config-sample.php Lightly clean up and improve inline documentation in wp-config-sample.php. 2015-05-10 00:05:30 +00:00
wp-tests-config-sample.php General: Improve terminology used when referring to installations of WordPress and its extensions. 2017-08-22 11:51:11 +00:00