Skip to content

Commit a14a110

Browse files
committed
fixed firefox toolbox bug
1 parent 8b33a7e commit a14a110

1 file changed

Lines changed: 24 additions & 22 deletions

File tree

  • src/addons/addons/ai-integration/helpers

‎src/addons/addons/ai-integration/helpers/helpers.js‎

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ export default class helpers {
9595
document.getElementById('Context_Selector_select').style.width = "26px";
9696
document.getElementById('Context_Selector_select').children[0].disabled = true;
9797
document.getElementById('Context_Selector_select').children.innerText = "Code Chunk";
98-
}
98+
}
9999
static messageErrorOccured(messageContents) {
100100
document.AI_INTEGRATION.chatHistory.push({ "role": "user", "message": messageContents });
101101
//document.AI_INTEGRATION.chatHistory.push({ "role": "assistant", "message": "Error reading response" }); //not sure if the AI needs to know that it failed
@@ -190,9 +190,9 @@ export default class helpers {
190190
document.AI_INTEGRATION.popupOpen = false;
191191
});
192192
}
193-
static returnSterilizedToolbox(Gaddon,allowExtensions = false) {
193+
static returnSterilizedToolbox(Gaddon, allowExtensions = false) {
194194
if (Gaddon == null) return;
195-
if(allowExtensions){
195+
if (!allowExtensions) {
196196
return defaultToolbox.default;
197197
}
198198
function extractBlockReturnType(block) {
@@ -208,7 +208,7 @@ export default class helpers {
208208
returnType = "Hat";
209209
}
210210
return returnType;
211-
}
211+
}
212212
var workspace = new Blockly.Workspace();
213213

214214
var toolbox = Gaddon.tab.redux.state.scratchGui.toolbox.toolboxXML;
@@ -219,38 +219,40 @@ export default class helpers {
219219
sterializedToolbox.appendChild(rootElement);
220220
var blocks = xmlDoc.getElementsByTagName("block");
221221
for (var block of blocks) {
222-
var blockElement = block.cloneNode(true);
223-
var newBlock = Blockly.Xml.domToBlock(blockElement, workspace)
224-
var returnType = extractBlockReturnType(newBlock);
225-
var blockCopy = block.cloneNode(true);
222+
if (!block.getAttribute("type").includes("procedures_")) { // firefox's toolbox includes procedures problem is that procedures cannot be parsed by Blockly
223+
var blockElement = block.cloneNode(true);
224+
var newBlock = Blockly.Xml.domToBlock(blockElement, workspace)
225+
var returnType = extractBlockReturnType(newBlock);
226+
var blockCopy = block.cloneNode(true);
226227

227-
if (toolboxOverrides.overrides[blockCopy.getAttribute("type")] !== undefined) {
228-
var parser = new DOMParser();
229-
var xmlDoc = parser.parseFromString(toolboxOverrides.overrides[blockCopy.getAttribute("type")], "text/xml");
230-
var overrideBlockElement = xmlDoc.getElementsByTagName("block")[0];
231-
overrideBlockElement.setAttribute("blockType", returnType);
232-
rootElement.appendChild(overrideBlockElement);
233-
}else{
234-
blockCopy.removeAttribute("id");
235-
blockCopy.setAttribute("blockType", returnType);
236-
rootElement.appendChild(blockCopy);
228+
if (toolboxOverrides.overrides[blockCopy.getAttribute("type")] !== undefined) {
229+
var parser = new DOMParser();
230+
var xmlDoc = parser.parseFromString(toolboxOverrides.overrides[blockCopy.getAttribute("type")], "text/xml");
231+
var overrideBlockElement = xmlDoc.getElementsByTagName("block")[0];
232+
overrideBlockElement.setAttribute("blockType", returnType);
233+
rootElement.appendChild(overrideBlockElement);
234+
} else {
235+
blockCopy.removeAttribute("id");
236+
blockCopy.setAttribute("blockType", returnType);
237+
rootElement.appendChild(blockCopy);
238+
}
237239
}
238240
}
239-
for(var x of Object.keys(toolboxOverrides.insert)){
241+
for (var x of Object.keys(toolboxOverrides.insert)) {
240242
if (toolboxOverrides.insert[x] !== undefined) {
241243
var parser = new DOMParser();
242244
var xmlDoc = parser.parseFromString(toolboxOverrides.insert[x], "text/xml");
243245
var overrideBlockElement = xmlDoc.getElementsByTagName("block")[0];
244246
rootElement.appendChild(overrideBlockElement);
245-
}else{
247+
} else {
246248
console.error("A REALlY WEIRD ERROR OCCURED");
247249
}
248250
}
249251
workspace.dispose();
250252
var serializer = new XMLSerializer();
251253
var xmlString = serializer.serializeToString(sterializedToolbox);
252-
console.log("[DEBUG] toolbox has #",sterializedToolbox.getElementsByTagName("block").length," of blocks");
253-
254+
console.log("[DEBUG] toolbox has", sterializedToolbox.getElementsByTagName("block").length, "blocks");
255+
254256
return xmlString.replace(/>\s+</g, '><').trim();
255257
}
256258
}

0 commit comments

Comments
 (0)