cms/drupal/modules/menu/menu.admin.js
changeset 541 e756a8c72c3d
equal deleted inserted replaced
540:07239de796bb 541:e756a8c72c3d
       
     1 (function ($) {
       
     2 
       
     3 Drupal.behaviors.menuChangeParentItems = {
       
     4   attach: function (context, settings) {
       
     5     $('fieldset#edit-menu input').each(function () {
       
     6       $(this).change(function () {
       
     7         // Update list of available parent menu items.
       
     8         Drupal.menu_update_parent_list();
       
     9       });
       
    10     });
       
    11   }
       
    12 };
       
    13 
       
    14 /**
       
    15  * Function to set the options of the menu parent item dropdown.
       
    16  */
       
    17 Drupal.menu_update_parent_list = function () {
       
    18   var values = [];
       
    19 
       
    20   $('input:checked', $('fieldset#edit-menu')).each(function () {
       
    21     // Get the names of all checked menus.
       
    22     values.push(Drupal.checkPlain($.trim($(this).val())));
       
    23   });
       
    24 
       
    25   var url = Drupal.settings.basePath + 'admin/structure/menu/parents';
       
    26   $.ajax({
       
    27     url: location.protocol + '//' + location.host + url,
       
    28     type: 'POST',
       
    29     data: {'menus[]' : values},
       
    30     dataType: 'json',
       
    31     success: function (options) {
       
    32       // Save key of last selected element.
       
    33       var selected = $('fieldset#edit-menu #edit-menu-parent :selected').val();
       
    34       // Remove all exisiting options from dropdown.
       
    35       $('fieldset#edit-menu #edit-menu-parent').children().remove();
       
    36       // Add new options to dropdown.
       
    37       jQuery.each(options, function(index, value) {
       
    38         $('fieldset#edit-menu #edit-menu-parent').append(
       
    39           $('<option ' + (index == selected ? ' selected="selected"' : '') + '></option>').val(index).text(value)
       
    40         );
       
    41       });
       
    42     }
       
    43   });
       
    44 };
       
    45 
       
    46 })(jQuery);