mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 09:21:46 +00:00
add open different web UI pages on starting it up
This commit is contained in:
@@ -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"}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user