1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- (function ($) {
- Drupal.behaviors.menuFieldsetSummaries = {
- attach: function (context) {
- $('fieldset.menu-link-form', context).drupalSetSummary(function (context) {
- 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');
- }
- });
- }
- };
- /**
- * Automatically fill in a menu link title, if possible.
- */
- Drupal.behaviors.menuLinkAutomaticTitle = {
- attach: function (context) {
- $('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;
- }
- // 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');
- }
- });
- });
- }
- };
- })(jQuery);
|