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("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);
}
@@ -73,7 +73,7 @@
<label for="dropdown-menu">IFC File:</label>
<select class="p-0 pl-2" id="dropdown-menu">
<!-- IFC files will be dynamically populated here -->
<option value="" selected disabled hidden>IFC File</option>
<option value="0" selected hidden>IFC File</option>
</select>
</div>
<!-- Panel with sub-panels -->