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