diff --git a/notebook/static/base/images/favicon-busy.ico b/notebook/static/base/images/favicon-busy.ico new file mode 100644 index 000000000..85f9995a4 Binary files /dev/null and b/notebook/static/base/images/favicon-busy.ico differ diff --git a/notebook/static/notebook/js/notificationarea.js b/notebook/static/notebook/js/notificationarea.js index 36b3dd60d..86f92fda0 100644 --- a/notebook/static/notebook/js/notificationarea.js +++ b/notebook/static/notebook/js/notificationarea.js @@ -254,15 +254,28 @@ define([ $kernel_ind_icon.attr('class','kernel_idle_icon').attr('title','Kernel Idle'); knw.info("Kernel ready", 500); }); + + var change_favicon = function (src) { + var link = document.createElement('link'), + oldLink = document.getElementById('favicon'); + link.id = 'favicon'; + link.type = 'image/x-icon'; + link.rel = 'shortcut icon'; + link.href = src; + if (oldLink) document.head.removeChild(oldLink); + document.head.appendChild(link); + }; this.events.on('kernel_idle.Kernel', function () { that.save_widget.update_document_title(); $kernel_ind_icon.attr('class','kernel_idle_icon').attr('title','Kernel Idle'); + change_favicon('/static/base/images/favicon.ico' + '?=' + Math.random()); }); this.events.on('kernel_busy.Kernel', function () { window.document.title='(Busy) '+window.document.title; $kernel_ind_icon.attr('class','kernel_busy_icon').attr('title','Kernel Busy'); + change_favicon('/static/base/images/favicon-busy.ico' + '?=' + Math.random()); }); this.events.on('spec_match_found.Kernel', function (evt, data) { diff --git a/notebook/templates/page.html b/notebook/templates/page.html index 5860517e0..e96aac227 100644 --- a/notebook/templates/page.html +++ b/notebook/templates/page.html @@ -5,7 +5,7 @@ {% block title %}Jupyter Notebook{% endblock %} - {% block favicon %}{% endblock %} + {% block favicon %}{% endblock %}