@@ -118,10 +118,23 @@ def workspace_index(request):
118118 return TemplateResponse (request , "workspaces.html" , {"workspaces" : workspaces })
119119
120120
121+ def use_tree_ui (request ):
122+ """Quick hack to be able to dynamically switch ui options."""
123+ tree = request .session .get ("tree" , settings .TREE )
124+ # hack to switch UI dynamically
125+ if "tree" in request .GET : # pragma: nocover
126+ tree = request .GET ["tree" ].lower () == "true"
127+
128+ request .session ["tree" ] = tree
129+ return tree
130+
131+
121132def workspace_view (request , workspace_name : str , path : str = "" ):
122133 workspace = validate_workspace (request .user , workspace_name )
123134
124- path_item = PathItem (workspace , path )
135+ relpath = Path (path )
136+ root = PathItem (workspace , Path ("." ), selected = relpath )
137+ path_item = PathItem (workspace , path , selected = relpath )
125138
126139 if not path_item .exists ():
127140 raise Http404 ()
@@ -135,6 +148,7 @@ def workspace_view(request, workspace_name: str, path: str = ""):
135148 "file_browser/index.html" ,
136149 {
137150 "workspace" : workspace ,
151+ "root" : root ,
138152 "path_item" : path_item ,
139153 "context" : "workspace" ,
140154 "title" : f"Files for workspace { workspace_name } " ,
@@ -145,6 +159,7 @@ def workspace_view(request, workspace_name: str, path: str = ""):
145159 "form" : AddFileForm (
146160 release_request = api .get_current_request (workspace_name , request .user )
147161 ),
162+ "tree" : use_tree_ui (request ),
148163 },
149164 )
150165
@@ -200,7 +215,9 @@ def request_index(request):
200215def request_view (request , request_id : str , path : str = "" ):
201216 release_request = validate_release_request (request .user , request_id )
202217
203- path_item = PathItem (release_request , path )
218+ relpath = Path (path )
219+ root = PathItem (release_request , Path ("." ), selected = relpath )
220+ path_item = PathItem (release_request , path , selected = relpath )
204221
205222 if not path_item .exists ():
206223 raise Http404 ()
@@ -230,6 +247,7 @@ def request_view(request, request_id: str, path: str = ""):
230247 context = {
231248 "workspace" : api .get_workspace (release_request .workspace ),
232249 "release_request" : release_request ,
250+ "root" : root ,
233251 "path_item" : path_item ,
234252 "context" : "request" ,
235253 "title" : f"Request for { release_request .workspace } by { release_request .author } " ,
@@ -239,6 +257,7 @@ def request_view(request, request_id: str, path: str = ""):
239257 "request_submit_url" : request_submit_url ,
240258 "request_reject_url" : request_reject_url ,
241259 "release_files_url" : release_files_url ,
260+ "tree" : use_tree_ui (request ),
242261 }
243262
244263 return TemplateResponse (request , "file_browser/index.html" , context )
0 commit comments