Sha256: 9d7297024db2a2f6910950514316fe7f635f189de6693cf8aac85553d1d2fba5

Contents?: true

Size: 1.69 KB

Versions: 42

Compression:

Stored size: 1.69 KB

Contents

(function(window, document, RightJS) {

  var $      = RightJS.$,
      $$     = RightJS.$$,
      $E     = RightJS.$E,
      Xhr    = RightJS.Xhr;

  var cancel = function(element) {
    var message = element.get('data-confirm');
    return(message && !confirm(message));
  }

  var xhr_events = function(element, options) {
    return Object.merge({
      onCreate:   function() { element.fire('ajax:loading',  this); },
      onComplete: function() { element.fire('ajax:complete', this); },
      onSuccess:  function() { element.fire('ajax:success',  this); },
      onFailure:  function() { element.fire('ajax:failure',  this); }
    }, options);
  };

  'form[data-remote]'.on('submit', function(event) {
    event.stop();
    this.send();
  });

  'a[data-confirm], a[data-method], a[data-remote]'.on('click', function(event) {
    if (cancel(this)) { event.stop(); return; }

    var method = this.get('data-method') || 'get',
        remote = !!this.get('data-remote'),
        url = this.get('href');

    if (method != 'get' || remote) { event.stop(); }

    if (remote) {
      Xhr.load(url, xhr_events(this, {
        method:     method,
        spinner:    this.get('data-spinner')
      }));
    }

    if (method != 'get') {
      var param = $$('meta[name=csrf-param]')[0].get('content'),
          token = $$('meta[name=csrf-token]')[0].get('content'),
          form  = $E('form', {action: url, method: 'post'});

      if (param && token) {
        form.insert('<input type="hidden" name="' + param + '" value="' + token + '" />');
      }

      form.insert('<input type="hidden" name="_method" value="' + method + '"/>')
        .insertTo(document.body).submit();
    }
  });

})(window, document, RightJS);

Version data entries

42 entries across 30 versions & 2 rubygems

Version Path
puffer-0.0.23 app/assets/javascripts/puffer/rails.js
puffer-0.0.22 app/assets/javascripts/puffer/rails.js
puffer-0.0.21 app/assets/javascripts/puffer/rails.js
puffer-0.0.20 app/assets/javascripts/puffer/rails.js
puffer_pages-0.0.14 spec/dummy/public/puffer/javascripts/rails.js
puffer-0.0.19 lib/generators/puffer/install/templates/puffer/javascripts/rails.js
puffer-0.0.19 spec/dummy/public/puffer/javascripts/rails.js
puffer_pages-0.0.13 spec/dummy/public/puffer/javascripts/rails.js
puffer_pages-0.0.12 spec/dummy/public/puffer/javascripts/rails.js
puffer_pages-0.0.11 spec/dummy/public/puffer/javascripts/rails.js
puffer_pages-0.0.10 spec/dummy/public/puffer/javascripts/rails.js
puffer_pages-0.0.9 spec/dummy/public/puffer/javascripts/rails.js
puffer_pages-0.0.8 spec/dummy/public/puffer/javascripts/rails.js
puffer_pages-0.0.7 spec/dummy/public/puffer/javascripts/rails.js
puffer_pages-0.0.6 spec/dummy/public/puffer/javascripts/rails.js
puffer-0.0.18 spec/dummy/public/puffer/javascripts/rails.js
puffer-0.0.18 lib/generators/puffer/install/templates/puffer/javascripts/rails.js
puffer_pages-0.0.5 spec/dummy/public/puffer/javascripts/rails.js
puffer-0.0.17 lib/generators/puffer/install/templates/puffer/javascripts/rails.js
puffer-0.0.17 spec/dummy/public/puffer/javascripts/rails.js