mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-07-01 15:50:09 +00:00
Customize: Add notice for when there are no nav menus created yet, prompting user to create one.
Props bpayton, melchoyce, westonruter. Fixes #42116. git-svn-id: https://develop.svn.wordpress.org/trunk@41823 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -773,6 +773,9 @@ body.adding-menu-items #customize-preview iframe {
|
||||
/* @todo update selector */
|
||||
#accordion-section-add_menu {
|
||||
margin: 15px 12px;
|
||||
}
|
||||
|
||||
#accordion-section-add_menu h3 {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
@@ -1163,7 +1163,8 @@
|
||||
attachEvents: function() {
|
||||
var section = this,
|
||||
container = section.container,
|
||||
contentContainer = section.contentContainer;
|
||||
contentContainer = section.contentContainer,
|
||||
navMenuSettingPattern = /^nav_menu\[/;
|
||||
|
||||
/*
|
||||
* We have to manually handle section expanded because we do not
|
||||
@@ -1184,7 +1185,66 @@
|
||||
event.preventDefault();
|
||||
} );
|
||||
|
||||
api.Section.prototype.attachEvents.apply( this, arguments );
|
||||
/**
|
||||
* Get number of non-deleted nav menus.
|
||||
*
|
||||
* @since 4.9.0
|
||||
* @returns {number} Count.
|
||||
*/
|
||||
function getNavMenuCount() {
|
||||
var count = 0;
|
||||
api.each( function( setting ) {
|
||||
if ( navMenuSettingPattern.test( setting.id ) && false !== setting.get() ) {
|
||||
count += 1;
|
||||
}
|
||||
} );
|
||||
return count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update visibility of notice to prompt users to create menus.
|
||||
*
|
||||
* @since 4.9.0
|
||||
* @returns {void}
|
||||
*/
|
||||
function updateNoticeVisibility() {
|
||||
container.find( '.add-new-menu-notice' ).prop( 'hidden', getNavMenuCount() > 0 );
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle setting addition.
|
||||
*
|
||||
* @since 4.9.0
|
||||
* @param {wp.customize.Setting} setting - Added setting.
|
||||
* @returns {void}
|
||||
*/
|
||||
function addChangeEventListener( setting ) {
|
||||
if ( navMenuSettingPattern.test( setting.id ) ) {
|
||||
setting.bind( updateNoticeVisibility );
|
||||
updateNoticeVisibility();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle setting removal.
|
||||
*
|
||||
* @since 4.9.0
|
||||
* @param {wp.customize.Setting} setting - Removed setting.
|
||||
* @returns {void}
|
||||
*/
|
||||
function removeChangeEventListener( setting ) {
|
||||
if ( navMenuSettingPattern.test( setting.id ) ) {
|
||||
setting.unbind( updateNoticeVisibility );
|
||||
updateNoticeVisibility();
|
||||
}
|
||||
}
|
||||
|
||||
api.each( addChangeEventListener );
|
||||
api.bind( 'add', addChangeEventListener );
|
||||
api.bind( 'removed', removeChangeEventListener );
|
||||
updateNoticeVisibility();
|
||||
|
||||
api.Section.prototype.attachEvents.apply( section, arguments );
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user