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/popup-ma.../trunk/assets/js
File: admin-popup-editor.js
/*******************************************************************************
[0] Fix | Delete
* Copyright (c) 2020, Code Atlantic LLC
[1] Fix | Delete
******************************************************************************/
[2] Fix | Delete
( function( $ ) {
[3] Fix | Delete
'use strict';
[4] Fix | Delete
[5] Fix | Delete
window.PUM_Admin = window.PUM_Admin || {};
[6] Fix | Delete
[7] Fix | Delete
window.pum_popup_settings_editor = window.pum_popup_settings_editor || {
[8] Fix | Delete
form_args: {},
[9] Fix | Delete
current_values: {},
[10] Fix | Delete
preview_nonce: null,
[11] Fix | Delete
};
[12] Fix | Delete
[13] Fix | Delete
$( document )
[14] Fix | Delete
.on( 'keydown', '#popup-title', function( event ) {
[15] Fix | Delete
var keyCode = event.keyCode || event.which;
[16] Fix | Delete
if ( 9 === keyCode ) {
[17] Fix | Delete
event.preventDefault();
[18] Fix | Delete
$( '#title' ).focus();
[19] Fix | Delete
}
[20] Fix | Delete
} )
[21] Fix | Delete
.on( 'keydown', '#title, #popup-title', function( event ) {
[22] Fix | Delete
var keyCode = event.keyCode || event.which,
[23] Fix | Delete
target;
[24] Fix | Delete
if ( ! event.shiftKey && 9 === keyCode ) {
[25] Fix | Delete
event.preventDefault();
[26] Fix | Delete
target =
[27] Fix | Delete
$( this ).attr( 'id' ) === 'title'
[28] Fix | Delete
? '#popup-title'
[29] Fix | Delete
: '#insert-media-button';
[30] Fix | Delete
$( target ).focus();
[31] Fix | Delete
}
[32] Fix | Delete
} )
[33] Fix | Delete
.on( 'keydown', '#popup-title, #insert-media-button', function(
[34] Fix | Delete
event
[35] Fix | Delete
) {
[36] Fix | Delete
var keyCode = event.keyCode || event.which,
[37] Fix | Delete
target;
[38] Fix | Delete
if ( event.shiftKey && 9 === keyCode ) {
[39] Fix | Delete
event.preventDefault();
[40] Fix | Delete
target =
[41] Fix | Delete
$( this ).attr( 'id' ) === 'popup-title'
[42] Fix | Delete
? '#title'
[43] Fix | Delete
: '#popup-title';
[44] Fix | Delete
$( target ).focus();
[45] Fix | Delete
}
[46] Fix | Delete
} );
[47] Fix | Delete
[48] Fix | Delete
// Initiate when ready.
[49] Fix | Delete
$( function() {
[50] Fix | Delete
$( this ).trigger( 'pum_init' );
[51] Fix | Delete
[52] Fix | Delete
$( '#title' ).prop( 'required', true );
[53] Fix | Delete
[54] Fix | Delete
var $container = $( '#pum-popup-settings-container' ),
[55] Fix | Delete
args = pum_popup_settings_editor.form_args || {},
[56] Fix | Delete
values = pum_popup_settings_editor.current_values || {};
[57] Fix | Delete
[58] Fix | Delete
if ( $container.length ) {
[59] Fix | Delete
$container.find( '.pum-no-js' ).hide();
[60] Fix | Delete
PUM_Admin.forms.render( args, values, $container );
[61] Fix | Delete
}
[62] Fix | Delete
[63] Fix | Delete
$( 'a.page-title-action' )
[64] Fix | Delete
.clone()
[65] Fix | Delete
.attr( 'target', '_blank' )
[66] Fix | Delete
.attr(
[67] Fix | Delete
'href',
[68] Fix | Delete
pum_admin_vars.homeurl +
[69] Fix | Delete
'?popup_preview=' + pum_popup_settings_editor.preview_nonce + '&popup=' +
[70] Fix | Delete
$( '#post_ID' ).val()
[71] Fix | Delete
)
[72] Fix | Delete
.text( pum_admin_vars.I10n.preview_popup )
[73] Fix | Delete
.insertAfter( 'a.page-title-action' );
[74] Fix | Delete
[75] Fix | Delete
// TODO Can't figure out why this is needed, but it looks stupid otherwise when the first condition field defaults to something other than the placeholder.
[76] Fix | Delete
$( '#pum-first-condition, #pum-first-trigger, #pum-first-cookie' )
[77] Fix | Delete
.val( null )
[78] Fix | Delete
.trigger( 'change' );
[79] Fix | Delete
[80] Fix | Delete
// Add event handler to detect when opening sound is change and play the sound to allow admin to preview it.
[81] Fix | Delete
document
[82] Fix | Delete
.querySelector( '#pum-popup-settings-container' )
[83] Fix | Delete
.addEventListener( 'change', function( e ) {
[84] Fix | Delete
if ( 'open_sound' === e.target.id ) {
[85] Fix | Delete
// Only play if the sound selected is not None or Custom.
[86] Fix | Delete
var notThese = [ 'none', 'custom' ];
[87] Fix | Delete
if ( notThese.indexOf( e.target.value ) === -1 ) {
[88] Fix | Delete
var audio = new Audio(
[89] Fix | Delete
pum_admin_vars.pm_dir_url +
[90] Fix | Delete
'assets/sounds/' +
[91] Fix | Delete
e.target.value
[92] Fix | Delete
);
[93] Fix | Delete
audio.addEventListener(
[94] Fix | Delete
'canplaythrough',
[95] Fix | Delete
function() {
[96] Fix | Delete
this.play().catch( function( reason ) {
[97] Fix | Delete
console.warn(
[98] Fix | Delete
'Sound was not able to play when selected. Reason: ' +
[99] Fix | Delete
reason
[100] Fix | Delete
);
[101] Fix | Delete
} );
[102] Fix | Delete
}
[103] Fix | Delete
);
[104] Fix | Delete
audio.addEventListener( 'error', function() {
[105] Fix | Delete
console.warn(
[106] Fix | Delete
'Error occurred when trying to load popup opening sound.'
[107] Fix | Delete
);
[108] Fix | Delete
} );
[109] Fix | Delete
}
[110] Fix | Delete
}
[111] Fix | Delete
} );
[112] Fix | Delete
[113] Fix | Delete
// Dynamically switches example click trigger from popup-{popup-id} to using real ID.
[114] Fix | Delete
$( document ).on( 'pum_init', function() {
[115] Fix | Delete
$(
[116] Fix | Delete
'#pum-default-click-trigger-class:not(.pum-click-trigger-initialized)'
[117] Fix | Delete
).each( function() {
[118] Fix | Delete
$( this )
[119] Fix | Delete
.addClass( 'pum-click-trigger-initialized' )
[120] Fix | Delete
.text( $( '#popup-id' ).data( 'popup-id' ) );
[121] Fix | Delete
} );
[122] Fix | Delete
} );
[123] Fix | Delete
[124] Fix | Delete
document
[125] Fix | Delete
.querySelector( '#pum-popup-settings-container' )
[126] Fix | Delete
.addEventListener( 'click', function( e ) {
[127] Fix | Delete
if (
[128] Fix | Delete
Array.from( e.target.classList ).includes(
[129] Fix | Delete
'popup-type'
[130] Fix | Delete
) ||
[131] Fix | Delete
Array.from( e.target.parentElement.classList ).includes(
[132] Fix | Delete
'popup-type'
[133] Fix | Delete
)
[134] Fix | Delete
) {
[135] Fix | Delete
var $container = jQuery(
[136] Fix | Delete
'#pum-popup-settings-container'
[137] Fix | Delete
);
[138] Fix | Delete
if ( 1 === $container.length ) {
[139] Fix | Delete
// Our initial presets. As we add more, consider creating JSON import system and moving to there.
[140] Fix | Delete
var popupTypes = {
[141] Fix | Delete
'center-popup': {
[142] Fix | Delete
size: 'medium',
[143] Fix | Delete
responsive_min_width: '0%',
[144] Fix | Delete
responsive_max_width: '100%',
[145] Fix | Delete
animation_type: 'fade',
[146] Fix | Delete
animation_speed: 350,
[147] Fix | Delete
location: 'center',
[148] Fix | Delete
position_fixed: false,
[149] Fix | Delete
position_from_trigger: false,
[150] Fix | Delete
overlay_disabled: false,
[151] Fix | Delete
stackable: false,
[152] Fix | Delete
disable_reposition: false,
[153] Fix | Delete
},
[154] Fix | Delete
'left-bottom-notice': {
[155] Fix | Delete
size: 'tiny',
[156] Fix | Delete
responsive_min_width: '0%',
[157] Fix | Delete
responsive_max_width: '100%',
[158] Fix | Delete
animation_type: 'fade',
[159] Fix | Delete
animation_speed: 350,
[160] Fix | Delete
animation_origin: 'left bottom',
[161] Fix | Delete
location: 'left bottom',
[162] Fix | Delete
position_bottom: 10,
[163] Fix | Delete
position_left: 10,
[164] Fix | Delete
position_from_trigger: false,
[165] Fix | Delete
position_fixed: true,
[166] Fix | Delete
overlay_disabled: true,
[167] Fix | Delete
stackable: true,
[168] Fix | Delete
disable_reposition: false,
[169] Fix | Delete
},
[170] Fix | Delete
'top-bar': {
[171] Fix | Delete
size: 'custom',
[172] Fix | Delete
custom_width: '100%',
[173] Fix | Delete
custom_height_auto: true,
[174] Fix | Delete
animation_type: 'fadeAndSlide',
[175] Fix | Delete
animation_speed: 300,
[176] Fix | Delete
animation_origin: 'top',
[177] Fix | Delete
location: 'center top',
[178] Fix | Delete
position_top: 0,
[179] Fix | Delete
position_from_trigger: false,
[180] Fix | Delete
position_fixed: true,
[181] Fix | Delete
overlay_disabled: true,
[182] Fix | Delete
stackable: true,
[183] Fix | Delete
disable_reposition: false,
[184] Fix | Delete
},
[185] Fix | Delete
'right-bottom-slidein': {
[186] Fix | Delete
size: 'custom',
[187] Fix | Delete
custom_width: '300px',
[188] Fix | Delete
custom_height_auto: true,
[189] Fix | Delete
animation_type: 'slide',
[190] Fix | Delete
animation_speed: 350,
[191] Fix | Delete
animation_origin: 'bottom',
[192] Fix | Delete
location: 'right bottom',
[193] Fix | Delete
position_bottom: 10,
[194] Fix | Delete
position_right: 10,
[195] Fix | Delete
position_from_trigger: false,
[196] Fix | Delete
position_fixed: true,
[197] Fix | Delete
overlay_disabled: true,
[198] Fix | Delete
stackable: true,
[199] Fix | Delete
disable_reposition: false,
[200] Fix | Delete
},
[201] Fix | Delete
};
[202] Fix | Delete
var popupType =
[203] Fix | Delete
e.target.dataset.popupType ||
[204] Fix | Delete
e.target.parentElement.dataset.popupType ||
[205] Fix | Delete
'';
[206] Fix | Delete
[207] Fix | Delete
// Gather our values needed for creating new settings object.
[208] Fix | Delete
var presetValues = popupTypes.hasOwnProperty(
[209] Fix | Delete
popupType
[210] Fix | Delete
)
[211] Fix | Delete
? popupTypes[ popupType ]
[212] Fix | Delete
: {};
[213] Fix | Delete
var args =
[214] Fix | Delete
pum_popup_settings_editor.form_args || {};
[215] Fix | Delete
var originalValues =
[216] Fix | Delete
pum_popup_settings_editor.current_values || {};
[217] Fix | Delete
var currentValues = $container.pumSerializeObject();
[218] Fix | Delete
[219] Fix | Delete
// pumSerializeObject returns the trigger/cookie settings as strings instead of objects.
[220] Fix | Delete
// Cycle through each trigger and cookie and convert to objects.
[221] Fix | Delete
if ( currentValues.popup_settings.triggers ) {
[222] Fix | Delete
for (
[223] Fix | Delete
var i = 0;
[224] Fix | Delete
i <
[225] Fix | Delete
currentValues.popup_settings.triggers
[226] Fix | Delete
.length;
[227] Fix | Delete
i++
[228] Fix | Delete
) {
[229] Fix | Delete
currentValues.popup_settings.triggers[
[230] Fix | Delete
i
[231] Fix | Delete
].settings = JSON.parse(
[232] Fix | Delete
currentValues.popup_settings.triggers[
[233] Fix | Delete
i
[234] Fix | Delete
].settings
[235] Fix | Delete
);
[236] Fix | Delete
}
[237] Fix | Delete
}
[238] Fix | Delete
if ( currentValues.popup_settings.cookies ) {
[239] Fix | Delete
for (
[240] Fix | Delete
var j = 0;
[241] Fix | Delete
j <
[242] Fix | Delete
currentValues.popup_settings.cookies.length;
[243] Fix | Delete
j++
[244] Fix | Delete
) {
[245] Fix | Delete
currentValues.popup_settings.cookies[
[246] Fix | Delete
j
[247] Fix | Delete
].settings = JSON.parse(
[248] Fix | Delete
currentValues.popup_settings.cookies[
[249] Fix | Delete
j
[250] Fix | Delete
].settings
[251] Fix | Delete
);
[252] Fix | Delete
}
[253] Fix | Delete
}
[254] Fix | Delete
[255] Fix | Delete
var newValues = Object.assign(
[256] Fix | Delete
{},
[257] Fix | Delete
originalValues,
[258] Fix | Delete
currentValues.popup_settings,
[259] Fix | Delete
presetValues
[260] Fix | Delete
);
[261] Fix | Delete
[262] Fix | Delete
// Re-render form using updated settings.
[263] Fix | Delete
PUM_Admin.forms.render(
[264] Fix | Delete
args,
[265] Fix | Delete
newValues,
[266] Fix | Delete
$container
[267] Fix | Delete
);
[268] Fix | Delete
[269] Fix | Delete
// Click to 'Display' so they don't jump to 'Targeting' tab upon render.
[270] Fix | Delete
document
[271] Fix | Delete
.querySelector(
[272] Fix | Delete
'a[href="#pum-popup-settings_display"]'
[273] Fix | Delete
)
[274] Fix | Delete
.click();
[275] Fix | Delete
[276] Fix | Delete
// Adds a notice into 'Display Presets' tab telling admin the settings have been applied.
[277] Fix | Delete
var notice = document.createElement( 'div' );
[278] Fix | Delete
notice.classList.add( 'notice', 'updated' );
[279] Fix | Delete
notice.insertBefore(
[280] Fix | Delete
document.createElement( 'p' ),
[281] Fix | Delete
notice.firstChild
[282] Fix | Delete
);
[283] Fix | Delete
notice.firstChild.innerText =
[284] Fix | Delete
'Display settings have been updated with the ' +
[285] Fix | Delete
popupType +
[286] Fix | Delete
' preset';
[287] Fix | Delete
var parent = document.querySelector(
[288] Fix | Delete
'#pum-popup-settings-display-subtabs_preset'
[289] Fix | Delete
);
[290] Fix | Delete
parent.insertBefore( notice, parent.firstChild );
[291] Fix | Delete
}
[292] Fix | Delete
}
[293] Fix | Delete
} );
[294] Fix | Delete
} );
[295] Fix | Delete
} )( jQuery );
[296] Fix | Delete
[297] Fix | Delete
( function( $, document, undefined ) {
[298] Fix | Delete
'use strict';
[299] Fix | Delete
[300] Fix | Delete
$( document ).on( 'click', '#popup_reset_open_count', function() {
[301] Fix | Delete
var $this = $( this );
[302] Fix | Delete
if (
[303] Fix | Delete
$this.is( ':checked' ) &&
[304] Fix | Delete
! confirm( pum_admin_vars.I10n.confirm_count_reset )
[305] Fix | Delete
) {
[306] Fix | Delete
$this.prop( 'checked', false );
[307] Fix | Delete
}
[308] Fix | Delete
} );
[309] Fix | Delete
} )( jQuery, document );
[310] Fix | Delete
[311] Fix | Delete
( function( $ ) {
[312] Fix | Delete
'use strict';
[313] Fix | Delete
[314] Fix | Delete
var conditions = {
[315] Fix | Delete
get_conditions: function() {
[316] Fix | Delete
return window.pum_popup_settings_editor.conditions_selectlist;
[317] Fix | Delete
},
[318] Fix | Delete
not_operand_checkbox: function( $element ) {
[319] Fix | Delete
$element = $element || $( '.pum-not-operand' );
[320] Fix | Delete
[321] Fix | Delete
return $element.each( function() {
[322] Fix | Delete
var $this = $( this ),
[323] Fix | Delete
$input = $this.find( 'input' );
[324] Fix | Delete
[325] Fix | Delete
$input.prop( 'checked', ! $input.is( ':checked' ) );
[326] Fix | Delete
[327] Fix | Delete
conditions.toggle_not_operand( $this );
[328] Fix | Delete
} );
[329] Fix | Delete
},
[330] Fix | Delete
toggle_not_operand: function( $element ) {
[331] Fix | Delete
$element = $element || $( '.pum-not-operand' );
[332] Fix | Delete
[333] Fix | Delete
return $element.each( function() {
[334] Fix | Delete
var $this = $( this ),
[335] Fix | Delete
$input = $this.find( 'input' ),
[336] Fix | Delete
// $is = $this.find('.is'),
[337] Fix | Delete
// $not = $this.find('.not'),
[338] Fix | Delete
$container = $this.parents( '.facet-target' );
[339] Fix | Delete
[340] Fix | Delete
if ( $input.is( ':checked' ) ) {
[341] Fix | Delete
// $is.hide();
[342] Fix | Delete
// $not.show();
[343] Fix | Delete
$container.addClass( 'not-operand-checked' );
[344] Fix | Delete
} else {
[345] Fix | Delete
// $is.show();
[346] Fix | Delete
// $not.hide();
[347] Fix | Delete
$container.removeClass( 'not-operand-checked' );
[348] Fix | Delete
}
[349] Fix | Delete
} );
[350] Fix | Delete
},
[351] Fix | Delete
template: {
[352] Fix | Delete
editor: function( args ) {
[353] Fix | Delete
var data = $.extend(
[354] Fix | Delete
true,
[355] Fix | Delete
{},
[356] Fix | Delete
{
[357] Fix | Delete
groups: [],
[358] Fix | Delete
},
[359] Fix | Delete
args
[360] Fix | Delete
);
[361] Fix | Delete
[362] Fix | Delete
data.groups = PUM_Admin.utils.object_to_array( data.groups );
[363] Fix | Delete
[364] Fix | Delete
return PUM_Admin.templates.render(
[365] Fix | Delete
'pum-condition-editor',
[366] Fix | Delete
data
[367] Fix | Delete
);
[368] Fix | Delete
},
[369] Fix | Delete
group: function( args ) {
[370] Fix | Delete
var data = $.extend(
[371] Fix | Delete
true,
[372] Fix | Delete
{},
[373] Fix | Delete
{
[374] Fix | Delete
index: '',
[375] Fix | Delete
facets: [],
[376] Fix | Delete
},
[377] Fix | Delete
args
[378] Fix | Delete
),
[379] Fix | Delete
i;
[380] Fix | Delete
[381] Fix | Delete
data.facets = PUM_Admin.utils.object_to_array( data.facets );
[382] Fix | Delete
[383] Fix | Delete
for ( i = 0; data.facets.length > i; i++ ) {
[384] Fix | Delete
data.facets[ i ].index = i;
[385] Fix | Delete
data.facets[ i ].group = data.index;
[386] Fix | Delete
}
[387] Fix | Delete
[388] Fix | Delete
return PUM_Admin.templates.render(
[389] Fix | Delete
'pum-condition-group',
[390] Fix | Delete
data
[391] Fix | Delete
);
[392] Fix | Delete
},
[393] Fix | Delete
facet: function( args ) {
[394] Fix | Delete
var data = $.extend(
[395] Fix | Delete
true,
[396] Fix | Delete
{},
[397] Fix | Delete
{
[398] Fix | Delete
group: '',
[399] Fix | Delete
index: '',
[400] Fix | Delete
target: '',
[401] Fix | Delete
not_operand: false,
[402] Fix | Delete
settings: {},
[403] Fix | Delete
},
[404] Fix | Delete
args
[405] Fix | Delete
);
[406] Fix | Delete
[407] Fix | Delete
return PUM_Admin.templates.render(
[408] Fix | Delete
'pum-condition-facet',
[409] Fix | Delete
data
[410] Fix | Delete
);
[411] Fix | Delete
},
[412] Fix | Delete
settings: function( args, values ) {
[413] Fix | Delete
var fields = [],
[414] Fix | Delete
data = $.extend(
[415] Fix | Delete
true,
[416] Fix | Delete
{},
[417] Fix | Delete
{
[418] Fix | Delete
index: '',
[419] Fix | Delete
group: '',
[420] Fix | Delete
target: null,
[421] Fix | Delete
fields: [],
[422] Fix | Delete
},
[423] Fix | Delete
args
[424] Fix | Delete
);
[425] Fix | Delete
[426] Fix | Delete
if (
[427] Fix | Delete
! data.fields.length &&
[428] Fix | Delete
pum_popup_settings_editor.conditions[ args.target ] !==
[429] Fix | Delete
undefined
[430] Fix | Delete
) {
[431] Fix | Delete
data.fields =
[432] Fix | Delete
pum_popup_settings_editor.conditions[
[433] Fix | Delete
args.target
[434] Fix | Delete
].fields;
[435] Fix | Delete
}
[436] Fix | Delete
[437] Fix | Delete
if ( undefined === values ) {
[438] Fix | Delete
values = {};
[439] Fix | Delete
}
[440] Fix | Delete
[441] Fix | Delete
// Replace the array with rendered fields.
[442] Fix | Delete
_.each( data.fields, function( field, fieldID ) {
[443] Fix | Delete
field = PUM_Admin.models.field( field );
[444] Fix | Delete
[445] Fix | Delete
if ( typeof field.meta !== 'object' ) {
[446] Fix | Delete
field.meta = {};
[447] Fix | Delete
}
[448] Fix | Delete
[449] Fix | Delete
if ( undefined !== values[ fieldID ] ) {
[450] Fix | Delete
field.value = values[ fieldID ];
[451] Fix | Delete
}
[452] Fix | Delete
[453] Fix | Delete
field.name =
[454] Fix | Delete
'popup_settings[conditions][' +
[455] Fix | Delete
data.group +
[456] Fix | Delete
'][' +
[457] Fix | Delete
data.index +
[458] Fix | Delete
'][settings][' +
[459] Fix | Delete
fieldID +
[460] Fix | Delete
']';
[461] Fix | Delete
[462] Fix | Delete
if ( field.id === '' ) {
[463] Fix | Delete
field.id =
[464] Fix | Delete
'popup_settings_conditions_' +
[465] Fix | Delete
data.group +
[466] Fix | Delete
'_' +
[467] Fix | Delete
data.index +
[468] Fix | Delete
'_settings_' +
[469] Fix | Delete
fieldID;
[470] Fix | Delete
}
[471] Fix | Delete
[472] Fix | Delete
fields.push( PUM_Admin.templates.field( field ) );
[473] Fix | Delete
} );
[474] Fix | Delete
[475] Fix | Delete
// Render the section.
[476] Fix | Delete
return PUM_Admin.templates.section( {
[477] Fix | Delete
fields: fields,
[478] Fix | Delete
} );
[479] Fix | Delete
},
[480] Fix | Delete
selectbox: function( args ) {
[481] Fix | Delete
var data = $.extend(
[482] Fix | Delete
true,
[483] Fix | Delete
{},
[484] Fix | Delete
{
[485] Fix | Delete
id: null,
[486] Fix | Delete
name: null,
[487] Fix | Delete
type: 'select',
[488] Fix | Delete
group: '',
[489] Fix | Delete
index: '',
[490] Fix | Delete
value: null,
[491] Fix | Delete
select2: true,
[492] Fix | Delete
classes: [],
[493] Fix | Delete
options: conditions.get_conditions(),
[494] Fix | Delete
},
[495] Fix | Delete
args
[496] Fix | Delete
);
[497] Fix | Delete
[498] Fix | Delete
if ( data.id === null ) {
[499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function