diff --git a/IPython/html/static/tree/js/sessionlist.js b/IPython/html/static/tree/js/sessionlist.js index 2319cd2..44a29af 100644 --- a/IPython/html/static/tree/js/sessionlist.js +++ b/IPython/html/static/tree/js/sessionlist.js @@ -21,6 +21,36 @@ define([ this.events = options.events; this.sessions = {}; this.base_url = options.base_url || utils.get_body_data("baseUrl"); + + // Add collapse arrows. + $('#running .panel-group .panel .panel-heading a').each(function(index, el) { + var $link = $(el); + var $icon = $('') + .addClass('fa fa-caret-down'); + $link.append($icon); + $link.down = true; + $link.click(function () { + if ($link.down) { + $link.down = false; + // jQeury doesn't know how to animate rotations. Abuse + // jQueries animate function by using an unused css attribute + // to do the animation (borderSpacing). + $icon.animate({ borderSpacing: 90 }, { + step: function(now,fx) { + $icon.css('transform','rotate(-' + now + 'deg)'); + } + }, 250); + } else { + $link.down = true; + // See comment above. + $icon.animate({ borderSpacing: 0 }, { + step: function(now,fx) { + $icon.css('transform','rotate(-' + now + 'deg)'); + } + }, 250); + } + }); + }); }; SesssionList.prototype.load_sessions = function(){