diff --git a/src/components/Blockly.vue b/src/components/Blockly.vue index 671860b..404b38e 100644 --- a/src/components/Blockly.vue +++ b/src/components/Blockly.vue @@ -100,7 +100,8 @@ - + {{ program.name }} @@ -184,6 +185,25 @@ + + + + Salvare workspace + + + + La workspace non รจ vuota, vuoi salvare il tuo programma? + + + No + + + Si + + + + + @@ -304,6 +324,11 @@ export default { defaultProgramName: '', overwrite: 0, overwriteDialog: false, + saveWorkspace: false, + clearWorkspace: false, + generalParameter: '', + callBack: '', + programCode: '', }), computed: { statusText: function() { @@ -395,6 +420,30 @@ export default { return { name: name, dom_code: dom_code, code: code, default: isDefault }; }, + checkAction(functionToCall, parameter) { + if(this.clearWorkspace){ + let workspace = this.workspace + workspace.clear() + this.clearWorkspace = false + } + let data = this.getProgramData() + let code = data.code + if (code == '' || code == this.programCode){ + if(parameter != null){ + console.log("ho il parametro") + functionToCall(parameter) + } + else{ + console.log("non ho il parametro") + functionToCall() + } + } + else{ + this.callBack = functionToCall + this.generalParameter = parameter + this.$data.saveWorkspace = true + } + }, exportProgram() { let data = JSON.stringify(this.getProgramData()) const blob = new Blob([data], { type: 'text/json' }) @@ -473,11 +522,16 @@ export default { this.$data.isDefault = '' this.$data.overwrite = 0 console.log("salvato") + this.programCode = data.code + if(this.callBack != ''){ + this.callBack(this.generalParameter) + this.callBack = '' + } } }.bind(this)) } else { this.unvalidName = true - } + } }, loadProgramList() { let axios = this.$axios @@ -502,11 +556,11 @@ export default { } }) .then(function(data) { - console.log(data) workspace.clear(); var xml = Blockly.Xml.textToDom(data.data.dom_code); + this.programCode = data.data.code; Blockly.Xml.domToWorkspace(xml, workspace); - this.$data.isDefault = data.data.default + this.$data.isDefault = data.data.default; }.bind(this)) }, deleteProgramDlg(program) {