add updating and removing of drawings/sheets

This commit is contained in:
Ziad-I
2024-08-05 13:25:33 +03:00
committed by Dion Moult
parent 48c5100d3b
commit 4877ab4426
2 changed files with 46 additions and 10 deletions
@@ -33,6 +33,7 @@ function connectSocket() {
socket.on("blender_disconnect", handleBlenderDisconnect); socket.on("blender_disconnect", handleBlenderDisconnect);
socket.on("connect", handleWebConnect); socket.on("connect", handleWebConnect);
socket.on("connected_clients", handleConnectedClients); socket.on("connected_clients", handleConnectedClients);
socket.on("default_data", handleDefaultData);
socket.on("theme_data", handleThemeData); socket.on("theme_data", handleThemeData);
socket.on("drawings_data", handleDrawingsData); socket.on("drawings_data", handleDrawingsData);
socket.on("svg_data", handleSvgData); socket.on("svg_data", handleSvgData);
@@ -40,13 +41,7 @@ function connectSocket() {
// function used to get drawings data from blenderbim // function used to get drawings data from blenderbim
function handleWebConnect() { function handleWebConnect() {
const msg = { getDrawingsData();
sourcePage: "drawings",
operator: {
type: "getDrawings",
},
};
socket.emit("web_operator", msg);
} }
// Function to handle 'blender_connect' event // Function to handle 'blender_connect' event
@@ -74,12 +69,17 @@ function handleBlenderConnect(blenderId) {
socket.emit("web_operator", msg); socket.emit("web_operator", msg);
} }
// Function to handle 'default_data' event
function handleDefaultData(data) {
getDrawingsData();
}
// Function to handle 'blender_disconnect' event // Function to handle 'blender_disconnect' event
function handleBlenderDisconnect(blenderId) { function handleBlenderDisconnect(blenderId) {
console.log("blender_disconnect: ", blenderId); console.log("blender_disconnect: ", blenderId);
if (connectedClients.hasOwnProperty(blenderId)) { if (connectedClients.hasOwnProperty(blenderId)) {
delete connectedClients[blenderId]; delete connectedClients[blenderId];
// remove(blenderId); removeSelectOption(blenderId);
} }
$("#blender-count").text(function (i, text) { $("#blender-count").text(function (i, text) {
@@ -155,7 +155,7 @@ function handleDrawingsData(data) {
}; };
addSelectOption(blenderId, filename); addSelectOption(blenderId, filename);
} else { } else {
// update(blenderId, data, filename); updateSelectOption(blenderId, filename);
} }
} else { } else {
connectedClients[blenderId] = { connectedClients[blenderId] = {
@@ -200,6 +200,32 @@ function addSelectOption(blenderId, filename) {
$("#dropdown-menu").append(filenameOption); $("#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) { function displayDrawingsNames(blenderId, ifcFile) {
drawings = allDrawings[ifcFile].drawings; drawings = allDrawings[ifcFile].drawings;
sheets = allDrawings[ifcFile].sheets; sheets = allDrawings[ifcFile].sheets;
@@ -328,3 +354,13 @@ function toggleClientList() {
}); });
clientList.addClass("show"); clientList.addClass("show");
} }
function getDrawingsData() {
const msg = {
sourcePage: "drawings",
operator: {
type: "getDrawings",
},
};
socket.emit("web_operator", msg);
}
@@ -73,7 +73,7 @@
<label for="dropdown-menu">IFC File:</label> <label for="dropdown-menu">IFC File:</label>
<select class="p-0 pl-2" id="dropdown-menu"> <select class="p-0 pl-2" id="dropdown-menu">
<!-- IFC files will be dynamically populated here --> <!-- IFC files will be dynamically populated here -->
<option value="" selected disabled hidden>IFC File</option> <option value="0" selected hidden>IFC File</option>
</select> </select>
</div> </div>
<!-- Panel with sub-panels --> <!-- Panel with sub-panels -->