diff --git a/demos/blockfactory/blocks.js b/demos/blockfactory/blocks.js index db14b1d90..3cd1dcda1 100644 --- a/demos/blockfactory/blocks.js +++ b/demos/blockfactory/blocks.js @@ -29,7 +29,7 @@ Blockly.Blocks['factory_base'] = { this.setColour(120); this.appendDummyInput() .appendField('name') - .appendField(new Blockly.FieldTextInput('math_foo'), 'NAME'); + .appendField(new Blockly.FieldTextInput('block_type'), 'NAME'); this.appendStatementInput('INPUTS') .setCheck('Input') .appendField('inputs'); diff --git a/demos/blocklyfactory/app_controller.js b/demos/blocklyfactory/app_controller.js index 8a6ba8374..53eaa9857 100644 --- a/demos/blocklyfactory/app_controller.js +++ b/demos/blocklyfactory/app_controller.js @@ -321,7 +321,7 @@ AppController.prototype.onTab = function() { // Update exporter's block selector to reflect current block library. this.exporter.updateSelector(); - // Update the preview to reflect any changes made to the blocks. + // Update the exporter's preview to reflect any changes made to the blocks. this.exporter.updatePreview(); } else if (this.selectedTab == AppController.BLOCK_FACTORY) { @@ -519,8 +519,8 @@ AppController.prototype.assignBlockFactoryClickHandlers = function() { document.getElementById('createNewBlockButton') .addEventListener('click', function() { - BlockFactory.showStarterBlock(); - BlockLibraryView.selectDefaultOption('blockLibraryDropdown'); + BlockFactory.showStarterBlock(); + BlockLibraryView.selectDefaultOption('blockLibraryDropdown'); }); }; @@ -529,6 +529,7 @@ AppController.prototype.assignBlockFactoryClickHandlers = function() { */ AppController.prototype.addBlockFactoryEventListeners = function() { BlockFactory.mainWorkspace.addChangeListener(BlockFactory.updateLanguage); + BlockFactory.mainWorkspace.addChangeListener(Blockly.Events.disableOrphans); document.getElementById('direction') .addEventListener('change', BlockFactory.updatePreview); document.getElementById('languageTA') diff --git a/demos/blocklyfactory/block_library_controller.js b/demos/blocklyfactory/block_library_controller.js index 1df8121a7..69239f87b 100644 --- a/demos/blocklyfactory/block_library_controller.js +++ b/demos/blocklyfactory/block_library_controller.js @@ -86,9 +86,14 @@ BlockLibraryController.prototype.removeFromBlockLibrary = function() { * @param {string} blockType - Block to edit on block factory. */ BlockLibraryController.prototype.openBlock = function(blockType) { - var xml = this.storage.getBlockXml(blockType); - BlockFactory.mainWorkspace.clear(); - Blockly.Xml.domToWorkspace(xml, BlockFactory.mainWorkspace); + if (blockType =='BLOCK_LIBRARY_DEFAULT_BLANK') { + BlockFactory.showStarterBlock(); + } else { + var xml = this.storage.getBlockXml(blockType); + BlockFactory.mainWorkspace.clear(); + Blockly.Xml.domToWorkspace(xml, BlockFactory.mainWorkspace); + BlockFactory.mainWorkspace.clearUndo(); + } }; /** @@ -107,8 +112,7 @@ BlockLibraryController.prototype.getSelectedBlockType = * updating the dropdown and displaying the starter block (factory_base). */ BlockLibraryController.prototype.clearBlockLibrary = function() { - var check = confirm( - 'Click OK to clear your block library.'); + var check = confirm('Delete all blocks from library?'); if (check) { // Clear Block Library Storage. this.storage.clear(); @@ -128,12 +132,13 @@ BlockLibraryController.prototype.clearBlockLibrary = function() { */ BlockLibraryController.prototype.saveToBlockLibrary = function() { var blockType = this.getCurrentBlockType_(); + // If block under that name already exists, confirm that user wants to replace // saved block. if (this.isInBlockLibrary(blockType)) { - var replace = confirm('You already have a block called ' + blockType + - ' in your library. Click OK to replace.'); - if (!replace) { + var replace = confirm('You already have a block called "' + blockType + + '" in your library. Replace this block?'); + if ( !replace) { // Do not save if user doesn't want to replace the saved block. return; } diff --git a/demos/blocklyfactory/block_library_view.js b/demos/blocklyfactory/block_library_view.js index 151055a42..cc5800646 100644 --- a/demos/blocklyfactory/block_library_view.js +++ b/demos/blocklyfactory/block_library_view.js @@ -61,7 +61,7 @@ BlockLibraryView.addOption */ BlockLibraryView.addDefaultOption = function(dropdownID) { BlockLibraryView.addOption( - 'BLOCK_LIBRARY_DEFAULT_BLANK', '', dropdownID, true, false); + 'BLOCK_LIBRARY_DEFAULT_BLANK', '', dropdownID, true, true); }; /** diff --git a/demos/blocklyfactory/factory.js b/demos/blocklyfactory/factory.js index be096f8f5..343abf55b 100644 --- a/demos/blocklyfactory/factory.js +++ b/demos/blocklyfactory/factory.js @@ -249,4 +249,3 @@ BlockFactory.showStarterBlock = function() { Blockly.Xml.domToWorkspace( Blockly.Xml.textToDom(xml), BlockFactory.mainWorkspace); }; - diff --git a/demos/blocklyfactory/index.html b/demos/blocklyfactory/index.html index 1bd3d7d07..237c26323 100644 --- a/demos/blocklyfactory/index.html +++ b/demos/blocklyfactory/index.html @@ -337,7 +337,7 @@