Show the login form in a popup when autosave hits the login grace period, fixes #10704

git-svn-id: http://svn.automattic.com/wordpress/trunk@12021 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
azaozz
2009-10-11 11:26:59 +00:00
parent bc9fb32835
commit efa493655e
8 changed files with 63 additions and 23 deletions

View File

@@ -1,4 +1,4 @@
var autosave, autosaveLast = '', autosavePeriodical, autosaveOldMessage = '', autosaveDelayPreview = false, notSaved = true, blockSave = false;
var autosave, autosaveLast = '', autosavePeriodical, autosaveOldMessage = '', autosaveDelayPreview = false, notSaved = true, blockSave = false, interimLogin = false;
jQuery(document).ready( function($) {
var dotabkey = true;
@@ -81,17 +81,25 @@ jQuery(document).ready( function($) {
});
function autosave_parse_response(response) {
var res = wpAjax.parseAjaxResponse(response, 'autosave'), message = '', postID;
var res = wpAjax.parseAjaxResponse(response, 'autosave'), message = '', postID, sup, url;
if ( res && res.responses && res.responses.length ) {
message = res.responses[0].data; // The saved message or error.
// someone else is editing: disable autosave, set errors
if ( res.responses[0].supplemental ) {
if ( 'disable' == res.responses[0].supplemental['disable_autosave'] ) {
sup = res.responses[0].supplemental;
if ( 'disable' == sup['disable_autosave'] ) {
autosave = function() {};
res = { errors: true };
}
jQuery.each(res.responses[0].supplemental, function(selector, value) {
if ( sup['session_expired'] && (url = sup['session_expired']) ) {
if ( !interimLogin || interimLogin.closed ) {
interimLogin = window.open(url, 'login', 'width=600,height=450,resizable=yes,scrollbars=yes,status=yes');
interimLogin.focus();
}
delete sup['session_expired'];
}
jQuery.each(sup, function(selector, value) {
if ( selector.match(/^replace-/) ) {
jQuery('#'+selector.replace('replace-', '')).val(value);
}

File diff suppressed because one or more lines are too long