tribe.helpPage = tribe.helpPage || {}; ( function ( $, obj ) { 'use strict'; obj.selectors = { copyButton: '.system-info-copy-btn', optInMsg: '.tribe-sysinfo-optin-msg', autoInfoOptIn: '#tribe_auto_sysinfo_opt_in', }; obj.setup = function () { obj.setupSystemInfo(); obj.setupCopyButton(); }; /** * Initialize system info opt in copy */ obj.setupCopyButton = function () { if ( 'undefined' === typeof tribe_system_info ) { return; } var clipboard = new ClipboardJS( obj.selectors.copyButton ); /* eslint-disable-line no-undef */ var button_icon = '<span class="dashicons dashicons-clipboard license-btn"></span>'; var button_text = tribe_system_info.clipboard_btn_text; //Prevent Button From Doing Anything Else $( '.system-info-copy-btn' ).on( 'click', function ( e ) { e.preventDefault(); } ); clipboard.on( 'success', function ( event ) { event.clearSelection(); event.trigger.innerHTML = button_icon + '<span class="optin-success">' + tribe_system_info.clipboard_copied_text + '<span>'; // eslint-disable-line max-len window.setTimeout( function () { event.trigger.innerHTML = button_icon + button_text; }, 5000 ); } ); clipboard.on( 'error', function ( event ) { event.trigger.innerHTML = button_icon + '<span class="optin-fail">' + tribe_system_info.clipboard_fail_text + '<span>'; // eslint-disable-line max-len window.setTimeout( function () { event.trigger.innerHTML = button_icon + button_text; }, 5000 ); } ); }; /** * Initialize system info opt in */ obj.setupSystemInfo = function () { if ( 'undefined' === typeof tribe_system_info ) { return; } obj.$system_info_opt_in = $( obj.selectors.autoInfoOptIn ); obj.$system_info_opt_in_msg = $( obj.selectors.optInMsg ); obj.$system_info_opt_in.on( 'change', function () { if ( this.checked ) { obj.doAjaxRequest( 'generate' ); } else { obj.doAjaxRequest( 'remove' ); } } ); }; obj.doAjaxRequest = function ( generate ) { var request = { 'action' : 'tribe_toggle_sysinfo_optin', 'confirm' : tribe_system_info.sysinfo_optin_nonce, 'generate_key' : generate }; // Send our request $.post( ajaxurl, request, function ( results ) { if ( results.success ) { obj.$system_info_opt_in_msg.html( "<p class='optin-success'>" + results.data + "</p>" ); } else { var html = "<p class='optin-fail'>" + tribe_system_info.sysinfo_error_message_text + "</p>"; if ( results.data ) { if ( results.data.message ) { html += '<p>' + results.data.message + '</p>'; } else if ( results.message ) { html += '<p>' + results.message + '</p>'; } if ( results.data.code ) { html += '<p>' + tribe_system_info.sysinfo_error_code_text + ' ' + results.data.code + '</p>'; } if ( results.data.status ) { html += '<p>' + tribe_system_info.sysinfo_error_status_text + results.data.status + '</p>'; } } obj.$system_info_opt_in_msg.html( html ); // eslint-disable-line max-len $( obj.selectors.autoInfoOptIn ).prop( "checked", false ); } } ); }; $( obj.setup ); } )( jQuery, tribe.helpPage );