Index: modules/menu/menu.js =================================================================== RCS file: /cvs/drupal/drupal/modules/menu/menu.js,v retrieving revision 1.2 diff -u -r1.2 menu.js --- modules/menu/menu.js 27 Apr 2009 20:19:36 -0000 1.2 +++ modules/menu/menu.js 28 Jun 2009 22:37:06 -0000 @@ -5,9 +5,42 @@ Drupal.behaviors.menuFieldsetSummaries = { attach: function (context) { $('fieldset#edit-menu', context).setSummary(function (context) { - return Drupal.checkPlain($('#edit-menu-link-title', context).val()) || Drupal.t('Not in menu'); + var checked=$('#edit-menu-add-menu', context).attr('checked'); + if (($('#edit-menu-link-title').val().length==0)&&checked) { + $('#edit-menu-link-title', context).val($('#edit-title').val()); + } + if (checked) { + return Drupal.checkPlain($('#edit-menu-link-title', context).val()) || Drupal.t('Not in menu'); + } + else { + return Drupal.t('Not in menu'); + } + }); + + function changeFieldset(context) { + var checked=$('#edit-menu-add-menu', context).attr('checked'); + $('#edit-menu-link-title', context).attr('disabled', !checked); + $('#edit-menu-parent', context).attr('disabled', !checked); + $('#edit-menu-weight', context).attr('disabled', !checked); + if (($('#edit-menu-link-title').val().length==0)||checked) { + $('#edit-menu-link-title', context).val($('#edit-title').val()); + } + } + + changeFieldset(context); + + $('#edit-menu-add-menu').change(function () { + changeFieldset(context); + }); + + $('#edit-menu-link-title').bind('blur', function () { + var checked=$('#edit-menu-add-menu', context).attr('checked'); + if (($('#edit-menu-link-title').val().length==0)&&checked) { + $('#edit-menu-link-title', context).val($('#edit-title').val()); + } }); } }; + })(jQuery); Index: modules/menu/menu.module =================================================================== RCS file: /cvs/drupal/drupal/modules/menu/menu.module,v retrieving revision 1.193 diff -u -r1.193 menu.module --- modules/menu/menu.module 28 Jun 2009 13:08:15 -0000 1.193 +++ modules/menu/menu.module 28 Jun 2009 19:46:32 -0000 @@ -296,7 +296,7 @@ function menu_node_insert($node) { if (isset($node->menu)) { $item = &$node->menu; - if (!empty($item['delete'])) { + if (!$item['add_menu']) { menu_link_delete($item['mlid']); } elseif (trim($item['link_title'])) { @@ -318,7 +318,7 @@ function menu_node_update($node) { if (isset($node->menu)) { $item = &$node->menu; - if (!empty($item['delete'])) { + if (!$item['add_menu']) { menu_link_delete($item['mlid']); } elseif (trim($item['link_title'])) { @@ -409,13 +409,6 @@ ); $item = $form['#node']->menu; - if ($item['mlid']) { - // There is an existing link. - $form['menu']['delete'] = array( - '#type' => 'checkbox', - '#title' => t('Delete this menu item.'), - ); - } if (!$item['link_title']) { $form['menu']['#collapsed'] = TRUE; } @@ -425,10 +418,23 @@ } $form['menu']['#item'] = $item; + if (isset($form_state['values'])) { + $add_menu = $form_state['values']['menu']['add_menu']; + } + else { + $add_menu = strlen($item['link_title'])>0; + } + + $form['menu']['add_menu'] = array( + '#type' => 'checkbox', + '#title' => t('Add this content item to a menu'), + '#default_value' => $add_menu, + ); + $form['menu']['link_title'] = array('#type' => 'textfield', '#title' => t('Menu link title'), '#default_value' => $item['link_title'], - '#description' => t('The link text corresponding to this item that should appear in the menu. Leave blank if you do not wish to add this post to the menu.'), + '#description' => t('The link text corresponding to this item that should appear in the menu.'), '#required' => FALSE, ); // Generate a list of possible parents (not including this item or descendants).