main.js
91 lines
| 2.9 KiB
| application/javascript
|
JavascriptLexer
Brian E. Granger
|
r4609 | //---------------------------------------------------------------------------- | ||
// 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. | ||||
//---------------------------------------------------------------------------- | ||||
Brian E. Granger
|
r4488 | |||
//============================================================================ | ||||
// On document ready | ||||
//============================================================================ | ||||
$(document).ready(function () { | ||||
Brian Granger
|
r6192 | IPython.page = new IPython.Page(); | ||
Zachary Sailer
|
r13016 | |||
$('#new_notebook').button().click(function (e) { | ||||
MinRK
|
r15234 | IPython.notebook_list.new_notebook() | ||
Zachary Sailer
|
r13016 | }); | ||
MinRK
|
r15234 | |||
var opts = { | ||||
MinRK
|
r15240 | base_url : IPython.utils.get_body_data("baseUrl"), | ||
notebook_path : IPython.utils.get_body_data("notebookPath"), | ||||
MinRK
|
r15234 | }; | ||
Paul Ivanov
|
r15479 | IPython.session_list = new IPython.SesssionList(opts); | ||
MinRK
|
r15234 | IPython.notebook_list = new IPython.NotebookList('#notebook_list', opts); | ||
IPython.cluster_list = new IPython.ClusterList('#cluster_list', opts); | ||||
Paul Ivanov
|
r15454 | IPython.kernel_list = new IPython.KernelList('#running_list', opts); | ||
MinRK
|
r15234 | IPython.login_widget = new IPython.LoginWidget('#login_widget', opts); | ||
Stefan van der Walt
|
r5722 | |||
Matthias BUSSONNIER
|
r6844 | 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 | ||||
Matthias BUSSONNIER
|
r6858 | if($('.upload_button').length == 0) | ||
Matthias BUSSONNIER
|
r6849 | { | ||
Paul Ivanov
|
r15479 | IPython.session_list.load_sessions(); | ||
Matthias BUSSONNIER
|
r6849 | IPython.cluster_list.load_list(); | ||
} | ||||
Matthias BUSSONNIER
|
r6844 | if (!interval_id){ | ||
interval_id = setInterval(function(){ | ||||
Matthias BUSSONNIER
|
r6858 | if($('.upload_button').length == 0) | ||
Matthias BUSSONNIER
|
r6849 | { | ||
Paul Ivanov
|
r15479 | IPython.session_list.load_sessions(); | ||
Matthias BUSSONNIER
|
r6849 | IPython.cluster_list.load_list(); | ||
} | ||||
Matthias BUSSONNIER
|
r6844 | }, 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(); | ||||
Brian Granger
|
r6192 | IPython.page.show(); | ||
Matthias BUSSONNIER
|
r6838 | |||
// bound the upload method to the on change of the file select list | ||||
$("#alternate_upload").change(function (event){ | ||||
Paul Ivanov
|
r15455 | IPython.notebook_list.handleFilesUpload(event,'form'); | ||
Matthias BUSSONNIER
|
r6838 | }); | ||
MinRK
|
r10927 | |||
// set hash on tab click | ||||
$("#tabs").find("a").click(function() { | ||||
window.location.hash = $(this).attr("href"); | ||||
}) | ||||
// load tab if url hash | ||||
if (window.location.hash) { | ||||
$("#tabs").find("a[href=" + window.location.hash + "]").click(); | ||||
} | ||||
Matthias BUSSONNIER
|
r6856 | |||
Brian E. Granger
|
r4488 | }); | ||