Notebook cleanups and fixes: connection file cleanup, first heartbeat, startup flush.
Kernels would not linger, but the KernelManagers are not garbage-collected on shutdown. This means that connection files for kernels still running at notebook shutdown would not be removed.
Now, kernels are explicitly killed at server shutdown, allowing the KernelManagers to cleanup files.
Small changes along the way:
* disables the unnecessary (and actively detrimental) SIGINT handler inherited from the original copy/paste from the qt app.
* put webapp initialization in `init_webapp` out of `initialize`, to preserve convention of there being no unique code in `initialize()`.
* don't warn about http on all interfaces if running in 100% read-only mode, because no login or execution is possible.
Closes#1232.
Heartbeats start immediately, causing false heart failures on slow systems that can take a while to start kernel subprocesses.
Also adds a 'flush' to the heartbeat callback (just like in IPython.parallel), to protect against server load being detected as heart failures.
Kernels would not linger, but the KernelManagers are not garbage-collected on shutdown.
This means that connection files for kernels still running at notebook shutdown would not be removed.
Also disable the unnecessary (and actively unhelpful) SIGINT handler inherited from the original
copy/paste from the qt app.
Login/out button cleanups:
- Display a login button when viewing the notebook in read-only mode.
- On the login page, focus on the password field by default.
- Correctly style login / logout buttons.
- In read-only mode, redirect to "/" after logout, not "/login".
Change Notebook logo to IP[y]:Notebook
Make it clickable to return to the dashboard
Thanks to @MinRK for the css.
closes#607
png logo is 48px high (2x display), for balance of
browser display / zoomed appearance.
settings for tornado web application can now be specified via the
NotebookApp.webapp_settings configurable. This principally allows
users/admins to serve custom templates, css, and javascript, without
having to modify IPython's shipped sources.
closes#1135
Usability refinements to the as-you-type completer, so it shows the part that is fixed (typed by the user prior to tab), and is dismissed when not needed further.
Closes#1080.
Following @fperez advice, change the completer apparence to avoid user confusion.
- Append what the user type in the completer in code-miror, (Almost) as if
codemirror still have focus
- distinguish between "fixed" completion part, which was sent to the kernel
(now written in bold) and filtering one,handled only in JS,that the user
can errase without dismissing the completer
I changed the action of <Space> to dismiss the completer with what have
already been typed and inserting a space instead of "picking" the currently
hilighted option
<Escape> will still dissmiss the completer and remove everything the user as
typed since the completer invocation
Note that while the completer is shown, code-mirror does not show any
blinking cursor