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
return true
[1000] Fix | Delete
}
[1001] Fix | Delete
[1002] Fix | Delete
/**
[1003] Fix | Delete
* Submit only the current group. Submitting the form with all groups could otherwise cause a server timeout or PHP limit error.
[1004] Fix | Delete
*
[1005] Fix | Delete
* @param {string} modalID
[1006] Fix | Delete
* @return {boolean}
[1007] Fix | Delete
*/
[1008] Fix | Delete
function advads_group_edit_submit( modalID ) {
[1009] Fix | Delete
jQuery( '.advads-ad-group-form' )
[1010] Fix | Delete
.filter( ( i, element ) => ! jQuery( element ).parents( modalID ).length )
[1011] Fix | Delete
.remove();
[1012] Fix | Delete
[1013] Fix | Delete
return true;
[1014] Fix | Delete
}
[1015] Fix | Delete
[1016] Fix | Delete
/**
[1017] Fix | Delete
* replace textarea with TinyMCE editor for Rich Content ad type
[1018] Fix | Delete
*/
[1019] Fix | Delete
function advads_maybe_textarea_to_tinymce ( ad_type ) {
[1020] Fix | Delete
var textarea = jQuery( '#advads-ad-content-plain' ),
[1021] Fix | Delete
textarea_html = textarea.val(),
[1022] Fix | Delete
tinymce_id = 'advanced-ads-tinymce',
[1023] Fix | Delete
tinymce_id_ws = jQuery( '#' + tinymce_id ),
[1024] Fix | Delete
tinymce_wrapper_div = jQuery( '#advanced-ads-tinymce-wrapper' )
[1025] Fix | Delete
[1026] Fix | Delete
if ( ad_type !== 'content' ) {
[1027] Fix | Delete
tinymce_id_ws.prop( 'name', tinymce_id )
[1028] Fix | Delete
tinymce_wrapper_div.hide()
[1029] Fix | Delete
return false
[1030] Fix | Delete
}
[1031] Fix | Delete
[1032] Fix | Delete
if ( typeof tinyMCE === 'object' && tinyMCE.get( tinymce_id ) !== null ) {
[1033] Fix | Delete
// visual mode
[1034] Fix | Delete
if ( textarea_html ) {
[1035] Fix | Delete
// see BeforeSetContent in the wp-includes\js\tinymce\plugins\wordpress\plugin.js
[1036] Fix | Delete
var wp = window.wp,
[1037] Fix | Delete
hasWpautop = (wp && wp.editor && wp.editor.autop && tinyMCE.get( tinymce_id ).getParam( 'wpautop', true ))
[1038] Fix | Delete
if ( hasWpautop ) {
[1039] Fix | Delete
textarea_html = wp.editor.autop( textarea_html )
[1040] Fix | Delete
}
[1041] Fix | Delete
tinyMCE.get( tinymce_id ).setContent( textarea_html )
[1042] Fix | Delete
}
[1043] Fix | Delete
textarea.remove()
[1044] Fix | Delete
tinymce_id_ws.prop( 'name', textarea.prop( 'name' ) )
[1045] Fix | Delete
tinymce_wrapper_div.show()
[1046] Fix | Delete
} else if ( tinymce_id_ws.length ) {
[1047] Fix | Delete
// text mode
[1048] Fix | Delete
tinymce_id_ws.val( textarea_html )
[1049] Fix | Delete
textarea.remove()
[1050] Fix | Delete
tinymce_id_ws.prop( 'name', textarea.prop( 'name' ) )
[1051] Fix | Delete
tinymce_wrapper_div.show()
[1052] Fix | Delete
}
[1053] Fix | Delete
}
[1054] Fix | Delete
[1055] Fix | Delete
/**
[1056] Fix | Delete
* Show a message depending on whether Adsense Auto ads are enabled.
[1057] Fix | Delete
*/
[1058] Fix | Delete
function advads_show_adsense_auto_ads_warning () {
[1059] Fix | Delete
$msg = jQuery( '.advads-auto-ad-in-ad-content' ).show()
[1060] Fix | Delete
$msg.on( 'click', 'button', function () {
[1061] Fix | Delete
$msg.hide()
[1062] Fix | Delete
jQuery.ajax( {
[1063] Fix | Delete
type: 'POST',
[1064] Fix | Delete
url: ajaxurl,
[1065] Fix | Delete
data: {
[1066] Fix | Delete
action: 'advads-adsense-enable-pla',
[1067] Fix | Delete
nonce: advadsglobal.ajax_nonce
[1068] Fix | Delete
},
[1069] Fix | Delete
} ).done( function ( data ) {
[1070] Fix | Delete
$msg.show().html( advadstxt.page_level_ads_enabled )
[1071] Fix | Delete
} ).fail( function ( jqXHR, textStatus ) {
[1072] Fix | Delete
$msg.show()
[1073] Fix | Delete
} )
[1074] Fix | Delete
} )
[1075] Fix | Delete
}
[1076] Fix | Delete
[1077] Fix | Delete
/**
[1078] Fix | Delete
* Check if a third-party ads.txt file exists.
[1079] Fix | Delete
*/
[1080] Fix | Delete
function advads_ads_txt_find_issues () {
[1081] Fix | Delete
var $wrapper = jQuery( '#advads-ads-txt-notice-wrapper' )
[1082] Fix | Delete
var $refresh = jQuery( '#advads-ads-txt-notice-refresh' )
[1083] Fix | Delete
var $actions = jQuery( '.advads-ads-txt-action' )
[1084] Fix | Delete
[1085] Fix | Delete
/**
[1086] Fix | Delete
* Toggle the visibility of the spinner.
[1087] Fix | Delete
*
[1088] Fix | Delete
* @param {Bool} state True to show, False to hide.
[1089] Fix | Delete
*/
[1090] Fix | Delete
function set_loading ( state ) {
[1091] Fix | Delete
$actions.toggle( ! state )
[1092] Fix | Delete
if ( state ) {
[1093] Fix | Delete
$wrapper.html( '<span class="spinner advads-spinner"></span>' )
[1094] Fix | Delete
}
[1095] Fix | Delete
}
[1096] Fix | Delete
[1097] Fix | Delete
if ( ! $wrapper.length ) {
[1098] Fix | Delete
return
[1099] Fix | Delete
}
[1100] Fix | Delete
[1101] Fix | Delete
if ( ! $wrapper.find( 'ul' ).length ) {
[1102] Fix | Delete
// There are no notices. Fetch them using ajax.
[1103] Fix | Delete
load( 'get_notices' )
[1104] Fix | Delete
}
[1105] Fix | Delete
[1106] Fix | Delete
$refresh.on('click', function () {
[1107] Fix | Delete
load( 'get_notices' )
[1108] Fix | Delete
} )
[1109] Fix | Delete
[1110] Fix | Delete
function done ( response ) {
[1111] Fix | Delete
$wrapper.html( response.notices )
[1112] Fix | Delete
set_loading( false )
[1113] Fix | Delete
}
[1114] Fix | Delete
[1115] Fix | Delete
function fail ( jqXHR ) {
[1116] Fix | Delete
$wrapper.html(
[1117] Fix | Delete
'<p class="advads-notice-inline advads-error">'
[1118] Fix | Delete
+ jQuery( '#advads-ads-txt-notice-error' ).text().replace( '%s', parseInt( jqXHR.status, 10 ) ),
[1119] Fix | Delete
+'</p>'
[1120] Fix | Delete
)
[1121] Fix | Delete
set_loading( false )
[1122] Fix | Delete
}
[1123] Fix | Delete
[1124] Fix | Delete
function load ( type ) {
[1125] Fix | Delete
set_loading( true )
[1126] Fix | Delete
[1127] Fix | Delete
jQuery.ajax( {
[1128] Fix | Delete
type: 'POST',
[1129] Fix | Delete
url: ajaxurl,
[1130] Fix | Delete
data: {
[1131] Fix | Delete
action: 'advads-ads-txt',
[1132] Fix | Delete
nonce: advadsglobal.ajax_nonce,
[1133] Fix | Delete
type,
[1134] Fix | Delete
},
[1135] Fix | Delete
} ).done( done ).fail( fail )
[1136] Fix | Delete
}
[1137] Fix | Delete
[1138] Fix | Delete
jQuery( document ).on( 'click', '#advads-ads-txt-remove-real', function ( event ) {
[1139] Fix | Delete
event.preventDefault()
[1140] Fix | Delete
[1141] Fix | Delete
var args = {
[1142] Fix | Delete
data: {
[1143] Fix | Delete
action: 'advads-ads-txt',
[1144] Fix | Delete
nonce: advadsglobal.ajax_nonce,
[1145] Fix | Delete
type: 'remove_real_file',
[1146] Fix | Delete
},
[1147] Fix | Delete
done: function ( response ) {
[1148] Fix | Delete
if ( response.additional_content ) {
[1149] Fix | Delete
jQuery( '#advads-ads-txt-additional-content' ).val( response.additional_content )
[1150] Fix | Delete
}
[1151] Fix | Delete
done( response )
[1152] Fix | Delete
},
[1153] Fix | Delete
fail: fail,
[1154] Fix | Delete
before_send: function () {
[1155] Fix | Delete
set_loading( true )
[1156] Fix | Delete
},
[1157] Fix | Delete
}
[1158] Fix | Delete
[1159] Fix | Delete
advanced_ads_admin.filesystem.ajax( args )
[1160] Fix | Delete
} )
[1161] Fix | Delete
[1162] Fix | Delete
jQuery( document ).on( 'click', '#advads-ads-txt-create-real', function ( event ) {
[1163] Fix | Delete
event.preventDefault()
[1164] Fix | Delete
[1165] Fix | Delete
var args = {
[1166] Fix | Delete
data: {
[1167] Fix | Delete
action: 'advads-ads-txt',
[1168] Fix | Delete
nonce: advadsglobal.ajax_nonce,
[1169] Fix | Delete
type: 'create_real_file',
[1170] Fix | Delete
},
[1171] Fix | Delete
done: done,
[1172] Fix | Delete
fail: fail,
[1173] Fix | Delete
before_send: function () {
[1174] Fix | Delete
set_loading( true )
[1175] Fix | Delete
},
[1176] Fix | Delete
}
[1177] Fix | Delete
[1178] Fix | Delete
advanced_ads_admin.filesystem.ajax( args )
[1179] Fix | Delete
} )
[1180] Fix | Delete
[1181] Fix | Delete
}
[1182] Fix | Delete
[1183] Fix | Delete
window.advanced_ads_admin = window.advanced_ads_admin || {}
[1184] Fix | Delete
advanced_ads_admin.filesystem = {
[1185] Fix | Delete
/**
[1186] Fix | Delete
* Holds the current job while the user writes data in the 'Connection Information' modal.
[1187] Fix | Delete
*
[1188] Fix | Delete
* @type {obj}
[1189] Fix | Delete
*/
[1190] Fix | Delete
_locked_job: false,
[1191] Fix | Delete
[1192] Fix | Delete
/**
[1193] Fix | Delete
* Toggle the 'Connection Information' modal.
[1194] Fix | Delete
*/
[1195] Fix | Delete
_requestForCredentialsModalToggle: function () {
[1196] Fix | Delete
this.$filesystemModal.toggle()
[1197] Fix | Delete
jQuery( 'body' ).toggleClass( 'modal-open' )
[1198] Fix | Delete
},
[1199] Fix | Delete
[1200] Fix | Delete
_init: function () {
[1201] Fix | Delete
this._init = function () {}
[1202] Fix | Delete
var self = this
[1203] Fix | Delete
[1204] Fix | Delete
self.$filesystemModal = jQuery( '#advanced-ads-rfc-dialog' )
[1205] Fix | Delete
/**
[1206] Fix | Delete
* Sends saved job.
[1207] Fix | Delete
*/
[1208] Fix | Delete
self.$filesystemModal.on( 'submit', 'form', function ( event ) {
[1209] Fix | Delete
event.preventDefault()
[1210] Fix | Delete
[1211] Fix | Delete
self.ajax( self._locked_job, true )
[1212] Fix | Delete
self._requestForCredentialsModalToggle()
[1213] Fix | Delete
} )
[1214] Fix | Delete
[1215] Fix | Delete
/**
[1216] Fix | Delete
* Closes the request credentials modal when clicking the 'Cancel' button.
[1217] Fix | Delete
*/
[1218] Fix | Delete
self.$filesystemModal.on( 'click', '[data-js-action="close"]', function () {
[1219] Fix | Delete
if ( jQuery.isPlainObject( self._locked_job ) && self._locked_job.on_modal_close ) {
[1220] Fix | Delete
self._locked_job.on_modal_close()
[1221] Fix | Delete
}
[1222] Fix | Delete
[1223] Fix | Delete
self._locked_job = false
[1224] Fix | Delete
self._requestForCredentialsModalToggle()
[1225] Fix | Delete
} )
[1226] Fix | Delete
},
[1227] Fix | Delete
[1228] Fix | Delete
/**
[1229] Fix | Delete
* Sends AJAX request. Shows 'Connection Information' modal if needed.
[1230] Fix | Delete
*
[1231] Fix | Delete
* @param {object} args
[1232] Fix | Delete
* @param {bool} skip_modal
[1233] Fix | Delete
*/
[1234] Fix | Delete
ajax: function ( args, skip_modal ) {
[1235] Fix | Delete
this._init()
[1236] Fix | Delete
[1237] Fix | Delete
if ( ! skip_modal && this.$filesystemModal.length > 0 ) {
[1238] Fix | Delete
this._requestForCredentialsModalToggle()
[1239] Fix | Delete
this.$filesystemModal.find( 'input:enabled:first' ).focus()
[1240] Fix | Delete
[1241] Fix | Delete
// Do not send request.
[1242] Fix | Delete
this._locked_job = args
[1243] Fix | Delete
return
[1244] Fix | Delete
}
[1245] Fix | Delete
[1246] Fix | Delete
var options = {
[1247] Fix | Delete
method: 'POST',
[1248] Fix | Delete
url: window.ajaxurl,
[1249] Fix | Delete
data: {
[1250] Fix | Delete
username: jQuery( '#username' ).val(),
[1251] Fix | Delete
password: jQuery( '#password' ).val(),
[1252] Fix | Delete
hostname: jQuery( '#hostname' ).val(),
[1253] Fix | Delete
connection_type: jQuery( 'input[name="connection_type"]:checked' ).val(),
[1254] Fix | Delete
public_key: jQuery( '#public_key' ).val(),
[1255] Fix | Delete
private_key: jQuery( '#private_key' ).val(),
[1256] Fix | Delete
_fs_nonce: jQuery( '#_fs_nonce' ).val()
[1257] Fix | Delete
[1258] Fix | Delete
}
[1259] Fix | Delete
}
[1260] Fix | Delete
[1261] Fix | Delete
if ( args.before_send ) {
[1262] Fix | Delete
args.before_send()
[1263] Fix | Delete
}
[1264] Fix | Delete
[1265] Fix | Delete
options.data = jQuery.extend( options.data, args.data )
[1266] Fix | Delete
var request = jQuery.ajax( options )
[1267] Fix | Delete
[1268] Fix | Delete
if ( args.done ) {
[1269] Fix | Delete
request.done( args.done )
[1270] Fix | Delete
}
[1271] Fix | Delete
[1272] Fix | Delete
if ( args.fail ) {
[1273] Fix | Delete
request.fail( args.fail )
[1274] Fix | Delete
}
[1275] Fix | Delete
}
[1276] Fix | Delete
}
[1277] Fix | Delete
[1278] Fix | Delete
window.Advanced_Ads_Admin = window.Advanced_Ads_Admin || {
[1279] Fix | Delete
init_ad_source_editor: function () {
[1280] Fix | Delete
[1281] Fix | Delete
},
[1282] Fix | Delete
get_ad_source_editor_text: function () {
[1283] Fix | Delete
let text = '';
[1284] Fix | Delete
if ( Advanced_Ads_Admin.editor && Advanced_Ads_Admin.editor.codemirror ) {
[1285] Fix | Delete
text = Advanced_Ads_Admin.editor.codemirror.getValue();
[1286] Fix | Delete
} else {
[1287] Fix | Delete
const ta = jQuery( '#advads-ad-content-plain' );
[1288] Fix | Delete
if ( ta ) {
[1289] Fix | Delete
text = ta.val();
[1290] Fix | Delete
}
[1291] Fix | Delete
}
[1292] Fix | Delete
[1293] Fix | Delete
return text;
[1294] Fix | Delete
},
[1295] Fix | Delete
set_ad_source_editor_text: function ( text ) {
[1296] Fix | Delete
if ( Advanced_Ads_Admin.editor && Advanced_Ads_Admin.editor.codemirror ) {
[1297] Fix | Delete
Advanced_Ads_Admin.editor.codemirror.setValue( text )
[1298] Fix | Delete
} else {
[1299] Fix | Delete
jQuery( '#advads-ad-content-plain' ).val( text )
[1300] Fix | Delete
}
[1301] Fix | Delete
},
[1302] Fix | Delete
check_ad_source: function () {
[1303] Fix | Delete
const text = Advanced_Ads_Admin.get_ad_source_editor_text();
[1304] Fix | Delete
const phpWarning = jQuery( '#advads-parameters-php-warning' );
[1305] Fix | Delete
const allowPhpWarning = jQuery( '#advads-allow-php-warning' );
[1306] Fix | Delete
[1307] Fix | Delete
phpWarning.hide();
[1308] Fix | Delete
allowPhpWarning.hide();
[1309] Fix | Delete
[1310] Fix | Delete
const plainTextarea = document.getElementById( 'advads-ad-content-plain' );
[1311] Fix | Delete
plainTextarea.value = text;
[1312] Fix | Delete
plainTextarea.dispatchEvent( new Event( 'input' ) );
[1313] Fix | Delete
[1314] Fix | Delete
if ( jQuery( '#advads-parameters-php' ).prop( 'checked' ) ) {
[1315] Fix | Delete
// ad content has opening php tag.
[1316] Fix | Delete
if ( /<\?(?:php|=)/.test( text ) ) {
[1317] Fix | Delete
allowPhpWarning.show();
[1318] Fix | Delete
} else {
[1319] Fix | Delete
phpWarning.show();
[1320] Fix | Delete
}
[1321] Fix | Delete
}
[1322] Fix | Delete
// execute shortcodes is enabled.
[1323] Fix | Delete
if ( jQuery( '#advads-parameters-shortcodes' ).prop( 'checked' ) && ! /\[[^\]]+\]/.test( text ) ) {
[1324] Fix | Delete
jQuery( '#advads-parameters-shortcodes-warning' ).show();
[1325] Fix | Delete
} else {
[1326] Fix | Delete
jQuery( '#advads-parameters-shortcodes-warning' ).hide();
[1327] Fix | Delete
}
[1328] Fix | Delete
},
[1329] Fix | Delete
[1330] Fix | Delete
/**
[1331] Fix | Delete
* Change the user id to the current user and save the post.
[1332] Fix | Delete
*
[1333] Fix | Delete
* @param {int} user_id
[1334] Fix | Delete
*/
[1335] Fix | Delete
reassign_ad: function ( user_id ) {
[1336] Fix | Delete
let $authorBox = jQuery( '#post_author_override' );
[1337] Fix | Delete
if ( ! $authorBox.length ) {
[1338] Fix | Delete
$authorBox = jQuery( '#post_author' );
[1339] Fix | Delete
}
[1340] Fix | Delete
[1341] Fix | Delete
$authorBox.val( user_id ).queue( () => {
[1342] Fix | Delete
jQuery( '#post' ).submit();
[1343] Fix | Delete
} );
[1344] Fix | Delete
},
[1345] Fix | Delete
[1346] Fix | Delete
/**
[1347] Fix | Delete
* Toggle placement advanced options.
[1348] Fix | Delete
*
[1349] Fix | Delete
* @deprecated. Used only by add-ons when the base plugin version < 1.19.
[1350] Fix | Delete
*/
[1351] Fix | Delete
toggle_placements_visibility: function ( elm, state ) {
[1352] Fix | Delete
var advadsplacementformrow = jQuery( elm ).next( '.advads-placements-advanced-options' )
[1353] Fix | Delete
[1354] Fix | Delete
var hide = ( typeof state !== 'undefined' ) ? ! state : advadsplacementformrow.is( ':visible' );;
[1355] Fix | Delete
if ( hide ) {
[1356] Fix | Delete
advadsplacementformrow.hide()
[1357] Fix | Delete
// clear last edited id
[1358] Fix | Delete
jQuery( '#advads-last-edited-placement' ).val( '' )
[1359] Fix | Delete
} else {
[1360] Fix | Delete
var placement_id = jQuery( elm ).parents( '.advads-placements-table-options' ).find( '.advads-placement-slug' ).val()
[1361] Fix | Delete
advadsplacementformrow.show()
[1362] Fix | Delete
jQuery( '#advads-last-edited-placement' ).val( placement_id )
[1363] Fix | Delete
// Some special elements (color picker) may not be detected with jquery.
[1364] Fix | Delete
var tr = jQuery( elm ).closest( 'tr.advanced-ads-placement-row' )
[1365] Fix | Delete
if ( tr ) {
[1366] Fix | Delete
tr.data( 'touched', true )
[1367] Fix | Delete
}
[1368] Fix | Delete
}
[1369] Fix | Delete
},
[1370] Fix | Delete
[1371] Fix | Delete
/**
[1372] Fix | Delete
* get a cookie value
[1373] Fix | Delete
*
[1374] Fix | Delete
* @param {str} name of the cookie
[1375] Fix | Delete
*/
[1376] Fix | Delete
get_cookie: function (name) {
[1377] Fix | Delete
var i, x, y, ADVcookies = document.cookie.split( ";" );
[1378] Fix | Delete
for (i = 0; i < ADVcookies.length; i++)
[1379] Fix | Delete
{
[1380] Fix | Delete
x = ADVcookies[i].substr( 0, ADVcookies[i].indexOf( "=" ) );
[1381] Fix | Delete
y = ADVcookies[i].substr( ADVcookies[i].indexOf( "=" ) + 1 );
[1382] Fix | Delete
x = x.replace( /^\s+|\s+$/g, "" );
[1383] Fix | Delete
if (x === name)
[1384] Fix | Delete
{
[1385] Fix | Delete
return unescape( y );
[1386] Fix | Delete
}
[1387] Fix | Delete
}
[1388] Fix | Delete
},
[1389] Fix | Delete
[1390] Fix | Delete
/**
[1391] Fix | Delete
* set a cookie value
[1392] Fix | Delete
*
[1393] Fix | Delete
* @param {str} name of the cookie
[1394] Fix | Delete
* @param {str} value of the cookie
[1395] Fix | Delete
* @param {int} exdays days until cookie expires
[1396] Fix | Delete
* set 0 to expire cookie immidiatelly
[1397] Fix | Delete
* set null to expire cookie in the current session
[1398] Fix | Delete
*/
[1399] Fix | Delete
set_cookie: function (name, value, exdays, path, domain, secure) {
[1400] Fix | Delete
// days in seconds
[1401] Fix | Delete
var expiry = ( exdays == null ) ? null : exdays * 24 * 60 * 60;
[1402] Fix | Delete
this.set_cookie_sec( name, value, expiry, path, domain, secure );
[1403] Fix | Delete
},
[1404] Fix | Delete
/**
[1405] Fix | Delete
* set a cookie with expiry given in seconds
[1406] Fix | Delete
*
[1407] Fix | Delete
* @param {str} name of the cookie
[1408] Fix | Delete
* @param {str} value of the cookie
[1409] Fix | Delete
* @param {int} expiry seconds until cookie expires
[1410] Fix | Delete
* set 0 to expire cookie immidiatelly
[1411] Fix | Delete
* set null to expire cookie in the current session
[1412] Fix | Delete
*/
[1413] Fix | Delete
set_cookie_sec: function (name, value, expiry, path, domain, secure) {
[1414] Fix | Delete
var exdate = new Date();
[1415] Fix | Delete
exdate.setSeconds( exdate.getSeconds() + parseInt( expiry ) );
[1416] Fix | Delete
document.cookie = name + "=" + escape( value ) +
[1417] Fix | Delete
((expiry == null) ? "" : "; expires=" + exdate.toUTCString()) +
[1418] Fix | Delete
((path == null) ? "; path=/" : "; path=" + path) +
[1419] Fix | Delete
((domain == null) ? "" : "; domain=" + domain) +
[1420] Fix | Delete
((secure == null) ? "" : "; secure");
[1421] Fix | Delete
}
[1422] Fix | Delete
}
[1423] Fix | Delete
[1424] Fix | Delete
if ( ! window.AdvancedAdsAdmin ) window.AdvancedAdsAdmin = {}
[1425] Fix | Delete
if ( ! window.AdvancedAdsAdmin.AdImporter ) window.AdvancedAdsAdmin.AdImporter = {
[1426] Fix | Delete
/**
[1427] Fix | Delete
* will highlight the currently selected ads in the list
[1428] Fix | Delete
* @param hideInactive when true will hide inactive ad units
[1429] Fix | Delete
* @returns the selector of the selected row or false if no row was selected.
[1430] Fix | Delete
*/
[1431] Fix | Delete
highlightSelectedRowInExternalAdsList: function ( hideInactive ) {
[1432] Fix | Delete
if ( typeof (hideInactive) == 'undefined' ) hideInactive = AdvancedAdsAdmin.AdImporter.adNetwork.hideIdle
[1433] Fix | Delete
const tbody = jQuery( '#mapi-table-wrap tbody' )
[1434] Fix | Delete
const btn = jQuery( '#mapi-toggle-idle' )
[1435] Fix | Delete
[1436] Fix | Delete
// count the ad units to determine if there's a need for the overflow class (scrolling)
[1437] Fix | Delete
const nbUnits = hideInactive
[1438] Fix | Delete
? jQuery( '#mapi-table-wrap tbody tr[data-active=1]' ).length
[1439] Fix | Delete
: jQuery( '#mapi-table-wrap tbody tr' ).length
[1440] Fix | Delete
if ( nbUnits > 8 ) jQuery( '#mapi-table-wrap' ).addClass( 'overflow' )
[1441] Fix | Delete
else jQuery( '#mapi-table-wrap' ).removeClass( 'overflow' )
[1442] Fix | Delete
[1443] Fix | Delete
const selectedRow = AdvancedAdsAdmin.AdImporter.getSelectedRow()
[1444] Fix | Delete
tbody.find( 'tr' ).removeClass( 'selected error' );
[1445] Fix | Delete
if ( selectedRow ) {
[1446] Fix | Delete
//make sure, it is visible before applying the zebra stripes
[1447] Fix | Delete
selectedRow.show()
[1448] Fix | Delete
}
[1449] Fix | Delete
[1450] Fix | Delete
// make the table's rows striped.
[1451] Fix | Delete
const visible = tbody.find( 'tr:visible' )
[1452] Fix | Delete
visible.filter( ':odd' ).css( 'background-color', '#FFFFFF' )
[1453] Fix | Delete
visible.filter( ':even' ).css( 'background-color', '#F9F9F9' )
[1454] Fix | Delete
[1455] Fix | Delete
// highlight the selected row
[1456] Fix | Delete
if ( selectedRow ) {
[1457] Fix | Delete
// highlight the selected row
[1458] Fix | Delete
selectedRow.css( 'background-color', '' )
[1459] Fix | Delete
selectedRow.addClass( 'selected' )
[1460] Fix | Delete
[1461] Fix | Delete
this.scrollToSelectedRow(selectedRow);
[1462] Fix | Delete
}
[1463] Fix | Delete
[1464] Fix | Delete
return selectedRow || false
[1465] Fix | Delete
},
[1466] Fix | Delete
[1467] Fix | Delete
scrollToSelectedRow($selectedRow) {
[1468] Fix | Delete
const $wrap = jQuery('#mapi-table-wrap'),
[1469] Fix | Delete
wrapHeight = $wrap.height(),
[1470] Fix | Delete
wrapScrolled = $wrap.scrollTop();
[1471] Fix | Delete
[1472] Fix | Delete
// just in case this does not get passed a selected row, scroll to top of the table
[1473] Fix | Delete
if (!$selectedRow) {
[1474] Fix | Delete
$wrap.animate({scrollTop: 0}, 200);
[1475] Fix | Delete
return;
[1476] Fix | Delete
}
[1477] Fix | Delete
[1478] Fix | Delete
// get the position of the selectedRow within the table wrap
[1479] Fix | Delete
let scroll = $selectedRow.position().top,
[1480] Fix | Delete
bottom = +scroll + $selectedRow.height();
[1481] Fix | Delete
// if the (top of the) element is not yet visible scroll to it
[1482] Fix | Delete
if (scroll < wrapScrolled || bottom > wrapScrolled || scroll > wrapScrolled + wrapHeight) {
[1483] Fix | Delete
// scrolled element is below current scroll position, i.e. we need to scroll past it not to top
[1484] Fix | Delete
if (bottom > $wrap.children('table').height() - wrapHeight) {
[1485] Fix | Delete
scroll = bottom;
[1486] Fix | Delete
}
[1487] Fix | Delete
[1488] Fix | Delete
// if the selected element is on the "first page" let's scroll all the way to the top
[1489] Fix | Delete
if (scroll < wrapHeight) {
[1490] Fix | Delete
scroll = 0;
[1491] Fix | Delete
}
[1492] Fix | Delete
[1493] Fix | Delete
$wrap.animate({scrollTop: scroll}, 200);
[1494] Fix | Delete
}
[1495] Fix | Delete
},
[1496] Fix | Delete
[1497] Fix | Delete
getSelectedRow () {
[1498] Fix | Delete
const selectedId = AdvancedAdsAdmin.AdImporter.adNetwork.getSelectedId()
[1499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function