##// END OF EJS Templates
allow setting base_project_url and base_kernel_url to non-default values
Andrew Straw -
Show More
@@ -192,7 +192,8 b' class ProjectDashboardHandler(AuthenticatedHandler):'
192 project = nbm.notebook_dir
192 project = nbm.notebook_dir
193 self.render(
193 self.render(
194 'projectdashboard.html', project=project,
194 'projectdashboard.html', project=project,
195 base_project_url=u'/', base_kernel_url=u'/',
195 base_project_url=self.application.ipython_app.base_project_url,
196 base_kernel_url=self.application.ipython_app.base_kernel_url,
196 read_only=self.read_only,
197 read_only=self.read_only,
197 logged_in=self.logged_in,
198 logged_in=self.logged_in,
198 login_available=self.login_available
199 login_available=self.login_available
@@ -255,7 +256,8 b' class NewHandler(AuthenticatedHandler):'
255 self.render(
256 self.render(
256 'notebook.html', project=project,
257 'notebook.html', project=project,
257 notebook_id=notebook_id,
258 notebook_id=notebook_id,
258 base_project_url=u'/', base_kernel_url=u'/',
259 base_project_url=self.application.ipython_app.base_project_url,
260 base_kernel_url=self.application.ipython_app.base_kernel_url,
259 kill_kernel=False,
261 kill_kernel=False,
260 read_only=False,
262 read_only=False,
261 logged_in=self.logged_in,
263 logged_in=self.logged_in,
@@ -276,7 +278,8 b' class NamedNotebookHandler(AuthenticatedHandler):'
276 self.render(
278 self.render(
277 'notebook.html', project=project,
279 'notebook.html', project=project,
278 notebook_id=notebook_id,
280 notebook_id=notebook_id,
279 base_project_url=u'/', base_kernel_url=u'/',
281 base_project_url=self.application.ipython_app.base_project_url,
282 base_kernel_url=self.application.ipython_app.base_kernel_url,
280 kill_kernel=False,
283 kill_kernel=False,
281 read_only=self.read_only,
284 read_only=self.read_only,
282 logged_in=self.logged_in,
285 logged_in=self.logged_in,
@@ -297,7 +300,8 b' class PrintNotebookHandler(AuthenticatedHandler):'
297 self.render(
300 self.render(
298 'printnotebook.html', project=project,
301 'printnotebook.html', project=project,
299 notebook_id=notebook_id,
302 notebook_id=notebook_id,
300 base_project_url=u'/', base_kernel_url=u'/',
303 base_project_url=self.application.ipython_app.base_project_url,
304 base_kernel_url=self.application.ipython_app.base_kernel_url,
301 kill_kernel=False,
305 kill_kernel=False,
302 read_only=self.read_only,
306 read_only=self.read_only,
303 logged_in=self.logged_in,
307 logged_in=self.logged_in,
@@ -637,7 +641,8 b' class NotebookCopyHandler(AuthenticatedHandler):'
637 self.render(
641 self.render(
638 'notebook.html', project=project,
642 'notebook.html', project=project,
639 notebook_id=notebook_id,
643 notebook_id=notebook_id,
640 base_project_url=u'/', base_kernel_url=u'/',
644 base_project_url=self.application.ipython_app.base_project_url,
645 base_kernel_url=self.application.ipython_app.base_kernel_url,
641 kill_kernel=False,
646 kill_kernel=False,
642 read_only=False,
647 read_only=False,
643 logged_in=self.logged_in,
648 logged_in=self.logged_in,
@@ -85,12 +85,23 b' ipython notebook --port=5555 --ip=* # Listen on port 5555, all interfaces'
85 """
85 """
86
86
87 #-----------------------------------------------------------------------------
87 #-----------------------------------------------------------------------------
88 # Helper functions
89 #-----------------------------------------------------------------------------
90
91 def url_path_join(a,b):
92 if a.endswith('/') and b.startswith('/'):
93 return a[:-1]+b
94 else:
95 return a+b
96
97 #-----------------------------------------------------------------------------
88 # The Tornado web application
98 # The Tornado web application
89 #-----------------------------------------------------------------------------
99 #-----------------------------------------------------------------------------
90
100
91 class NotebookWebApplication(web.Application):
101 class NotebookWebApplication(web.Application):
92
102
93 def __init__(self, ipython_app, kernel_manager, notebook_manager, log, settings_overrides):
103 def __init__(self, ipython_app, kernel_manager, notebook_manager, log,
104 base_project_url, settings_overrides):
94 handlers = [
105 handlers = [
95 (r"/", ProjectDashboardHandler),
106 (r"/", ProjectDashboardHandler),
96 (r"/login", LoginHandler),
107 (r"/login", LoginHandler),
@@ -119,7 +130,14 b' class NotebookWebApplication(web.Application):'
119 # allow custom overrides for the tornado web app.
130 # allow custom overrides for the tornado web app.
120 settings.update(settings_overrides)
131 settings.update(settings_overrides)
121
132
122 super(NotebookWebApplication, self).__init__(handlers, **settings)
133 # prepend base_project_url onto the patterns that we match
134 new_handlers = []
135 for handler in handlers:
136 pattern = url_path_join(base_project_url, handler[0])
137 new_handler = tuple([pattern]+list(handler[1:]))
138 new_handlers.append( new_handler )
139
140 super(NotebookWebApplication, self).__init__(new_handlers, **settings)
123
141
124 self.kernel_manager = kernel_manager
142 self.kernel_manager = kernel_manager
125 self.log = log
143 self.log = log
@@ -278,6 +296,11 b' class NotebookApp(BaseIPythonApplication):'
278 if not new:
296 if not new:
279 self.mathjax_url = u''
297 self.mathjax_url = u''
280
298
299 base_project_url = Unicode('/', config=True,
300 help='''The base URL for the notebook server''')
301 base_kernel_url = Unicode('/', config=True,
302 help='''The base URL for the kernel server''')
303
281 mathjax_url = Unicode("", config=True,
304 mathjax_url = Unicode("", config=True,
282 help="""The url for MathJax.js."""
305 help="""The url for MathJax.js."""
283 )
306 )
@@ -333,7 +356,7 b' class NotebookApp(BaseIPythonApplication):'
333 """initialize tornado webapp and httpserver"""
356 """initialize tornado webapp and httpserver"""
334 self.web_app = NotebookWebApplication(
357 self.web_app = NotebookWebApplication(
335 self, self.kernel_manager, self.notebook_manager, self.log,
358 self, self.kernel_manager, self.notebook_manager, self.log,
336 self.webapp_settings
359 self.base_project_url, self.webapp_settings
337 )
360 )
338 if self.certfile:
361 if self.certfile:
339 ssl_options = dict(certfile=self.certfile)
362 ssl_options = dict(certfile=self.certfile)
General Comments 0
You need to be logged in to leave comments. Login now