Sha256: abc5177fca3a8c1c48a2aa45de4260377a07c0a9620d3ad50e4738ca5363b25f

Contents?: true

Size: 1.45 KB

Versions: 4

Compression:

Stored size: 1.45 KB

Contents

if (typeof(Alchemy) === 'undefined') {
  var Alchemy = {};
}

(function($) {

  $.extend(Alchemy, {

    ButtonObserver: function(selector) {
      $(selector).not('.no-spinner').click(function(event) {
        Alchemy.disableButton(this);
      });
    },

    disableButton: function(button) {
      var $button = $(button),
        $clone = $button.clone(),
        width = Alchemy.getButtonWidth($button),
        height = Alchemy.getButtonHeight($button),
        spinner = '<img src="/assets/alchemy/ajax_loader.gif" style="width: 16px; height: 16px">';
      $button.hide().addClass('disabled');
      $button.parent().append($clone);
      $clone.attr({
        disabled: true,
        href: 'javascript:void(0)'
      }).addClass('cloned-button').css({
        width: width,
        'line-height': height + 'px'
      }).html(spinner).show();
      return true;
    },

    enableButton: function(button) {
      var $button = $(button).not('.no-spinner');
      $button.show().removeClass('disabled');
      $button.parent().find('.cloned-button').remove();
      return true;
    },

    getButtonWidth: function($button) {
      return $button.outerWidth() - (parseInt($button.css('border-left-width'), 10) + parseInt($button.css('border-right-width'), 10));
    },

    getButtonHeight: function($button) {
      return $button.outerHeight() - (parseInt($button.css('border-top-width'), 10) + parseInt($button.css('border-bottom-width'), 10));
    }

  });

})(jQuery);

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
alchemy_cms-2.3.2 app/assets/javascripts/alchemy/alchemy.buttons.js
alchemy_cms-2.3.1 app/assets/javascripts/alchemy/alchemy.buttons.js
alchemy_cms-2.3.0 app/assets/javascripts/alchemy/alchemy.buttons.js
alchemy_cms-2.3.rc5 app/assets/javascripts/alchemy/alchemy.buttons.js