##// END OF EJS Templates
ensure 'path' never has leading or trailing slash in nbmanager...
ensure 'path' never has leading or trailing slash in nbmanager Don't trust API callers to always get this right.

File last commit:

r13067:8c61a47c
r13078:c62f9dfd
Show More
handlers.py
73 lines | 2.4 KiB | text/x-python | PythonLexer
Brian E. Granger
Splitting handlers into different files....
r10642 """Tornado handlers for the tree view.
Brian E. Granger
Adding new files.
r10641
Authors:
* Brian Granger
"""
#-----------------------------------------------------------------------------
Brian E. Granger
Splitting handlers into different files....
r10642 # Copyright (C) 2011 The IPython Development Team
Brian E. Granger
Adding new files.
r10641 #
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
MinRK
Simplify Tree handlers...
r13055 import os
Brian E. Granger
Adding new files.
r10641
MinRK
remove notebook read-only view...
r11644 from tornado import web
from ..base.handlers import IPythonHandler
MinRK
Simplify Tree handlers...
r13055 from ..utils import url_path_join, path2url, url2path
MinRK
adjust definition of 'path' in notebooks...
r13067 from ..services.notebooks.handlers import _notebook_path_regex, _path_regex
Brian E. Granger
Adding new files.
r10641
#-----------------------------------------------------------------------------
Brian E. Granger
Splitting handlers into different files....
r10642 # Handlers
Brian E. Granger
Adding new files.
r10641 #-----------------------------------------------------------------------------
MinRK
Simplify Tree handlers...
r13055 class TreeHandler(IPythonHandler):
"""Render the tree view, listing notebooks, clusters, etc."""
Brian E. Granger
Adding new files.
r10641
MinRK
remove notebook read-only view...
r11644 @web.authenticated
MinRK
adjust definition of 'path' in notebooks...
r13067 def get(self, path='', name=None):
Zachary Sailer
manual rebase tree/handlers.py
r12990 nbm = self.notebook_manager
Zachary Sailer
fixing broken links from recent changes....
r13033 if name is not None:
MinRK
Simplify Tree handlers...
r13055 # is a notebook, redirect to notebook handler
url = url_path_join(self.base_project_url, 'notebooks', path, name)
self.redirect(url)
Zachary Sailer
manual rebase tree/handlers.py
r12990 else:
MinRK
adjust definition of 'path' in notebooks...
r13067 if not nbm.path_exists(path=path):
MinRK
Simplify Tree handlers...
r13055 # no such directory, 404
raise web.HTTPError(404)
Zachary Sailer
manual rebase tree/handlers.py
r12990 self.write(self.render_template('tree.html',
MinRK
Simplify Tree handlers...
r13055 project=self.project_dir,
MinRK
adjust definition of 'path' in notebooks...
r13067 tree_url_path=path,
Zachary Sailer
manual rebase tree/handlers.py
r12990 notebook_path=path,
MinRK
Simplify Tree handlers...
r13055 ))
Zachary Sailer
manual rebase tree/handlers.py
r12990
class TreeRedirectHandler(IPythonHandler):
MinRK
Simplify Tree handlers...
r13055 """Redirect a request to the corresponding tree URL"""
Zachary Sailer
fixing path redirects, cleaning path logic
r12992
Zachary Sailer
rebase master- eliminate read-only
r13014 @web.authenticated
MinRK
adjust definition of 'path' in notebooks...
r13067 def get(self, path=''):
url = url_path_join(self.base_project_url, 'tree', path).rstrip('/')
MinRK
Simplify Tree handlers...
r13055 self.log.debug("Redirecting %s to %s", self.request.uri, url)
Zachary Sailer
manual rebase tree/handlers.py
r12990 self.redirect(url)
Zachary Sailer
added folder creation ability using '/-new'
r13003
Brian E. Granger
More work on the handlers
r10647 #-----------------------------------------------------------------------------
# URL to handler mappings
#-----------------------------------------------------------------------------
Zachary Sailer
manual rebase tree/handlers.py
r12990 default_handlers = [
MinRK
adjust definition of 'path' in notebooks...
r13067 (r"/tree/(.*)/", TreeRedirectHandler),
(r"/tree/?%s" % _notebook_path_regex, TreeHandler),
(r"/tree/?%s" % _path_regex, TreeHandler),
Zachary Sailer
manual rebase tree/handlers.py
r12990 (r"/tree/", TreeRedirectHandler),
MinRK
Simplify Tree handlers...
r13055 (r"/tree", TreeHandler),
(r"/", TreeRedirectHandler),
Zachary Sailer
manual rebase tree/handlers.py
r12990 ]