// Copyright (c) IPython Development Team. // Distributed under the terms of the Modified BSD License. define([ 'base/js/namespace', 'jquery', 'base/js/utils', ], function(IPython, $, utils) { "use strict"; var SesssionList = function (options) { /** * Constructor * * Parameters: * options: dictionary * Dictionary of keyword arguments. * events: $(Events) instance * base_url : string */ 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(){ var that = this; var settings = { processData : false, cache : false, type : "GET", dataType : "json", success : $.proxy(that.sessions_loaded, this), error : utils.log_ajax_error, }; var url = utils.url_join_encode(this.base_url, 'api/sessions'); $.ajax(url, settings); }; SesssionList.prototype.sessions_loaded = function(data){ this.sessions = {}; var len = data.length; var nb_path; for (var i=0; i