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 @@