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/clone/wp-conte.../plugins/advanced.../admin/assets/js
File: conditions.js
/**
[0] Fix | Delete
* Logic for Display and Visitor Conditions forms
[1] Fix | Delete
*/
[2] Fix | Delete
[3] Fix | Delete
jQuery( document ).ready(function ( $ ) {
[4] Fix | Delete
/**
[5] Fix | Delete
* Pressing the button to add a new condition to the list of conditions
[6] Fix | Delete
*/
[7] Fix | Delete
$( '.advads-conditions-new select' ).on( 'change', function () {
[8] Fix | Delete
// get the form fieldset and values.
[9] Fix | Delete
var condition_form_container = $( this ).parents( 'fieldset' )
[10] Fix | Delete
var condition_type = condition_form_container.find( '.advads-conditions-new select' ).val()
[11] Fix | Delete
var condition_title = condition_form_container.find( '.advads-conditions-new select option:selected' ).text()
[12] Fix | Delete
var condition_index = parseInt( condition_form_container.find( '.advads-conditions-index' ).val() )
[13] Fix | Delete
var condition_list_target_ID = $.escapeSelector( condition_form_container.data( 'condition-list-target' ) ) // ID of the container into which the new condition is loaded.
[14] Fix | Delete
var condition_list_target = $( '#' + condition_list_target_ID ) // container into which the new condition is loaded.
[15] Fix | Delete
var conditions_form_name = condition_form_container.data( 'condition-form-name' ) // name prefix for the form.
[16] Fix | Delete
var conditions_connector_default = condition_form_container.data( 'condition-connector-default' ) // default connector option.
[17] Fix | Delete
var conditions_action = condition_form_container.data( 'condition-action' ) // action to which to send the AJAX call to.
[18] Fix | Delete
if ( ! condition_type || '' == condition_type ) {
[19] Fix | Delete
return
[20] Fix | Delete
}
[21] Fix | Delete
condition_form_container.find( '.advads-loader' ).show() // show loader.
[22] Fix | Delete
$.ajax(
[23] Fix | Delete
{
[24] Fix | Delete
type: 'POST',
[25] Fix | Delete
url: ajaxurl,
[26] Fix | Delete
data: {
[27] Fix | Delete
action: conditions_action,
[28] Fix | Delete
type: condition_type,
[29] Fix | Delete
index: condition_index,
[30] Fix | Delete
form_name: conditions_form_name,
[31] Fix | Delete
nonce: advadsglobal.ajax_nonce
[32] Fix | Delete
},
[33] Fix | Delete
success: function ( r, textStatus, XMLHttpRequest ) {
[34] Fix | Delete
// add.
[35] Fix | Delete
if ( r ) {
[36] Fix | Delete
if ( 'or' === conditions_connector_default ) {
[37] Fix | Delete
// as used for display conditions.
[38] Fix | Delete
var connector = '<input style="display:none;" type="checkbox" name="' + conditions_form_name + '[' + condition_index + '][connector]" checked="checked" value="or" id="advads-conditions-' + condition_list_target_ID + '-' + condition_index + '-connector"><label for="advads-conditions-' + condition_list_target_ID + '-' + condition_index + '-connector">' + advadstxt.condition_or + '</label>'
[39] Fix | Delete
var newline = '<tr class="advads-conditions-connector advads-conditions-connector-or"><td colspan="3">' + connector + '</td></tr><tr><td class="advads-conditions-type" data-condition-type="' + condition_type + '">' + condition_title + '</td><td>' + r + '</td><td><button type="button" class="advads-conditions-remove button">x</button></td></tr>'
[40] Fix | Delete
} else {
[41] Fix | Delete
// as used for visitor conditions.
[42] Fix | Delete
var connector = '<input type="checkbox" name="' + conditions_form_name + '[' + condition_index + '][connector]" value="or" id="advads-conditions-' + condition_list_target_ID + '-' + condition_index + '-connector"><label for="advads-conditions-' + condition_list_target_ID + '-' + condition_index + '-connector">' + advadstxt.condition_and + '</label>'
[43] Fix | Delete
var newline = '<tr class="advads-conditions-connector advads-conditions-connector-and"><td colspan="3">' + connector + '</td></tr><tr><td class="advads-conditions-type" data-condition-type="' + condition_type + '">' + condition_title + '</td><td>' + r + '</td><td><button type="button" class="advads-conditions-remove button">x</button></td></tr>'
[44] Fix | Delete
}
[45] Fix | Delete
condition_list_target.find( 'tbody' ).append( newline )
[46] Fix | Delete
condition_list_target.find( 'tbody .advads-conditions-single.advads-buttonset' ).advads_buttonset()
[47] Fix | Delete
condition_list_target.find( 'tbody .advads-conditions-connector input' ).advads_button()
[48] Fix | Delete
// increase count.
[49] Fix | Delete
condition_index++
[50] Fix | Delete
condition_form_container.find( '.advads-conditions-index' ).val( condition_index )
[51] Fix | Delete
// reset select.
[52] Fix | Delete
condition_form_container.find( '.advads-conditions-new select' )[ 0 ].selectedIndex = 0;
[53] Fix | Delete
advads_display_condition_option_not_selected();
[54] Fix | Delete
}
[55] Fix | Delete
},
[56] Fix | Delete
error: function ( MLHttpRequest, textStatus, errorThrown ) {
[57] Fix | Delete
condition_form_container.find( '.advads-conditions-new' ).append( errorThrown )
[58] Fix | Delete
},
[59] Fix | Delete
complete: function ( MLHttpRequest, textStatus ) {
[60] Fix | Delete
condition_form_container.find( '.advads-conditions-new .advads-loader' ).hide() // hide loader.
[61] Fix | Delete
}
[62] Fix | Delete
}
[63] Fix | Delete
)
[64] Fix | Delete
}
[65] Fix | Delete
)
[66] Fix | Delete
// disable term in the term list of the appropriate condition by just clicking on it.
[67] Fix | Delete
$( document ).on( 'click', '.advads-conditions-terms-buttons .button', function ( e ) {
[68] Fix | Delete
$( this ).remove()
[69] Fix | Delete
}
[70] Fix | Delete
)
[71] Fix | Delete
// display input field to search for terms.
[72] Fix | Delete
$( document ).on( 'click', '.advads-conditions-terms-show-search', function ( e ) {
[73] Fix | Delete
e.preventDefault()
[74] Fix | Delete
// display input field.
[75] Fix | Delete
$( this ).siblings( '.advads-conditions-terms-search' ).show().focus()
[76] Fix | Delete
// register autocomplete.
[77] Fix | Delete
advads_register_terms_autocomplete( $( this ).siblings( '.advads-conditions-terms-search' ) )
[78] Fix | Delete
$( this ).next( 'br' ).show()
[79] Fix | Delete
$( this ).hide()
[80] Fix | Delete
}
[81] Fix | Delete
)
[82] Fix | Delete
[83] Fix | Delete
// function for autocomplete.
[84] Fix | Delete
function advads_register_terms_autocomplete ( self ) {
[85] Fix | Delete
self.autocomplete(
[86] Fix | Delete
{
[87] Fix | Delete
classes: {
[88] Fix | Delete
'ui-autocomplete': 'advads-ui-autocomplete'
[89] Fix | Delete
},
[90] Fix | Delete
source: function ( request, callback ) {
[91] Fix | Delete
// var searchField = request.term;
[92] Fix | Delete
advads_term_search( self, callback )
[93] Fix | Delete
},
[94] Fix | Delete
minLength: 1,
[95] Fix | Delete
select: function ( event, ui ) {
[96] Fix | Delete
// append new line with input fields.
[97] Fix | Delete
$( '<label class="button advads-button advads-ui-state-active"><span class="advads-button-text">' + ui.item.label + '<input type="hidden" name="' + self.data( 'inputName' ) + '" value="' + ui.item.value + '"></span></label>' ).appendTo( self.siblings( '.advads-conditions-terms-buttons' ) )
[98] Fix | Delete
[99] Fix | Delete
// show / hide other elements
[100] Fix | Delete
// $( '.advads-display-conditions-individual-post' ).hide();
[101] Fix | Delete
// $( '.advads-conditions-postids-list .show-search a' ).show();
[102] Fix | Delete
},
[103] Fix | Delete
close: function ( event, ui ) {
[104] Fix | Delete
self.val( '' )
[105] Fix | Delete
}
[106] Fix | Delete
}
[107] Fix | Delete
)
[108] Fix | Delete
}
[109] Fix | Delete
[110] Fix | Delete
// remove author from list by clicking on it.
[111] Fix | Delete
$(document).on(
[112] Fix | Delete
'click',
[113] Fix | Delete
'.advads-conditions-authors-buttons .button',
[114] Fix | Delete
function () {
[115] Fix | Delete
$(this).remove();
[116] Fix | Delete
}
[117] Fix | Delete
);
[118] Fix | Delete
// display input field to search for author.
[119] Fix | Delete
$(document).on(
[120] Fix | Delete
'click',
[121] Fix | Delete
'.advads-conditions-authors-show-search',
[122] Fix | Delete
function (e) {
[123] Fix | Delete
e.preventDefault();
[124] Fix | Delete
// display input field.
[125] Fix | Delete
$(this)
[126] Fix | Delete
.siblings('.advads-conditions-authors-search')
[127] Fix | Delete
.show()
[128] Fix | Delete
.focus();
[129] Fix | Delete
// register autocomplete.
[130] Fix | Delete
advadsRegisterAuthorAutocomplete(
[131] Fix | Delete
$(this).siblings('.advads-conditions-authors-search')
[132] Fix | Delete
);
[133] Fix | Delete
$(this).next('br').show();
[134] Fix | Delete
$(this).hide();
[135] Fix | Delete
}
[136] Fix | Delete
);
[137] Fix | Delete
[138] Fix | Delete
// author search box autocomplete.
[139] Fix | Delete
function advadsRegisterAuthorAutocomplete(self) {
[140] Fix | Delete
self.autocomplete({
[141] Fix | Delete
classes: {
[142] Fix | Delete
'ui-autocomplete': 'advads-ui-autocomplete',
[143] Fix | Delete
},
[144] Fix | Delete
source(request, callback) {
[145] Fix | Delete
advadsAuthorSearch(self, callback);
[146] Fix | Delete
},
[147] Fix | Delete
minLength: 1,
[148] Fix | Delete
select(event, ui) {
[149] Fix | Delete
// append new line with input fields.
[150] Fix | Delete
$(
[151] Fix | Delete
'<label class="button advads-button advads-ui-state-active"><span class="advads-button-text">' +
[152] Fix | Delete
ui.item.label +
[153] Fix | Delete
'<input type="hidden" name="' +
[154] Fix | Delete
self.data('inputName') +
[155] Fix | Delete
'" value="' +
[156] Fix | Delete
ui.item.value +
[157] Fix | Delete
'"></span></label>'
[158] Fix | Delete
).appendTo(self.siblings('.advads-conditions-authors-buttons'));
[159] Fix | Delete
},
[160] Fix | Delete
close() {
[161] Fix | Delete
self.val('');
[162] Fix | Delete
},
[163] Fix | Delete
});
[164] Fix | Delete
}
[165] Fix | Delete
[166] Fix | Delete
// display input field to search for post, page, etc.
[167] Fix | Delete
$( document ).on( 'click', '.advads-conditions-postids-show-search', function ( e ) {
[168] Fix | Delete
e.preventDefault()
[169] Fix | Delete
// display input field.
[170] Fix | Delete
$( this ).next().find( '.advads-display-conditions-individual-post' ).show()
[171] Fix | Delete
//$( '.advads-conditions-postids-search-line .description' ).hide();
[172] Fix | Delete
$( this ).hide()
[173] Fix | Delete
}
[174] Fix | Delete
)
[175] Fix | Delete
// register autocomplete to display condition individual posts.
[176] Fix | Delete
$( document ).on( 'focus', '.advads-display-conditions-individual-post', function ( e ) {
[177] Fix | Delete
var self = this
[178] Fix | Delete
if ( ! $( this ).data( 'autocomplete' ) ) { // If the autocomplete wasn't called yet:
[179] Fix | Delete
$( this ).autocomplete(
[180] Fix | Delete
{
[181] Fix | Delete
classes: {
[182] Fix | Delete
'ui-autocomplete': 'advads-ui-autocomplete'
[183] Fix | Delete
},
[184] Fix | Delete
source: function ( request, callback ) {
[185] Fix | Delete
var searchParam = request.term
[186] Fix | Delete
advads_post_search( searchParam, callback )
[187] Fix | Delete
},
[188] Fix | Delete
minLength: 1,
[189] Fix | Delete
select: function ( event, ui ) {
[190] Fix | Delete
// append new line with input fields
[191] Fix | Delete
var newline = $( '<label class="button advads-button advads-ui-state-active"><span class="advads-button-text">' + ui.item.label + '</span></label>' )
[192] Fix | Delete
$( '<input type="hidden" name="' + self.dataset.fieldName + '[value][]" value="' + ui.item.value + '"/>' ).appendTo( newline )
[193] Fix | Delete
newline.insertBefore( $( self ).parent( '.advads-conditions-postids-search-line' ) )
[194] Fix | Delete
},
[195] Fix | Delete
close: function ( event, ui ) {
[196] Fix | Delete
$( self ).val( '' )
[197] Fix | Delete
},
[198] Fix | Delete
} ).autocomplete().data( 'ui-autocomplete' )._renderItem = function ( ul, item ) {
[199] Fix | Delete
ul.addClass( 'advads-conditions-postids-autocomplete-suggestions' )
[200] Fix | Delete
return $( '<li></li>' ).append( '<span class=\'left\'>' + item.label + '</span>&nbsp;<span class=\'right\'>' + item.info + '</span>' ).appendTo( ul )
[201] Fix | Delete
}
[202] Fix | Delete
}
[203] Fix | Delete
}
[204] Fix | Delete
)
[205] Fix | Delete
// remove individual posts from the display conditions post list.
[206] Fix | Delete
$( document ).on(
[207] Fix | Delete
'click',
[208] Fix | Delete
'.advads-conditions-postid-buttons .button',
[209] Fix | Delete
function ( e ) {
[210] Fix | Delete
$( this ).remove()
[211] Fix | Delete
}
[212] Fix | Delete
)
[213] Fix | Delete
// display/hide error message if no option was selected
[214] Fix | Delete
// is also called on every click.
[215] Fix | Delete
function advads_display_condition_option_not_selected () {
[216] Fix | Delete
$( '.advads-conditions-not-selected' ).each(
[217] Fix | Delete
function () {
[218] Fix | Delete
if ( $( this ).siblings( 'input:checked' ).length ) {
[219] Fix | Delete
$( this ).hide();
[220] Fix | Delete
} else {
[221] Fix | Delete
$( this ).show();
[222] Fix | Delete
}
[223] Fix | Delete
}
[224] Fix | Delete
)
[225] Fix | Delete
}
[226] Fix | Delete
[227] Fix | Delete
advads_display_condition_option_not_selected()
[228] Fix | Delete
[229] Fix | Delete
// update error messages when an item is clicked.
[230] Fix | Delete
$( document ).on( 'click', '.advads-conditions-terms-buttons input[type="checkbox"], .advads-conditions-single input[type="checkbox"]', function () {
[231] Fix | Delete
// needs a slight delay until the buttons are updated.
[232] Fix | Delete
window.setTimeout( advads_display_condition_option_not_selected, 200 )
[233] Fix | Delete
}
[234] Fix | Delete
)
[235] Fix | Delete
// activate and toggle conditions connector option.
[236] Fix | Delete
$( '.advads-conditions-connector input' ).advads_button();
[237] Fix | Delete
[238] Fix | Delete
// dynamically change label.
[239] Fix | Delete
jQuery( document ).on( 'click', '.advads-conditions-connector input', function () {
[240] Fix | Delete
if ( jQuery( this ).is( ':checked' ) ) {
[241] Fix | Delete
jQuery( this ).next( 'label' ).find( 'span' ).html( advadstxt.condition_or );
[242] Fix | Delete
jQuery( this ).parents( '.advads-conditions-connector' ).addClass( 'advads-conditions-connector-or' ).removeClass( 'advads-conditions-connector-and' )
[243] Fix | Delete
} else {
[244] Fix | Delete
jQuery( this ).next( 'label' ).find( 'span' ).html( advadstxt.condition_and );
[245] Fix | Delete
jQuery( this ).parents( '.advads-conditions-connector' ).addClass( 'advads-conditions-connector-and' ).removeClass( 'advads-conditions-connector-or' )
[246] Fix | Delete
}
[247] Fix | Delete
} );
[248] Fix | Delete
// remove a line with a display or visitor condition.
[249] Fix | Delete
$( document ).on( 'click', '.advads-conditions-remove', function () {
[250] Fix | Delete
$( this ).parents( '.advads-conditions-table tr' ).prev( 'tr' ).remove()
[251] Fix | Delete
$( this ).parents( '.advads-conditions-table tr' ).remove()
[252] Fix | Delete
}
[253] Fix | Delete
)
[254] Fix | Delete
}
[255] Fix | Delete
)
[256] Fix | Delete
[257] Fix | Delete
/**
[258] Fix | Delete
* Callback for term search autocomplete
[259] Fix | Delete
*
[260] Fix | Delete
* @param {type} search term
[261] Fix | Delete
* @param {type} callback
[262] Fix | Delete
* @returns {obj} json object with labels and values
[263] Fix | Delete
*/
[264] Fix | Delete
function advads_term_search ( field, callback ) {
[265] Fix | Delete
[266] Fix | Delete
// return ['post', 'poster'];
[267] Fix | Delete
var query = {
[268] Fix | Delete
action: 'advads-terms-search',
[269] Fix | Delete
nonce: advadsglobal.ajax_nonce
[270] Fix | Delete
}
[271] Fix | Delete
[272] Fix | Delete
query.search = field.val()
[273] Fix | Delete
query.tax = field.data( 'tagName' )
[274] Fix | Delete
[275] Fix | Delete
var querying = true
[276] Fix | Delete
[277] Fix | Delete
var results = {}
[278] Fix | Delete
jQuery.post( ajaxurl, query,
[279] Fix | Delete
function ( r ) {
[280] Fix | Delete
querying = false
[281] Fix | Delete
var results = []
[282] Fix | Delete
if ( r ) {
[283] Fix | Delete
r.map(
[284] Fix | Delete
function ( element, index ) {
[285] Fix | Delete
results[ index ] = {
[286] Fix | Delete
value: element.term_id,
[287] Fix | Delete
label: element.name
[288] Fix | Delete
}
[289] Fix | Delete
}
[290] Fix | Delete
)
[291] Fix | Delete
}
[292] Fix | Delete
callback( results )
[293] Fix | Delete
},
[294] Fix | Delete
'json'
[295] Fix | Delete
)
[296] Fix | Delete
}
[297] Fix | Delete
[298] Fix | Delete
/**
[299] Fix | Delete
* Callback for author search autocomplete
[300] Fix | Delete
*
[301] Fix | Delete
* @param {string} search author
[302] Fix | Delete
* @param {HTMLInputElement} field html input field
[303] Fix | Delete
* @param {Function} callback Callback function
[304] Fix | Delete
* @return {Object} JSON object with labels and values
[305] Fix | Delete
*/
[306] Fix | Delete
[307] Fix | Delete
function advadsAuthorSearch(field, callback) {
[308] Fix | Delete
const query = {
[309] Fix | Delete
action: 'advads-authors-search',
[310] Fix | Delete
nonce: advadsglobal.ajax_nonce,
[311] Fix | Delete
};
[312] Fix | Delete
[313] Fix | Delete
query.search = field.val();
[314] Fix | Delete
[315] Fix | Delete
var querying = true;
[316] Fix | Delete
[317] Fix | Delete
const results = [];
[318] Fix | Delete
// eslint-disable-next-line no-undef
[319] Fix | Delete
jQuery.post(
[320] Fix | Delete
// eslint-disable-next-line no-undef
[321] Fix | Delete
ajaxurl,
[322] Fix | Delete
query,
[323] Fix | Delete
function (r) {
[324] Fix | Delete
querying = false;
[325] Fix | Delete
if (r) {
[326] Fix | Delete
r.map(function (element, index) {
[327] Fix | Delete
results[index] = {
[328] Fix | Delete
value: element.data.ID,
[329] Fix | Delete
label: element.data.display_name,
[330] Fix | Delete
};
[331] Fix | Delete
});
[332] Fix | Delete
}
[333] Fix | Delete
callback(results);
[334] Fix | Delete
},
[335] Fix | Delete
'json'
[336] Fix | Delete
);
[337] Fix | Delete
}
[338] Fix | Delete
[339] Fix | Delete
/**
[340] Fix | Delete
* Callback for post search autocomplete
[341] Fix | Delete
*
[342] Fix | Delete
* @param {str} searchParam
[343] Fix | Delete
* @param {type} callback
[344] Fix | Delete
* @returns {obj} json object with labels and values
[345] Fix | Delete
*/
[346] Fix | Delete
function advads_post_search ( searchParam, callback ) {
[347] Fix | Delete
[348] Fix | Delete
// return ['post', 'poster'];
[349] Fix | Delete
var query = {
[350] Fix | Delete
action: 'advads-post-search',
[351] Fix | Delete
_ajax_linking_nonce: jQuery( '#_ajax_linking_nonce' ).val(),
[352] Fix | Delete
'search': searchParam,
[353] Fix | Delete
nonce: advadsglobal.ajax_nonce
[354] Fix | Delete
}
[355] Fix | Delete
[356] Fix | Delete
var querying = true
[357] Fix | Delete
[358] Fix | Delete
var results = {}
[359] Fix | Delete
jQuery.post( ajaxurl, query,
[360] Fix | Delete
function ( r ) {
[361] Fix | Delete
querying = false
[362] Fix | Delete
var results = []
[363] Fix | Delete
if ( r ) {
[364] Fix | Delete
r.map(
[365] Fix | Delete
function ( element, index ) {
[366] Fix | Delete
results[ index ] = {
[367] Fix | Delete
label: element.title,
[368] Fix | Delete
value: element.ID,
[369] Fix | Delete
info: element.info
[370] Fix | Delete
}
[371] Fix | Delete
}
[372] Fix | Delete
)
[373] Fix | Delete
}
[374] Fix | Delete
callback( results )
[375] Fix | Delete
},
[376] Fix | Delete
'json'
[377] Fix | Delete
)
[378] Fix | Delete
}
[379] Fix | Delete
[380] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function