@@ -21,9 +21,8 @@ def css_unit(v):
2121def iframe_url_builder_default (layout ):
2222 base_url = layout .iframe_base_url
2323 server = layout .server
24- template_name = layout ._template_name
25- src = f"{ base_url } :{ server .port } /index.html?ui={ template_name [16 :]} &reconnect=auto"
26- elem_id = f"{ server .name } _{ template_name } "
24+ src = f"{ base_url } :{ server .port } /index.html?ui={ layout .template_name } &reconnect=auto"
25+ elem_id = f"{ server .name } _{ layout ._template_name } "
2726
2827 return {
2928 "id" : elem_id ,
@@ -36,9 +35,8 @@ def iframe_url_builder_default(layout):
3635def iframe_url_builder_serverproxy (layout ):
3736 base_url = layout .iframe_base_url
3837 server = layout .server
39- template_name = layout ._template_name
40- src = f"{ base_url } /{ server .port } /index.html?ui={ template_name [16 :]} &reconnect=auto"
41- elem_id = f"{ server .name } _{ template_name } "
38+ src = f"{ base_url } /{ server .port } /index.html?ui={ layout .template_name } &reconnect=auto"
39+ elem_id = f"{ server .name } _{ layout ._template_name } "
4240
4341 return {
4442 "id" : elem_id ,
@@ -53,11 +51,10 @@ def iframe_url_builder_jupyter_extension(layout):
5351
5452 www_endpoint = os .environ .get ("TRAME_JUPYTER_ENDPOINT" , "/trame-jupyter-server" )
5553 server = layout .server
56- template_name = layout ._template_name
5754 url_base = f"{ www_endpoint } /{ server .client_type } /index.html"
58- url_query = f"ui={ template_name [ 16 :] } &server={ server .name } &wsProxy&reconnect=auto"
55+ url_query = f"ui={ layout . template_name } &server={ server .name } &wsProxy&reconnect=auto"
5956 src = f"{ url_base } ?{ url_query } "
60- elem_id = f"{ server .name } _{ template_name } "
57+ elem_id = f"{ server .name } _{ layout . _template_name } "
6158
6259 # Check if server/kernel are collocated
6360 www_path = os .environ .get ("TRAME_JUPYTER_WWW" )
@@ -66,7 +63,7 @@ def iframe_url_builder_jupyter_extension(layout):
6663 server_www = Path (www_path ) / "servers" / server .name
6764 url_base = f"{ www_endpoint } /servers/{ server .name } /index.html"
6865 url_query = (
69- f"ui={ template_name [ 16 :] } &server={ server .name } &wsProxy&reconnect=auto"
66+ f"ui={ layout . template_name } &server={ server .name } &wsProxy&reconnect=auto"
7067 )
7168 src = f"{ url_base } ?{ url_query } "
7269 if not server_www .exists ():
@@ -86,13 +83,12 @@ def iframe_url_builder_jupyter_extension(layout):
8683
8784def iframe_url_builder_jupyter_hub (layout ):
8885 server = layout .server
89- template_name = layout ._template_name
9086 url_base = (
9187 f"{ os .environ ['JUPYTERHUB_SERVICE_PREFIX' ]} proxy/{ server .port } /index.html"
9288 )
93- url_query = f"ui={ template_name [ 16 :] } &reconnect=auto"
89+ url_query = f"ui={ layout . template_name } &reconnect=auto"
9490 src = f"{ url_base } ?{ url_query } "
95- elem_id = f"{ server .name } _{ template_name } "
91+ elem_id = f"{ server .name } _{ layout . _template_name } "
9692
9793 return {
9894 "id" : elem_id ,
@@ -105,11 +101,10 @@ def iframe_url_builder_jupyter_hub(layout):
105101def iframe_url_builder_jupyter_hub_host (layout ):
106102 host = os .environ .get ("HOSTNAME" )
107103 server = layout .server
108- template_name = layout ._template_name
109104 url_base = f"{ os .environ ['JUPYTERHUB_SERVICE_PREFIX' ]} proxy/{ host } :{ server .port } /index.html"
110- url_query = f"ui={ template_name [ 16 :] } &reconnect=auto"
105+ url_query = f"ui={ layout . template_name } &reconnect=auto"
111106 src = f"{ url_base } ?{ url_query } "
112- elem_id = f"{ server .name } _{ template_name } "
107+ elem_id = f"{ server .name } _{ layout . _template_name } "
113108
114109 return {
115110 "id" : elem_id ,
@@ -176,6 +171,11 @@ def __init__(
176171 self .iframe_base_url = base_url
177172 self ._iframe_builder = get_iframe_builder (iframe_builder )
178173
174+ @property
175+ def template_name (self ):
176+ """Layout template name without the 'trame__template_' prefix"""
177+ return self ._template_name [16 :]
178+
179179 @property
180180 def iframe_builder (self ):
181181 """Instance of iframe builder responsible for generating the iframe tag for mainly for Jupyter"""
0 commit comments