/**
- * @file
- * Menu UI admin behaviors.
- */
+* DO NOT EDIT THIS FILE.
+* See the following change record for more information,
+* https://www.drupal.org/node/2815083
+* @preserve
+**/
(function ($, Drupal) {
-
- 'use strict';
-
- /**
- *
- * @type {Drupal~behavior}
- */
Drupal.behaviors.menuUiChangeParentItems = {
- attach: function (context, settings) {
+ attach: function attach(context, settings) {
var $menu = $('#edit-menu').once('menu-parent');
if ($menu.length) {
- // Update the list of available parent menu items to match the initial
- // available menus.
Drupal.menuUiUpdateParentList();
- // Update list of available parent menu items.
$menu.on('change', 'input', Drupal.menuUiUpdateParentList);
}
}
};
- /**
- * Function to set the options of the menu parent item dropdown.
- */
Drupal.menuUiUpdateParentList = function () {
var $menu = $('#edit-menu');
var values = [];
$menu.find('input:checked').each(function () {
- // Get the names of all checked menus.
values.push(Drupal.checkPlain($.trim($(this).val())));
});
$.ajax({
- url: location.protocol + '//' + location.host + Drupal.url('admin/structure/menu/parents'),
+ url: window.location.protocol + '//' + window.location.host + Drupal.url('admin/structure/menu/parents'),
type: 'POST',
- data: {'menus[]': values},
+ data: { 'menus[]': values },
dataType: 'json',
- success: function (options) {
+ success: function success(options) {
var $select = $('#edit-menu-parent');
- // Save key of last selected element.
+
var selected = $select.val();
- // Remove all existing options from dropdown.
+
$select.children().remove();
- // Add new options to dropdown. Keep a count of options for testing later.
+
var totalOptions = 0;
- for (var machineName in options) {
- if (options.hasOwnProperty(machineName)) {
- $select.append(
- $('<option ' + (machineName === selected ? ' selected="selected"' : '') + '></option>').val(machineName).text(options[machineName])
- );
- totalOptions++;
- }
- }
+ Object.keys(options || {}).forEach(function (machineName) {
+ $select.append($('<option ' + (machineName === selected ? ' selected="selected"' : '') + '></option>').val(machineName).text(options[machineName]));
+ totalOptions++;
+ });
- // Hide the parent options if there are no options for it.
$select.closest('div').toggle(totalOptions > 0).attr('hidden', totalOptions === 0);
}
});
};
-
-})(jQuery, Drupal);
+})(jQuery, Drupal);
\ No newline at end of file