Skip to content

Instantly share code, notes, and snippets.

@cmd-ntrf
Created November 7, 2018 21:03

Revisions

  1. cmd-ntrf created this gist Nov 7, 2018.
    49 changes: 49 additions & 0 deletions tree.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,49 @@
    define(function(require) {
    var $ = require('jquery');
    var Jupyter = require('base/js/namespace');
    var utils = require('base/js/utils');

    var base_url = utils.get_body_data('baseUrl');
    var lmod_class = require('../jupyterlmod/lmod');
    var lmod = new lmod_class.Lmod(base_url);

    function load() {
    if (!Jupyter.notebook_list) return;

    /* locate the right-side dropdown menu of apps and notebooks */
    var menu = $('.tree-buttons').find('.dropdown-menu');

    /* create a divider */
    var divider = $('<li>')
    .attr('role', 'presentation')
    .addClass('divider');

    /* add the divider */
    menu.append(divider);

    /* create our list item */
    var rsession_item = $('<li>')
    .attr('role', 'presentation')
    .addClass('new-rstudio');

    /* create our list item's link */
    var rsession_link = $('<a>')
    .attr('role', 'menuitem')
    .attr('tabindex', '-1')
    .attr('href', base_url + 'rstudio/')
    .attr('target', '_blank')
    .text('RStudio Session');

    /* add the link to the item and
    * the item to the menu */
    let module_list = await lmod.list();
    if(module_list.includes('rstudio-server/1.1.447')) {
    rsession_item.append(rsession_link);
    menu.append(rsession_item);
    }
    }

    return {
    load_ipython_extension: load
    };
    });