mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-19 03:33:48 +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_idname = "bim.connect_websocket_server"
|
||||||
bl_label = "Connect/Start websocket server"
|
bl_label = "Connect/Start websocket server"
|
||||||
bl_description = "Start/Connect to a Websocket server"
|
bl_description = "Start/Connect to a Websocket server"
|
||||||
|
page: bpy.props.StringProperty(default="")
|
||||||
|
|
||||||
def execute(self, context):
|
def execute(self, context):
|
||||||
port = context.scene.WebProperties.webserver_port
|
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)
|
context.scene.WebProperties.webserver_port = core.generate_port_number(tool.Web)
|
||||||
|
|
||||||
port = context.scene.WebProperties.webserver_port
|
port = context.scene.WebProperties.webserver_port
|
||||||
core.connect_websocket_server(tool.Web, port)
|
core.connect_websocket_server(tool.Web, port, self.page)
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
|
||||||
@@ -60,9 +61,10 @@ class killWebsocketServer(bpy.types.Operator):
|
|||||||
class OpenWebBrowser(bpy.types.Operator):
|
class OpenWebBrowser(bpy.types.Operator):
|
||||||
bl_idname = "bim.open_web_browser"
|
bl_idname = "bim.open_web_browser"
|
||||||
bl_label = "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):
|
def execute(self, context):
|
||||||
port = context.scene.WebProperties.webserver_port
|
port = context.scene.WebProperties.webserver_port
|
||||||
core.open_web_browser(tool.Web, port)
|
core.open_web_browser(tool.Web, port, self.page)
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|||||||
@@ -2,14 +2,14 @@ def generate_port_number(web):
|
|||||||
return web.generate_port_number()
|
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
|
# check if port already has a server listening to it
|
||||||
if web.is_port_available(port):
|
if web.is_port_available(port):
|
||||||
web.start_websocket_server(port)
|
web.start_websocket_server(port)
|
||||||
if web.has_started(port):
|
if web.has_started(port):
|
||||||
web.connect_websocket_server(port)
|
web.connect_websocket_server(port)
|
||||||
web.send_theme_data()
|
web.send_theme_data()
|
||||||
web.open_web_browser(port)
|
web.open_web_browser(port, page)
|
||||||
return
|
return
|
||||||
|
|
||||||
web.connect_websocket_server(port)
|
web.connect_websocket_server(port)
|
||||||
@@ -23,5 +23,5 @@ def kill_websocket_server(web):
|
|||||||
web.kill_websocket_server()
|
web.kill_websocket_server()
|
||||||
|
|
||||||
|
|
||||||
def open_web_browser(web, port):
|
def open_web_browser(web, port, page):
|
||||||
web.open_web_browser(port)
|
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
|
cls, task_json: list[dict[str, Any]], work_schedule: ifcopenshell.entity_instance
|
||||||
) -> None:
|
) -> None:
|
||||||
if not bpy.context.scene.WebProperties.is_connected:
|
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)}
|
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")
|
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
|
@classmethod
|
||||||
def open_web_browser(cls, port: int) -> None:
|
def open_web_browser(cls, port: int, page: str = "") -> None:
|
||||||
webbrowser.open(f"http://127.0.0.1:{port}/")
|
webbrowser.open(f"http://127.0.0.1:{port}/{page}")
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def send_theme_data(cls) -> None:
|
def send_theme_data(cls) -> None:
|
||||||
|
|||||||
Reference in New Issue
Block a user