diff -r 07239de796bb -r e756a8c72c3d cms/drupal/modules/menu/menu.admin.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/drupal/modules/menu/menu.admin.js Fri Sep 08 12:04:06 2017 +0200 @@ -0,0 +1,46 @@ +(function ($) { + +Drupal.behaviors.menuChangeParentItems = { + attach: function (context, settings) { + $('fieldset#edit-menu input').each(function () { + $(this).change(function () { + // Update list of available parent menu items. + Drupal.menu_update_parent_list(); + }); + }); + } +}; + +/** + * Function to set the options of the menu parent item dropdown. + */ +Drupal.menu_update_parent_list = function () { + var values = []; + + $('input:checked', $('fieldset#edit-menu')).each(function () { + // Get the names of all checked menus. + values.push(Drupal.checkPlain($.trim($(this).val()))); + }); + + var url = Drupal.settings.basePath + 'admin/structure/menu/parents'; + $.ajax({ + url: location.protocol + '//' + location.host + url, + type: 'POST', + data: {'menus[]' : values}, + dataType: 'json', + success: function (options) { + // Save key of last selected element. + var selected = $('fieldset#edit-menu #edit-menu-parent :selected').val(); + // Remove all exisiting options from dropdown. + $('fieldset#edit-menu #edit-menu-parent').children().remove(); + // Add new options to dropdown. + jQuery.each(options, function(index, value) { + $('fieldset#edit-menu #edit-menu-parent').append( + $('').val(index).text(value) + ); + }); + } + }); +}; + +})(jQuery);