Skip to content

Commit 852a461

Browse files
fix(layout): add template name property in AbstractLayout (#48)
Co-authored-by: Justine Antoine <justine.antoine@kitware.com>
1 parent 70eefde commit 852a461

1 file changed

Lines changed: 20 additions & 16 deletions

File tree

trame_client/ui/core.py

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@ def css_unit(v):
2121
def 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 = (
25+
f"{base_url}:{server.port}/index.html?ui={layout.template_name}&reconnect=auto"
26+
)
27+
elem_id = f"{server.name}_{layout._template_name}"
2728

2829
return {
2930
"id": elem_id,
@@ -36,9 +37,10 @@ def iframe_url_builder_default(layout):
3637
def iframe_url_builder_serverproxy(layout):
3738
base_url = layout.iframe_base_url
3839
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}"
40+
src = (
41+
f"{base_url}/{server.port}/index.html?ui={layout.template_name}&reconnect=auto"
42+
)
43+
elem_id = f"{server.name}_{layout._template_name}"
4244

4345
return {
4446
"id": elem_id,
@@ -53,11 +55,10 @@ def iframe_url_builder_jupyter_extension(layout):
5355

5456
www_endpoint = os.environ.get("TRAME_JUPYTER_ENDPOINT", "/trame-jupyter-server")
5557
server = layout.server
56-
template_name = layout._template_name
5758
url_base = f"{www_endpoint}/{server.client_type}/index.html"
58-
url_query = f"ui={template_name[16:]}&server={server.name}&wsProxy&reconnect=auto"
59+
url_query = f"ui={layout.template_name}&server={server.name}&wsProxy&reconnect=auto"
5960
src = f"{url_base}?{url_query}"
60-
elem_id = f"{server.name}_{template_name}"
61+
elem_id = f"{server.name}_{layout._template_name}"
6162

6263
# Check if server/kernel are collocated
6364
www_path = os.environ.get("TRAME_JUPYTER_WWW")
@@ -66,7 +67,7 @@ def iframe_url_builder_jupyter_extension(layout):
6667
server_www = Path(www_path) / "servers" / server.name
6768
url_base = f"{www_endpoint}/servers/{server.name}/index.html"
6869
url_query = (
69-
f"ui={template_name[16:]}&server={server.name}&wsProxy&reconnect=auto"
70+
f"ui={layout.template_name}&server={server.name}&wsProxy&reconnect=auto"
7071
)
7172
src = f"{url_base}?{url_query}"
7273
if not server_www.exists():
@@ -86,13 +87,12 @@ def iframe_url_builder_jupyter_extension(layout):
8687

8788
def iframe_url_builder_jupyter_hub(layout):
8889
server = layout.server
89-
template_name = layout._template_name
9090
url_base = (
9191
f"{os.environ['JUPYTERHUB_SERVICE_PREFIX']}proxy/{server.port}/index.html"
9292
)
93-
url_query = f"ui={template_name[16:]}&reconnect=auto"
93+
url_query = f"ui={layout.template_name}&reconnect=auto"
9494
src = f"{url_base}?{url_query}"
95-
elem_id = f"{server.name}_{template_name}"
95+
elem_id = f"{server.name}_{layout._template_name}"
9696

9797
return {
9898
"id": elem_id,
@@ -105,11 +105,10 @@ def iframe_url_builder_jupyter_hub(layout):
105105
def iframe_url_builder_jupyter_hub_host(layout):
106106
host = os.environ.get("HOSTNAME")
107107
server = layout.server
108-
template_name = layout._template_name
109108
url_base = f"{os.environ['JUPYTERHUB_SERVICE_PREFIX']}proxy/{host}:{server.port}/index.html"
110-
url_query = f"ui={template_name[16:]}&reconnect=auto"
109+
url_query = f"ui={layout.template_name}&reconnect=auto"
111110
src = f"{url_base}?{url_query}"
112-
elem_id = f"{server.name}_{template_name}"
111+
elem_id = f"{server.name}_{layout._template_name}"
113112

114113
return {
115114
"id": elem_id,
@@ -176,6 +175,11 @@ def __init__(
176175
self.iframe_base_url = base_url
177176
self._iframe_builder = get_iframe_builder(iframe_builder)
178177

178+
@property
179+
def template_name(self):
180+
"""Layout template name without the 'trame__template_' prefix"""
181+
return self._template_name[16:]
182+
179183
@property
180184
def iframe_builder(self):
181185
"""Instance of iframe builder responsible for generating the iframe tag for mainly for Jupyter"""

0 commit comments

Comments
 (0)