This repository has been archived on 2026-10-23. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
2016-09-28 21:41:25 +02:00

289 lines
8.7 KiB
JavaScript

jQuery(function($) {
// since 3.3: add screen option toggles
postboxes.add_postbox_toggles(pagenow);
function template() {
var metabox = $(this).closest('#yarpp_display_web, #yarpp_display_rss');
if (!metabox.length) return;
value = metabox.find('.use_template').val();
metabox.find('.yarpp_subbox').hide();
metabox.find('.template_options_' + value).show();
excerpt.apply(metabox);
}
$('.use_template').each(template).change(template);
function excerpt() {
var metabox = $(this).closest('#yarpp_display_web, #yarpp_display_rss');
metabox.find('.excerpted').toggle(
!!(metabox.find('.use_template').val() === 'builtin' && metabox.find('.show_excerpt input').attr('checked'))
);
}
$('.show_excerpt, .use_template, #yarpp-rss_display').click(excerpt);
var loaded_demo_web = false;
function display() {
if ( !$('#yarpp_display_web .inside').is(':visible') )
return;
$( '.yarpp_code_display' ).toggle( $('#yarpp_display_code').is(':checked') );
if ( $('#yarpp_display_web .yarpp_code_display').is(':visible') && !loaded_demo_web ) {
loaded_demo_web = true;
var demo_web = $('#display_demo_web');
$.ajax({type:'POST',
url: ajaxurl,
data: {
action: 'yarpp_display_demo',
domain: 'website',
'_ajax_nonce': $('#yarpp_display_demo-nonce').val()
},
beforeSend:function(){demo_web.html(loading)},
success:function(html){demo_web.html('<pre>'+html+'</pre>')},
dataType:'html'});
}
}
$('#yarpp_display_web .handlediv, #yarpp_display_web-hide').click(display);
display();
var loaded_demo_rss = false;
function rss_display() {
if ( !$('#yarpp_display_rss .inside').is(':visible') )
return;
if ( $('#yarpp-rss_display').is(':checked') ) {
$('.rss_displayed').show();
$( '.yarpp_code_display' ).toggle( $('#yarpp_display_code').is(':checked') );
if ( $('#yarpp_display_rss .yarpp_code_display').is(':visible') && !loaded_demo_rss ) {
loaded_demo_rss = true;
var demo_rss = $('#display_demo_rss');
$.ajax({type:'POST',
url: ajaxurl,
data: {
action: 'yarpp_display_demo',
domain: 'rss',
'_ajax_nonce': $('#yarpp_display_demo-nonce').val()
},
beforeSend:function(){demo_rss.html(loading)},
success:function(html){demo_rss.html('<pre>'+html+'</pre>')},
dataType:'html'});
}
$('#yarpp_display_rss').each(template);
} else {
$('.rss_displayed').hide();
}
}
$('#yarpp-rss_display, #yarpp_display_rss .handlediv, #yarpp_display_rss-hide').click(rss_display);
rss_display();
var loaded_disallows = false;
function load_disallows() {
if ( loaded_disallows || !$('#yarpp_pool .inside').is(':visible') )
return;
loaded_disallows = true;
var finished_taxonomies = {},
term_indices = {};
function load_disallow(taxonomy) {
if (taxonomy in finished_taxonomies)
return;
var display = $('#exclude_' + taxonomy);
// only do one query at a time:
if (display.find('.loading').length)
return;
if ( taxonomy in term_indices )
term_indices[taxonomy] = term_indices[taxonomy] + 100;
else
term_indices[taxonomy] = 0;
$.ajax({type:'POST',
url: ajaxurl,
data: { action: 'yarpp_display_exclude_terms',
taxonomy: taxonomy,
offset: term_indices[taxonomy],
'_ajax_nonce': $('#yarpp_display_exclude_terms-nonce').val()
},
beforeSend:function(){
display.append(loading)
},
success:function(html){
display.find('.loading').remove();
if (':(' == html) { // no more :(
finished_taxonomies[taxonomy] = true;
return;
}
display.append(html);
},
dataType:'html'}
);
}
$('.exclude_terms').each(function() {
var id = jQuery(this).attr('id'), taxonomy;
if (!id)
return;
taxonomy = id.replace('exclude_','');
load_disallow(taxonomy);
$('#exclude_' + taxonomy).parent('.yarpp_scroll_wrapper').scroll(function() {
var parent = $(this),
content = parent.children('div');
if ( parent.scrollTop() + parent.height() > content.height() - 10 )
load_disallow(taxonomy);
})
})
}
$('#yarpp_pool .handlediv, #yarpp_pool-hide').click(load_disallows);
load_disallows();
function show_help( section ) {
$('#tab-link-' + section + ' a').click();
$('#contextual-help-link').click();
}
$('#yarpp-optin-learnmore').click(function() { show_help('optin'); });
$('#yarpp-help-cpt').click(function() { show_help('dev'); });
if ( location.hash == '#help-optin' )
setTimeout( function() { show_help('optin'); } );
$('.yarpp_help[data-help]').hover(function() {
var that = $(this),
help = '<p>' + that.attr('data-help') + '</p>',
options = {
content: help,
position: {
edge: isRtl ? 'right' : 'left',
align: 'center',
of: that
},
document: {body: that}
};
var pointer = that.pointer(options).pointer('open');
that.closest('.yarpp_form_row, p').mouseleave(function () {
pointer.pointer('close');
});
});
$('.yarpp_template_button[data-help]').hover(function() {
var that = $(this),
help = '<p>' + that.attr('data-help') + '</p>',
options = {
content: help,
position: {
edge: 'bottom',
// align: 'center',
of: that
},
document: {body: that}
};
var pointer = that.pointer(options).pointer('open');
that.mouseleave(function () {
pointer.pointer('close');
});
});
$('.yarpp_template_button:not(.disabled)').click(function() {
$(this).siblings('input')
.val($(this).attr('data-value'))
.change();
$(this).siblings().removeClass('active');
$(this).addClass('active');
});
$('.yarpp_copy_templates_button').live('click', function() {
window.location = window.location + (window.location.search.length ? '&' : '?') + 'action=copy_templates&_ajax_nonce=' + $('#yarpp_copy_templates-nonce').val();
});
function template_info() {
var template = $(this).find('option:selected'),
row = template.closest('.yarpp_form_row');
if ( !!template.attr('data-url') ) {
row.find('.template_author_wrap')
.toggle( !!template.attr('data-author') )
.find('span').empty().append('<a>' + template.attr('data-author') + '</a>')
.attr('href', template.attr('data-url'));
} else {
row.find('.template_author_wrap')
.toggle( !!template.attr('data-author') )
.find('span').text(template.attr('data-author'));
}
row.find('.template_description_wrap')
.toggle( !!template.attr('data-description') )
.find('span').text(template.attr('data-description'));
row.find('.template_file_wrap')
.toggle( !!template.attr('data-basename') )
.find('span').text(template.attr('data-basename'));
}
$('#template_file, #rss_template_file')
.each(template_info)
.change(template_info);
var loaded_optin_data = false;
function _display_optin_data() {
if ( !$('#optin_data_frame').is(':visible') || loaded_optin_data )
return;
loaded_optin_data = true;
var frame = $('#optin_data_frame');
$.ajax({type:'POST',
url: ajaxurl,
data: {
action: 'yarpp_optin_data',
'_ajax_nonce': $('#yarpp_optin_data-nonce').val()
},
beforeSend:function(){frame.html(loading)},
success:function(html){frame.html('<pre>'+html+'</pre>')},
dataType:'html'});
}
function display_optin_data() {
setTimeout(_display_optin_data, 0);
}
$('#yarpp-optin-learnmore, a[aria-controls=tab-panel-optin]').bind('click focus', display_optin_data);
display_optin_data();
function sync_no_results() {
var value = $(this).find('input').attr('value');
if ( $(this).hasClass('sync_no_results') )
$('.sync_no_results input').attr('value', value);
if ( $(this).hasClass('sync_rss_no_results') )
$('.sync_rss_no_results input').attr('value', value);
}
$('.sync_no_results, .sync_rss_no_results').change(sync_no_results);
$('#yarpp_display_code').click(function() {
var args = {
action: 'yarpp_set_display_code',
'_ajax_nonce': $('#yarpp_set_display_code-nonce').val()
};
if ( $(this).is(':checked') )
args.checked = true;
$.ajax({type:'POST', url: ajaxurl, data: args});
display();
rss_display();
});
function auto_display_archive() {
var available = $('.yarpp_form_post_types').is(':has(input[type=checkbox]:checked)');
$('#yarpp-auto_display_archive')
.attr('disabled', !available);
if ( !available )
$('#yarpp-auto_display_archive').attr('checked', false);
}
$('.yarpp_form_post_types input[type=checkbox]').change(auto_display_archive);
auto_display_archive();
$("#yarpp_fulltext_expand").click(function(e){
e.preventDefault();
var $details = $("#yarpp_fulltext_details");
$details.slideToggle();
if ($details.hasClass('hidden')) {
$details.removeClass('hidden');
$(this).text('Hide Details [-]');
}else{
$details.addClass('hidden');
$(this).text('Show Details [+]');
}
});
});