From 0cabf033434d7ca5320ea3cfa44dcf791e300bbc Mon Sep 17 00:00:00 2001 From: Jonathan Frederic Date: Tue, 23 Dec 2014 13:22:21 -0800 Subject: [PATCH] Animated arrow icon --- IPython/html/static/tree/js/sessionlist.js | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/IPython/html/static/tree/js/sessionlist.js b/IPython/html/static/tree/js/sessionlist.js index 2319cd2d0..44a29afda 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(){