diff --git a/IPython/frontend/html/notebook/static/js/projectdashboardmain.js b/IPython/frontend/html/notebook/static/js/projectdashboardmain.js index 5957210..dbf9917 100644 --- a/IPython/frontend/html/notebook/static/js/projectdashboardmain.js +++ b/IPython/frontend/html/notebook/static/js/projectdashboardmain.js @@ -30,8 +30,41 @@ $(document).ready(function () { IPython.cluster_list = new IPython.ClusterList('div#cluster_list'); IPython.login_widget = new IPython.LoginWidget('span#login_widget'); - IPython.notebook_list.load_list(); - IPython.cluster_list.load_list(); + 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 + IPython.notebook_list.load_list(); + IPython.cluster_list.load_list(); + if (!interval_id){ + interval_id = setInterval(function(){ + 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