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/themify-.../admin/js
File: tbp-admin.js
var ThemifyBuilderCommon;
[0] Fix | Delete
(function ($,document, Themify) {
[1] Fix | Delete
'use strict';
[2] Fix | Delete
[3] Fix | Delete
let checkedItems = {},
[4] Fix | Delete
TBP = {
[5] Fix | Delete
isLoaded: null,
[6] Fix | Delete
options: null,
[7] Fix | Delete
labels: null,
[8] Fix | Delete
lightbox: null,
[9] Fix | Delete
lightboxContainer: null,
[10] Fix | Delete
type: null,
[11] Fix | Delete
conditions:null,
[12] Fix | Delete
pageId: null,
[13] Fix | Delete
id: null,
[14] Fix | Delete
isSaved:null,
[15] Fix | Delete
showLoader(show) {
[16] Fix | Delete
const cl = document.body.classList;
[17] Fix | Delete
show ? cl.add('tbp_loading') : cl.remove('tbp_loading');
[18] Fix | Delete
},
[19] Fix | Delete
init() {
[20] Fix | Delete
this.pageId = themifyBuilder.pageId;
[21] Fix | Delete
this.options = _tbp_app.options;
[22] Fix | Delete
this.labels = themifyBuilder.labels;
[23] Fix | Delete
_tbp_app.options = themifyBuilder.labels = themifyBuilder.pageId = null;
[24] Fix | Delete
document.body.classList.add('tbp_page',this.pageId + '_page');
[25] Fix | Delete
[26] Fix | Delete
const template = document.getElementById('tmpl-tbp_builder_lightbox'),
[27] Fix | Delete
btn = document.getElementsByClassName('page-title-action')[0],
[28] Fix | Delete
items = document.getElementsByClassName('tbp_lightbox_edit'),
[29] Fix | Delete
import_btn = document.createElement('div');
[30] Fix | Delete
[31] Fix | Delete
import_btn.className = 'tbp_admin_import ' + this.pageId + '_import';
[32] Fix | Delete
import_btn.innerHTML = themifyBuilder.import_btn ? themifyBuilder.import_btn : '';
[33] Fix | Delete
[34] Fix | Delete
document.body.appendChild(template.content);
[35] Fix | Delete
this.lightbox = document.getElementById('tb_lightbox_parent');
[36] Fix | Delete
this.lightboxContainer = this.lightbox.getElementsByClassName('tb_options_tab_wrapper')[0];
[37] Fix | Delete
this.lightbox.getElementsByClassName('ti-close')[0].addEventListener('click', this.close.bind(this));
[38] Fix | Delete
btn.addEventListener('click', this.edit.bind(this));
[39] Fix | Delete
if (themifyBuilder.import_btn) {
[40] Fix | Delete
btn.parentNode.insertBefore(import_btn, btn.nextSibling);
[41] Fix | Delete
themify_create_pluploader($(import_btn.firstElementChild));
[42] Fix | Delete
const alertLoading = document.createElement('DIV');
[43] Fix | Delete
alertLoading.className = 'alert';
[44] Fix | Delete
document.body.appendChild(alertLoading);
[45] Fix | Delete
}
[46] Fix | Delete
for (let i = items.length - 1; i > -1; --i) {
[47] Fix | Delete
items[i].addEventListener('click', this.edit.bind(this));
[48] Fix | Delete
}
[49] Fix | Delete
if(_tbp_app.draftBtn!==undefined){
[50] Fix | Delete
this.lightbox.getElementsByClassName('tbp_submit_draft_btn')[0].textContent = _tbp_app.draftBtn;
[51] Fix | Delete
}
[52] Fix | Delete
this.lightbox.getElementsByClassName('tbp_btn_save')[0].textContent = _tbp_app.publishBtn;
[53] Fix | Delete
ThemifyBuilderCommon = {Lightbox: {$lightbox: $(this.lightbox)}};
[54] Fix | Delete
setTimeout(function () {
[55] Fix | Delete
const link = document.createElement('link'),
[56] Fix | Delete
loader = document.createElement('div');
[57] Fix | Delete
link.href = _tbp_app.api_base;
[58] Fix | Delete
link.rel = 'prefetch';
[59] Fix | Delete
loader.className = 'tb_busy';
[60] Fix | Delete
document.head.appendChild(link);
[61] Fix | Delete
document.body.appendChild(loader);
[62] Fix | Delete
this.pointerInit();
[63] Fix | Delete
}.bind(this), 500);
[64] Fix | Delete
themifyBuilder.import_btn = null;
[65] Fix | Delete
},
[66] Fix | Delete
getValue(key) {
[67] Fix | Delete
if (ThemifyConstructor.values[key] !== undefined) {
[68] Fix | Delete
return ThemifyConstructor.values[key];
[69] Fix | Delete
}
[70] Fix | Delete
for (let i = this.options.length - 1; i > -1; --i) {
[71] Fix | Delete
if (this.options[i].id === key) {
[72] Fix | Delete
return this.options[i]['options'] === undefined ? this.options[i] : Object.keys(this.options[i]['options'])[0];
[73] Fix | Delete
}
[74] Fix | Delete
}
[75] Fix | Delete
return null;
[76] Fix | Delete
},
[77] Fix | Delete
/**
[78] Fix | Delete
* @arg string file URL to the JSON file containing the demo data
[79] Fix | Delete
* @arg string theme_id ID of the newly created theme
[80] Fix | Delete
* @arg function callback function to call after all import is done
[81] Fix | Delete
*/
[82] Fix | Delete
import_sample_content( file, theme_id, callback ) {
[83] Fix | Delete
$.ajax( {
[84] Fix | Delete
url : file,
[85] Fix | Delete
dataType : 'json',
[86] Fix | Delete
success : function( resp ) {
[87] Fix | Delete
const queue = [],
[88] Fix | Delete
max_query = 5; // maximum number of requests to send simultaneously
[89] Fix | Delete
let count = 0; // keep track of how many requests are ongoing simultaneously
[90] Fix | Delete
[91] Fix | Delete
if ( resp.terms !== undefined ) {
[92] Fix | Delete
$.each( resp.terms, function( term_id, term ) {
[93] Fix | Delete
queue.push( {
[94] Fix | Delete
action : 'tbp_import_term',
[95] Fix | Delete
term : term
[96] Fix | Delete
} );
[97] Fix | Delete
} );
[98] Fix | Delete
}
[99] Fix | Delete
if ( resp.posts !== undefined ) {
[100] Fix | Delete
$.each( resp.posts, function( post_id, post ) {
[101] Fix | Delete
queue.push( {
[102] Fix | Delete
action : 'tbp_import_post',
[103] Fix | Delete
theme_id : theme_id,
[104] Fix | Delete
post : post
[105] Fix | Delete
} );
[106] Fix | Delete
} );
[107] Fix | Delete
}
[108] Fix | Delete
[109] Fix | Delete
if ( queue.length === 0 ) {
[110] Fix | Delete
callback();
[111] Fix | Delete
return;
[112] Fix | Delete
}
[113] Fix | Delete
[114] Fix | Delete
function make_request() {
[115] Fix | Delete
if ( queue.length === 0 || count > max_query ){
[116] Fix | Delete
return;
[117] Fix | Delete
}
[118] Fix | Delete
++count;
[119] Fix | Delete
$.ajax( {
[120] Fix | Delete
url : ajaxurl,
[121] Fix | Delete
dataType : 'json',
[122] Fix | Delete
type: 'POST',
[123] Fix | Delete
data : queue.shift(),
[124] Fix | Delete
success : function( response ) {
[125] Fix | Delete
--count;
[126] Fix | Delete
make_request();
[127] Fix | Delete
if ( count < 1 ) {
[128] Fix | Delete
callback();
[129] Fix | Delete
return;
[130] Fix | Delete
}
[131] Fix | Delete
}
[132] Fix | Delete
} );
[133] Fix | Delete
}
[134] Fix | Delete
for ( let i = 0; i < max_query; ++i ) {
[135] Fix | Delete
make_request();
[136] Fix | Delete
}
[137] Fix | Delete
}
[138] Fix | Delete
} );
[139] Fix | Delete
},
[140] Fix | Delete
createCustomTypes() {
[141] Fix | Delete
const editBtn = this.lightbox.getElementsByClassName('builder_button_edit')[0];
[142] Fix | Delete
if (this.id !== null) {
[143] Fix | Delete
editBtn.textContent = this.pageId==='tbp_theme' && _tbp_app.active!=this.id?_tbp_app.publishBtn:this.labels['save'];
[144] Fix | Delete
}
[145] Fix | Delete
else{
[146] Fix | Delete
editBtn.textContent =_tbp_app.next;
[147] Fix | Delete
}
[148] Fix | Delete
if (ThemifyConstructor['tbp_type'] !== undefined) {
[149] Fix | Delete
return;
[150] Fix | Delete
}
[151] Fix | Delete
var bindings = undefined;
[152] Fix | Delete
const _this = this,
[153] Fix | Delete
cache = {},
[154] Fix | Delete
cachePredesing = {},
[155] Fix | Delete
saveLightbox = function (is_draft, id, data) {
[156] Fix | Delete
$.ajax({
[157] Fix | Delete
type: 'POST',
[158] Fix | Delete
url: themifyBuilder.ajaxurl,
[159] Fix | Delete
dataType: 'json',
[160] Fix | Delete
beforeSend() {
[161] Fix | Delete
_this.showLoader(true);
[162] Fix | Delete
},
[163] Fix | Delete
data: {
[164] Fix | Delete
type: _this.pageId,
[165] Fix | Delete
id: id,
[166] Fix | Delete
is_draft: is_draft || 0,
[167] Fix | Delete
action: _this.pageId + '_saving',
[168] Fix | Delete
data: data,
[169] Fix | Delete
tb_load_nonce: themifyBuilder.tb_load_nonce
[170] Fix | Delete
},
[171] Fix | Delete
complete() {
[172] Fix | Delete
_this.showLoader();
[173] Fix | Delete
},
[174] Fix | Delete
success(resp) {
[175] Fix | Delete
if (resp) {
[176] Fix | Delete
if (resp.redirect) {
[177] Fix | Delete
if ( _this.pageId === 'tbp_theme' ) {
[178] Fix | Delete
const $theme = $( '.layout_preview_list.selected', _this.lightbox ),
[179] Fix | Delete
slug = $theme.attr( 'data-slug' );
[180] Fix | Delete
if ( slug === 'blank' ) {
[181] Fix | Delete
window.location = resp.redirect;
[182] Fix | Delete
return;
[183] Fix | Delete
}
[184] Fix | Delete
const theme_id = resp.redirect.match( /id=(\d+)/ )[1];
[185] Fix | Delete
setTimeout( function() {
[186] Fix | Delete
_this.showLoader(true);
[187] Fix | Delete
}, 200 );
[188] Fix | Delete
// import tbp_template posts for the theme
[189] Fix | Delete
TBP.import_sample_content( 'https://themify.me/public-api/builder-pro-demos/pro-' + slug + '-templates.json', theme_id, function() {
[190] Fix | Delete
if ( $( '.tbp_import_demo input', $theme ).is( ':checked' ) ) {
[191] Fix | Delete
TBP.import_sample_content( 'https://themify.me/public-api/builder-pro-demos/pro-' + slug + '.json', theme_id, function() {
[192] Fix | Delete
window.location = resp.redirect;
[193] Fix | Delete
} );
[194] Fix | Delete
} else {
[195] Fix | Delete
window.location = resp.redirect;
[196] Fix | Delete
}
[197] Fix | Delete
} );
[198] Fix | Delete
} else {
[199] Fix | Delete
window.location = resp.redirect;
[200] Fix | Delete
}
[201] Fix | Delete
}
[202] Fix | Delete
else {
[203] Fix | Delete
if ( _this.pageId === 'tbp_theme' ) {
[204] Fix | Delete
_this.lightbox.getElementsByClassName('ti-close')[0].click();
[205] Fix | Delete
window.location.reload();
[206] Fix | Delete
}
[207] Fix | Delete
else{
[208] Fix | Delete
_this.lightbox.classList.add('tbp_lightbox_is_saved');
[209] Fix | Delete
setTimeout(function(){
[210] Fix | Delete
_this.lightbox.classList.remove('tbp_lightbox_is_saved');
[211] Fix | Delete
},2000);
[212] Fix | Delete
}
[213] Fix | Delete
_this.isSaved=true;
[214] Fix | Delete
}
[215] Fix | Delete
}
[216] Fix | Delete
}
[217] Fix | Delete
});
[218] Fix | Delete
},
[219] Fix | Delete
masonry = function(el){
[220] Fix | Delete
function resizeMasonryItem(item){
[221] Fix | Delete
const rowGap = parseInt(window.getComputedStyle(el).getPropertyValue('grid-row-gap')),
[222] Fix | Delete
rowHeight = parseInt(window.getComputedStyle(el).getPropertyValue('grid-auto-rows'));
[223] Fix | Delete
if(isNaN(rowGap) || isNaN(rowHeight)){
[224] Fix | Delete
return;
[225] Fix | Delete
}
[226] Fix | Delete
const itemHeight = item.getElementsByClassName('thumbnail')[0].getBoundingClientRect().height + item.getElementsByClassName('layout_action')[0].getBoundingClientRect().height,
[227] Fix | Delete
rowSpan = Math.ceil((itemHeight+rowGap)/(rowHeight+rowGap));
[228] Fix | Delete
item.style.gridRowEnd = 'span '+rowSpan;
[229] Fix | Delete
if(rowSpan>5){
[230] Fix | Delete
item.dataset['masonry'] = 'done';
[231] Fix | Delete
}
[232] Fix | Delete
}
[233] Fix | Delete
const allItems = el.querySelectorAll('.layout_preview_list:not([data-masonry="done"])');
[234] Fix | Delete
for(let i=0,len=allItems.length;i<len;i++){
[235] Fix | Delete
resizeMasonryItem(allItems[i]);
[236] Fix | Delete
}
[237] Fix | Delete
},
[238] Fix | Delete
setPredesgnedList = function (result) {
[239] Fix | Delete
document.body.classList.add('tbp_step_2');
[240] Fix | Delete
let api_base = _tbp_app.api_base,
[241] Fix | Delete
type = result['tbp_template_type'];
[242] Fix | Delete
const demo_base = _tbp_app.demo_base,
[243] Fix | Delete
container = _this.lightbox.getElementsByClassName('tb_options_tab_content'),
[244] Fix | Delete
callback = function (data) {
[245] Fix | Delete
const f = document.createDocumentFragment(),
[246] Fix | Delete
wrap = document.createElement('div'),
[247] Fix | Delete
ul = document.createElement('ul'),
[248] Fix | Delete
selected = container[1] !== undefined ? container[1].getAttribute('data-' + type + '-selected') : null;
[249] Fix | Delete
wrap.className = 'tbp_predesigned_row_container';
[250] Fix | Delete
wrap.id = _this.pageId + '_import';
[251] Fix | Delete
ul.className = 'tbp_predesigned_theme_lists';
[252] Fix | Delete
if('footer' === type || 'header' === type){
[253] Fix | Delete
ul.className += ' tbp_predesigned_'+type;
[254] Fix | Delete
}
[255] Fix | Delete
if (data[0] === undefined || data[0].slug !== 'blank') {
[256] Fix | Delete
data.unshift({'slug': 'blank', link: '#', 'title': {rendered: _tbp_app.blank}, 'id': ''});
[257] Fix | Delete
}
[258] Fix | Delete
for (let i = 0, len = data.length; i < len; ++i) {
[259] Fix | Delete
let li = document.createElement('li'),
[260] Fix | Delete
img = document.createElement('img'),
[261] Fix | Delete
thumb = document.createElement('div'),
[262] Fix | Delete
action = document.createElement('div'),
[263] Fix | Delete
title = document.createElement('div'),
[264] Fix | Delete
aImg = document.createElement('a'),
[265] Fix | Delete
aTitle = document.createElement('a'),
[266] Fix | Delete
icon = document.createElement('i'),
[267] Fix | Delete
preview = document.createElement('div');
[268] Fix | Delete
li.className = 'layout_preview_list';
[269] Fix | Delete
li.setAttribute('data-slug', data[i].slug);
[270] Fix | Delete
if (data[i].id) {
[271] Fix | Delete
li.setAttribute('data-id', data[i].id);
[272] Fix | Delete
}
[273] Fix | Delete
preview.className = 'layout_preview';
[274] Fix | Delete
thumb.className = 'thumbnail';
[275] Fix | Delete
action.className = 'layout_action';
[276] Fix | Delete
title.className = 'layout_title';
[277] Fix | Delete
[278] Fix | Delete
aImg.title = data[i].title.rendered;
[279] Fix | Delete
if (selected === data[i].slug || (!selected && data[i].slug === 'blank')) {
[280] Fix | Delete
li.className += ' selected';
[281] Fix | Delete
}
[282] Fix | Delete
if (data[i].slug === 'blank') {
[283] Fix | Delete
preview.className += ' layout_preview_blank';
[284] Fix | Delete
}
[285] Fix | Delete
if ( demo_base && data[i].link && data[i].link !== '#' ) {
[286] Fix | Delete
// for Theme demos
[287] Fix | Delete
aImg.href = aTitle.href = demo_base + data[i].slug;
[288] Fix | Delete
aTitle.target = '_blank';
[289] Fix | Delete
aTitle.innerHTML = data[i].title.rendered;
[290] Fix | Delete
title.appendChild(aTitle);
[291] Fix | Delete
} else {
[292] Fix | Delete
// for Templates; no preview page
[293] Fix | Delete
title.innerHTML = data[i].title.rendered;
[294] Fix | Delete
}
[295] Fix | Delete
img.src = data[i]['tbp_image_full'] ? data[i].tbp_image_full : themifyBuilder.ph_image;
[296] Fix | Delete
img.alt = data[i].title.rendered;
[297] Fix | Delete
thumb.appendChild(img);
[298] Fix | Delete
aImg.appendChild(icon);
[299] Fix | Delete
action.appendChild(title);
[300] Fix | Delete
action.appendChild(aImg);
[301] Fix | Delete
preview.appendChild(thumb);
[302] Fix | Delete
preview.appendChild(action);
[303] Fix | Delete
li.appendChild(preview);
[304] Fix | Delete
[305] Fix | Delete
if ( _this.pageId === 'tbp_theme' ) {
[306] Fix | Delete
let importtick = document.createElement( 'input' ),
[307] Fix | Delete
importWarning = document.createElement( 'span' ),
[308] Fix | Delete
importlbl = document.createElement( 'label' );
[309] Fix | Delete
importtick.type = 'checkbox';
[310] Fix | Delete
importlbl.className = 'tbp_import_demo';
[311] Fix | Delete
importlbl.appendChild( importtick );
[312] Fix | Delete
importlbl.appendChild( document.createTextNode( tbpAdminVars.i18n.import ) );
[313] Fix | Delete
importWarning.appendChild( document.createTextNode( tbpAdminVars.i18n.import_warning ) );
[314] Fix | Delete
importlbl.appendChild( importWarning );
[315] Fix | Delete
li.appendChild( importlbl );
[316] Fix | Delete
}
[317] Fix | Delete
f.appendChild(li);
[318] Fix | Delete
[319] Fix | Delete
}
[320] Fix | Delete
ul.appendChild(f);
[321] Fix | Delete
wrap.appendChild(ul);
[322] Fix | Delete
const lightboxTitle = _this.lightbox.getElementsByClassName('tbp_lightbox_title')[0],
[323] Fix | Delete
prevLink = document.createElement('a'),
[324] Fix | Delete
icon = document.createElement('i');
[325] Fix | Delete
prevLink.className = 'tbp_wizard_step_prev';
[326] Fix | Delete
prevLink.href = '#';
[327] Fix | Delete
icon.className = 'ti-arrow-left';
[328] Fix | Delete
prevLink.appendChild(icon);
[329] Fix | Delete
lightboxTitle.innerHTML = '';
[330] Fix | Delete
lightboxTitle.appendChild(prevLink);
[331] Fix | Delete
lightboxTitle.appendChild(document.createTextNode(_tbp_app.import));
[332] Fix | Delete
prevLink.addEventListener('click', function (e) {
[333] Fix | Delete
e.stopPropagation();
[334] Fix | Delete
e.preventDefault();
[335] Fix | Delete
document.body.classList.remove('tbp_step_2');
[336] Fix | Delete
container[1].style['display'] = 'none';
[337] Fix | Delete
container[0].style['display'] = '';
[338] Fix | Delete
this.parentNode.innerHTML = _tbp_app.add_template;
[339] Fix | Delete
});
[340] Fix | Delete
[341] Fix | Delete
if (container[1] !== undefined) {
[342] Fix | Delete
container[1].innerHTML = '';
[343] Fix | Delete
container[1].appendChild(wrap);
[344] Fix | Delete
container[1].style['display'] = '';
[345] Fix | Delete
}
[346] Fix | Delete
else {
[347] Fix | Delete
const tabContent = document.createElement('div');
[348] Fix | Delete
tabContent.className = 'tb_options_tab_content';
[349] Fix | Delete
tabContent.appendChild(wrap);
[350] Fix | Delete
container[0].parentNode.insertBefore(tabContent, container[0].nextSibling);
[351] Fix | Delete
}
[352] Fix | Delete
container[0].style['display'] = 'none';
[353] Fix | Delete
ul.addEventListener('click', function (e) {
[354] Fix | Delete
if (e.target.closest('.layout_title, .tbp_import_demo') === null) {
[355] Fix | Delete
e.stopPropagation();
[356] Fix | Delete
e.preventDefault();
[357] Fix | Delete
}
[358] Fix | Delete
const el = e.target.closest('.layout_preview_list');
[359] Fix | Delete
if (el !== null && !el.classList.contains('selected')) {
[360] Fix | Delete
const childs = this.children;
[361] Fix | Delete
for (let i = childs.length - 1; i > -1; --i) {
[362] Fix | Delete
childs[i].classList.remove('selected');
[363] Fix | Delete
}
[364] Fix | Delete
el.classList.add('selected');
[365] Fix | Delete
container[1].setAttribute('data-' + type + '-selected', el.dataset['slug']);
[366] Fix | Delete
}
[367] Fix | Delete
[368] Fix | Delete
});
[369] Fix | Delete
// Masonry
[370] Fix | Delete
if ( _this.pageId === 'tbp_template' ) {
[371] Fix | Delete
let img = ul.getElementsByTagName('img');
[372] Fix | Delete
if (img.length > 0) {
[373] Fix | Delete
$(img).one('load', function () {
[374] Fix | Delete
masonry(ul);
[375] Fix | Delete
});
[376] Fix | Delete
} else {
[377] Fix | Delete
masonry(ul);
[378] Fix | Delete
}
[379] Fix | Delete
}
[380] Fix | Delete
$(_this.lightbox).find('.tbp_step_2_actions').first().off('click').on('click', function (e) {
[381] Fix | Delete
if (e.target.classList.contains('tbp_submit_draft_btn') || e.target.classList.contains('tbp_btn_save')) {
[382] Fix | Delete
e.stopPropagation();
[383] Fix | Delete
e.preventDefault();
[384] Fix | Delete
result['import'] = ul.getElementsByClassName('selected')[0].getAttribute('data-slug');
[385] Fix | Delete
saveLightbox(e.target.classList.contains('tbp_submit_draft_btn'), null, result);
[386] Fix | Delete
}
[387] Fix | Delete
});
[388] Fix | Delete
};
[389] Fix | Delete
if (type !== undefined) {
[390] Fix | Delete
api_base += type;
[391] Fix | Delete
}
[392] Fix | Delete
else {
[393] Fix | Delete
type = 'theme';
[394] Fix | Delete
}
[395] Fix | Delete
if (cachePredesing[type] === undefined) {
[396] Fix | Delete
container[0].classList.add('tb_busy');
[397] Fix | Delete
$.getJSON(api_base, function (data) {
[398] Fix | Delete
cachePredesing[type] = data;
[399] Fix | Delete
callback(data);
[400] Fix | Delete
})
[401] Fix | Delete
.always(function () {
[402] Fix | Delete
container[0].classList.remove('tb_busy');
[403] Fix | Delete
})
[404] Fix | Delete
.fail(function () {
[405] Fix | Delete
callback([]);
[406] Fix | Delete
});
[407] Fix | Delete
}
[408] Fix | Delete
else {
[409] Fix | Delete
callback(cachePredesing[type]);
[410] Fix | Delete
}
[411] Fix | Delete
};
[412] Fix | Delete
ThemifyConstructor['tbp_image'] = {
[413] Fix | Delete
change(e) {
[414] Fix | Delete
e.preventDefault();
[415] Fix | Delete
e.stopPropagation();
[416] Fix | Delete
const input = $(e.currentTarget).parent().children('input').first();
[417] Fix | Delete
input.val('').trigger('change');
[418] Fix | Delete
Themify.triggerEvent(input[0], 'change');
[419] Fix | Delete
},
[420] Fix | Delete
render(data, self) {
[421] Fix | Delete
const image = self.image.render(data, self),
[422] Fix | Delete
attach = {
[423] Fix | Delete
id: data.id + '_id'
[424] Fix | Delete
};
[425] Fix | Delete
image.getElementsByClassName('tb_clear_input')[0].addEventListener('click', this.change.bind(this));
[426] Fix | Delete
image.appendChild(self.hidden.render(attach, self));
[427] Fix | Delete
return image;
[428] Fix | Delete
}
[429] Fix | Delete
};
[430] Fix | Delete
ThemifyConstructor['tbp_type'] = {
[431] Fix | Delete
id: null,
[432] Fix | Delete
render(data, self) {
[433] Fix | Delete
if (bindings === undefined) {
[434] Fix | Delete
bindings = data['binding'];
[435] Fix | Delete
}
[436] Fix | Delete
this.id=data.id;
[437] Fix | Delete
TBP.type =TBP.getValue(this.id);
[438] Fix | Delete
const select = self.select.render(data, self);
[439] Fix | Delete
select.querySelector('select').addEventListener('change', function (e) {
[440] Fix | Delete
e.stopPropagation();
[441] Fix | Delete
TBP.type = this.value;
[442] Fix | Delete
ThemifyConstructor['condition'].reInit();
[443] Fix | Delete
}, {passive: true});
[444] Fix | Delete
return select;
[445] Fix | Delete
}
[446] Fix | Delete
};
[447] Fix | Delete
ThemifyConstructor['condition'] = {
[448] Fix | Delete
id: null,
[449] Fix | Delete
reInit(){
[450] Fix | Delete
const wrap=document.getElementById(this.id);
[451] Fix | Delete
wrap.innerHTML='';
[452] Fix | Delete
wrap.parentNode.replaceChild(this.render(TBP.conditions,ThemifyConstructor),wrap);
[453] Fix | Delete
},
[454] Fix | Delete
includeRender(vals, self) {
[455] Fix | Delete
const wrap = document.createElement('div'),
[456] Fix | Delete
select = document.createElement('select'),
[457] Fix | Delete
args = {
[458] Fix | Delete
id: 'include',
[459] Fix | Delete
options: {
[460] Fix | Delete
'in': _tbp_app.include,
[461] Fix | Delete
'ex': _tbp_app.exclude
[462] Fix | Delete
}
[463] Fix | Delete
};
[464] Fix | Delete
wrap.className = 'tbp_include tbp_inner_block';
[465] Fix | Delete
select.appendChild(self.select.make_options(args,vals['include'], self));
[466] Fix | Delete
select.setAttribute('data-id', args.id);
[467] Fix | Delete
wrap.appendChild(select);
[468] Fix | Delete
return wrap;
[469] Fix | Delete
},
[470] Fix | Delete
renderSelect(options,selected){
[471] Fix | Delete
const f = document.createDocumentFragment(),
[472] Fix | Delete
select = document.createElement('select'),
[473] Fix | Delete
makeOptions = function(val,label,has_query,def){
[474] Fix | Delete
const opt = document.createElement('option');
[475] Fix | Delete
opt.value = val;
[476] Fix | Delete
opt.textContent = label;
[477] Fix | Delete
if(val===selected || (def===val && TBP.id===null)){
[478] Fix | Delete
opt.selected = true;
[479] Fix | Delete
}
[480] Fix | Delete
if(has_query!==undefined){
[481] Fix | Delete
opt.setAttribute('data-hasQuery',has_query?1:0);
[482] Fix | Delete
}
[483] Fix | Delete
return opt;
[484] Fix | Delete
};
[485] Fix | Delete
for (let i in options) {
[486] Fix | Delete
if(i==='optgroup'){
[487] Fix | Delete
for(let j=0,len=options[i].length;j<len;++j){
[488] Fix | Delete
let group = document.createElement('optgroup'),
[489] Fix | Delete
groupF = document.createDocumentFragment();
[490] Fix | Delete
group.label = options[i][j]['label'];
[491] Fix | Delete
group.setAttribute('data-id', options[i][j].id);
[492] Fix | Delete
for (let k in options[i][j]['options']) {
[493] Fix | Delete
let item=options[i][j]['options'][k];
[494] Fix | Delete
groupF.appendChild(makeOptions(k, item['label']!==undefined?item['label']:item,item['has_query'],options[i][j]['selected']));
[495] Fix | Delete
}
[496] Fix | Delete
group.appendChild(groupF);
[497] Fix | Delete
f.appendChild(group);
[498] Fix | Delete
}
[499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function