Sha256: 3294dd8ce0a70d9c1d73cf45bdad64bb111c9b486614f0e3a75e82ec08f7befa

Contents?: true

Size: 1011 Bytes

Versions: 3

Compression:

Stored size: 1011 Bytes

Contents

/* global Fae */

/**
 * Fae form cancel
 * @namespace form.cancel
 * @memberof form
 */
Fae.form.cancel = {

  init: function() {
    this.detectCancelledUrls();
    this.addCancelParam();
  },

  /**
   * If URL has cancelled param, update the history
   */
  detectCancelledUrls: function() {
    var params = window.location.search;
    if (params.length && params.toLowerCase().indexOf("cancelled") >= 0 && params.indexOf("&") !== 0) {
      window.history.replaceState(null, null, window.location.pathname);
    };
  },

  /**
   * Once any field changes, add cancelled param to button to ensure user knows data will be lost
   */
  addCancelParam: function() {
    function updateCancel() {
      var $cancel_btn = $('#js-header-cancel');
      var new_href = $cancel_btn.attr('href') + '?cancelled=true';
      $cancel_btn.attr('href', new_href);
      $('form').off('change', 'input, textarea, select', updateCancel);
    }

    $('form').on('change', 'input, textarea, select', updateCancel);
  }

};

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
fae-rails-3.0.0 app/assets/javascripts/fae/form/_cancel.js
fae-rails-2.2.0 app/assets/javascripts/fae/form/_cancel.js
fae-rails-2.1.0 app/assets/javascripts/fae/form/_cancel.js