Add AYS notice on unsaved menu changes. see #12472
git-svn-id: http://svn.automattic.com/wordpress/trunk@14741 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
@@ -21,6 +21,7 @@ var wpNavMenu;
|
||||
|
||||
menuList : undefined, // Set in init.
|
||||
targetList : undefined, // Set in init.
|
||||
menusChanged : false,
|
||||
|
||||
// Functions that run on init.
|
||||
init : function() {
|
||||
@@ -40,6 +41,8 @@ var wpNavMenu;
|
||||
|
||||
this.attachHomeLinkListener();
|
||||
|
||||
this.attachUnsavedChangesListener();
|
||||
|
||||
if( api.menuList.length ) // If no menu, we're in the + tab.
|
||||
this.initSortables();
|
||||
|
||||
@@ -223,6 +226,7 @@ var wpNavMenu;
|
||||
if( depthChange != 0 ) {
|
||||
ui.item.updateDepthClass( currentDepth );
|
||||
children.shiftDepthClass( depthChange );
|
||||
api.registerChange();
|
||||
}
|
||||
// Update the item data.
|
||||
ui.item.updateParentMenuItemDBId();
|
||||
@@ -253,6 +257,9 @@ var wpNavMenu;
|
||||
updateSharedVars( ui );
|
||||
$(this).sortable( "refreshPositions" );
|
||||
}
|
||||
},
|
||||
update: function(e, ui) {
|
||||
api.registerChange();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -333,6 +340,7 @@ var wpNavMenu;
|
||||
var form = $('#nav-menu-meta');
|
||||
|
||||
form.find('.add-to-menu input').click(function(){
|
||||
api.registerChange();
|
||||
$(this).trigger('wp-add-menu-item', [api.addMenuItemToBottom]);
|
||||
return false;
|
||||
});
|
||||
@@ -477,6 +485,23 @@ var wpNavMenu;
|
||||
});
|
||||
},
|
||||
|
||||
attachUnsavedChangesListener : function() {
|
||||
$('#menu-management input, #menu-management select, #menu-management, #menu-management textarea').change(function(){
|
||||
api.registerChange();
|
||||
});
|
||||
window.onbeforeunload = function(){
|
||||
if ( api.menusChanged )
|
||||
return navMenuL10n.saveAlert;
|
||||
};
|
||||
$('input.menu-save, input.save-menu-item').click(function(){
|
||||
window.onbeforeunload = null;
|
||||
});
|
||||
},
|
||||
|
||||
registerChange : function() {
|
||||
api.menusChanged = true;
|
||||
},
|
||||
|
||||
attachTabsPanelListeners : function() {
|
||||
$('#menu-settings-column').bind('click', function(e) {
|
||||
var selectAreaMatch, activePanel, panelId, wrapper, items,
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user