Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-admin/js
File: customize-nav-menus.js
menuControl,
[1000] Fix | Delete
menuNameControl,
[1001] Fix | Delete
menuLocationsControl,
[1002] Fix | Delete
menuAutoAddControl,
[1003] Fix | Delete
menuDeleteControl;
[1004] Fix | Delete
[1005] Fix | Delete
// Add the control for managing the menu name.
[1006] Fix | Delete
menuNameControlId = section.id + '[name]';
[1007] Fix | Delete
menuNameControl = api.control( menuNameControlId );
[1008] Fix | Delete
if ( ! menuNameControl ) {
[1009] Fix | Delete
menuNameControl = new api.controlConstructor.nav_menu_name( menuNameControlId, {
[1010] Fix | Delete
type: 'nav_menu_name',
[1011] Fix | Delete
label: api.Menus.data.l10n.menuNameLabel,
[1012] Fix | Delete
section: section.id,
[1013] Fix | Delete
priority: 0,
[1014] Fix | Delete
settings: {
[1015] Fix | Delete
'default': section.id
[1016] Fix | Delete
}
[1017] Fix | Delete
} );
[1018] Fix | Delete
api.control.add( menuNameControl );
[1019] Fix | Delete
menuNameControl.active.set( true );
[1020] Fix | Delete
}
[1021] Fix | Delete
[1022] Fix | Delete
// Add the menu control.
[1023] Fix | Delete
menuControl = api.control( section.id );
[1024] Fix | Delete
if ( ! menuControl ) {
[1025] Fix | Delete
menuControl = new api.controlConstructor.nav_menu( section.id, {
[1026] Fix | Delete
type: 'nav_menu',
[1027] Fix | Delete
section: section.id,
[1028] Fix | Delete
priority: 998,
[1029] Fix | Delete
settings: {
[1030] Fix | Delete
'default': section.id
[1031] Fix | Delete
},
[1032] Fix | Delete
menu_id: section.params.menu_id
[1033] Fix | Delete
} );
[1034] Fix | Delete
api.control.add( menuControl );
[1035] Fix | Delete
menuControl.active.set( true );
[1036] Fix | Delete
}
[1037] Fix | Delete
[1038] Fix | Delete
// Add the menu locations control.
[1039] Fix | Delete
menuLocationsControlId = section.id + '[locations]';
[1040] Fix | Delete
menuLocationsControl = api.control( menuLocationsControlId );
[1041] Fix | Delete
if ( ! menuLocationsControl ) {
[1042] Fix | Delete
menuLocationsControl = new api.controlConstructor.nav_menu_locations( menuLocationsControlId, {
[1043] Fix | Delete
section: section.id,
[1044] Fix | Delete
priority: 999,
[1045] Fix | Delete
settings: {
[1046] Fix | Delete
'default': section.id
[1047] Fix | Delete
},
[1048] Fix | Delete
menu_id: section.params.menu_id
[1049] Fix | Delete
} );
[1050] Fix | Delete
api.control.add( menuLocationsControl.id, menuLocationsControl );
[1051] Fix | Delete
menuControl.active.set( true );
[1052] Fix | Delete
}
[1053] Fix | Delete
[1054] Fix | Delete
// Add the control for managing the menu auto_add.
[1055] Fix | Delete
menuAutoAddControlId = section.id + '[auto_add]';
[1056] Fix | Delete
menuAutoAddControl = api.control( menuAutoAddControlId );
[1057] Fix | Delete
if ( ! menuAutoAddControl ) {
[1058] Fix | Delete
menuAutoAddControl = new api.controlConstructor.nav_menu_auto_add( menuAutoAddControlId, {
[1059] Fix | Delete
type: 'nav_menu_auto_add',
[1060] Fix | Delete
label: '',
[1061] Fix | Delete
section: section.id,
[1062] Fix | Delete
priority: 1000,
[1063] Fix | Delete
settings: {
[1064] Fix | Delete
'default': section.id
[1065] Fix | Delete
}
[1066] Fix | Delete
} );
[1067] Fix | Delete
api.control.add( menuAutoAddControl );
[1068] Fix | Delete
menuAutoAddControl.active.set( true );
[1069] Fix | Delete
}
[1070] Fix | Delete
[1071] Fix | Delete
// Add the control for deleting the menu.
[1072] Fix | Delete
menuDeleteControlId = section.id + '[delete]';
[1073] Fix | Delete
menuDeleteControl = api.control( menuDeleteControlId );
[1074] Fix | Delete
if ( ! menuDeleteControl ) {
[1075] Fix | Delete
menuDeleteControl = new api.Control( menuDeleteControlId, {
[1076] Fix | Delete
section: section.id,
[1077] Fix | Delete
priority: 1001,
[1078] Fix | Delete
templateId: 'nav-menu-delete-button'
[1079] Fix | Delete
} );
[1080] Fix | Delete
api.control.add( menuDeleteControl.id, menuDeleteControl );
[1081] Fix | Delete
menuDeleteControl.active.set( true );
[1082] Fix | Delete
menuDeleteControl.deferred.embedded.done( function () {
[1083] Fix | Delete
menuDeleteControl.container.find( 'button' ).on( 'click', function() {
[1084] Fix | Delete
var menuId = section.params.menu_id;
[1085] Fix | Delete
var menuControl = api.Menus.getMenuControl( menuId );
[1086] Fix | Delete
menuControl.setting.set( false );
[1087] Fix | Delete
});
[1088] Fix | Delete
} );
[1089] Fix | Delete
}
[1090] Fix | Delete
},
[1091] Fix | Delete
[1092] Fix | Delete
/**
[1093] Fix | Delete
*
[1094] Fix | Delete
*/
[1095] Fix | Delete
refreshAssignedLocations: function() {
[1096] Fix | Delete
var section = this,
[1097] Fix | Delete
menuTermId = section.params.menu_id,
[1098] Fix | Delete
currentAssignedLocations = [];
[1099] Fix | Delete
_.each( section.navMenuLocationSettings, function( setting, themeLocation ) {
[1100] Fix | Delete
if ( setting() === menuTermId ) {
[1101] Fix | Delete
currentAssignedLocations.push( themeLocation );
[1102] Fix | Delete
}
[1103] Fix | Delete
});
[1104] Fix | Delete
section.assignedLocations.set( currentAssignedLocations );
[1105] Fix | Delete
},
[1106] Fix | Delete
[1107] Fix | Delete
/**
[1108] Fix | Delete
* @param {Array} themeLocationSlugs Theme location slugs.
[1109] Fix | Delete
*/
[1110] Fix | Delete
updateAssignedLocationsInSectionTitle: function( themeLocationSlugs ) {
[1111] Fix | Delete
var section = this,
[1112] Fix | Delete
$title;
[1113] Fix | Delete
[1114] Fix | Delete
$title = section.container.find( '.accordion-section-title:first' );
[1115] Fix | Delete
$title.find( '.menu-in-location' ).remove();
[1116] Fix | Delete
_.each( themeLocationSlugs, function( themeLocationSlug ) {
[1117] Fix | Delete
var $label, locationName;
[1118] Fix | Delete
$label = $( '<span class="menu-in-location"></span>' );
[1119] Fix | Delete
locationName = api.Menus.data.locationSlugMappedToName[ themeLocationSlug ];
[1120] Fix | Delete
$label.text( api.Menus.data.l10n.menuLocation.replace( '%s', locationName ) );
[1121] Fix | Delete
$title.append( $label );
[1122] Fix | Delete
});
[1123] Fix | Delete
[1124] Fix | Delete
section.container.toggleClass( 'assigned-to-menu-location', 0 !== themeLocationSlugs.length );
[1125] Fix | Delete
[1126] Fix | Delete
},
[1127] Fix | Delete
[1128] Fix | Delete
onChangeExpanded: function( expanded, args ) {
[1129] Fix | Delete
var section = this, completeCallback;
[1130] Fix | Delete
[1131] Fix | Delete
if ( expanded ) {
[1132] Fix | Delete
wpNavMenu.menuList = section.contentContainer;
[1133] Fix | Delete
wpNavMenu.targetList = wpNavMenu.menuList;
[1134] Fix | Delete
[1135] Fix | Delete
// Add attributes needed by wpNavMenu.
[1136] Fix | Delete
$( '#menu-to-edit' ).removeAttr( 'id' );
[1137] Fix | Delete
wpNavMenu.menuList.attr( 'id', 'menu-to-edit' ).addClass( 'menu' );
[1138] Fix | Delete
[1139] Fix | Delete
api.Menus.MenuItemControl.prototype.initAccessibility();
[1140] Fix | Delete
[1141] Fix | Delete
_.each( api.section( section.id ).controls(), function( control ) {
[1142] Fix | Delete
if ( 'nav_menu_item' === control.params.type ) {
[1143] Fix | Delete
control.actuallyEmbed();
[1144] Fix | Delete
}
[1145] Fix | Delete
} );
[1146] Fix | Delete
[1147] Fix | Delete
// Make sure Sortables is initialized after the section has been expanded to prevent `offset` issues.
[1148] Fix | Delete
if ( args.completeCallback ) {
[1149] Fix | Delete
completeCallback = args.completeCallback;
[1150] Fix | Delete
}
[1151] Fix | Delete
args.completeCallback = function() {
[1152] Fix | Delete
if ( 'resolved' !== section.deferred.initSortables.state() ) {
[1153] Fix | Delete
wpNavMenu.initSortables(); // Depends on menu-to-edit ID being set above.
[1154] Fix | Delete
section.deferred.initSortables.resolve( wpNavMenu.menuList ); // Now MenuControl can extend the sortable.
[1155] Fix | Delete
[1156] Fix | Delete
// @todo Note that wp.customize.reflowPaneContents() is debounced,
[1157] Fix | Delete
// so this immediate change will show a slight flicker while priorities get updated.
[1158] Fix | Delete
api.control( 'nav_menu[' + String( section.params.menu_id ) + ']' ).reflowMenuItems();
[1159] Fix | Delete
}
[1160] Fix | Delete
if ( _.isFunction( completeCallback ) ) {
[1161] Fix | Delete
completeCallback();
[1162] Fix | Delete
}
[1163] Fix | Delete
};
[1164] Fix | Delete
}
[1165] Fix | Delete
api.Section.prototype.onChangeExpanded.call( section, expanded, args );
[1166] Fix | Delete
},
[1167] Fix | Delete
[1168] Fix | Delete
/**
[1169] Fix | Delete
* Highlight how a user may create new menu items.
[1170] Fix | Delete
*
[1171] Fix | Delete
* This method reminds the user to create new menu items and how.
[1172] Fix | Delete
* It's exposed this way because this class knows best which UI needs
[1173] Fix | Delete
* highlighted but those expanding this section know more about why and
[1174] Fix | Delete
* when the affordance should be highlighted.
[1175] Fix | Delete
*
[1176] Fix | Delete
* @since 4.9.0
[1177] Fix | Delete
*
[1178] Fix | Delete
* @return {void}
[1179] Fix | Delete
*/
[1180] Fix | Delete
highlightNewItemButton: function() {
[1181] Fix | Delete
api.utils.highlightButton( this.contentContainer.find( '.add-new-menu-item' ), { delay: 2000 } );
[1182] Fix | Delete
}
[1183] Fix | Delete
});
[1184] Fix | Delete
[1185] Fix | Delete
/**
[1186] Fix | Delete
* Create a nav menu setting and section.
[1187] Fix | Delete
*
[1188] Fix | Delete
* @since 4.9.0
[1189] Fix | Delete
*
[1190] Fix | Delete
* @param {string} [name=''] Nav menu name.
[1191] Fix | Delete
* @return {wp.customize.Menus.MenuSection} Added nav menu.
[1192] Fix | Delete
*/
[1193] Fix | Delete
api.Menus.createNavMenu = function createNavMenu( name ) {
[1194] Fix | Delete
var customizeId, placeholderId, setting;
[1195] Fix | Delete
placeholderId = api.Menus.generatePlaceholderAutoIncrementId();
[1196] Fix | Delete
[1197] Fix | Delete
customizeId = 'nav_menu[' + String( placeholderId ) + ']';
[1198] Fix | Delete
[1199] Fix | Delete
// Register the menu control setting.
[1200] Fix | Delete
setting = api.create( customizeId, customizeId, {}, {
[1201] Fix | Delete
type: 'nav_menu',
[1202] Fix | Delete
transport: api.Menus.data.settingTransport,
[1203] Fix | Delete
previewer: api.previewer
[1204] Fix | Delete
} );
[1205] Fix | Delete
setting.set( $.extend(
[1206] Fix | Delete
{},
[1207] Fix | Delete
api.Menus.data.defaultSettingValues.nav_menu,
[1208] Fix | Delete
{
[1209] Fix | Delete
name: name || ''
[1210] Fix | Delete
}
[1211] Fix | Delete
) );
[1212] Fix | Delete
[1213] Fix | Delete
/*
[1214] Fix | Delete
* Add the menu section (and its controls).
[1215] Fix | Delete
* Note that this will automatically create the required controls
[1216] Fix | Delete
* inside via the Section's ready method.
[1217] Fix | Delete
*/
[1218] Fix | Delete
return api.section.add( new api.Menus.MenuSection( customizeId, {
[1219] Fix | Delete
panel: 'nav_menus',
[1220] Fix | Delete
title: displayNavMenuName( name ),
[1221] Fix | Delete
customizeAction: api.Menus.data.l10n.customizingMenus,
[1222] Fix | Delete
priority: 10,
[1223] Fix | Delete
menu_id: placeholderId
[1224] Fix | Delete
} ) );
[1225] Fix | Delete
};
[1226] Fix | Delete
[1227] Fix | Delete
/**
[1228] Fix | Delete
* wp.customize.Menus.NewMenuSection
[1229] Fix | Delete
*
[1230] Fix | Delete
* Customizer section for new menus.
[1231] Fix | Delete
*
[1232] Fix | Delete
* @class wp.customize.Menus.NewMenuSection
[1233] Fix | Delete
* @augments wp.customize.Section
[1234] Fix | Delete
*/
[1235] Fix | Delete
api.Menus.NewMenuSection = api.Section.extend(/** @lends wp.customize.Menus.NewMenuSection.prototype */{
[1236] Fix | Delete
[1237] Fix | Delete
/**
[1238] Fix | Delete
* Add behaviors for the accordion section.
[1239] Fix | Delete
*
[1240] Fix | Delete
* @since 4.3.0
[1241] Fix | Delete
*/
[1242] Fix | Delete
attachEvents: function() {
[1243] Fix | Delete
var section = this,
[1244] Fix | Delete
container = section.container,
[1245] Fix | Delete
contentContainer = section.contentContainer,
[1246] Fix | Delete
navMenuSettingPattern = /^nav_menu\[/;
[1247] Fix | Delete
[1248] Fix | Delete
section.headContainer.find( '.accordion-section-title' ).replaceWith(
[1249] Fix | Delete
wp.template( 'nav-menu-create-menu-section-title' )
[1250] Fix | Delete
);
[1251] Fix | Delete
[1252] Fix | Delete
/*
[1253] Fix | Delete
* We have to manually handle section expanded because we do not
[1254] Fix | Delete
* apply the `accordion-section-title` class to this button-driven section.
[1255] Fix | Delete
*/
[1256] Fix | Delete
container.on( 'click', '.customize-add-menu-button', function() {
[1257] Fix | Delete
section.expand();
[1258] Fix | Delete
});
[1259] Fix | Delete
[1260] Fix | Delete
contentContainer.on( 'keydown', '.menu-name-field', function( event ) {
[1261] Fix | Delete
if ( 13 === event.which ) { // Enter.
[1262] Fix | Delete
section.submit();
[1263] Fix | Delete
}
[1264] Fix | Delete
} );
[1265] Fix | Delete
contentContainer.on( 'click', '#customize-new-menu-submit', function( event ) {
[1266] Fix | Delete
section.submit();
[1267] Fix | Delete
event.stopPropagation();
[1268] Fix | Delete
event.preventDefault();
[1269] Fix | Delete
} );
[1270] Fix | Delete
[1271] Fix | Delete
/**
[1272] Fix | Delete
* Get number of non-deleted nav menus.
[1273] Fix | Delete
*
[1274] Fix | Delete
* @since 4.9.0
[1275] Fix | Delete
* @return {number} Count.
[1276] Fix | Delete
*/
[1277] Fix | Delete
function getNavMenuCount() {
[1278] Fix | Delete
var count = 0;
[1279] Fix | Delete
api.each( function( setting ) {
[1280] Fix | Delete
if ( navMenuSettingPattern.test( setting.id ) && false !== setting.get() ) {
[1281] Fix | Delete
count += 1;
[1282] Fix | Delete
}
[1283] Fix | Delete
} );
[1284] Fix | Delete
return count;
[1285] Fix | Delete
}
[1286] Fix | Delete
[1287] Fix | Delete
/**
[1288] Fix | Delete
* Update visibility of notice to prompt users to create menus.
[1289] Fix | Delete
*
[1290] Fix | Delete
* @since 4.9.0
[1291] Fix | Delete
* @return {void}
[1292] Fix | Delete
*/
[1293] Fix | Delete
function updateNoticeVisibility() {
[1294] Fix | Delete
container.find( '.add-new-menu-notice' ).prop( 'hidden', getNavMenuCount() > 0 );
[1295] Fix | Delete
}
[1296] Fix | Delete
[1297] Fix | Delete
/**
[1298] Fix | Delete
* Handle setting addition.
[1299] Fix | Delete
*
[1300] Fix | Delete
* @since 4.9.0
[1301] Fix | Delete
* @param {wp.customize.Setting} setting - Added setting.
[1302] Fix | Delete
* @return {void}
[1303] Fix | Delete
*/
[1304] Fix | Delete
function addChangeEventListener( setting ) {
[1305] Fix | Delete
if ( navMenuSettingPattern.test( setting.id ) ) {
[1306] Fix | Delete
setting.bind( updateNoticeVisibility );
[1307] Fix | Delete
updateNoticeVisibility();
[1308] Fix | Delete
}
[1309] Fix | Delete
}
[1310] Fix | Delete
[1311] Fix | Delete
/**
[1312] Fix | Delete
* Handle setting removal.
[1313] Fix | Delete
*
[1314] Fix | Delete
* @since 4.9.0
[1315] Fix | Delete
* @param {wp.customize.Setting} setting - Removed setting.
[1316] Fix | Delete
* @return {void}
[1317] Fix | Delete
*/
[1318] Fix | Delete
function removeChangeEventListener( setting ) {
[1319] Fix | Delete
if ( navMenuSettingPattern.test( setting.id ) ) {
[1320] Fix | Delete
setting.unbind( updateNoticeVisibility );
[1321] Fix | Delete
updateNoticeVisibility();
[1322] Fix | Delete
}
[1323] Fix | Delete
}
[1324] Fix | Delete
[1325] Fix | Delete
api.each( addChangeEventListener );
[1326] Fix | Delete
api.bind( 'add', addChangeEventListener );
[1327] Fix | Delete
api.bind( 'removed', removeChangeEventListener );
[1328] Fix | Delete
updateNoticeVisibility();
[1329] Fix | Delete
[1330] Fix | Delete
api.Section.prototype.attachEvents.apply( section, arguments );
[1331] Fix | Delete
},
[1332] Fix | Delete
[1333] Fix | Delete
/**
[1334] Fix | Delete
* Set up the control.
[1335] Fix | Delete
*
[1336] Fix | Delete
* @since 4.9.0
[1337] Fix | Delete
*/
[1338] Fix | Delete
ready: function() {
[1339] Fix | Delete
this.populateControls();
[1340] Fix | Delete
},
[1341] Fix | Delete
[1342] Fix | Delete
/**
[1343] Fix | Delete
* Create the controls for this section.
[1344] Fix | Delete
*
[1345] Fix | Delete
* @since 4.9.0
[1346] Fix | Delete
*/
[1347] Fix | Delete
populateControls: function() {
[1348] Fix | Delete
var section = this,
[1349] Fix | Delete
menuNameControlId,
[1350] Fix | Delete
menuLocationsControlId,
[1351] Fix | Delete
newMenuSubmitControlId,
[1352] Fix | Delete
menuNameControl,
[1353] Fix | Delete
menuLocationsControl,
[1354] Fix | Delete
newMenuSubmitControl;
[1355] Fix | Delete
[1356] Fix | Delete
menuNameControlId = section.id + '[name]';
[1357] Fix | Delete
menuNameControl = api.control( menuNameControlId );
[1358] Fix | Delete
if ( ! menuNameControl ) {
[1359] Fix | Delete
menuNameControl = new api.controlConstructor.nav_menu_name( menuNameControlId, {
[1360] Fix | Delete
label: api.Menus.data.l10n.menuNameLabel,
[1361] Fix | Delete
description: api.Menus.data.l10n.newMenuNameDescription,
[1362] Fix | Delete
section: section.id,
[1363] Fix | Delete
priority: 0
[1364] Fix | Delete
} );
[1365] Fix | Delete
api.control.add( menuNameControl.id, menuNameControl );
[1366] Fix | Delete
menuNameControl.active.set( true );
[1367] Fix | Delete
}
[1368] Fix | Delete
[1369] Fix | Delete
menuLocationsControlId = section.id + '[locations]';
[1370] Fix | Delete
menuLocationsControl = api.control( menuLocationsControlId );
[1371] Fix | Delete
if ( ! menuLocationsControl ) {
[1372] Fix | Delete
menuLocationsControl = new api.controlConstructor.nav_menu_locations( menuLocationsControlId, {
[1373] Fix | Delete
section: section.id,
[1374] Fix | Delete
priority: 1,
[1375] Fix | Delete
menu_id: '',
[1376] Fix | Delete
isCreating: true
[1377] Fix | Delete
} );
[1378] Fix | Delete
api.control.add( menuLocationsControlId, menuLocationsControl );
[1379] Fix | Delete
menuLocationsControl.active.set( true );
[1380] Fix | Delete
}
[1381] Fix | Delete
[1382] Fix | Delete
newMenuSubmitControlId = section.id + '[submit]';
[1383] Fix | Delete
newMenuSubmitControl = api.control( newMenuSubmitControlId );
[1384] Fix | Delete
if ( !newMenuSubmitControl ) {
[1385] Fix | Delete
newMenuSubmitControl = new api.Control( newMenuSubmitControlId, {
[1386] Fix | Delete
section: section.id,
[1387] Fix | Delete
priority: 1,
[1388] Fix | Delete
templateId: 'nav-menu-submit-new-button'
[1389] Fix | Delete
} );
[1390] Fix | Delete
api.control.add( newMenuSubmitControlId, newMenuSubmitControl );
[1391] Fix | Delete
newMenuSubmitControl.active.set( true );
[1392] Fix | Delete
}
[1393] Fix | Delete
},
[1394] Fix | Delete
[1395] Fix | Delete
/**
[1396] Fix | Delete
* Create the new menu with name and location supplied by the user.
[1397] Fix | Delete
*
[1398] Fix | Delete
* @since 4.9.0
[1399] Fix | Delete
*/
[1400] Fix | Delete
submit: function() {
[1401] Fix | Delete
var section = this,
[1402] Fix | Delete
contentContainer = section.contentContainer,
[1403] Fix | Delete
nameInput = contentContainer.find( '.menu-name-field' ).first(),
[1404] Fix | Delete
name = nameInput.val(),
[1405] Fix | Delete
menuSection;
[1406] Fix | Delete
[1407] Fix | Delete
if ( ! name ) {
[1408] Fix | Delete
nameInput.addClass( 'invalid' );
[1409] Fix | Delete
nameInput.focus();
[1410] Fix | Delete
return;
[1411] Fix | Delete
}
[1412] Fix | Delete
[1413] Fix | Delete
menuSection = api.Menus.createNavMenu( name );
[1414] Fix | Delete
[1415] Fix | Delete
// Clear name field.
[1416] Fix | Delete
nameInput.val( '' );
[1417] Fix | Delete
nameInput.removeClass( 'invalid' );
[1418] Fix | Delete
[1419] Fix | Delete
contentContainer.find( '.assigned-menu-location input[type=checkbox]' ).each( function() {
[1420] Fix | Delete
var checkbox = $( this ),
[1421] Fix | Delete
navMenuLocationSetting;
[1422] Fix | Delete
[1423] Fix | Delete
if ( checkbox.prop( 'checked' ) ) {
[1424] Fix | Delete
navMenuLocationSetting = api( 'nav_menu_locations[' + checkbox.data( 'location-id' ) + ']' );
[1425] Fix | Delete
navMenuLocationSetting.set( menuSection.params.menu_id );
[1426] Fix | Delete
[1427] Fix | Delete
// Reset state for next new menu.
[1428] Fix | Delete
checkbox.prop( 'checked', false );
[1429] Fix | Delete
}
[1430] Fix | Delete
} );
[1431] Fix | Delete
[1432] Fix | Delete
wp.a11y.speak( api.Menus.data.l10n.menuAdded );
[1433] Fix | Delete
[1434] Fix | Delete
// Focus on the new menu section.
[1435] Fix | Delete
menuSection.focus( {
[1436] Fix | Delete
completeCallback: function() {
[1437] Fix | Delete
menuSection.highlightNewItemButton();
[1438] Fix | Delete
}
[1439] Fix | Delete
} );
[1440] Fix | Delete
},
[1441] Fix | Delete
[1442] Fix | Delete
/**
[1443] Fix | Delete
* Select a default location.
[1444] Fix | Delete
*
[1445] Fix | Delete
* This method selects a single location by default so we can support
[1446] Fix | Delete
* creating a menu for a specific menu location.
[1447] Fix | Delete
*
[1448] Fix | Delete
* @since 4.9.0
[1449] Fix | Delete
*
[1450] Fix | Delete
* @param {string|null} locationId - The ID of the location to select. `null` clears all selections.
[1451] Fix | Delete
* @return {void}
[1452] Fix | Delete
*/
[1453] Fix | Delete
selectDefaultLocation: function( locationId ) {
[1454] Fix | Delete
var locationControl = api.control( this.id + '[locations]' ),
[1455] Fix | Delete
locationSelections = {};
[1456] Fix | Delete
[1457] Fix | Delete
if ( locationId !== null ) {
[1458] Fix | Delete
locationSelections[ locationId ] = true;
[1459] Fix | Delete
}
[1460] Fix | Delete
[1461] Fix | Delete
locationControl.setSelections( locationSelections );
[1462] Fix | Delete
}
[1463] Fix | Delete
});
[1464] Fix | Delete
[1465] Fix | Delete
/**
[1466] Fix | Delete
* wp.customize.Menus.MenuLocationControl
[1467] Fix | Delete
*
[1468] Fix | Delete
* Customizer control for menu locations (rendered as a <select>).
[1469] Fix | Delete
* Note that 'nav_menu_location' must match the WP_Customize_Nav_Menu_Location_Control::$type.
[1470] Fix | Delete
*
[1471] Fix | Delete
* @class wp.customize.Menus.MenuLocationControl
[1472] Fix | Delete
* @augments wp.customize.Control
[1473] Fix | Delete
*/
[1474] Fix | Delete
api.Menus.MenuLocationControl = api.Control.extend(/** @lends wp.customize.Menus.MenuLocationControl.prototype */{
[1475] Fix | Delete
initialize: function( id, options ) {
[1476] Fix | Delete
var control = this,
[1477] Fix | Delete
matches = id.match( /^nav_menu_locations\[(.+?)]/ );
[1478] Fix | Delete
control.themeLocation = matches[1];
[1479] Fix | Delete
api.Control.prototype.initialize.call( control, id, options );
[1480] Fix | Delete
},
[1481] Fix | Delete
[1482] Fix | Delete
ready: function() {
[1483] Fix | Delete
var control = this, navMenuIdRegex = /^nav_menu\[(-?\d+)]/;
[1484] Fix | Delete
[1485] Fix | Delete
// @todo It would be better if this was added directly on the setting itself, as opposed to the control.
[1486] Fix | Delete
control.setting.validate = function( value ) {
[1487] Fix | Delete
if ( '' === value ) {
[1488] Fix | Delete
return 0;
[1489] Fix | Delete
} else {
[1490] Fix | Delete
return parseInt( value, 10 );
[1491] Fix | Delete
}
[1492] Fix | Delete
};
[1493] Fix | Delete
[1494] Fix | Delete
// Create and Edit menu buttons.
[1495] Fix | Delete
control.container.find( '.create-menu' ).on( 'click', function() {
[1496] Fix | Delete
var addMenuSection = api.section( 'add_menu' );
[1497] Fix | Delete
addMenuSection.selectDefaultLocation( this.dataset.locationId );
[1498] Fix | Delete
addMenuSection.focus();
[1499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function