add open different web UI pages on starting it up

This commit is contained in:
Ziad-I
2024-08-10 23:12:12 +03:00
committed by Dion Moult
parent 29600711ae
commit 7163697362
4 changed files with 12 additions and 10 deletions
+5 -3
View File
@@ -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"}
+4 -4
View File
@@ -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)
+1 -1
View File
@@ -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")
+2 -2
View File
@@ -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: