Sha256: 0271fa760659bab2199580358dbe03458192e7f133bc4c16c252c37273749f6e

Contents?: true

Size: 1.15 KB

Versions: 1

Compression:

Stored size: 1.15 KB

Contents

(function($) {
  $(document).ready(function() {
    $('.handle').closest('tbody').activeAdminSortableTable();
  });

  $.fn.activeAdminSortableTable = function() {
    this.sortable({
      update: function(event, ui) {
        var item = ui.item.find('[data-sort-url]');
        var url = item.data('sort-url');
        var actionOnSuccess = item.data('sort-success-action');
        var customParams = {};
        if (typeof item.data('sort-custom-params') === 'object') {
          customParams = item.data('sort-custom-params');
        }

        $.ajax({
          url: url,
          type: 'post',
          data: $.extend(customParams, { position: ui.item.index() + 1 }),
          error: function() { console.error('Saving sortable error'); },
          success: function() {
            if (actionOnSuccess === 'noting') { return; }

            $("tr", $('.handle').closest('tbody')).removeClass('even odd');
            $("tr", $('.handle').closest('tbody')).filter(":even").addClass('odd');
            $("tr", $('.handle').closest('tbody')).filter(":odd").addClass('even');
          }
        });
      }
    });

    this.disableSelection();
  }
})(jQuery);

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
activeadmin_sortable_table-1.0.0 app/assets/javascripts/activeadmin_sortable_table.js