133 lines
3 KiB
JavaScript
133 lines
3 KiB
JavaScript
|
( function ( $ ) {
|
||
|
const wcf_flows_search_init = function () {
|
||
|
const product_search = $( '.wcf-flows-search' );
|
||
|
|
||
|
if ( product_search.length > 0 ) {
|
||
|
$( 'select.wcf-flows-search' ).select2();
|
||
|
const nonce = $(
|
||
|
'input[name="wcf_json_search_flows_nonce"]'
|
||
|
).val();
|
||
|
|
||
|
$( 'select.wcf-flows-search' )
|
||
|
.filter( ':not(.enhanced)' )
|
||
|
.each( function () {
|
||
|
let select2_args = {
|
||
|
allowClear: $( this ).data( 'allow_clear' )
|
||
|
? true
|
||
|
: false,
|
||
|
placeholder: $( this ).data( 'placeholder' ),
|
||
|
minimumInputLength: $( this ).data(
|
||
|
'minimum_input_length'
|
||
|
)
|
||
|
? $( this ).data( 'minimum_input_length' )
|
||
|
: '3',
|
||
|
escapeMarkup( m ) {
|
||
|
return m;
|
||
|
},
|
||
|
|
||
|
ajax: {
|
||
|
url: ajaxurl,
|
||
|
dataType: 'json',
|
||
|
quietMillis: 250,
|
||
|
method: 'post',
|
||
|
data( params ) {
|
||
|
return {
|
||
|
term: params.term,
|
||
|
action:
|
||
|
$( this ).data( 'action' ) ||
|
||
|
'wcf_json_search_flows',
|
||
|
|
||
|
security: nonce,
|
||
|
};
|
||
|
},
|
||
|
processResults( data ) {
|
||
|
const terms = [];
|
||
|
if ( data ) {
|
||
|
$.each( data, function ( id, text ) {
|
||
|
terms.push( {
|
||
|
id,
|
||
|
text,
|
||
|
} );
|
||
|
} );
|
||
|
}
|
||
|
return { results: terms };
|
||
|
},
|
||
|
cache: true,
|
||
|
},
|
||
|
};
|
||
|
|
||
|
select2_args = $.extend(
|
||
|
select2_args,
|
||
|
getEnhancedSelectFormatString()
|
||
|
);
|
||
|
|
||
|
$( this ).select2( select2_args ).addClass( 'enhanced' );
|
||
|
} );
|
||
|
}
|
||
|
};
|
||
|
|
||
|
if ( typeof getEnhancedSelectFormatString === 'undefined' ) {
|
||
|
// This is the optional function. Not used every time.
|
||
|
/* eslint-disable */
|
||
|
function getEnhancedSelectFormatString() {
|
||
|
const formatString = {
|
||
|
noResults() {
|
||
|
return wc_enhanced_select_params.i18n_no_matches;
|
||
|
},
|
||
|
errorLoading() {
|
||
|
return wc_enhanced_select_params.i18n_searching;
|
||
|
},
|
||
|
inputTooShort( args ) {
|
||
|
const remainingChars = args.minimum - args.input.length;
|
||
|
|
||
|
if ( 1 === remainingChars ) {
|
||
|
return wc_enhanced_select_params.i18n_input_too_short_1;
|
||
|
}
|
||
|
|
||
|
return wc_enhanced_select_params.i18n_input_too_short_n.replace(
|
||
|
'%qty%',
|
||
|
remainingChars
|
||
|
);
|
||
|
},
|
||
|
inputTooLong( args ) {
|
||
|
const overChars = args.input.length - args.maximum;
|
||
|
|
||
|
if ( 1 === overChars ) {
|
||
|
return wc_enhanced_select_params.i18n_input_too_long_1;
|
||
|
}
|
||
|
|
||
|
return wc_enhanced_select_params.i18n_input_too_long_n.replace(
|
||
|
'%qty%',
|
||
|
overChars
|
||
|
);
|
||
|
},
|
||
|
maximumSelected( args ) {
|
||
|
if ( args.maximum === 1 ) {
|
||
|
return wc_enhanced_select_params.i18n_selection_too_long_1;
|
||
|
}
|
||
|
|
||
|
return wc_enhanced_select_params.i18n_selection_too_long_n.replace(
|
||
|
'%qty%',
|
||
|
args.maximum
|
||
|
);
|
||
|
},
|
||
|
loadingMore() {
|
||
|
return wc_enhanced_select_params.i18n_load_more;
|
||
|
},
|
||
|
searching() {
|
||
|
return wc_enhanced_select_params.i18n_searching;
|
||
|
},
|
||
|
};
|
||
|
|
||
|
const language = { language: formatString };
|
||
|
|
||
|
return language;
|
||
|
}
|
||
|
/* eslint-enable */
|
||
|
}
|
||
|
|
||
|
$( function () {
|
||
|
wcf_flows_search_init();
|
||
|
} );
|
||
|
} )( jQuery );
|