diff --git a/src/bonsai/bonsai/bim/module/web/operator.py b/src/bonsai/bonsai/bim/module/web/operator.py index f1a4aca7c1..b3cc3c8264 100644 --- a/src/bonsai/bonsai/bim/module/web/operator.py +++ b/src/bonsai/bonsai/bim/module/web/operator.py @@ -26,6 +26,7 @@ class ConnectToWebsocketServer(bpy.types.Operator): bl_idname = "bim.connect_websocket_server" bl_label = "Connect/Start websocket server" bl_description = "Start/Connect to a Websocket server" + page: bpy.props.StringProperty(default="") def execute(self, context): port = context.scene.WebProperties.webserver_port @@ -33,7 +34,7 @@ class ConnectToWebsocketServer(bpy.types.Operator): context.scene.WebProperties.webserver_port = core.generate_port_number(tool.Web) port = context.scene.WebProperties.webserver_port - core.connect_websocket_server(tool.Web, port) + core.connect_websocket_server(tool.Web, port, self.page) return {"FINISHED"} @@ -60,9 +61,10 @@ class killWebsocketServer(bpy.types.Operator): class OpenWebBrowser(bpy.types.Operator): bl_idname = "bim.open_web_browser" bl_label = "Open Web Browser" - bl_description = "Open the web UI base URL in your Web Browser" + bl_description = "Open the web UI page URL in your Web Browser" + page: bpy.props.StringProperty(default="") def execute(self, context): port = context.scene.WebProperties.webserver_port - core.open_web_browser(tool.Web, port) + core.open_web_browser(tool.Web, port, self.page) return {"FINISHED"} diff --git a/src/bonsai/bonsai/core/web.py b/src/bonsai/bonsai/core/web.py index d69508d901..e5a405da2a 100644 --- a/src/bonsai/bonsai/core/web.py +++ b/src/bonsai/bonsai/core/web.py @@ -2,14 +2,14 @@ def generate_port_number(web): return web.generate_port_number() -def connect_websocket_server(web, port): +def connect_websocket_server(web, port, page): # check if port already has a server listening to it if web.is_port_available(port): web.start_websocket_server(port) if web.has_started(port): web.connect_websocket_server(port) web.send_theme_data() - web.open_web_browser(port) + web.open_web_browser(port, page) return web.connect_websocket_server(port) @@ -23,5 +23,5 @@ def kill_websocket_server(web): web.kill_websocket_server() -def open_web_browser(web, port): - web.open_web_browser(port) +def open_web_browser(web, port, page): + web.open_web_browser(port, page) diff --git a/src/bonsai/bonsai/tool/sequence.py b/src/bonsai/bonsai/tool/sequence.py index d54d8a090e..2dda05a38e 100644 --- a/src/bonsai/bonsai/tool/sequence.py +++ b/src/bonsai/bonsai/tool/sequence.py @@ -1542,7 +1542,7 @@ class Sequence(bonsai.core.tool.Sequence): cls, task_json: list[dict[str, Any]], work_schedule: ifcopenshell.entity_instance ) -> None: if not bpy.context.scene.WebProperties.is_connected: - bpy.ops.bim.connect_websocket_server() + bpy.ops.bim.connect_websocket_server(page="gantt") gantt_data = {"tasks": task_json, "work_schedule": work_schedule.get_info(recursive=True)} tool.Web.send_webui_data(data=gantt_data, data_key="gantt_data", event="gantt_data") diff --git a/src/bonsai/bonsai/tool/web.py b/src/bonsai/bonsai/tool/web.py index 5418a5364f..1820cfec88 100644 --- a/src/bonsai/bonsai/tool/web.py +++ b/src/bonsai/bonsai/tool/web.py @@ -372,8 +372,8 @@ class Web(bonsai.core.tool.Web): ) @classmethod - def open_web_browser(cls, port: int) -> None: - webbrowser.open(f"http://127.0.0.1:{port}/") + def open_web_browser(cls, port: int, page: str = "") -> None: + webbrowser.open(f"http://127.0.0.1:{port}/{page}") @classmethod def send_theme_data(cls) -> None: