Nav Menus: blur/Focus behavior for Create Menu and Add Custom Links. Route "return" presses in each of those areas to proper button press. Better create/save logic on the PHP side.
git-svn-id: http://svn.automattic.com/wordpress/trunk@13739 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
c1654c4751
commit
6786e3ddb3
|
@ -86,8 +86,8 @@ function wp_nav_menu_manage_menu_metabox( $object, $menu ) { ?>
|
||||||
*/
|
*/
|
||||||
function wp_nav_menu_create_metabox() { ?>
|
function wp_nav_menu_create_metabox() { ?>
|
||||||
<p>
|
<p>
|
||||||
<input type="text" name="create-menu-name" id="create-menu-name" class="regular-text" value="" />
|
<input type="text" name="create-menu-name" id="create-menu-name" class="regular-text" value="<?php esc_attr_e( 'Menu name' ); ?>" />
|
||||||
<input type="submit" name="create-menu" id="create-menu" class="button" value="<?php esc_attr_e('Create Menu'); ?>" />
|
<input type="submit" name="create-menu-button" id="create-menu-button" class="button" value="<?php esc_attr_e('Create Menu'); ?>" />
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
|
@ -386,6 +386,39 @@ jQuery(document).ready(function($){
|
||||||
return wp_update_post_data();
|
return wp_update_post_data();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Handle some return keypresses
|
||||||
|
$('#create-menu-name').keypress(function(e){
|
||||||
|
if ( 13 == e.keyCode ) {
|
||||||
|
$('#create-menu-button').click();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#custom-menu-item-url, #custom-menu-item-name').keypress(function(e){
|
||||||
|
if ( 13 == e.keyCode ) {
|
||||||
|
$('#add-custom-links a.button').click();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}).focus(function(){
|
||||||
|
if ( $(this).val() == $(this).attr('defaultValue') && $(this).attr('id') != 'custom-menu-item-url' ) {
|
||||||
|
$(this).val('');
|
||||||
|
}
|
||||||
|
}).blur(function(){
|
||||||
|
if ( $(this).val() == '' ) {
|
||||||
|
$(this).val($(this).attr('defaultValue'));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#create-menu-name').focus(function(){
|
||||||
|
if ( $(this).val() == $(this).attr('defaultValue') ) {
|
||||||
|
$(this).val('');
|
||||||
|
}
|
||||||
|
}).blur(function(){
|
||||||
|
if ( $(this).val() == '' ) {
|
||||||
|
$(this).val($(this).attr('defaultValue'));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// close postboxes that should be closed
|
// close postboxes that should be closed
|
||||||
$('.if-js-closed').removeClass('if-js-closed').addClass('closed');
|
$('.if-js-closed').removeClass('if-js-closed').addClass('closed');
|
||||||
|
|
||||||
|
@ -446,11 +479,12 @@ jQuery(document).ready(function($){
|
||||||
|
|
||||||
// Create a new link then add it to the menu
|
// Create a new link then add it to the menu
|
||||||
$('#add-custom-links .add-to-menu a').click(function(e){
|
$('#add-custom-links .add-to-menu a').click(function(e){
|
||||||
var link_url = jQuery(e.currentTarget).parent().parent().find('#custom-menu-item-url').val();
|
|
||||||
var link_name = jQuery(e.currentTarget).parent().parent().find('#custom-menu-item-name').val();
|
|
||||||
|
|
||||||
// Add link to menu
|
// Add link to menu
|
||||||
wp_add_item_to_menu( 0, '', 'custom', navMenuL10n.custom, 0, link_name, link_url, '', '', '_self', '', '' );
|
if ( $('#custom-menu-item-url').val() == $('#custom-menu-item-url').attr('defaultValue') )
|
||||||
|
return; // Do not allow "http://" submissions to go through
|
||||||
|
wp_add_item_to_menu( 0, '', 'custom', navMenuL10n.custom, 0, $('#custom-menu-item-name').val(), $('#custom-menu-item-url').val(), '', '', '_self', '', '' );
|
||||||
|
$('#custom-menu-item-name').val($('#custom-menu-item-name').attr('defaultValue'));
|
||||||
|
$('#custom-menu-item-url' ).val($('#custom-menu-item-url' ).attr('defaultValue')).focus();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -67,7 +67,7 @@ switch ( $action ) {
|
||||||
check_admin_referer( 'update-nav_menu' );
|
check_admin_referer( 'update-nav_menu' );
|
||||||
|
|
||||||
// Add Menu
|
// Add Menu
|
||||||
if ( isset($_POST['create-menu']) ) {
|
if ( isset($_POST['create-menu-button']) ) {
|
||||||
if ( current_theme_supports('nav-menus') ) {
|
if ( current_theme_supports('nav-menus') ) {
|
||||||
$add_nav_menu = esc_html( $_POST['create-menu-name'] );
|
$add_nav_menu = esc_html( $_POST['create-menu-name'] );
|
||||||
|
|
||||||
|
@ -86,7 +86,8 @@ switch ( $action ) {
|
||||||
}
|
}
|
||||||
unset($add_nav_menu);
|
unset($add_nav_menu);
|
||||||
}
|
}
|
||||||
} elseif ( isset($_POST['menu-name']) ) {
|
} else {
|
||||||
|
if ( isset($_POST['menu-name']) ) {
|
||||||
$old_nav_menu = get_term( $nav_menu_selected_id, 'nav_menu', ARRAY_A );
|
$old_nav_menu = get_term( $nav_menu_selected_id, 'nav_menu', ARRAY_A );
|
||||||
$args = array( 'name' => $_POST['menu-name'], 'slug' => null, 'description' => $old_nav_menu['description'], 'parent' => $old_nav_menu['parent'], );
|
$args = array( 'name' => $_POST['menu-name'], 'slug' => null, 'description' => $old_nav_menu['description'], 'parent' => $old_nav_menu['parent'], );
|
||||||
$new_nav_menu = wp_update_term( $nav_menu_selected_id, 'nav_menu', $args );
|
$new_nav_menu = wp_update_term( $nav_menu_selected_id, 'nav_menu', $args );
|
||||||
|
@ -158,6 +159,7 @@ switch ( $action ) {
|
||||||
}
|
}
|
||||||
$messages_div = '<div id="message" class="updated fade below-h2"><p>' . __('The menu has been updated.') . '</p></div>';
|
$messages_div = '<div id="message" class="updated fade below-h2"><p>' . __('The menu has been updated.') . '</p></div>';
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue