diff options
Diffstat (limited to 'plugins/jetpack/_inc/jetpack-jitm.js')
-rw-r--r-- | plugins/jetpack/_inc/jetpack-jitm.js | 187 |
1 files changed, 0 insertions, 187 deletions
diff --git a/plugins/jetpack/_inc/jetpack-jitm.js b/plugins/jetpack/_inc/jetpack-jitm.js deleted file mode 100644 index 49a8fb11..00000000 --- a/plugins/jetpack/_inc/jetpack-jitm.js +++ /dev/null @@ -1,187 +0,0 @@ -jQuery( document ).ready( function( $ ) { - var templates = { - 'default': function( envelope ) { - var html = '<div class="jitm-card jitm-banner ' + ( - envelope.CTA.message ? 'has-call-to-action' : '' - ) + ' is-upgrade-premium ' + envelope.content.classes + '" data-stats_url="' + envelope.jitm_stats_url + '">'; - html += '<div class="jitm-banner__icon-plan">' + envelope.content.icon + '</div>'; - html += '<div class="jitm-banner__content">'; - html += '<div class="jitm-banner__info">'; - html += '<div class="jitm-banner__title">' + envelope.content.message + '</div>'; - if ( envelope.content.description && envelope.content.description !== '' ) { - html += '<div class="jitm-banner__description">' + envelope.content.description; - if ( envelope.content.list.length > 0 ) { - html += '<ul class="banner__list">'; - for ( var i = 0; i < envelope.content.list.length; i++ ) { - - var text = envelope.content.list[ i ].item; - - if ( envelope.content.list[ i ].url ) { - text = '<a href="' + envelope.content.list[ i ].url + '" target="_blank" rel="noopener noreferrer" data-module="' + envelope.feature_class + '" data-jptracks-name="nudge_item_click" data-jptracks-prop="jitm-' + envelope.id + '">' + - text + '</a>'; - } - - html += '<li>' + - '<svg class="gridicon gridicons-checkmark" height="16" width="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g>' + - '<path d="M9 19.414l-6.707-6.707 1.414-1.414L9 16.586 20.293 5.293l1.414 1.414" /></g></svg>' + - text + - '</li>'; - } - } - html += '</div>'; - } - html += '</div>'; - if ( envelope.activate_module ) { - html += '<div class="jitm-banner__action" id="jitm-banner__activate">'; - html += '<a href="#" data-module="' + envelope.activate_module + '" type="button" class="jitm-button is-compact is-primary jptracks" data-jptracks-name="nudge_click" data-jptracks-prop="jitm-' + envelope.id + '-activate_module">' + window.jitm_config.activate_module_text + '</a>'; - html += '</div>'; - } - if ( envelope.CTA.message ) { - var ctaClasses = 'jitm-button is-compact jptracks'; - if ( - envelope.CTA.primary && - null === envelope.activate_module - ) { - ctaClasses += ' is-primary'; - } - - html += '<div class="jitm-banner__action">'; - html += '<a href="' + envelope.url + '" target="' + ( envelope.CTA.newWindow === false ? '_self' : '_blank' ) + '" rel="noopener noreferrer" title="' + envelope.CTA.message + '" data-module="' + envelope.feature_class + '" type="button" class="' + ctaClasses + '" data-jptracks-name="nudge_click" data-jptracks-prop="jitm-' + envelope.id + '">' + envelope.CTA.message + '</a>'; - html += '</div>'; - } - html += '<a href="#" data-module="' + envelope.feature_class + '" class="jitm-banner__dismiss"></a>'; - html += '</div>'; - html += '</div>'; - - return $( html ); - } - }; - - var setJITMContent = function( $el, response, redirect ) { - var template; - - var render = function( $my_template ) { - return function( e ) { - e.preventDefault(); - - $my_template.hide(); - - $.ajax( { - url: window.jitm_config.api_root + 'jetpack/v4/jitm', - method: 'POST', // using DELETE without permalinks is broken in default nginx configuration - data: { - id: response.id, - feature_class: response.feature_class - } - } ); - }; - }; - - template = response.template; - - // if we don't have a template for this version, just use the default template - if ( ! template || ! templates[ template ] ) { - template = 'default'; - } - - response.url = response.url + '&redirect=' + redirect; - - var $template = templates[ template ]( response ); - $template.find( '.jitm-banner__dismiss' ).click( render( $template ) ); - - if ( $( '#jp-admin-notices' ).length > 0 ) { - // Add to Jetpack notices within the Jetpack settings app. - $el.innerHTML = $template; - - // If we already have a message, replace it. - if ( $('#jp-admin-notices').find( '.jitm-card' ) ) { - $( '.jitm-card' ).replaceWith( $template ); - } - - // No existing JITM? Add ours to the top of the Jetpack admin notices. - $template.prependTo( $( '#jp-admin-notices' ) ); - } else { - // Replace placeholder div on other pages. - $el.replaceWith($template); - } - - // Handle Module activation button if it exists. - $template.find( '#jitm-banner__activate a' ).click( function() { - var $activate_button = $( this ); - - // Do not allow any requests if the button is disabled. - if ( $activate_button.attr( 'disabled' ) ) { - return false; - } - - // Make request to activate module. - $.ajax( { - url: window.jitm_config.api_root + 'jetpack/v4/module/' + $activate_button.data( 'module' ) + '/active', - method: 'POST', - beforeSend: function( xhr ) { - xhr.setRequestHeader( 'X-WP-Nonce', $el.data( 'nonce' ) ); - - // Change the button status to disabled as the change is in progress. - $( '#jitm-banner__activate a' ).text( window.jitm_config.activating_module_text ); - $( '#jitm-banner__activate a' ).attr( 'disabled', true ); - } - } ).done( function() { - $( '#jitm-banner__activate a' ).text( window.jitm_config.activated_module_text ); - $( '#jitm-banner__activate a' ).attr( 'disabled', true ); - - // Hide the JITM after 2 seconds. - setTimeout( function () { - $template.fadeOut( 'slow' ); - }, 2000 ); - } ); - } ); - }; - - var reFetch = function() { - $( '.jetpack-jitm-message' ).each( function() { - var $el = $( this ); - - var message_path = $el.data( 'message-path' ); - var query = $el.data( 'query' ); - var redirect = $el.data( 'redirect' ); - var hash = location.hash; - - hash = hash.replace( /#\//, '_' ); - if ( '_dashboard' !== hash ) { - message_path = message_path.replace( 'toplevel_page_jetpack', 'toplevel_page_jetpack' + hash ); - } - - $.get( window.jitm_config.api_root + 'jetpack/v4/jitm', { - message_path: message_path, - query: query, - _wpnonce: $el.data( 'nonce' ) - } ).then( function( response ) { - if ( 'object' === typeof response && response['1'] ) { - response = [ response['1'] ]; - } - - // properly handle the case of an empty array or no content set - if ( 0 === response.length || ! response[ 0 ].content ) { - return; - } - - // for now, always take the first response - setJITMContent( $el, response[ 0 ], redirect ); - } ); - } ); - }; - - reFetch(); - - $( window ).bind( 'hashchange', function( e ) { - var newURL = e.originalEvent.newURL; - - if ( newURL.indexOf( 'jetpack#/' ) >= 0 ) { - var jitm_card = document.querySelector( '.jitm-card' ); - if ( jitm_card ) { - jitm_card.remove(); - } - reFetch(); - } - } ); -} ); |