B
    9d(                 @   sb   d Z ddlmZ ddlZddlmZmZ ddlmZm	Z	 G dd deZ
d	e e
fd	e
fgZdS )
z#Tornado handlers for the tree view.    )webN   )IPythonHandler
path_regex)url_path_join
url_escapec               @   s0   e Zd ZdZdd Zdd Zejd
ddZd	S )TreeHandlerz-Render the tree view, listing notebooks, etc.c          
   C   sr   t | jddfg}|d}xPtt|D ]@}|| r*t | jdtt |d |d   }|||| f q*W |S )Ntree /   )r   base_urlsplitrangelenr   append)selfpathbreadcrumbspartsilink r   c/work/yifan.wang/ringdown/master-ringdown-env/lib/python3.7/site-packages/notebook/tree/handlers.pygenerate_breadcrumbs   s    
z TreeHandler.generate_breadcrumbsc             C   sV   | d}t|dkr:x"tt|d D ]}|d q(W t| }|rN|d S dS d S )Nr      r   r   z'Home Page - Select or create a notebook)r   r   r   popr   )r   r   compsr   
page_titler   r   r   generate_page_title   s    
zTreeHandler.generate_page_titler
   c             C   s   | d}| j}|j|dr||rB|jsB| jd td| 	|}| 
|}| | jd|||| jd | jd | jdd	d
 nh||r|j|d	d}|d dkrdnd}t| j|t|}| jd| jj| | | n
tdd S )Nr   )r   z1Refusing to serve hidden directory, via 404 Errori  z	tree.htmlterminals_availableZserver_root_dirshutdown_buttonF)r   Znotebook_pathr   r    Zserver_rootr!   )contenttypenotebookZ	notebooksfileszRedirecting %s to %s)stripZcontents_managerZ
dir_existsZ	is_hiddenZallow_hiddenloginfor   	HTTPErrorr   r   writeZrender_templatesettingsgetZfile_existsr   r   r   debugrequestr   redirect)r   r   cmr   r   modelZserviceurlr   r   r   r,   %   s.    





zTreeHandler.getN)r
   )	__name__
__module____qualname____doc__r   r   r   authenticatedr,   r   r   r   r   r      s
   r   z/tree)r6   tornador   osZbase.handlersr   r   utilsr   r   r   Zdefault_handlersr   r   r   r   <module>   s   @