From 4877ab44265337189c7c8990457ed8fd5c922384 Mon Sep 17 00:00:00 2001 From: Ziad-I <68874104+Ziad-I@users.noreply.github.com> Date: Mon, 5 Aug 2024 13:25:33 +0300 Subject: [PATCH] add updating and removing of drawings/sheets --- .../bim/data/webui/static/js/drawings.js | 54 +++++++++++++++---- .../bim/data/webui/templates/drawings.html | 2 +- 2 files changed, 46 insertions(+), 10 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/data/webui/static/js/drawings.js b/src/blenderbim/blenderbim/bim/data/webui/static/js/drawings.js index d94ce71948..7cee576f0a 100644 --- a/src/blenderbim/blenderbim/bim/data/webui/static/js/drawings.js +++ b/src/blenderbim/blenderbim/bim/data/webui/static/js/drawings.js @@ -33,6 +33,7 @@ function connectSocket() { socket.on("blender_disconnect", handleBlenderDisconnect); socket.on("connect", handleWebConnect); socket.on("connected_clients", handleConnectedClients); + socket.on("default_data", handleDefaultData); socket.on("theme_data", handleThemeData); socket.on("drawings_data", handleDrawingsData); socket.on("svg_data", handleSvgData); @@ -40,13 +41,7 @@ function connectSocket() { // function used to get drawings data from blenderbim function handleWebConnect() { - const msg = { - sourcePage: "drawings", - operator: { - type: "getDrawings", - }, - }; - socket.emit("web_operator", msg); + getDrawingsData(); } // Function to handle 'blender_connect' event @@ -74,12 +69,17 @@ function handleBlenderConnect(blenderId) { socket.emit("web_operator", msg); } +// Function to handle 'default_data' event +function handleDefaultData(data) { + getDrawingsData(); +} + // Function to handle 'blender_disconnect' event function handleBlenderDisconnect(blenderId) { console.log("blender_disconnect: ", blenderId); if (connectedClients.hasOwnProperty(blenderId)) { delete connectedClients[blenderId]; - // remove(blenderId); + removeSelectOption(blenderId); } $("#blender-count").text(function (i, text) { @@ -155,7 +155,7 @@ function handleDrawingsData(data) { }; addSelectOption(blenderId, filename); } else { - // update(blenderId, data, filename); + updateSelectOption(blenderId, filename); } } else { connectedClients[blenderId] = { @@ -200,6 +200,32 @@ function addSelectOption(blenderId, filename) { $("#dropdown-menu").append(filenameOption); } +function updateSelectOption(blenderId, filename) { + $("#blender-" + blenderId).text(filename); + console.log(blenderId, filename); + console.log($("#dropdown-menu").val()); + + if ($("#dropdown-menu").val() === filename) { + console.log("here"); + displayDrawingsNames(blenderId, filename); + } +} + +function removeSelectOption(blenderId) { + const filename = $("#blender-" + blenderId).val(); + const selectedOption = $("#dropdown-menu").val(); + + $("#blender-" + blenderId).remove(); + delete allDrawings[filename]; + + if (selectedOption == filename) { + $("#dropdown-menu").val("0"); + + $("#drawings-sub-panel").empty(); + $("#sheets-sub-panel").empty(); + } +} + function displayDrawingsNames(blenderId, ifcFile) { drawings = allDrawings[ifcFile].drawings; sheets = allDrawings[ifcFile].sheets; @@ -328,3 +354,13 @@ function toggleClientList() { }); clientList.addClass("show"); } + +function getDrawingsData() { + const msg = { + sourcePage: "drawings", + operator: { + type: "getDrawings", + }, + }; + socket.emit("web_operator", msg); +} diff --git a/src/blenderbim/blenderbim/bim/data/webui/templates/drawings.html b/src/blenderbim/blenderbim/bim/data/webui/templates/drawings.html index 29778c29e6..c8de433b71 100644 --- a/src/blenderbim/blenderbim/bim/data/webui/templates/drawings.html +++ b/src/blenderbim/blenderbim/bim/data/webui/templates/drawings.html @@ -73,7 +73,7 @@