summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/modules/shortcodes/js/slideshow-shortcode.js')
-rw-r--r--plugins/jetpack/modules/shortcodes/js/slideshow-shortcode.js194
1 files changed, 0 insertions, 194 deletions
diff --git a/plugins/jetpack/modules/shortcodes/js/slideshow-shortcode.js b/plugins/jetpack/modules/shortcodes/js/slideshow-shortcode.js
deleted file mode 100644
index e17a2d74..00000000
--- a/plugins/jetpack/modules/shortcodes/js/slideshow-shortcode.js
+++ /dev/null
@@ -1,194 +0,0 @@
-/* jshint onevar:false, loopfunc:true */
-/* global jetpackSlideshowSettings, escape */
-
-function JetpackSlideshow( element, transition, autostart ) {
- this.element = element;
- this.images = [];
- this.controls = {};
- this.transition = transition || 'fade';
- this.autostart = autostart;
-}
-
-JetpackSlideshow.prototype.showLoadingImage = function( toggle ) {
- if ( toggle ) {
- this.loadingImage_ = document.createElement( 'div' );
- this.loadingImage_.className = 'slideshow-loading';
- var img = document.createElement( 'img' );
- img.src = jetpackSlideshowSettings.spinner;
- this.loadingImage_.appendChild( img );
- this.loadingImage_.appendChild( this.makeZeroWidthSpan() );
- this.element.append( this.loadingImage_ );
- } else if ( this.loadingImage_ ) {
- this.loadingImage_.parentNode.removeChild( this.loadingImage_ );
- this.loadingImage_ = null;
- }
-};
-
-JetpackSlideshow.prototype.init = function() {
- this.showLoadingImage(true);
-
- var self = this;
- // Set up DOM.
- for ( var i = 0; i < this.images.length; i++ ) {
- var imageInfo = this.images[i];
- var img = document.createElement( 'img' );
- img.src = imageInfo.src;
- img.title = typeof( imageInfo.title ) !== 'undefined' ? imageInfo.title : '';
- img.alt = typeof( imageInfo.alt ) !== 'undefined' ? imageInfo.alt : '';
- img.align = 'middle';
- img.setAttribute('itemprop','image');
- img.nopin = 'nopin';
- var caption = document.createElement( 'div' );
- caption.className = 'slideshow-slide-caption';
- caption.setAttribute('itemprop','caption description');
- caption.innerHTML = imageInfo.caption;
- var container = document.createElement('div');
- container.className = 'slideshow-slide';
- container.setAttribute('itemprop','associatedMedia');
- container.setAttribute('itemscope','');
- container.setAttribute('itemtype','https://schema.org/ImageObject');
-
- // Hide loading image once first image has loaded.
- if ( i === 0 ) {
- if ( img.complete ) {
- // IE, image in cache
- setTimeout( function() {
- self.finishInit_();
- }, 1);
- } else {
- jQuery( img ).load(function() {
- self.finishInit_();
- });
- }
- }
- container.appendChild( img );
- // I'm not sure where these were coming from, but IE adds
- // bad values for width/height for portrait-mode images
- img.removeAttribute('width');
- img.removeAttribute('height');
- container.appendChild( this.makeZeroWidthSpan() );
- container.appendChild( caption );
- this.element.append( container );
- }
-};
-
-JetpackSlideshow.prototype.makeZeroWidthSpan = function() {
- var emptySpan = document.createElement( 'span' );
- emptySpan.className = 'slideshow-line-height-hack';
- // Having a NBSP makes IE act weird during transitions, but other
- // browsers ignore a text node with a space in it as whitespace.
- if ( -1 !== window.navigator.userAgent.indexOf( 'MSIE ' ) ) {
- emptySpan.appendChild( document.createTextNode(' ') );
- } else {
- emptySpan.innerHTML = '&nbsp;';
- }
- return emptySpan;
-};
-
-JetpackSlideshow.prototype.finishInit_ = function() {
- this.showLoadingImage( false );
- this.renderControls_();
-
- var self = this;
- if ( this.images.length > 1 ) {
- // Initialize Cycle instance.
- this.element.cycle( {
- fx: this.transition,
- prev: this.controls.prev,
- next: this.controls.next,
- timeout: jetpackSlideshowSettings.speed,
- slideExpr: '.slideshow-slide',
- onPrevNextEvent: function() {
- return self.onCyclePrevNextClick_.apply( self, arguments );
- }
- } );
-
- var slideshow = this.element;
-
- if ( ! this.autostart ) {
- slideshow.cycle( 'pause' );
- jQuery(this.controls.stop).removeClass( 'running' );
- jQuery(this.controls.stop).addClass( 'paused' );
- }
-
- jQuery( this.controls.stop ).click( function() {
- var button = jQuery(this);
- if ( ! button.hasClass( 'paused' ) ) {
- slideshow.cycle( 'pause' );
- button.removeClass( 'running' );
- button.addClass( 'paused' );
- } else {
- button.addClass( 'running' );
- button.removeClass( 'paused' );
- slideshow.cycle( 'resume', true );
- }
- return false;
- } );
- } else {
- this.element.children( ':first' ).show();
- this.element.css( 'position', 'relative' );
- }
- this.initialized_ = true;
-};
-
-JetpackSlideshow.prototype.renderControls_ = function() {
- if ( this.controlsDiv_ ) {
- return;
- }
-
- var controlsDiv = document.createElement( 'div' );
- controlsDiv.className = 'slideshow-controls';
-
- var controls = [ 'prev', 'stop', 'next' ];
- for ( var i = 0; i < controls.length; i++ ) {
- var controlName = controls[i];
- var a = document.createElement( 'a' );
- a.href = '#';
- controlsDiv.appendChild( a );
- this.controls[controlName] = a;
- }
- this.element.append( controlsDiv );
- this.controlsDiv_ = controlsDiv;
-};
-
-JetpackSlideshow.prototype.onCyclePrevNextClick_ = function( isNext, i/*, slideElement*/ ) {
- // If blog_id not present don't track page views
- if ( ! jetpackSlideshowSettings.blog_id ) {
- return;
- }
-
- var postid = this.images[i].id;
- var stats = new Image();
- stats.src = document.location.protocol +
- '//pixel.wp.com/g.gif?host=' +
- escape( document.location.host ) +
- '&rand=' + Math.random() +
- '&blog=' + jetpackSlideshowSettings.blog_id +
- '&subd=' + jetpackSlideshowSettings.blog_subdomain +
- '&user_id=' + jetpackSlideshowSettings.user_id +
- '&post=' + postid +
- '&ref=' + escape( document.location );
-};
-
-( function ( $ ) {
- function jetpack_slideshow_init() {
- $( '.jetpack-slideshow-noscript' ).remove();
-
- $( '.jetpack-slideshow' ).each( function () {
- var container = $( this );
-
- if ( container.data( 'processed' ) ) {
- return;
- }
-
- var slideshow = new JetpackSlideshow( container, container.data( 'trans' ), container.data( 'autostart' ) );
- slideshow.images = container.data( 'gallery' );
- slideshow.init();
-
- container.data( 'processed', true );
- } );
- }
-
- $( document ).ready( jetpack_slideshow_init );
- $( 'body' ).on( 'post-load', jetpack_slideshow_init );
-} )( jQuery );