/**
* Handles the options in the language switcher nav menu metabox.
*
* @package Polylang
*/
jQuery(
function ( $ ) {
$( '#update-nav-menu' ).on(
'click',
function ( e ) {
if ( e.target && e.target.className && -1 != e.target.className.indexOf( 'item-edit' ) ) {
$( "input[value='#pll_switcher'][type=text]" ).parent().parent().parent().each(
function () {
var item = $( this ).attr( 'id' ).substring( 19 );
$( this ).children( 'p:not( .field-move )' ).remove(); // remove default fields we don't need
// item is a number part of id of parent menu item built by WordPress
// pll_data is built server side with i18n strings without HTML and data retrieved from post meta
// the usage of attr method is safe before append call.
h = $( '' ).attr(
{
type: 'hidden',
id: 'edit-menu-item-title-' + item,
name: 'menu-item-title[' + item + ']',
value: pll_data.title
}
);
$( this ).append( h ); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.append
h = $( '' ).attr(
{
type: 'hidden',
id: 'edit-menu-item-url-' + item,
name: 'menu-item-url[' + item + ']',
value: '#pll_switcher'
}
);
$( this ).append( h ); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.append
// a hidden field which exits only if our jQuery code has been executed
h = $( '' ).attr(
{
type: 'hidden',
id: 'edit-menu-item-pll-detect-' + item,
name: 'menu-item-pll-detect[' + item + ']',
value: 1
}
);
$( this ).append( h ); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.append
ids = Array( 'hide_if_no_translation', 'hide_current', 'force_home', 'show_flags', 'show_names', 'dropdown' ); // reverse order
// add the fields
for ( var i = 0, idsLength = ids.length; i < idsLength; i++ ) {
p = $( '
' ).attr( 'class', 'description' );
// p is hardcoded just above by using attr method which is safe.
$( this ).prepend( p ); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.prepend
// item is a number part of id of parent menu item built by WordPress
// pll_data is built server side with i18n strings without HTML
label = $( '