File manager - Edit - /home/triathlon/www/wp-content/plugins/custom-facebook-feed/admin/assets/js/cff-admin-scripts.js
Back
jQuery(document).ready(function($) { //Dismiss Review Notice jQuery(document).on('click', '.cff_notice_dismiss', function(event) { event.preventDefault(); $.ajax({ url : cffA.ajax_url, type : 'post', data : { action : 'cff_review_notice_dismiss', cff_nonce: cffA.cff_nonce } }); const elem = jQuery(this); setTimeout(function() { const url = elem.attr('href'); if(url) { const target = elem.attr('target') || '_self'; window.open(url, target); } }, 100); }); //Tooltips jQuery('#cff-admin .cff-tooltip-link').on('click', function(){ jQuery(this).closest('tr, h3, div').find('.cff-tooltip').slideToggle(); }); //Toggle Access Token field if( jQuery('#cff_show_access_token').is(':checked') ) jQuery('.cff-access-token-hidden').show(); jQuery('#cff_show_access_token').on('change', function(){ jQuery('.cff-access-token-hidden').fadeToggle(); }); $(document).on('click', '#cff-dismiss-header-notice', function() { $.ajax({ url : cffA.ajax_url, type : 'post', data : { action : 'cff_dismiss_upgrade_notice', cff_nonce: cffA.cff_nonce }, success : function(data) { if ( data.success == true ) { $('#cff-header-upgrade-notice').slideUp(); $("#cff-builder-app").removeClass('cff-builder-app-lite-dismiss'); } }, error : function(e) { console.log(e); } }); }); $('body').on('click','.cff-dismissible .notice-dismiss',function() { $.ajax({ url : cffA.ajax_url, type : 'post', data : { action : 'cff_dismiss_custom_cssjs_notice', cff_nonce: cffA.cff_nonce }, success : function(data) { }, error : function(e) { console.log(e); } }); }); //The "cff_ppca_access_token_invalid" transient is set if the access token doesn't match the ID specified. Use an Ajax call to check whether that transient is set, and if so, then displays a notice under the access token field. This used so we don't need to make an API call every time the page loads. It stores the value in this transient and checks it via ajax. $.ajax({ url : cffA.ajax_url, type : 'get', data : { action : 'cff_ppca_token_check_flag', cff_nonce: cffA.cff_nonce }, success : function(data) { if( data ) $('.cff-ppca-check-notice.cff-error').show(); }, error : function(e) { console.log(e); } }); //If no transient exists (eg. after the settings are saved) then check the API to see whether the ID and token match if( typeof jQuery('#cff_access_token').attr('data-check-ppca') !== 'undefined' ){ var page_id = $('#cff-admin #cff_page_id').val(), access_token = $('#cff-admin #cff_access_token').val(); if( page_id.indexOf(',') == -1 && access_token.indexOf(',') == -1 ){ var ppca_check_url = 'https://graph.facebook.com/v8.0/'+page_id+'/posts?limit=1&access_token='+access_token; $.ajax({ url: ppca_check_url, type: 'GET', dataType: "jsonp", cache: false, success: function(data) { if (typeof data.error !== 'undefined') { if( data.error.message.indexOf('Public Content') !== -1 ){ //If the API response shows a PPCA error then show the notice below the access token field $('.cff-ppca-check-notice.cff-error').show(); //Store the API response in a transient which is then checked above on line 29 $.ajax({ url : cffA.ajax_url, type : 'post', data : { action : 'cff_ppca_token_set_flag' }, success : function(data) { //Access token transient set }, error : function(e) { console.log(e); } }); } } else { //If the API response shows a good token then display a success notice instead $('#cff-admin #cff_access_token').after('<div class="cff-ppca-check-notice cff-success" style="display: block;"><i class="fa fa-check-circle"></i> Valid Access Token</div>'); } }, error: function(xhr,textStatus,e) { console.log(e); return; } }); //End ajax } } //Is this a page, group or profile? var cff_page_type = jQuery('.cff-page-type select').val(), $cff_page_type_options = jQuery('.cff-page-options'), $cff_profile_error = jQuery('.cff-profile-error.cff-page-type'), $cff_group_error = jQuery('.cff-group-error.cff-page-type'); //Should we show anything initially? if(cff_page_type !== 'page') $cff_page_type_options.hide(); if(cff_page_type == 'profile') $cff_profile_error.show(); if(cff_page_type == 'group') $cff_group_error.show(); //When page type is changed show the relevant item jQuery('.cff-page-type').on('change', function(){ cff_page_type = jQuery('.cff-page-type select').val(); if( cff_page_type !== 'page' ) { $cff_page_type_options.hide(); if( cff_page_type == 'profile' ) { $cff_profile_error.show(); $cff_group_error.hide(); } else if( cff_page_type == 'group' ) { $cff_group_error.show(); $cff_profile_error.hide(); } else { $cff_group_error.hide(); $cff_profile_error.hide(); } } else { $cff_page_type_options.show(); $cff_profile_error.hide(); $cff_group_error.hide(); } }); //Post limit manual setting var cff_limit_setting = jQuery('#cff_limit_setting').val(), cff_post_limit = jQuery('#cff_post_limit').val(), $cff_limit_manual_settings = jQuery('#cff_limit_manual_settings'); if( typeof cff_post_limit === 'undefined' ) cff_post_limit = ''; //Should we show anything initially? if(cff_limit_setting == 'auto') $cff_limit_manual_settings.hide(); if(cff_post_limit.length > 0){ $cff_limit_manual_settings.show(); jQuery('#cff_limit_setting').val('manual'); } jQuery('#cff_limit_setting').on('change', function(){ cff_limit_setting = jQuery('#cff_limit_setting').val(); if(cff_limit_setting == 'auto'){ $cff_limit_manual_settings.hide(); jQuery('#cff_post_limit').val(''); } else { $cff_limit_manual_settings.show(); } }); //Header Type Selection var cff_header_type = jQuery('.cff-header-type select').val(), $cff_facebook_header_options = jQuery('.cff-facebook-header'), $cff_text_header_options = jQuery('.cff-text-header'); //Should we show anything initially? if(cff_header_type !== 'visual') $cff_facebook_header_options.hide(); if(cff_header_type !== 'text') $cff_text_header_options.hide(); //When Header type is changed show the relevant item jQuery('.cff-header-type').on('change', function(){ cff_header_type = jQuery('.cff-header-type select').val(); if( cff_header_type !== 'visual' ) { $cff_facebook_header_options.hide(); $cff_text_header_options.show(); } else { $cff_facebook_header_options.show(); $cff_text_header_options.hide(); } }); //Header icon //Icon type //Check the saved icon type on page load and display it jQuery('#cff-header-icon-example').removeClass().addClass('fa fa-' + jQuery('#cff-header-icon').val() ); //Change the header icon when selected from the list jQuery('#cff-header-icon').on('change', function() { var $self = jQuery(this); jQuery('#cff-header-icon-example').removeClass().addClass('fa fa-' + $self.val() ); }); //Test Facebook API connection button jQuery('#cff-api-test').on('click', function(e){ e.preventDefault(); //Show the JSON jQuery('#cff-api-test-result textarea').css('display', 'block'); }); //If '__ days ago' date is selected then show 'Translate this' var $cffTranslateDate = jQuery('#cff-translate-date'); if ( jQuery("#cff-date-formatting option:selected").val() == '1' ) $cffTranslateDate.show(); jQuery("#cff-date-formatting").on('change', function() { if ( jQuery("#cff-date-formatting option:selected").val() == '1' ) { $cffTranslateDate.fadeIn(); } else { $cffTranslateDate.fadeOut(); } }); //Selecting a post style jQuery('.cff-post-style').on('click', function(){ var $self = jQuery(this); $('.cff_post_style').trigger('change'); $self.addClass('cff-layout-selected').find('#cff_post_style').attr('checked', 'checked'); $self.siblings().removeClass('cff-layout-selected'); }); function cffChangePostStyleSettings() { setTimeout(function(){ jQuery('.cff-post-style-settings').hide(); jQuery('.cff-post-style-settings.cff-'+jQuery('.cff_post_style:checked').val()).show(); }, 1); } cffChangePostStyleSettings(); jQuery('.cff_post_style').on('change', cffChangePostStyleSettings); //Add the color picker if( jQuery('.cff-colorpicker').length > 0 ) jQuery('.cff-colorpicker').wpColorPicker(); //Mobile width var cff_feed_width = jQuery('#cff-admin #cff_feed_width').val(), $cff_width_options = jQuery('#cff-admin #cff_width_options'); if (typeof cff_feed_width !== 'undefined') { //Show initially if a width is set if(cff_feed_width.length > 1 && cff_feed_width !== '100%') $cff_width_options.show(); jQuery('#cff_feed_width').on('change', function(){ cff_feed_width = jQuery(this).val(); if( cff_feed_width.length < 2 || cff_feed_width == '100%' ) { $cff_width_options.slideUp(); } else { $cff_width_options.slideDown(); } }); } //Scroll to hash for quick links jQuery('#cff-admin a').on('click', function() { if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { var target = jQuery(this.hash); target = target.length ? target : this.hash.slice(1); if (target.length) { jQuery('html,body').animate({ scrollTop: target.offset().top }, 500); return false; } } }); //Shortcode tooltips jQuery('#cff-admin label').on('click', function(){ var $el = jQuery(this); var $cff_shortcode = $el.siblings('.cff_shortcode'); if($cff_shortcode.is(':visible')){ $el.siblings('.cff_shortcode').css('display','none'); } else { $el.siblings('.cff_shortcode').css('display','block'); } }); jQuery('#cff-admin th').on('hover', function(){ if( jQuery(this).find('.cff_shortcode').length > 0 ){ jQuery(this).find('label').append('<code class="cff_shortcode_symbol">[]</code>'); } }, function(){ jQuery(this).find('.cff_shortcode_symbol').remove(); }); jQuery('#cff-admin label').on('hover', function(){ if( jQuery(this).siblings('.cff_shortcode').length > 0 ){ jQuery(this).attr('title', 'Click for shortcode option'); } }, function(){}); //Open/close the expandable option sections jQuery('.cff-expandable-options').hide(); jQuery('.cff-expand-button a').on('click', function(e){ e.preventDefault(); var $self = jQuery(this); $self.parent().next('.cff-expandable-options').toggle(); if( $self.text().indexOf('Show') !== -1 ){ $self.text( $self.text().replace('Show', 'Hide') ); } else { $self.text( $self.text().replace('Hide', 'Show') ); } }); function cffToggleNummobile() { if (jQuery('#cff_show_num_mobile').is(':checked')) { jQuery('#cff_show_num_mobile').closest('td').find('.cff-mobile-col-settings').slideDown(); } else { jQuery('#cff_show_num_mobile').closest('td').find('.cff-mobile-col-settings').slideUp(function(){ jQuery('#cff_num_mobile').val(''); }); } } cffToggleNummobile(); jQuery('#cff_show_num_mobile').on('change', cffToggleNummobile); //Facebook login $('#cff_fb_login').on('click', function(){ $('#cff_fb_login_modal').show(); }); $('#cff_admin_cancel_btn').on('click', function(){ $('#cff_fb_login_modal').hide(); }); $('.cff-modal-close, #cff-close-modal-primary-button').on('click', function(){ $('.cff_modal_tokens').hide(); }); $('#cff_fb_show_tokens').on('click', function(){ $('.cff_modal_tokens, .cff-groups-list').show(); $('#cff-group-installation').hide(); }); //Select a page for token $('.cff-managed-page').on('click', function(){ $('#cff-insert-token, .cff-insert-reviews-token, .cff-insert-both-tokens').removeAttr('disabled'); $('#cff_token_expiration_note').show(); var $self = $(this); if( $self.hasClass('cff-page-selected') ){ $self.removeClass('cff-page-selected'); } else { $self.addClass('cff-page-selected'); } }); //Connect Accounts array object var cff_connected_accounts = {}, cff_multifeed_enabled = false, cff_remove_primary_text = 'Remove as Primary Feed', cff_add_primary_text = 'Make Primary Feed'; if( $('#cff_page_id').hasClass('cff_multifeed_enabled') ) cff_multifeed_enabled = true; if( cff_multifeed_enabled ){ cff_remove_primary_text = 'Remove from Primary Feed'; cff_add_primary_text = 'Add to Primary Feed'; } //If there are accounts displayed then assign them to the connected accounts array var cff_connected_accounts_val = $('#cff_connected_accounts').val(); if( cff_connected_accounts_val !== '' && cff_connected_accounts_val !== '{}' && typeof cff_connected_accounts_val !== 'undefined' ){ cff_connected_accounts = cff_connected_accounts_val.replace(/\\"/g, '"'); cff_connected_accounts = JSON.parse(cff_connected_accounts); createAccountHTML(cff_connected_accounts); } //Insert Page Access Token $('#cff-insert-token, #cff-insert-all-tokens').on('click', function(){ if( $(this).hasClass('cff_connect_all') ) $('.cff-managed-page').addClass('cff-page-selected'); var $selectedPage = $('.cff-page-selected'), selectedPageId = $selectedPage.attr('data-page-id'), selectedPageToken = $selectedPage.attr('data-token'); //Add ID to setting if( $('#cff_page_id').val().trim() == '' ){ $('#cff_page_id').val( selectedPageId ).addClass('cff-success'); cffAddCurIdLabel($('.cff-page-selected').first().find('.cff-page-info-name').text(), $('.cff-page-selected').first().find('.cff-page-avatar').attr('src')); } //Add token to setting if( $('#cff_access_token').val().trim() == '' || $('#cff_access_token').hasClass('cff-replace-token') ){ //If multifeed then add ID to front so it's assigned to that ID in the feed if( $('#cff_page_id').hasClass('cff_multifeed_enabled') ) selectedPageToken = selectedPageId + ':' + selectedPageToken; $('#cff_access_token').val( selectedPageToken ).addClass('cff-success'); } if( $(this).hasClass('cff-group-btn') ){ $('.cff-groups-list').hide(); $('#cff-group-installation').show(); //Show directions for either group admin or member if( $('.cff-page-selected').hasClass('cff-group-admin') ){ $('#cff-group-admin-directions').show(); $('#cff-group-member-directions').hide(); } else { $('#cff-group-admin-directions').hide(); $('#cff-group-member-directions').show(); } //Change page type to be group $('#cff_page_type').val('group'); $('.cff-page-options').hide(); //Dynamically create group edit link var cffGroupEditLink = 'https://facebook.com/groups/'+selectedPageId+'/edit'; $('#cff-group-installation #cff-group-edit').attr('href', cffGroupEditLink); } else { $('.cff_modal_tokens').hide(); } // cff_connected_accounts $('.cff-managed-pages').find('.cff-page-selected').each(function(){ var $page = $(this); addConnectedAccounts( $page.attr('data-page-id'), $page.find('.cff-page-info-name').text(), $page.attr('data-pagetype'), $page.attr('data-token'), $page.find('.cff-page-avatar').attr('src') ); }); location.hash = "cffnomodal"; }); //Manually connect account //Step 1 $('#cff_manual_account_button, #cff-admin .cff_manual_back').on('click', function(e){ e.preventDefault(); if( !$(this).hasClass('cff_manual_back') ) $('#cff_manual_account').toggle(); $('#cff_manual_account_step_1').show(); $('#cff_manual_account_step_2').hide(); }); //Step 2 jQuery("#cff_manual_account_type").on('change', function() { cff_go_to_step_2(); }); $('#cff-admin .cff_manual_forward').on('click', function(){ if( $("#cff_manual_account_type option:selected").val() ){ cff_go_to_step_2(); } else { $("#cff_manual_account_type").addClass('cff_error'); setTimeout(function(){ $("#cff_manual_account_type").removeClass('cff_error'); }, 500); } }); function cff_go_to_step_2(){ $('#cff_manual_account_step_2').attr('class', 'cff_account_type_'+jQuery("#cff_manual_account_type option:selected").val() ); $('#cff_manual_account_step_1').hide(); $('#cff_manual_account_step_2').show(); } //Add account $('#cff_manual_account_step_2 input[type=submit]').on('click', function(e){ e.preventDefault(); var $cff_manual_account = $('#cff_manual_account'); addConnectedAccounts( $cff_manual_account.find('#cff_manual_account_id').val(), $cff_manual_account.find('#cff_manual_account_name').val(), $cff_manual_account.find('#cff_manual_account_type').val(), $cff_manual_account.find('#cff_manual_account_token').val(), false ); }); //Only enable manual account submit button if ID/token fields have values $('#cff_manual_account_id, #cff_manual_account_token').on('input', function() { if( $('#cff_manual_account_id').val() == '' || $('#cff_manual_account_token').val() == '' ){ $('#cff_manual_account_step_2 #submit').attr('disabled', true); } else { $('#cff_manual_account_step_2 #submit').removeAttr('disabled'); } }); //Show raw account data (can be used for exporting/importing accounts in bulk) $('#cff_export_accounts').on('click', function(e){ e.preventDefault(); $('#cff_export_accounts_wrap').toggle(); }); function addConnectedAccounts(id, name, pagetype, accesstoken, avatar=false){ if( pagetype == 'page' ) avatar = ''; id = cffStripURLParts(id); //Add to connected accounts array cff_connected_accounts[id] = { id: id, name: encodeURI( name ), pagetype: pagetype, accesstoken: accesstoken, avatar: avatar }; //Update setting on page $('#cff_connected_accounts').val( JSON.stringify(cff_connected_accounts) ); //Add HTML to page createAccountHTML(cff_connected_accounts); } function removeConnectedAccount($account){ //Remove account from array delete cff_connected_accounts[$account.attr('data-page-id')]; //Update setting on page $('#cff_connected_accounts').val( JSON.stringify(cff_connected_accounts) ); //Remove it from primary feed if it's in there removePrimaryAcount($account); //Remove account element from page $account.remove(); } function cffStripURLParts(string){ if (typeof string === 'undefined') { return ''; } //If user pastes their full URL into the Page ID field then strip it out var cff_facebook_string = 'facebook.com', hasURL = (string.indexOf(cff_facebook_string) > -1); if (hasURL) { var stringArr = string.split('?')[0].replace(/\/$/, '').split('/'); string = stringArr[stringArr.length-1].replace(/[\.\/]/,''); } return string; } function createAccountHTML(cff_connected_accounts){ var accountsHTML = ''; //Loop through accounts and create HTML for (var key in cff_connected_accounts) { if (cff_connected_accounts.hasOwnProperty(key)) { var id = cffStripURLParts(cff_connected_accounts[key]['id']), name = decodeURI(cff_connected_accounts[key]['name']), pagetype = cff_connected_accounts[key]['pagetype'], accesstoken = cff_connected_accounts[key]['accesstoken'], avatar = cff_connected_accounts[key]['avatar'], cff_account_active = '', no_avatar = false; if( (!avatar || avatar == 'false' ) && pagetype == 'group' ) no_avatar = true; if( !avatar || avatar == '' ) avatar = 'https://graph.facebook.com/'+id+'/picture'; //If it's in use then mark it as primary/active if( $('#cff_page_id').val().indexOf(id) !== -1 ) cff_account_active = ' cff_account_active'; accountsHTML += '<div class="cff_connected_account cff_account_type_'+pagetype+cff_account_active+'" id="cff_connected_account_'+id+'" data-accesstoken="'+accesstoken+'" data-pagetype="'+pagetype+'" data-page-id="'+id+'">' + '<div class="cff_ca_info">' + '<div class="cff_ca_delete"><a href="JavaScript:void(0);" class="cff_delete_account"><i class="fa fa-times"></i><span class="cff_remove_text">Remove</span></a></div>'+ '<div class="cff_ca_username">'; ( no_avatar ) ? accountsHTML += '' : accountsHTML += '<img class="cff_ca_avatar" src="'+avatar+'">'; accountsHTML += '<strong><span class="cff_ca_fullname">'+name+'</span><span class="cff_ca_pagetype">'+pagetype+' ID: '+id+'</span></strong>' + '</div>' + '<div class="cff_ca_actions">' + '<a href="JavaScript:void(0);" class="cff_make_primary">'; if( cff_account_active !== '' ){ accountsHTML += '<i class="fa fa-minus-circle" aria-hidden="true"></i>'+cff_remove_primary_text; } else { accountsHTML += '<i class="fa fa-plus-circle" aria-hidden="true"></i>'+cff_add_primary_text; } accountsHTML += '</a>'; if( $('#cff_page_access_token').length && pagetype == 'page' ) accountsHTML += '<a href="JavaScript:void(0);" class="cff_make_reviews"><i class="fa fa-star" aria-hidden="true"></i>Use for Reviews Feed</a>'; accountsHTML += '<a class="cff_ca_token_shortcode" href="JavaScript:void(0);"><i class="fa fa-chevron-circle-right" aria-hidden="true"></i>Add to another Feed</a>' + '<p class="cff_ca_show_token"><a href="javascript:void(0);" id="cff_ca_show_token_'+id+'"><i class="fa fa-ellipsis-h" style="margin: 0; font-size: 12px;" aria-hidden="true"></i></a></p>' + '</div>' + '<div class="cff_ca_shortcode">' + '<p>Copy and paste this shortcode into your page or widget area:<br>' + '<code>[custom-facebook-feed account="'+id+'" pagetype="'+pagetype+'"]</code>' + '</p>'; if( cff_multifeed_enabled ) accountsHTML += '<p>To add multiple accounts in the same feed, simply separate them using commas:<br>' + '<code>[custom-facebook-feed account="'+id+', account_2, account_3"]</code>' + '</p>'; accountsHTML += '<p>Click <a href="https://smashballoon.com/custom-facebook-feed/docs/shortcodes/" target="_blank">here</a> to learn more about shortcodes</p>' + '</div>' + '<div class="cff_ca_accesstoken">' + '<span class="cff_ca_token_label">Access Token:</span><input type="text" class="cff_ca_token" value="'+accesstoken+'" readonly="readonly" onclick="this.focus();this.select()" title="To copy, click the field then press Ctrl + C (PC) or Cmd + C (Mac).">' + '</div>' + '</div>' + '</div>'; } } //Add HTML to page $('#cff_connected_accounts_wrap').html(accountsHTML); //Add Raw Data button $('.cff_connected_actions').show(); } function removePrimaryAcount($account){ //Remove ID/token from fields if( $account.hasClass('cff_account_active') ){ var selected_id = $account.attr('data-page-id'), selected_token = $account.attr('data-accesstoken'); //Remove as primary account cffLabelAsPrimary($account); $('#cff_primary_account_label').hide(); if( cff_multifeed_enabled ){ //Find the ID from the removed account and remove it from the ID field var updatedIdVal = $('#cff_page_id').val().replace(selected_id, ''); //Remove any stray commas left over updatedIdVal = updatedIdVal.replace(',,', '').replace(' ,', '').replace(/^, |, $/g,''); $('#cff_page_id').val( updatedIdVal ).removeClass('cff-success'); //Remove Token // var updatedTokenVal = $('#cff_access_token').val().replace(selected_id+':'+selected_token, '').replace(selected_token, ''); var updatedTokenVal = $('#cff_access_token').val().replace(selected_id+':'+selected_token, ''); //Remove any stray commas left over updatedTokenVal = updatedTokenVal.replace(',,', '').replace(' ,', '').replace(':,', ':').replace(/^, |, $/g,''); $('#cff_access_token').val( updatedTokenVal ).removeClass('cff-success'); } else { //Revert ID/token fields back to previous values $('#cff_page_id').val( $('#cff_page_id').attr('data-page-id') ).removeClass('cff-success'); $('#cff_access_token').val( $('#cff_access_token').attr('data-accesstoken') ).removeClass('cff-success'); } } } var $body = $('body'); //Show Access Token $body.on('click', '.cff_ca_show_token a', function(e) { e.preventDefault(); jQuery(this).closest('.cff_ca_info').find('.cff_ca_accesstoken').slideToggle(200); }); $body.on('click', '.cff_ca_token_shortcode, .cff_make_primary, .cff_make_reviews', function (event) { event.preventDefault(); var $clicked = $(event.target); //Show shortcode if( $clicked.hasClass('cff_ca_token_shortcode') ) { jQuery(this).closest('.cff_ca_info').find('.cff_ca_shortcode').slideToggle(200); } //Make Reviews account if( $clicked.hasClass('cff_make_reviews') ){ $('#cff_page_access_token').val( $clicked.closest('.cff_connected_account').attr('data-accesstoken') ).addClass('cff-success'); } //Make primary account if( $clicked.hasClass('cff_make_primary') ){ var $selected_account = $clicked.closest('.cff_connected_account'), selected_id = $selected_account.attr('data-page-id'), selected_token = $selected_account.attr('data-accesstoken'); //Remove ID/token from fields if( $selected_account.hasClass('cff_account_active') ){ removePrimaryAcount($selected_account); //Add ID/token to fields } else { //Add as primary account cffLabelAsPrimary($selected_account, true); //Add ID/token to fields if( cff_multifeed_enabled ){ //Add ID to existing IDs already in field var id_sep = ', ', existing_id = $('#cff_page_id').val().trim(), existing_token = $('#cff_access_token').val().trim(); if( existing_id == '' ) id_sep = ''; $('#cff_page_id').val( existing_id + id_sep + selected_id ).addClass('cff-success'); //Change to multiple token format var token_format = ''; if( existing_token !== '' ) token_format += existing_token + ', '; token_format += selected_id + ':' + selected_token; $('#cff_access_token').val( token_format ).addClass('cff-success'); } else { //Replace existing ID and token $('#cff_page_id').val( selected_id ).addClass('cff-success'); $('#cff_access_token').val( selected_token ).addClass('cff-success'); //Remove active account class from other accounts $selected_account.siblings().each(function(){ cffLabelAsPrimary($(this)); }); } } } }); //Remove account $body.on('click', '.cff_delete_account', function(){ removeConnectedAccount( $(this).closest('.cff_connected_account') ); }); //Change button label when adding/removing as primary account function cffLabelAsPrimary($account, makePrimary=false){ if( makePrimary ){ $account.addClass('cff_account_active').find('.cff_make_primary').html('<i class="fa fa-minus-circle" aria-hidden="true"></i>'+cff_remove_primary_text); if( $account.length > 0 ) cffAddCurIdLabel($account.find('.cff_ca_fullname').text(), $account.find('.cff_ca_avatar').attr('src')); } else { $account.removeClass('cff_account_active').find('.cff_make_primary').html('<i class="fa fa-plus-circle" aria-hidden="true"></i>'+cff_add_primary_text); } } function cffAddCurIdLabel(name, avatar){ var account_img = '', account_name = '<span>' + name + '</span>'; if( avatar !== undefined ) account_img = '<img src="' + avatar + '" />'; $('#cff_primary_account_label').show().html( account_img + account_name ); } //Label a primary account when page is first loaded var cff_current_page_id = $('#cff_page_id').val(), cff_current_page_id_arr = []; if( typeof cff_current_page_id !== 'undefined' ) var cff_current_page_id_arr = cff_current_page_id.split(','); if( cff_current_page_id_arr.length > 1 ){ for (var i = 0; i < cff_current_page_id_arr.length; i++) { cffLabelAsPrimary( $('#cff_connected_account_' + cffValidateID( cff_current_page_id_arr[i] ) ), true ); } } else { cffLabelAsPrimary( $('#cff_connected_account_' + cffValidateID( cff_current_page_id ) ), true ); } //Make sure ID is a valid string function cffValidateID(id){ if( typeof id === 'undefined' || id == '' ) return; //Remove slashes from end id = cffStripURLParts( id.replace(/\/$/, "").trim() ); //Only return if it contains numbers/letters if( id.match("^[A-Za-z0-9]+$") ) return id; } //Show the modal by default, but hide if the "cffnomodal" class is added to prevent it showing after saving settings if( location.hash !== '#cffnomodal' ){ $('.cff_modal_tokens').removeClass('cffnomodal'); } //Switch Page/Group app button in modal jQuery("#cff_login_type").on('change', function() { if ( jQuery("#cff_login_type option:selected").val() == 'group' ) { jQuery('#cff_page_app').hide(); jQuery('#cff_group_app').css('display', 'inline-block'); } else { jQuery('#cff_page_app').css('display', 'inline-block'); jQuery('#cff_group_app').hide(); } }); //Load the admin share widgets $('#cff-admin-show-share-links').on('click', function(){ $(this).fadeOut(); if( $('#cff-admin-share-links iframe').length == 0 ) $('#cff-admin-share-links').html('<a href="https://twitter.com/share" class="twitter-share-button" data-url="https://wordpress.org/plugins/custom-facebook-feed/" data-text="Display your Facebook posts on your site your way using the Custom Facebook Feed WordPress plugin!" data-via="smashballoon" data-dnt="true">Tweet</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?"http":"https";if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document, "script", "twitter-wjs");</script> <style type="text/css"> #twitter-widget-0{float: left; width: 82px !important;}.IN-widget{margin-right: 20px;}</style> <div id="fb-root" style="display: none;"></div><script>(function(d, s, id){var js, fjs=d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js=d.createElement(s); js.id=id; js.src="//connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v2.0"; fjs.parentNode.insertBefore(js, fjs);}(document, "script", "facebook-jssdk"));</script> <div class="fb-like" data-href="https://wordpress.org/plugins/custom-facebook-feed/" data-layout="button_count" data-action="like" data-show-faces="false" data-share="true" style="display: block; float: left; margin-right: 5px;"></div><script src="//platform.linkedin.com/in.js" type="text/javascript"> lang: en_US </script> <script type="IN/Share" data-url="https://wordpress.org/plugins/custom-facebook-feed/"></script></div>'); setTimeout(function(){ $('#cff-admin-share-links').addClass('cff-show'); }, 500); }); //Group app setup screenshot jQuery('#cff-group-app-tooltip').on('hover', function(){ jQuery('#cff-group-app-screenshot').fadeIn(100); }, function(){ jQuery('#cff-group-app-screenshot').fadeOut(100); }); //Remove any duplicate groups jQuery('.cff-group-admin').each(function(){ jQuery('.cff-groups-list #' + jQuery(this).attr('id') ).eq(1).hide(); }); //Show/hide mobile column setting var cff_masonry_desktop_col = jQuery('#cff_cols').val(), $cff_mobile_col_settings = jQuery('.cff-mobile-col-settings'); if( typeof cff_post_limit === 'undefined' ) cff_masonry_desktop_col = '1'; //Should we show anything initially? if( cff_masonry_desktop_col == '1' ) $cff_mobile_col_settings.hide(); if( parseInt(cff_masonry_desktop_col) > 1 ){ $cff_mobile_col_settings.show(); } jQuery('#cff_cols').on('change', function(){ cff_cols_num = parseInt( jQuery('#cff_cols').val() ); if(cff_cols_num > 1){ $cff_mobile_col_settings.slideDown(200); } else { $cff_mobile_col_settings.slideUp(200); } }); // notices if (jQuery('#cff-notice-bar').length) { jQuery('#wpadminbar').after(jQuery('#cff-notice-bar')); jQuery('#wpcontent').css('padding-left', 0); jQuery('#wpbody').css('padding-left', '20px'); jQuery('#cff-notice-bar').show(); } jQuery('#cff-notice-bar .dismiss').on('click', function(e) { e.preventDefault(); jQuery('#cff-notice-bar').remove(); jQuery.ajax({ url: cffA.ajax_url, type: 'post', data: { action : 'cff_lite_dismiss', cff_nonce: cffA.cff_nonce }, success: function (data) { } }); }); jQuery('#cff-oembed-disable').on('click', function(e) { e.preventDefault(); jQuery(this).addClass( 'loading' ).html('<i class="fa fa-spinner fa-spin" aria-hidden="true"></i>'); jQuery.ajax({ url: cffA.ajax_url, type: 'post', data: { action : 'cff_oembed_disable', cff_nonce: cffA.cff_nonce }, success: function (data) { jQuery('#cff-oembed-disable').closest('p').html(data); } }); }); jQuery('.cff_show_gdpr_list').on('click', function(){ jQuery(this).closest('div').find('.cff_gdpr_list').slideToggle(); }); //Selecting a post style jQuery('#cff_gdpr_setting').on('change', function(){ console.log('Slim Shady') cffCheckGdprSetting( jQuery(this).val() ); }); function cffCheckGdprSetting(option) { if( option == 'yes' ){ jQuery('.cff_gdpr_yes').show(); jQuery('.cff_gdpr_no, .cff_gdpr_auto').hide(); } if( option == 'no' ){ jQuery('.cff_gdpr_no').show(); jQuery('.cff_gdpr_yes, .cff_gdpr_auto').hide(); } if( option == 'auto' ){ jQuery('.cff_gdpr_auto').show(); jQuery('.cff_gdpr_yes, .cff_gdpr_no').hide(); } } cffCheckGdprSetting(jQuery('#cff_gdpr_setting').val()); //sb_instagram_enable_email_report function cffToggleEmail() { if (jQuery('#cff_enable_email_report').is(':checked')) { jQuery('#cff_enable_email_report').closest('td').find('.cff_box').slideDown(); } else { jQuery('#cff_enable_email_report').closest('td').find('.cff_box').slideUp(); } }cffToggleEmail(); jQuery('#cff_enable_email_report').on('change', cffToggleEmail); if (jQuery('#cff-goto').length) { jQuery('#cff-goto').closest('tr').addClass('cff-goto'); $('html, body').animate({ scrollTop: $('#cff-goto').offset().top - 200 }, 500); } jQuery('.cff-error-directions .cff-reconnect').on('click', function(){ event.preventDefault(); jQuery('.cff_admin_btn').trigger('click'); }); jQuery('.cff-clear-errors-visit-page').on('click', function(event) { event.preventDefault(); var $btn = jQuery(this); $btn.prop( 'disabled', true ).addClass( 'loading' ).html('<i class="fa fa-spinner fa-spin" aria-hidden="true"></i>'); $.ajax({ url : cffA.ajax_url, type : 'post', data : { action : 'cff_reset_log' }, success : function(data) { window.location.href = $btn.attr('data-url'); }, error : function(data) { window.location.href = $btn.attr('data-url'); } }); // ajax call }); /* removing padding */ if (jQuery('#cff-admin-about').length) { jQuery('#wpcontent').css('padding', 0); } $('.cff-opt-in').on('click', function(event) { event.preventDefault(); var $btn = jQuery(this); $btn.prop( 'disabled', true ).addClass( 'loading' ).html('<i class="fa fa-spinner fa-spin" aria-hidden="true"></i>'); cffSubmitOptIn(true); }); // clear_comment_cache click $('.cff-no-usage-opt-out').on('click', function(event) { event.preventDefault(); var $btn = jQuery(this); $btn.prop( 'disabled', true ).addClass( 'loading' ).html('<i class="fa fa-spinner fa-spin" aria-hidden="true"></i>'); cffSubmitOptIn(false); }); // clear_comment_cache click function cffSubmitOptIn(choice) { $.ajax({ url : cffA.ajax_url, type : 'post', data : { action : 'cff_usage_opt_in_or_out', opted_in: choice, cff_nonce: cffA.cff_nonce }, success : function(data) { $('.cff-no-usage-opt-out').closest('.cff-usage-tracking-notice').fadeOut(); } }); // ajax call } //Click event for other plugins in menu $('.cff_get_sbr, .cff_get_sbi, .cff_get_cff, .cff_get_ctf, .cff_get_yt, .cff_get_tiktok').parent().on('click', function(e){ e.preventDefault(); // remove the already opened modal jQuery('#cff-op-modals').remove(); // prepend the modal wrapper $('#wpbody-content').prepend('<div class="cff-fb-source-ctn sb-fs-boss cff-fb-center-boss" id="cff-op-modals"><i class="fa fa-spinner fa-spin cff-loader" aria-hidden="true"></i></div>'); // determine the plugin name var $self = $(this).find('span'), sb_get_plugin = 'twitter'; if( $self.hasClass('cff_get_cff') ){ sb_get_plugin = 'facebook'; } else if( $self.hasClass('cff_get_sbi') ){ sb_get_plugin = 'instagram'; } else if( $self.hasClass('cff_get_yt') ){ sb_get_plugin = 'youtube'; } else if( $self.hasClass('cff_get_sbr') ){ sb_get_plugin = 'reviews'; } else if( $self.hasClass('cff_get_tiktok') ){ sb_get_plugin = 'tiktok'; } // send the ajax request to load plugin name and others data $.ajax({ url : cffA.ajax_url, type : 'post', data : { action : 'sb_other_plugins_modal', plugin : sb_get_plugin, cff_nonce : cffA.cff_nonce, }, success : function(data) { if ( data.success == true ) { $('#cff-op-modals').html(data.data.output); } }, error : function(e) { console.log(e); } }); }); /** * Install other plugin on modal * * @since 4.0 */ $(document).on('click', '#cff_install_op_btn', function() { let self = $(this); let pluginAtts = self.data('plugin-atts'); if ( pluginAtts.step == 'install' ) { pluginAtts.plugin = pluginAtts.download_plugin } let loader = '<span class="cff-btn-spinner"><svg version="1.1" id="loader-1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="20px" height="20px" viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve"><path fill="#fff" d="M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z"><animateTransform attributeType="xml" attributeName="transform" type="rotate" from="0 25 25" to="360 25 25" dur="0.6s" repeatCount="indefinite"></animateTransform></path></svg></span>'; self.prepend(loader); // send the ajax request to install or activate the plugin $.ajax({ url : cffA.ajax_url, type : 'post', data : { action : pluginAtts.action, nonce : pluginAtts.nonce, plugin : pluginAtts.plugin, download_plugin : pluginAtts.download_plugin, type : 'plugin', }, success : function(data) { if ( data.success == true ) { self.find('.cff-btn-spinner').remove(); self.attr('disabled', 'disabled'); if ( pluginAtts.step == 'install' ) { self.html( data.data.msg ); } else { self.html( data.data ); } } }, error : function(e) { console.log(e); } }); }); jQuery('body').on('click', '#cff_review_consent_yes', function(e) { let reviewStep1 = jQuery('.cff_review_notice_step_1, .cff_review_step1_notice'); let reviewStep2 = jQuery('.cff_notice.cff_review_notice, .rn_step_2'); reviewStep1.hide(); reviewStep2.show(); $.ajax({ url : cffA.ajax_url, type : 'post', data : { action : 'cff_review_notice_consent_update', consent : 'yes' }, success : function(data) { } }); // ajax call }); jQuery('body').on('click', '#cff_review_consent_no', function(e) { let reviewStep1 = jQuery('.cff_review_notice_step_1, #cff-notifications'); reviewStep1.hide(); $.ajax({ url : cffA.ajax_url, type : 'post', data : { action : 'cff_review_notice_consent_update', consent : 'no' }, success : function(data) { } }); // ajax call }); //Close the modal if clicking anywhere outside it jQuery('body').on('click', '#cff-op-modals', function(e){ if (e.target !== this) return; jQuery('#cff-op-modals').remove(); }); jQuery('body').on('click', '.cff-fb-popup-cls', function(e){ jQuery('#cff-op-modals').remove(); }); //Add class to Pro menu item $('.cff_get_pro').parent().attr({'class':'cff_get_pro_highlight', 'target':'_blank'}); // Locator jQuery('.cff-locator-more').click(function(e) { e.preventDefault(); jQuery(this).closest('td').find('.cff-full-wrap').show(); jQuery(this).closest('td').find('.cff-condensed-wrap').hide(); jQuery(this).remove(); }); //cff_reset_log var $cffClearLog = $('#cff_reset_log'); $cffClearLog.on('click', function(event) { event.preventDefault(); jQuery('#cff-clear-cache-success').remove(); jQuery(this).prop("disabled",true); $.ajax({ url : cffA.ajax_url, type : 'post', data : { action : 'cff_clear_error_log' }, success : function(data) { $cffClearLog.prop('disabled',false); if(data=='1') { $cffClearLog.after('<i id="cff-clear-cache-success" class="fa fa-check-circle cff-success"></i>'); } else { $cffClearLog.after('<span>error</span>'); } } }); // ajax call }); // clear_error_log click // oEmbed Reconnect $(document).on('click', '.sb-reconnect-oembed', function() { let oembedConnectUrl = cff_admin.oembed_connectionURL.connect, appendURL = cff_admin.oembed_connectionURL.stateURL; const urlParams = { 'cff_con': cff_admin.oembed_connectionURL.cff_con, 'state': "{'{url=" + appendURL + "}'}" } let form = document.createElement('form'); form.setAttribute('method', 'post'); form.setAttribute('action', oembedConnectUrl); for (const key in urlParams) { if (urlParams.hasOwnProperty(key)) { let hiddenField = document.createElement('input'); hiddenField.setAttribute('type', 'hidden'); hiddenField.setAttribute('name', key); hiddenField.setAttribute('value', urlParams[key]); form.appendChild(hiddenField); } } document.body.appendChild(form); form.submit(); }); $(document).on('click', '#oembed_api_change_reconnect .cff-notice-dismiss', function(e) { e.preventDefault(); $('#oembed_api_change_reconnect').remove(); }); }); /* global smash_admin, jconfirm, wpCookies, Choices, List */ (function($) { 'use strict'; // Global settings access. var s; // Admin object. var SmashCFFAdmin = { // Settings. settings: { iconActivate: '<i class="fa fa-toggle-on fa-flip-horizontal" aria-hidden="true"></i>', iconDeactivate: '<i class="fa fa-toggle-on" aria-hidden="true"></i>', iconInstall: '<i class="fa fa-cloud-download" aria-hidden="true"></i>', iconSpinner: '<i class="fa fa-spinner fa-spin" aria-hidden="true"></i>', mediaFrame: false }, /** * Start the engine. * * @since 1.3.9 */ init: function() { // Settings shortcut. s = this.settings; // Document ready. $( document ).ready( SmashCFFAdmin.ready ); // Addons List. SmashCFFAdmin.initAddons(); }, /** * Document ready. * * @since 1.3.9 */ ready: function() { // Action available for each binding. $( document ).trigger( 'smashReady' ); }, //--------------------------------------------------------------------// // Addons List. //--------------------------------------------------------------------// /** * Element bindings for Addons List page. * * @since 1.3.9 */ initAddons: function() { // Some actions have to be delayed to document.ready. $( document ).on( 'smashReady', function() { // Only run on the addons page. if ( ! $( '#cff-admin-addons' ).length ) { return; } // Display all addon boxes as the same height. if( $( '#cff-admin-about.cff-admin-wrap').length ){ $( '#cff-admin-about .addon-item .details' ).matchHeight( { byrow: false, property: 'height' } ); } // Addons searching. if ( $('#cff-admin-addons-list').length ) { var addonSearch = new List( 'cff-admin-addons-list', { valueNames: [ 'addon-name' ] } ); $( '#cff-admin-addons-search' ).on( 'keyup', function () { var searchTerm = $( this ).val(), $heading = $( '#addons-heading' ); if ( searchTerm ) { $heading.text( cff_admin.addon_search ); } else { $heading.text( $heading.data( 'text' ) ); } addonSearch.search( searchTerm ); } ); } }); // Toggle an addon state. $( document ).on( 'click', '#cff-admin-addons .addon-item button, .cff-notice-admin-btn', function( event ) { event.preventDefault(); if ( $( this ).hasClass( 'disabled' ) ) { return false; } SmashCFFAdmin.addonToggle( $( this ) ); }); }, /** * Return possible plugins/addons URLs * * @since 1.3.9 */ filterPossibleAddonInstallation : function() { return cff_admin?.smashPlugins ? Object.values(cff_admin?.smashPlugins).map((singlePlugin) => singlePlugin.download_plugin) : []; }, /** * Toggle addon state. * * @since 1.3.9 */ addonToggle: function( $btn ) { var $addon = $btn.closest( '.addon-item' ), plugin = $btn.attr( 'data-plugin' ), plugin_type = $btn.attr( 'data-type' ), action, cssClass, statusText, buttonText, errorText, successText; if ( $btn.hasClass( 'status-go-to-url' ) ) { const possibleUrls = this.filterPossibleAddonInstallation(); const gotoUrl = $btn.attr('data-plugin'); if (possibleUrls.includes(gotoUrl)) { window.open(gotoUrl, '_blank'); } return; } $btn.prop( 'disabled', true ).addClass( 'loading' ); $btn.html( s.iconSpinner ); if ( $btn.hasClass( 'status-active' ) ) { // Deactivate. action = 'cff_deactivate_addon'; cssClass = 'status-inactive'; if ( plugin_type === 'plugin' ) { cssClass += ' button button-secondary'; } statusText = cff_admin.addon_inactive; buttonText = cff_admin.addon_activate; if ( plugin_type === 'addon' ) { buttonText = s.iconActivate + buttonText; } errorText = s.iconDeactivate + cff_admin.addon_deactivate; } else if ( $btn.hasClass( 'status-inactive' ) ) { // Activate. action = 'cff_activate_addon'; cssClass = 'status-active'; if ( plugin_type === 'plugin' ) { cssClass += ' button button-secondary disabled'; } statusText = cff_admin.addon_active; buttonText = cff_admin.addon_deactivate; if ( plugin_type === 'addon' ) { buttonText = s.iconDeactivate + buttonText; } else if ( plugin_type === 'plugin' ) { buttonText = cff_admin.addon_activated; } errorText = s.iconActivate + cff_admin.addon_activate; } else if ( $btn.hasClass( 'status-download' ) ) { // Install & Activate. action = 'cff_install_addon'; cssClass = 'status-active'; if ( plugin_type === 'plugin' ) { cssClass += ' button disabled'; } statusText = cff_admin.addon_active; buttonText = cff_admin.addon_activated; if ( plugin_type === 'addon' ) { buttonText = s.iconActivate + cff_admin.addon_deactivate; } errorText = s.iconInstall + cff_admin.addon_activate; } else { return; } var data = { action: action, nonce : cff_admin.nonce, plugin: plugin, type : plugin_type }; $.post( cff_admin.ajax_url, data, function( res ) { console.log(res) if ( res.success ) { if ( 'cff_install_addon' === action ) { $btn.attr( 'data-plugin', res.data.basename ); successText = res.data.msg; if ( ! res.data.is_activated ) { cssClass = 'status-inactive'; if ( plugin_type === 'plugin' ) { cssClass = 'button'; } statusText = cff_admin.addon_inactive; buttonText = s.iconActivate + cff_admin.addon_activate; } } else { successText = res.data; } $addon.find( '.actions' ).append( '<div class="msg success">'+successText+'</div>' ); $addon.find( 'span.status-label' ) .removeClass( 'status-active status-inactive status-download' ) .addClass( cssClass ) .removeClass( 'button button-primary button-secondary disabled' ) .text( statusText ); $btn .removeClass( 'status-active status-inactive status-download' ) .removeClass( 'button button-primary button-secondary disabled' ) .addClass( cssClass ).html( buttonText ); } else { if ( 'download_failed' === res.data[0].code ) { if ( plugin_type === 'addon' ) { $addon.find( '.actions' ).append( '<div class="msg error">'+cff_admin.addon_error+'</div>' ); } else { $addon.find( '.actions' ).append( '<div class="msg error">'+cff_admin.plugin_error+'</div>' ); } } else { $addon.find( '.actions' ).append( '<div class="msg error">'+res.data+'</div>' ); } $btn.html( errorText ); } $btn.prop( 'disabled', false ).removeClass( 'loading' ); // Automatically clear addon messages after 3 seconds. setTimeout( function() { $( '.addon-item .msg' ).remove(); }, 3000 ); }).fail( function( xhr ) { console.log( xhr.responseText ); }); }, }; SmashCFFAdmin.init(); window.SmashCFFAdmin = SmashCFFAdmin; })( jQuery );
| ver. 1.4 |
Github
|
.
| PHP 5.4.45 | Generation time: 0 |
proxy
|
phpinfo
|
Settings