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

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/advanced.../admin/assets/js
File: admin.js
/**
[500] Fix | Delete
* Set the active tab and optionally scroll to the anchor.
[501] Fix | Delete
*/
[502] Fix | Delete
function advads_set_tab( tab ) {
[503] Fix | Delete
jQuery( '#advads-tabs' ).find( 'a' ).removeClass( 'nav-tab-active' );
[504] Fix | Delete
jQuery( '.advads-tab' ).removeClass( 'active' );
[505] Fix | Delete
[506] Fix | Delete
jQuery( '#' + tab.tab ).addClass( 'active' );
[507] Fix | Delete
jQuery( '#' + tab.tab + '-tab' ).addClass( 'nav-tab-active' );
[508] Fix | Delete
[509] Fix | Delete
if ( tab.anchor ) {
[510] Fix | Delete
var anchor_offset = document.getElementById( tab.anchor ).getBoundingClientRect().top;
[511] Fix | Delete
var admin_bar = 48;
[512] Fix | Delete
window.scrollTo( 0, anchor_offset + window.scrollY - admin_bar );
[513] Fix | Delete
}
[514] Fix | Delete
}
[515] Fix | Delete
[516] Fix | Delete
// While user is already on the Settings page, find links (in admin menu,
[517] Fix | Delete
// in the Checks at the top, in the notices at the top) to particular setting tabs and open them on click.
[518] Fix | Delete
jQuery( document ).on( 'click', 'a[href*="page=advanced-ads-settings"]:not(.nav-tab)', function () {
[519] Fix | Delete
// Already on the Settings page, so set the new tab.
[520] Fix | Delete
// Extract the tab id from the url.
[521] Fix | Delete
var url = jQuery( this ).attr( 'href' ).split( 'advanced-ads-settings' )[1];
[522] Fix | Delete
var tab = advads_extract_tab( url );
[523] Fix | Delete
advads_set_tab( tab );
[524] Fix | Delete
} );
[525] Fix | Delete
[526] Fix | Delete
/**
[527] Fix | Delete
* Handle the hashchange event, this enables back/forward navigation in the settings page.
[528] Fix | Delete
*/
[529] Fix | Delete
window.addEventListener( 'hashchange', event => {
[530] Fix | Delete
const hash = advads_extract_tab( new URL( event.newURL ).hash );
[531] Fix | Delete
try {
[532] Fix | Delete
document.getElementById( hash.tab + '-tab' ).dispatchEvent( new Event( 'click' ) );
[533] Fix | Delete
} catch ( e ) {
[534] Fix | Delete
// fail silently if element does not exist.
[535] Fix | Delete
}
[536] Fix | Delete
} );
[537] Fix | Delete
[538] Fix | Delete
// activate specific or first tab
[539] Fix | Delete
[540] Fix | Delete
var active_tab = advads_extract_tab( window.location.hash );
[541] Fix | Delete
advads_set_tab( active_tab );
[542] Fix | Delete
[543] Fix | Delete
// set all tab urls
[544] Fix | Delete
advads_set_tab_hashes();
[545] Fix | Delete
[546] Fix | Delete
// dynamically generate the sub-menu
[547] Fix | Delete
jQuery( '.advads-tab-sub-menu' ).each( function ( key, e ) {
[548] Fix | Delete
// abort if scrollIntoView is not supported; we can’t use anchors because they are used for tabs already
[549] Fix | Delete
if ( typeof e.scrollIntoView !== 'function' ) {
[550] Fix | Delete
return;
[551] Fix | Delete
}
[552] Fix | Delete
// get all h2 headlines
[553] Fix | Delete
advads_settings_parent_tab = jQuery( e ).parent( '.advads-tab' );
[554] Fix | Delete
var headlines = advads_settings_parent_tab.find( 'h2' );
[555] Fix | Delete
// create list
[556] Fix | Delete
if ( headlines.length > 1 ) {
[557] Fix | Delete
advads_submenu_list = jQuery( '<ul>' );
[558] Fix | Delete
headlines.each( function ( key, h ) {
[559] Fix | Delete
// create anchor for this headline
[560] Fix | Delete
var headline_id = 'advads-tab-headline-' + advads_settings_parent_tab.attr( 'id' ) + key;
[561] Fix | Delete
jQuery( h ).attr( 'id', headline_id );
[562] Fix | Delete
// place the link in the top menu
[563] Fix | Delete
var text = text = h.textContent || h.innerText;
[564] Fix | Delete
jQuery( '<li><a onclick="document.getElementById(\'' + headline_id + '\').scrollIntoView()">' + text + '</a></li>' ).appendTo( advads_submenu_list );
[565] Fix | Delete
} );
[566] Fix | Delete
// place the menu
[567] Fix | Delete
advads_submenu_list.appendTo( e );
[568] Fix | Delete
}
[569] Fix | Delete
} );
[570] Fix | Delete
[571] Fix | Delete
// OVERVIEW LIST (Ads, Groups, Placements)
[572] Fix | Delete
[573] Fix | Delete
// toggle page filters, excluded from the Ads list since the search markup is not editable by us.
[574] Fix | Delete
$( 'body:not(.post-type-advanced_ads ) #advads-show-filters' ).on( 'click', function() {
[575] Fix | Delete
const disabled = $( this ).find( '.dashicons' ).hasClass( 'dashicons-arrow-up' );
[576] Fix | Delete
$( '.advads-toggle-with-filters-button' ).toggleClass( 'hidden', disabled );
[577] Fix | Delete
$( '#advads-show-filters .dashicons' ).toggleClass( 'dashicons-filter', disabled );
[578] Fix | Delete
$( '#advads-show-filters .dashicons' ).toggleClass( 'dashicons-arrow-up', ! disabled );
[579] Fix | Delete
} );
[580] Fix | Delete
[581] Fix | Delete
// AD OVERVIEW LIST
[582] Fix | Delete
[583] Fix | Delete
// show the bulk actions sticky, when some lines are selected
[584] Fix | Delete
$( '.post-type-advanced_ads .check-column input[type="checkbox"]' ).on( 'change', function() {
[585] Fix | Delete
$( '.post-type-advanced_ads .tablenav.bottom .bulkactions' ).toggleClass( 'fixed', 0 < $( '.post-type-advanced_ads .check-column input[type="checkbox"]:checked' ).length );
[586] Fix | Delete
} );
[587] Fix | Delete
// show screen options when clicking on our custom link or the Close button
[588] Fix | Delete
$( '#advads-show-screen-options' ).on( 'click', function(){
[589] Fix | Delete
$( '#show-settings-link' ).trigger( 'click' );
[590] Fix | Delete
} );
[591] Fix | Delete
// Add a close button to the screen options
[592] Fix | Delete
$( '<button type="button" class="button advads-button-secondary">' + advadstxt.close + '</button>' )
[593] Fix | Delete
.appendTo( $( '.post-type-advanced_ads #adv-settings .submit' ) )
[594] Fix | Delete
.on( 'click', function() { $( '#show-settings-link' ).trigger( 'click' ); } );
[595] Fix | Delete
[596] Fix | Delete
/**
[597] Fix | Delete
* PLACEMENTS
[598] Fix | Delete
*/
[599] Fix | Delete
var set_touched_placement = function() {
[600] Fix | Delete
var tr = $( this ).closest( 'tr.advanced-ads-placement-row' )
[601] Fix | Delete
if ( tr ) {
[602] Fix | Delete
tr.data( 'touched', true )
[603] Fix | Delete
}
[604] Fix | Delete
}
[605] Fix | Delete
[606] Fix | Delete
// keep track of placements that were changed
[607] Fix | Delete
$( 'form#advanced-ads-placements-form input, #advanced-ads-placements-form select' ).on( 'change', set_touched_placement )
[608] Fix | Delete
$( 'form#advanced-ads-placements-form button' ).on( 'click', set_touched_placement )
[609] Fix | Delete
[610] Fix | Delete
// some special form elements overwrite the jquery listeners (or render them unusable in some strange way)
[611] Fix | Delete
// to counter that and make it more robust in general, we now listen for mouseover events, that will
[612] Fix | Delete
// only occur, when the settings of a placement are expanded (let's just assume this means editing)
[613] Fix | Delete
$( 'form#advanced-ads-placements-form .advads-modal' ).on( 'mouseover', set_touched_placement )
[614] Fix | Delete
[615] Fix | Delete
// if the modal is canceled, remove the "touched" data again, since the user discarded any changes.
[616] Fix | Delete
$( document ).on( 'advads-modal-canceled', event => {
[617] Fix | Delete
const $placementRow = $( '#' + event.detail.modal_id ).parents( '.advanced-ads-placement-row' );
[618] Fix | Delete
if ( ! $placementRow.length ) {
[619] Fix | Delete
return;
[620] Fix | Delete
}
[621] Fix | Delete
$placementRow.data( 'touched', false );
[622] Fix | Delete
} );
[623] Fix | Delete
[624] Fix | Delete
// on submit remove placements that were untouched
[625] Fix | Delete
$( 'form#advanced-ads-placements-form' ).on( 'submit', function () {
[626] Fix | Delete
var grouprows = jQuery( 'form#advanced-ads-placements-form tr.advanced-ads-placement-row' )
[627] Fix | Delete
jQuery( 'form#advanced-ads-placements-form tr.advanced-ads-placement-row' ).each( function ( k, v ) {
[628] Fix | Delete
v = jQuery( v )
[629] Fix | Delete
if ( ! v.data( 'touched' ) ) {
[630] Fix | Delete
v.find( 'input, select' ).each( function ( k2, v2 ) {
[631] Fix | Delete
v2 = jQuery( v2 )
[632] Fix | Delete
v2.prop( 'disabled', true )
[633] Fix | Delete
} )
[634] Fix | Delete
}
[635] Fix | Delete
} )
[636] Fix | Delete
} )
[637] Fix | Delete
[638] Fix | Delete
// show input field for custom xpath rule when "custom" option is selected for Content placement
[639] Fix | Delete
// iterate through all tag options of all placements
[640] Fix | Delete
$( '.advads-placements-content-tag' ).each( function(){
[641] Fix | Delete
advads_show_placement_content_xpath_field( this );
[642] Fix | Delete
})
[643] Fix | Delete
// update xpath field when tag option changes
[644] Fix | Delete
$( '.advads-placements-content-tag' ).on( 'change', function () {
[645] Fix | Delete
advads_show_placement_content_xpath_field( this );
[646] Fix | Delete
} )
[647] Fix | Delete
/**
[648] Fix | Delete
* show / hide input field for xpath rule
[649] Fix | Delete
*
[650] Fix | Delete
* @param tag field
[651] Fix | Delete
*/
[652] Fix | Delete
function advads_show_placement_content_xpath_field( tag_field ){
[653] Fix | Delete
// get the value of the content tag option
[654] Fix | Delete
var tag = $( tag_field ).find( 'option:selected').val();
[655] Fix | Delete
// show or hide the next following custom xpath option
[656] Fix | Delete
if( 'custom' === tag ) {
[657] Fix | Delete
$( tag_field ).next( '.advads-placements-content-custom-xpath' ).show();
[658] Fix | Delete
} else {
[659] Fix | Delete
$( tag_field ).next( '.advads-placements-content-custom-xpath' ).hide();
[660] Fix | Delete
}
[661] Fix | Delete
}
[662] Fix | Delete
[663] Fix | Delete
// show tooltips for group type or placement type in forms
[664] Fix | Delete
$( '.advads-form-type' ).advads_tooltip( {
[665] Fix | Delete
content: function () {
[666] Fix | Delete
return jQuery( this ).find( '.advads-form-description' ).html()
[667] Fix | Delete
},
[668] Fix | Delete
parent: ( $target ) => {
[669] Fix | Delete
const modal = $target.parents( '.advads-modal' );
[670] Fix | Delete
[671] Fix | Delete
return modal.length ? '#'+modal[0].id : 'body';
[672] Fix | Delete
}
[673] Fix | Delete
} );
[674] Fix | Delete
[675] Fix | Delete
/**
[676] Fix | Delete
* On the placements and ad edit page, check if the form values have changed on beforeunload.
[677] Fix | Delete
* On the settings page, additionally check for a tab change.
[678] Fix | Delete
*/
[679] Fix | Delete
const advadsTermination = ( () => {
[680] Fix | Delete
let termination,
[681] Fix | Delete
form,
[682] Fix | Delete
submitted = false;
[683] Fix | Delete
if ( window.advadstxt.admin_page === 'advanced-ads_page_advanced-ads-placements' ) {
[684] Fix | Delete
form = document.getElementById( 'advanced-ads-placements-form' );
[685] Fix | Delete
if ( form !== null ) {
[686] Fix | Delete
termination = new Advads_Termination( form );
[687] Fix | Delete
}
[688] Fix | Delete
}
[689] Fix | Delete
[690] Fix | Delete
if ( window.advadstxt.admin_page === 'advanced_ads' ) {
[691] Fix | Delete
// prevent errors on back/forward navigation
[692] Fix | Delete
form = document.getElementById( 'post' );
[693] Fix | Delete
if ( form !== null ) {
[694] Fix | Delete
termination = new Advads_Termination( form );
[695] Fix | Delete
}
[696] Fix | Delete
}
[697] Fix | Delete
[698] Fix | Delete
if ( window.advadstxt.admin_page === 'advanced-ads_page_advanced-ads-settings' ) {
[699] Fix | Delete
form = document.querySelector( '.advads-tab.active > form' );
[700] Fix | Delete
if ( form !== null ) {
[701] Fix | Delete
termination = new Advads_Termination( form );
[702] Fix | Delete
}
[703] Fix | Delete
[...document.getElementsByClassName( 'nav-tab' )].forEach( tab => {
[704] Fix | Delete
tab.addEventListener( 'click', event => {
[705] Fix | Delete
if ( ! termination.terminationNotice() ) {
[706] Fix | Delete
event.preventDefault();
[707] Fix | Delete
return termination;
[708] Fix | Delete
}
[709] Fix | Delete
[710] Fix | Delete
advads_set_tab( advads_extract_tab( new URL( event.target.href ).hash ) );
[711] Fix | Delete
[712] Fix | Delete
form = document.querySelector( '.advads-tab.active > form' );
[713] Fix | Delete
if ( form !== null ) {
[714] Fix | Delete
termination = new Advads_Termination( form );
[715] Fix | Delete
termination.collectValues();
[716] Fix | Delete
// if the form is submitted, don't fire the beforeunload handler.
[717] Fix | Delete
form.addEventListener( 'submit', () => {
[718] Fix | Delete
submitted = true;
[719] Fix | Delete
} );
[720] Fix | Delete
}
[721] Fix | Delete
} );
[722] Fix | Delete
} );
[723] Fix | Delete
}
[724] Fix | Delete
[725] Fix | Delete
if ( typeof termination !== 'undefined' ) {
[726] Fix | Delete
termination.collectValues();
[727] Fix | Delete
const beforeUnloadHandler = event => {
[728] Fix | Delete
if ( ! submitted && ! termination.terminationNotice() ) {
[729] Fix | Delete
event.preventDefault();
[730] Fix | Delete
event.returnValue = 'string';
[731] Fix | Delete
return termination;
[732] Fix | Delete
}
[733] Fix | Delete
};
[734] Fix | Delete
[735] Fix | Delete
window.addEventListener( 'beforeunload', beforeUnloadHandler );
[736] Fix | Delete
[737] Fix | Delete
// if the form is submitted, don't fire the beforeunload handler.
[738] Fix | Delete
form.addEventListener( 'submit', () => {
[739] Fix | Delete
submitted = true;
[740] Fix | Delete
} );
[741] Fix | Delete
}
[742] Fix | Delete
return termination;
[743] Fix | Delete
} )();
[744] Fix | Delete
[745] Fix | Delete
/**
[746] Fix | Delete
* Image ad uploader
[747] Fix | Delete
*/
[748] Fix | Delete
$( 'body' ).on( 'click', '.advads_image_upload', function ( e ) {
[749] Fix | Delete
[750] Fix | Delete
e.preventDefault()
[751] Fix | Delete
[752] Fix | Delete
var button = $( this )
[753] Fix | Delete
[754] Fix | Delete
// If the media frame already exists, reopen it.
[755] Fix | Delete
if ( file_frame ) {
[756] Fix | Delete
// file_frame.uploader.uploader.param( 'post_id', set_to_post_id );
[757] Fix | Delete
file_frame.open()
[758] Fix | Delete
return
[759] Fix | Delete
}
[760] Fix | Delete
[761] Fix | Delete
// Create the media frame.
[762] Fix | Delete
file_frame = wp.media.frames.file_frame = wp.media( {
[763] Fix | Delete
id: 'advads_type_image_wp_media',
[764] Fix | Delete
title: button.data( 'uploaderTitle' ),
[765] Fix | Delete
button: {
[766] Fix | Delete
text: button.data( 'uploaderButtonText' )
[767] Fix | Delete
},
[768] Fix | Delete
library: {
[769] Fix | Delete
type: 'image'
[770] Fix | Delete
},
[771] Fix | Delete
multiple: false // only allow one file to be selected
[772] Fix | Delete
} )
[773] Fix | Delete
[774] Fix | Delete
// When an image is selected, run a callback.
[775] Fix | Delete
file_frame.on( 'select', function () {
[776] Fix | Delete
[777] Fix | Delete
var selection = file_frame.state().get( 'selection' )
[778] Fix | Delete
selection.each( function ( attachment, index ) {
[779] Fix | Delete
attachment = attachment.toJSON()
[780] Fix | Delete
if ( 0 === index ) {
[781] Fix | Delete
// place first attachment in field
[782] Fix | Delete
$( '#advads-image-id' ).val( attachment.id )
[783] Fix | Delete
$( '#advanced-ads-ad-parameters-size input[name="advanced_ad[width]"]' ).val( attachment.width )
[784] Fix | Delete
$( '#advanced-ads-ad-parameters-size input[name="advanced_ad[height]"]' ).val( attachment.height )
[785] Fix | Delete
// update image preview
[786] Fix | Delete
var new_image = '<img width="' + attachment.width + '" height="' + attachment.height +
[787] Fix | Delete
'" title="' + attachment.title + '" alt="' + attachment.alt + '" src="' + attachment.url + '"/>'
[788] Fix | Delete
$( '#advads-image-preview' ).html( new_image )
[789] Fix | Delete
$( '#advads-image-edit-link' ).attr( 'href', attachment.editLink );
[790] Fix | Delete
$( '#advads-image-edit-link' ).removeClass( 'hidden' );
[791] Fix | Delete
// process "reserve this space" checkbox
[792] Fix | Delete
$( '#advanced-ads-ad-parameters-size input[type=number]:first' ).trigger( 'change' );
[793] Fix | Delete
}
[794] Fix | Delete
} )
[795] Fix | Delete
} )
[796] Fix | Delete
[797] Fix | Delete
// Finally, open the modal
[798] Fix | Delete
file_frame.open()
[799] Fix | Delete
} );
[800] Fix | Delete
[801] Fix | Delete
// WP 3.5+ uploader
[802] Fix | Delete
var file_frame
[803] Fix | Delete
window.formfield = ''
[804] Fix | Delete
[805] Fix | Delete
// adblocker related code
[806] Fix | Delete
$( '#advanced-ads-use-adblocker' ).on( 'change', function () {
[807] Fix | Delete
advads_toggle_box( this, '#advads-adblocker-wrapper' )
[808] Fix | Delete
} )
[809] Fix | Delete
[810] Fix | Delete
// processing of the rebuild asset form and the FTP/SSH credentials form
[811] Fix | Delete
var $advads_adblocker_wrapper = $( '#advads-adblocker-wrapper' ),
[812] Fix | Delete
$advads_adblocker_rebuild_button = $( '#advads-adblocker-rebuild' );
[813] Fix | Delete
[814] Fix | Delete
$advads_adblocker_rebuild_button.prop( 'disabled', false );
[815] Fix | Delete
[816] Fix | Delete
$( document ).on( 'click', '#advads-adblocker-rebuild', function ( event ) {
[817] Fix | Delete
event.preventDefault();
[818] Fix | Delete
var $form = $( '#advanced-ads-rebuild-assets-form' );
[819] Fix | Delete
$form.prev( '.error' ).remove();
[820] Fix | Delete
$advads_adblocker_rebuild_button.prop( 'disabled', true ).after( '<span class="spinner advads-spinner"></span>' );
[821] Fix | Delete
[822] Fix | Delete
var args = {
[823] Fix | Delete
data: {
[824] Fix | Delete
action: 'advads-adblock-rebuild-assets',
[825] Fix | Delete
nonce: advadsglobal.ajax_nonce
[826] Fix | Delete
},
[827] Fix | Delete
done: function ( data ) {
[828] Fix | Delete
$advads_adblocker_wrapper.html( data );
[829] Fix | Delete
$advads_adblocker_rebuild_button = $( '#advads-adblocker-rebuild' )
[830] Fix | Delete
},
[831] Fix | Delete
fail: function ( jqXHR, textStatus, errorThrown ) {
[832] Fix | Delete
$form.before( '<div class="error"><p>' + textStatus + ': ' + errorThrown + '</p></div>' );
[833] Fix | Delete
$advads_adblocker_rebuild_button.prop( 'disabled', false ).next( '.advads-spinner' ).remove();
[834] Fix | Delete
},
[835] Fix | Delete
on_modal_close: function () {
[836] Fix | Delete
$advads_adblocker_rebuild_button.prop( 'disabled', false ).next( '.advads-spinner' ).remove();
[837] Fix | Delete
}
[838] Fix | Delete
};
[839] Fix | Delete
[840] Fix | Delete
if ( $( '[name="advads_ab_assign_new_folder"]' ).is( ':checked' ) ) {
[841] Fix | Delete
args.data.advads_ab_assign_new_folder = true;
[842] Fix | Delete
}
[843] Fix | Delete
[844] Fix | Delete
advanced_ads_admin.filesystem.ajax( args );
[845] Fix | Delete
} );
[846] Fix | Delete
[847] Fix | Delete
// process "reserve this space" checkbox
[848] Fix | Delete
$( '#advanced-ads-ad-parameters' ).on( 'change', '#advanced-ads-ad-parameters-size input[type=number]', function () {
[849] Fix | Delete
// Check if width and/or height is set.
[850] Fix | Delete
if ( $( '#advanced-ads-ad-parameters-size input[type=number]' ).filter( function () {
[851] Fix | Delete
return parseInt( this.value, 10 ) > 0
[852] Fix | Delete
} ).length >= 1 ) {
[853] Fix | Delete
$( '#advads-wrapper-add-sizes' ).prop( 'disabled', false )
[854] Fix | Delete
} else {
[855] Fix | Delete
$( '#advads-wrapper-add-sizes' ).prop( 'disabled', true ).prop( 'checked', false )
[856] Fix | Delete
}
[857] Fix | Delete
} )
[858] Fix | Delete
// process "reserve this space" checkbox - ad type changed
[859] Fix | Delete
$( '#advanced-ads-ad-parameters' ).on( 'paramloaded', function () {
[860] Fix | Delete
$( '#advanced-ads-ad-parameters-size input[type=number]:first' ).trigger( 'change' );
[861] Fix | Delete
} );
[862] Fix | Delete
// process "reserve this space" checkbox - on load
[863] Fix | Delete
$( '#advanced-ads-ad-parameters-size input[type=number]:first' ).trigger( 'change' );
[864] Fix | Delete
[865] Fix | Delete
// move meta box markup to hndle headline
[866] Fix | Delete
$( '.advads-hndlelinks' ).each( function () {
[867] Fix | Delete
$( this ).appendTo( $( this ).parents('.postbox').find( 'h2.hndle' ) )
[868] Fix | Delete
$( this ).removeClass( 'hidden' )
[869] Fix | Delete
} );
[870] Fix | Delete
// Open tutorial link when clicked on it in targeting metabox.
[871] Fix | Delete
$( '.advads-video-link' ).on( 'click', function (event) {
[872] Fix | Delete
event.preventDefault();
[873] Fix | Delete
var parent = $( event.target ).closest( '.postbox' );
[874] Fix | Delete
parent.removeClass( 'closed' );
[875] Fix | Delete
var videoContainer = parent.find( '.advads-video-link-container' );
[876] Fix | Delete
videoContainer.html( videoContainer.data( 'videolink' ) );
[877] Fix | Delete
} );
[878] Fix | Delete
// switch import type
[879] Fix | Delete
jQuery( '.advads_import_type' ).on( 'change', function () {
[880] Fix | Delete
if ( this.value === 'xml_content' ) {
[881] Fix | Delete
jQuery( '#advads_xml_file' ).hide()
[882] Fix | Delete
jQuery( '#advads_xml_content' ).show()
[883] Fix | Delete
} else {
[884] Fix | Delete
jQuery( '#advads_xml_file' ).show()
[885] Fix | Delete
jQuery( '#advads_xml_content' ).hide()
[886] Fix | Delete
}
[887] Fix | Delete
} );
[888] Fix | Delete
[889] Fix | Delete
// Find Adsense Auto Ads inside ad content.
[890] Fix | Delete
var ad_content = jQuery( 'textarea[name=advanced_ad\\[content\\]]' ).text() || '';
[891] Fix | Delete
if (
[892] Fix | Delete
ad_content.indexOf( 'enable_page_level_ads' ) !== - 1
[893] Fix | Delete
|| /script[^>]+(?:data-ad-client=|adsbygoogle\.js\?client=)/.test( ad_content )
[894] Fix | Delete
) {
[895] Fix | Delete
advads_show_adsense_auto_ads_warning();
[896] Fix | Delete
}
[897] Fix | Delete
[898] Fix | Delete
advads_ads_txt_find_issues()
[899] Fix | Delete
[900] Fix | Delete
jQuery( '.advanced-ads-adsense-dashboard' ).each( function ( key, elm ) {
[901] Fix | Delete
if ( Advanced_Ads_Adsense_Report_Helper ) {
[902] Fix | Delete
Advanced_Ads_Adsense_Report_Helper.init( elm );
[903] Fix | Delete
}
[904] Fix | Delete
} );
[905] Fix | Delete
} )
[906] Fix | Delete
[907] Fix | Delete
function modal_submit_form( event, ID, modalID, validation = '' ) {
[908] Fix | Delete
if ( validation !== '' && ! window[validation]( modalID ) ) {
[909] Fix | Delete
event.preventDefault();
[910] Fix | Delete
return;
[911] Fix | Delete
}
[912] Fix | Delete
document.getElementById( ID ).submit();
[913] Fix | Delete
}
[914] Fix | Delete
[915] Fix | Delete
/**
[916] Fix | Delete
* Store the action hash in settings form action
[917] Fix | Delete
* thanks for Yoast SEO for this idea
[918] Fix | Delete
*/
[919] Fix | Delete
function advads_set_tab_hashes() {
[920] Fix | Delete
// iterate through forms
[921] Fix | Delete
jQuery( '#advads-tabs' ).find( 'a' ).each( function () {
[922] Fix | Delete
var id = jQuery( this ).attr( 'id' ).replace( '-tab', '' );
[923] Fix | Delete
var optiontab = jQuery( '#' + id );
[924] Fix | Delete
[925] Fix | Delete
var form = optiontab.children( '.advads-settings-tab-main-form' )
[926] Fix | Delete
if ( form.length ) {
[927] Fix | Delete
var currentUrl = form.attr( 'action' ).split( '#' )[ 0 ]
[928] Fix | Delete
form.attr( 'action', currentUrl + jQuery( this ).attr( 'href' ) )
[929] Fix | Delete
}
[930] Fix | Delete
} )
[931] Fix | Delete
}
[932] Fix | Delete
[933] Fix | Delete
/**
[934] Fix | Delete
* Scroll to position in backend minus admin bar height
[935] Fix | Delete
*
[936] Fix | Delete
* @param selector jQuery selector
[937] Fix | Delete
*/
[938] Fix | Delete
function advads_scroll_to_element ( selector ) {
[939] Fix | Delete
var height_of_admin_bar = jQuery( '#wpadminbar' ).height()
[940] Fix | Delete
jQuery( 'html, body' ).animate( {
[941] Fix | Delete
scrollTop: jQuery( selector ).offset().top - height_of_admin_bar
[942] Fix | Delete
}, 1000 )
[943] Fix | Delete
}
[944] Fix | Delete
[945] Fix | Delete
/**
[946] Fix | Delete
* toggle content elements (hide/show)
[947] Fix | Delete
*
[948] Fix | Delete
* @param selector jquery selector
[949] Fix | Delete
*/
[950] Fix | Delete
function advads_toggle ( selector ) {
[951] Fix | Delete
jQuery( selector ).slideToggle()
[952] Fix | Delete
}
[953] Fix | Delete
[954] Fix | Delete
/**
[955] Fix | Delete
* toggle content elements with a checkbox (hide/show)
[956] Fix | Delete
*
[957] Fix | Delete
* @param selector jquery selector
[958] Fix | Delete
*/
[959] Fix | Delete
function advads_toggle_box ( e, selector ) {
[960] Fix | Delete
if ( jQuery( e ).is( ':checked' ) ) {
[961] Fix | Delete
jQuery( selector ).slideDown()
[962] Fix | Delete
} else {
[963] Fix | Delete
jQuery( selector ).slideUp()
[964] Fix | Delete
}
[965] Fix | Delete
}
[966] Fix | Delete
[967] Fix | Delete
/**
[968] Fix | Delete
* disable content of one box when selecting another
[969] Fix | Delete
* only grey/disable it, don’t hide it
[970] Fix | Delete
*
[971] Fix | Delete
* @param selector jquery selector
[972] Fix | Delete
*/
[973] Fix | Delete
function advads_toggle_box_enable ( e, selector ) {
[974] Fix | Delete
if ( jQuery( e ).is( ':checked' ) ) {
[975] Fix | Delete
jQuery( selector ).find( 'input' ).removeAttr( 'disabled', '' )
[976] Fix | Delete
} else {
[977] Fix | Delete
jQuery( selector ).find( 'input' ).attr( 'disabled', 'disabled' )
[978] Fix | Delete
}
[979] Fix | Delete
}
[980] Fix | Delete
[981] Fix | Delete
/**
[982] Fix | Delete
* Validate the form that creates a new group or placement.
[983] Fix | Delete
*/
[984] Fix | Delete
function advads_validate_new_form (modalID) {
[985] Fix | Delete
// Check if type was selected
[986] Fix | Delete
if ( ! jQuery( '.advads-form-type input:checked' ).length ) {
[987] Fix | Delete
jQuery( '.advads-form-type-error' ).show()
[988] Fix | Delete
return false
[989] Fix | Delete
} else {
[990] Fix | Delete
jQuery( '.advads-form-type-error' ).hide()
[991] Fix | Delete
}
[992] Fix | Delete
// Check if name was entered
[993] Fix | Delete
if ( jQuery( '.advads-form-name' ).val() == '' ) {
[994] Fix | Delete
jQuery( '.advads-form-name-error' ).show()
[995] Fix | Delete
return false
[996] Fix | Delete
} else {
[997] Fix | Delete
jQuery( '.advads-form-name-error' ).hide()
[998] Fix | Delete
}
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function