##// END OF EJS Templates
Allow the user to interact with link anchors in the qtconsole...
Allow the user to interact with link anchors in the qtconsole Since the qtconsole can display hyperlinks, it would be useful to allow interacting with them. This adds showing a tooltip when the mouse is over a link. The tooltip code stores the anchor in ConsoleWidget._anchor, so when the user right-clicks to select the context menu for "Open Link" or "Copy Link Address", it uses the text that was displayed and not whats under the current context menu pointer location. Also storing the anchor allows me to check to see if we've already displayed that anchor on a new mouseMoveEvent so the tooltip doesn't keep getting redrawn.

File last commit:

r6858:df90df64
r8532:9891d074
Show More
projectdashboardmain.js
82 lines | 2.7 KiB | application/javascript | JavascriptLexer
//----------------------------------------------------------------------------
// Copyright (C) 2008-2011 The IPython Development Team
//
// Distributed under the terms of the BSD License. The full license is in
// the file COPYING, distributed as part of this software.
//----------------------------------------------------------------------------
//============================================================================
// On document ready
//============================================================================
$(document).ready(function () {
IPython.page = new IPython.Page();
$('div#tabs').tabs();
$('div#tabs').on('tabsselect', function (event, ui) {
var new_url = $('body').data('baseProjectUrl') + '#' + ui.panel.id;
window.history.replaceState({}, '', new_url);
});
$('div#main_app').addClass('border-box-sizing ui-widget');
$('div#notebooks_toolbar').addClass('ui-widget ui-helper-clearfix');
$('#new_notebook').button().click(function (e) {
window.open($('body').data('baseProjectUrl')+'new');
});
IPython.read_only = $('body').data('readOnly') === 'True';
IPython.notebook_list = new IPython.NotebookList('div#notebook_list');
IPython.cluster_list = new IPython.ClusterList('div#cluster_list');
IPython.login_widget = new IPython.LoginWidget('span#login_widget');
var interval_id=0;
// auto refresh every xx secondes, no need to be fast,
// update is done at least when page get focus
var time_refresh = 60; // in sec
var enable_autorefresh = function(){
//refresh immediately , then start interval
if($('.upload_button').length == 0)
{
IPython.notebook_list.load_list();
IPython.cluster_list.load_list();
}
if (!interval_id){
interval_id = setInterval(function(){
if($('.upload_button').length == 0)
{
IPython.notebook_list.load_list();
IPython.cluster_list.load_list();
}
}, time_refresh*1000);
}
}
var disable_autorefresh = function(){
clearInterval(interval_id);
interval_id = 0;
}
// stop autorefresh when page lose focus
$(window).blur(function() {
disable_autorefresh();
})
//re-enable when page get focus back
$(window).focus(function() {
enable_autorefresh();
});
// finally start it, it will refresh immediately
enable_autorefresh();
IPython.page.show();
// bound the upload method to the on change of the file select list
$("#alternate_upload").change(function (event){
IPython.notebook_list.handelFilesUpload(event,'form');
});
});