Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
evergreen / app / assets / javascripts / sortable-tree.js
Size: Mime:
//= require jquery.mjs.nestedSortable

$(function() {

  sortableTreeStatus = $("#tree-control #status");
  sortableTreeStatus.hide();

  updateSortableTreeStatus = function(status, message) {
    sortableTreeStatus.html(message).removeClass().addClass(status);
    return sortableTreeStatus;
  };

  $('.sortable-tree > ol').nestedSortable({
    handle: '.sortable-item-wrapper',
    items: 'li',
    toleranceElement: '> .sortable-item-wrapper',
    placeholder: 'placeholder',
    maxLevels: 5,
    opacity: 0.6,
    forcePlaceholderSize: true,
    update: function() {
      updateSortableTreeStatus('pending', "Saving...").fadeIn('fast');
      var serialized = $(this).nestedSortable('serialize');
      $.post($(this).data('url'), serialized).always(function(data) {
        updateSortableTreeStatus(data.result, data.message).fadeOut(800);
      });
    }
  });

  $('.sortable-tree .toggle').on('click', function() {
    $(this).closest('li').toggleClass('collapsed');
  });

  $('#tree-control a#expand-tree').on('click', function(e) {
    e.preventDefault();
    var $tree = $('.sortable-tree');
    $tree.find('li').each(function() {
      if ($(this).children().length) {
        $(this).removeClass('collapsed');
      }
    });
  });
  $('#tree-control a#collapse-tree').on('click', function(e) {
    e.preventDefault();
    var $tree = $('.sortable-tree');
    $tree.find('li').each(function() {
      if ($(this).children().length) {
        $(this).addClass('collapsed');
      }
    });
  });
});