From ae85abb9833e0600afa0595a912be8065f8bccab Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Fri, 5 Nov 2010 19:47:20 +0000 Subject: - Patch #955610 by casey: impossible to have multiple node forms on one page due to fixed IDs. --- modules/menu/menu.js | 78 +++++++++++++++++++++++++++------------------------- 1 file changed, 40 insertions(+), 38 deletions(-) (limited to 'modules/menu') diff --git a/modules/menu/menu.js b/modules/menu/menu.js index c7041bbdf..8da220143 100644 --- a/modules/menu/menu.js +++ b/modules/menu/menu.js @@ -5,8 +5,8 @@ Drupal.behaviors.menuFieldsetSummaries = { attach: function (context) { $('fieldset.menu-link-form', context).drupalSetSummary(function (context) { - if ($('#edit-menu-enabled', context).attr('checked')) { - return Drupal.checkPlain($('#edit-menu-link-title', context).val()); + if ($('.form-item-menu-enabled input', context).is(':checked')) { + return Drupal.checkPlain($('.form-item-menu-link-title input', context).val()); } else { return Drupal.t('Not in menu'); @@ -20,44 +20,46 @@ Drupal.behaviors.menuFieldsetSummaries = { */ Drupal.behaviors.menuLinkAutomaticTitle = { attach: function (context) { - // Try to find menu settings widget elements as well as a 'title' field in - // the form, but play nicely with user permissions and form alterations. - var $checkbox = $('fieldset.menu-link-form #edit-menu-enabled', context); - var $link_title = $('#edit-menu-link-title', context); - var $title = $('#edit-title', context); - // Bail out if we do not have all required fields. - if (!($checkbox.length && $link_title.length && $title.length)) { - return; - } - // If there is a link title already, mark it as overridden. The user expects - // that toggling the checkbox twice will take over the node's title. - if ($checkbox.attr('checked') && $link_title.val().length) { - $link_title.data('menuLinkAutomaticTitleOveridden', true); - } - // Whenever the value is changed manually, disable this behavior. - $link_title.keyup(function () { - $link_title.data('menuLinkAutomaticTitleOveridden', true); - }); - // Global trigger on checkbox (do not fill-in a value when disabled). - $checkbox.change(function () { - if ($checkbox.attr('checked')) { - if (!$link_title.data('menuLinkAutomaticTitleOveridden')) { - $link_title.val($title.val()); - } - } - else { - $link_title.val(''); - $link_title.removeData('menuLinkAutomaticTitleOveridden'); + $('fieldset.menu-link-form', context).each(function () { + // Try to find menu settings widget elements as well as a 'title' field in + // the form, but play nicely with user permissions and form alterations. + var $checkbox = $('.form-item-menu-enabled input', this); + var $link_title = $('.form-item-menu-link-title input', context); + var $title = $(this).closest('form').find('.form-item-title input'); + // Bail out if we do not have all required fields. + if (!($checkbox.length && $link_title.length && $title.length)) { + return; } - $checkbox.closest('fieldset.vertical-tabs-pane').trigger('summaryUpdated'); - $checkbox.trigger('formUpdated'); - }); - // Take over any title change. - $title.keyup(function () { - if (!$link_title.data('menuLinkAutomaticTitleOveridden') && $checkbox.attr('checked')) { - $link_title.val($title.val()); - $link_title.val($title.val()).trigger('formUpdated'); + // If there is a link title already, mark it as overridden. The user expects + // that toggling the checkbox twice will take over the node's title. + if ($checkbox.is(':checked') && $link_title.val().length) { + $link_title.data('menuLinkAutomaticTitleOveridden', true); } + // Whenever the value is changed manually, disable this behavior. + $link_title.keyup(function () { + $link_title.data('menuLinkAutomaticTitleOveridden', true); + }); + // Global trigger on checkbox (do not fill-in a value when disabled). + $checkbox.change(function () { + if ($checkbox.is(':checked')) { + if (!$link_title.data('menuLinkAutomaticTitleOveridden')) { + $link_title.val($title.val()); + } + } + else { + $link_title.val(''); + $link_title.removeData('menuLinkAutomaticTitleOveridden'); + } + $checkbox.closest('fieldset.vertical-tabs-pane').trigger('summaryUpdated'); + $checkbox.trigger('formUpdated'); + }); + // Take over any title change. + $title.keyup(function () { + if (!$link_title.data('menuLinkAutomaticTitleOveridden') && $checkbox.is(':checked')) { + $link_title.val($title.val()); + $link_title.val($title.val()).trigger('formUpdated'); + } + }); }); } }; -- cgit v1.2.3