Skip to content

Commit 639da8d

Browse files
committed
Add separate handler for /terminals/new
1 parent 84ba421 commit 639da8d

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

notebook/terminal/__init__.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from ipython_genutils.py3compat import which
1111
from notebook.utils import url_path_join as ujoin
1212
from .terminalmanager import TerminalManager
13-
from .handlers import TerminalHandler, TermSocket, NewTerminalHandler
13+
from .handlers import TerminalHandler, TermSocket, NewTerminalHandler, NamedTerminalHandler
1414
from . import api_handlers
1515

1616

@@ -42,10 +42,11 @@ def initialize(nb_app):
4242
terminal_manager.log = nb_app.log
4343
base_url = nb_app.web_app.settings['base_url']
4444
handlers = [
45+
(ujoin(base_url, r"/terminals/new"), NamedTerminalHandler),
46+
(ujoin(base_url, r"/terminals/new/(\w+)"), NewTerminalHandler),
4547
(ujoin(base_url, r"/terminals/(\w+)"), TerminalHandler),
4648
(ujoin(base_url, r"/terminals/websocket/(\w+)"), TermSocket,
4749
{'term_manager': terminal_manager}),
48-
(ujoin(base_url, r"/terminals/new/(\w+)"), NewTerminalHandler),
4950
(ujoin(base_url, r"/api/terminals"), api_handlers.TerminalRootHandler),
5051
(ujoin(base_url, r"/api/terminals/(\w+)"), api_handlers.TerminalHandler),
5152
]

notebook/terminal/handlers.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,22 @@ class TerminalHandler(IPythonHandler):
1515
"""Render the terminal interface."""
1616
@web.authenticated
1717
def get(self, term_name):
18-
if term_name == 'new':
19-
model = self.terminal_manager.create()
20-
term_name = model['name']
21-
new_path = self.request.path.replace("terminals/new", "terminals/" + term_name)
22-
self.redirect(new_path)
23-
else:
24-
self.write(self.render_template('terminal.html',
18+
self.write(self.render_template('terminal.html',
2519
ws_path="terminals/websocket/%s" % term_name))
2620

2721

22+
class NamedTerminalHandler(IPythonHandler):
23+
"""Creates and renders a named terminal interface."""
24+
@web.authenticated
25+
def get(self):
26+
model = self.terminal_manager.create()
27+
term_name = model['name']
28+
new_path = self.request.path.replace("terminals/new", "terminals/" + term_name)
29+
self.redirect(new_path)
30+
31+
2832
class NewTerminalHandler(IPythonHandler):
29-
"""Renders a new terminal interface using the named argument."""
33+
"""Creates and renders a terminal interface using the named argument."""
3034
@web.authenticated
3135
def get(self, term_name):
3236
if term_name == 'new':

0 commit comments

Comments
 (0)