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
/home/sportsfe.../httpdocs/wp-conte.../plugins/wpforms-.../assets/js/admin/builder
File: wpforms-choicesjs.js
/* global wpforms_builder, Choices */
[0] Fix | Delete
[1] Fix | Delete
/**
[2] Fix | Delete
* WPForms ChoicesJS utility methods for the Admin Builder.
[3] Fix | Delete
*
[4] Fix | Delete
* @since 1.7.9
[5] Fix | Delete
*/
[6] Fix | Delete
[7] Fix | Delete
'use strict';
[8] Fix | Delete
[9] Fix | Delete
var WPForms = window.WPForms || {};
[10] Fix | Delete
[11] Fix | Delete
WPForms.Admin = WPForms.Admin || {};
[12] Fix | Delete
WPForms.Admin.Builder = WPForms.Admin.Builder || {};
[13] Fix | Delete
[14] Fix | Delete
WPForms.Admin.Builder.WPFormsChoicesJS = WPForms.Admin.Builder.WPFormsChoicesJS || ( function( document, window, $ ) {
[15] Fix | Delete
[16] Fix | Delete
/**
[17] Fix | Delete
* Public functions and properties.
[18] Fix | Delete
*
[19] Fix | Delete
* @since 1.7.9
[20] Fix | Delete
*
[21] Fix | Delete
* @type {object}
[22] Fix | Delete
*/
[23] Fix | Delete
const app = {
[24] Fix | Delete
[25] Fix | Delete
/**
[26] Fix | Delete
* Setup the Select Page ChoicesJS instance.
[27] Fix | Delete
*
[28] Fix | Delete
* @since 1.7.9
[29] Fix | Delete
*
[30] Fix | Delete
* @param {object} element DOM Element where to init ChoicesJS.
[31] Fix | Delete
* @param {object} choicesJSArgs ChoicesJS init options.
[32] Fix | Delete
* @param {object} ajaxArgs Object containing `action` and `nonce` to perform AJAX search.
[33] Fix | Delete
*
[34] Fix | Delete
* @returns {Choices} ChoicesJS instance.
[35] Fix | Delete
*/
[36] Fix | Delete
setup: function( element, choicesJSArgs, ajaxArgs ) {
[37] Fix | Delete
[38] Fix | Delete
choicesJSArgs.searchEnabled = true;
[39] Fix | Delete
choicesJSArgs.allowHTML = false; // TODO: Remove after next Choices.js release.
[40] Fix | Delete
choicesJSArgs.searchChoices = ajaxArgs.nonce === null; // Enable searchChoices when not using AJAX.
[41] Fix | Delete
choicesJSArgs.renderChoiceLimit = -1;
[42] Fix | Delete
choicesJSArgs.noChoicesText = wpforms_builder.no_pages_found;
[43] Fix | Delete
choicesJSArgs.noResultsText = wpforms_builder.no_pages_found;
[44] Fix | Delete
[45] Fix | Delete
const choicesJS = new Choices( element, choicesJSArgs );
[46] Fix | Delete
[47] Fix | Delete
if ( ajaxArgs.nonce === null ) {
[48] Fix | Delete
return choicesJS;
[49] Fix | Delete
}
[50] Fix | Delete
[51] Fix | Delete
/*
[52] Fix | Delete
* ChoicesJS doesn't handle empty string search with it's `search` event handler,
[53] Fix | Delete
* so we work around it by detecting empty string search with `keyup` event.
[54] Fix | Delete
*/
[55] Fix | Delete
choicesJS.input.element.addEventListener( 'keyup', function( ev ) {
[56] Fix | Delete
[57] Fix | Delete
// Only capture backspace and delete keypress that results to empty string.
[58] Fix | Delete
if (
[59] Fix | Delete
( ev.which !== 8 && ev.which !== 46 ) ||
[60] Fix | Delete
ev.target.value.length > 0
[61] Fix | Delete
) {
[62] Fix | Delete
return;
[63] Fix | Delete
}
[64] Fix | Delete
[65] Fix | Delete
app.performSearch( choicesJS, '', ajaxArgs );
[66] Fix | Delete
} );
[67] Fix | Delete
[68] Fix | Delete
choicesJS.passedElement.element.addEventListener( 'search', _.debounce( function( ev ) {
[69] Fix | Delete
[70] Fix | Delete
// Make sure that the search term is actually changed.
[71] Fix | Delete
if ( choicesJS.input.element.value.length === 0 ) {
[72] Fix | Delete
return;
[73] Fix | Delete
}
[74] Fix | Delete
[75] Fix | Delete
app.performSearch( choicesJS, ev.detail.value, ajaxArgs );
[76] Fix | Delete
}, 800 ) );
[77] Fix | Delete
[78] Fix | Delete
return choicesJS;
[79] Fix | Delete
},
[80] Fix | Delete
[81] Fix | Delete
/**
[82] Fix | Delete
* Perform search in ChoicesJS instance.
[83] Fix | Delete
*
[84] Fix | Delete
* @since 1.7.9
[85] Fix | Delete
*
[86] Fix | Delete
* @param {Choices} choicesJS ChoicesJS instance.
[87] Fix | Delete
* @param {string} searchTerm Search term.
[88] Fix | Delete
* @param {object} ajaxArgs Object containing `action` and `nonce` to perform AJAX search.
[89] Fix | Delete
*/
[90] Fix | Delete
performSearch: function( choicesJS, searchTerm, ajaxArgs ) {
[91] Fix | Delete
[92] Fix | Delete
if ( ! ajaxArgs.action || ! ajaxArgs.nonce ) {
[93] Fix | Delete
return;
[94] Fix | Delete
}
[95] Fix | Delete
[96] Fix | Delete
app.displayLoading( choicesJS );
[97] Fix | Delete
[98] Fix | Delete
const requestSearchPages = app.ajaxSearchPages( ajaxArgs.action, searchTerm, ajaxArgs.nonce );
[99] Fix | Delete
[100] Fix | Delete
requestSearchPages.done( function( response ) {
[101] Fix | Delete
choicesJS.setChoices( response.data, 'value', 'label', true );
[102] Fix | Delete
} );
[103] Fix | Delete
},
[104] Fix | Delete
[105] Fix | Delete
/**
[106] Fix | Delete
* Display "Loading" in ChoicesJS instance.
[107] Fix | Delete
*
[108] Fix | Delete
* @since 1.7.9
[109] Fix | Delete
*
[110] Fix | Delete
* @param {Choices} choicesJS ChoicesJS instance.
[111] Fix | Delete
*/
[112] Fix | Delete
displayLoading: function( choicesJS ) {
[113] Fix | Delete
[114] Fix | Delete
choicesJS.setChoices(
[115] Fix | Delete
[
[116] Fix | Delete
{ value: '', label: `${wpforms_builder.loading}...`, disabled: true },
[117] Fix | Delete
],
[118] Fix | Delete
'value',
[119] Fix | Delete
'label',
[120] Fix | Delete
true
[121] Fix | Delete
);
[122] Fix | Delete
},
[123] Fix | Delete
[124] Fix | Delete
/**
[125] Fix | Delete
* Perform AJAX search request.
[126] Fix | Delete
*
[127] Fix | Delete
* @since 1.7.9
[128] Fix | Delete
*
[129] Fix | Delete
* @param {string} action Action to be used when doing ajax request for search.
[130] Fix | Delete
* @param {string} searchTerm Search term.
[131] Fix | Delete
* @param {string} nonce Nonce to be used when doing ajax request.
[132] Fix | Delete
*
[133] Fix | Delete
* @returns {Promise} jQuery ajax call promise.
[134] Fix | Delete
*/
[135] Fix | Delete
ajaxSearchPages: function( action, searchTerm, nonce ) {
[136] Fix | Delete
[137] Fix | Delete
return $.get(
[138] Fix | Delete
wpforms_builder.ajax_url,
[139] Fix | Delete
{
[140] Fix | Delete
action: action,
[141] Fix | Delete
search: searchTerm,
[142] Fix | Delete
_wpnonce: nonce,
[143] Fix | Delete
}
[144] Fix | Delete
).fail(
[145] Fix | Delete
function( err ) {
[146] Fix | Delete
console.error( err );
[147] Fix | Delete
}
[148] Fix | Delete
);
[149] Fix | Delete
},
[150] Fix | Delete
};
[151] Fix | Delete
[152] Fix | Delete
// Provide access to public functions/properties.
[153] Fix | Delete
return app;
[154] Fix | Delete
[155] Fix | Delete
}( document, window, jQuery ) );
[156] Fix | Delete
[157] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function