Sha256: 3631ac10aed78ef4b7b94e2de97f4f94088726c05f7c475c9f86dc26c8abbdb0

Contents?: true

Size: 1.47 KB

Versions: 18

Compression:

Stored size: 1.47 KB

Contents

//= require_self
//= require_tree ./history

pageflow.History = function(slideshow, adapter) {
  slideshow.on('slideshowchangepage', function(event, options) {
    var hash = slideshow.currentPage().attr('id');

    if (options.back) {
      adapter.replaceState(null, '', adapter.hash());
    }
    else {
      adapter.replaceState(options, '', adapter.hash());
      adapter.pushState(null, '', hash);
    }
  });

  adapter.on('popstate', function(event) {
    if (!adapter.state()) {
      return;
    }

    slideshow.goToByPermaId(adapter.hash(), _.extend({
      back: true
    }, _.pick(adapter.state(), 'direction', 'transition')));
  });

  adapter.on('hashchange', function() {
    slideshow.goToByPermaId(adapter.hash());
  });

  this.start = function() {
    slideshow.goToByPermaId(adapter.hash() || pageParameter());
    adapter.replaceState(null, '', slideshow.currentPage().attr('id'));
  };

  this.back = _.bind(adapter.back, adapter);

  function pageParameter() {
    var match = window.location.href.match(/page=([^&]*)/);
    return match ? match[1] : '';
  }
};

pageflow.History.create = function(slideshow, options) {
  options = options || {};

  var adapter;

  if (options.simulate) {
    adapter = new pageflow.History.SimulatedAdapter();
  }
  else if (pageflow.browser.has('pushstate support')) {
    adapter = new pageflow.History.PushStateAdapter();
  }
  else {
    adapter = new pageflow.History.HashAdapter();
  }

  return new pageflow.History(slideshow, adapter);
};

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
pageflow-12.0.4 app/assets/javascripts/pageflow/history.js
pageflow-12.0.3 app/assets/javascripts/pageflow/history.js
pageflow-12.0.2 app/assets/javascripts/pageflow/history.js
pageflow-12.0.1 app/assets/javascripts/pageflow/history.js
pageflow-12.0.0 app/assets/javascripts/pageflow/history.js
pageflow-12.0.0.rc7 app/assets/javascripts/pageflow/history.js
pageflow-12.0.0.rc6 app/assets/javascripts/pageflow/history.js
pageflow-0.11.4 app/assets/javascripts/pageflow/history.js
pageflow-12.0.0.rc5 app/assets/javascripts/pageflow/history.js
pageflow-12.0.0.rc4 app/assets/javascripts/pageflow/history.js
pageflow-12.0.0.rc3 app/assets/javascripts/pageflow/history.js
pageflow-12.0.0.rc2 app/assets/javascripts/pageflow/history.js
pageflow-12.0.0.rc1 app/assets/javascripts/pageflow/history.js
pageflow-0.11.3 app/assets/javascripts/pageflow/history.js
pageflow-0.11.2 app/assets/javascripts/pageflow/history.js
pageflow-0.11.1 app/assets/javascripts/pageflow/history.js
pageflow-0.11.0 app/assets/javascripts/pageflow/history.js
pageflow-0.10.0 app/assets/javascripts/pageflow/history.js