100
100
</v-card-title >
101
101
<v-list >
102
102
<v-list-tile v-for =" program in programList" :key =" program.el" avatar @click =" " >
103
- <v-list-tile-title ripple @click =" loadProgram(program.name)" >
103
+ <v-list-tile-title ripple @click ="
104
+ checkAction(loadProgram, program.name)" >
104
105
{{ program.name }}
105
106
</v-list-tile-title >
106
107
<v-btn v-if =" program.default != 'True'" flat icon color =" grey darken-1" ripple @click =" deleteProgramDlg(program.name)" >
184
185
</v-card >
185
186
</v-dialog >
186
187
<!-- -->
188
+ <v-dialog v-model =" saveWorkspace" max-width =" 500" >
189
+ <v-card >
190
+ <v-card-title class =" headline" >
191
+ Salvare workspace
192
+ </v-card-title >
193
+ <v-card-actions >
194
+ <v-card-text >
195
+ La workspace non è vuota, vuoi salvare il tuo programma?
196
+ </v-card-text >
197
+ <v-btn color =" red darken-1" flat =" flat" @click =" saveWorkspace = false, clearWorkspace = true, checkAction(callBack, generalParameter)" >
198
+ No
199
+ </v-btn >
200
+ <v-btn color =" green darken-1" flat =" flat" @click =" saveWorkspace = false, salva = true" >
201
+ Si
202
+ </v-btn >
203
+ </v-card-actions >
204
+ </v-card >
205
+ </v-dialog >
206
+ <!-- -->
187
207
<v-dialog v-model =" del" max-width =" 500" >
188
208
<v-card >
189
209
<v-card-title class =" headline" >
@@ -304,6 +324,11 @@ export default {
304
324
defaultProgramName: ' ' ,
305
325
overwrite: 0 ,
306
326
overwriteDialog: false ,
327
+ saveWorkspace: false ,
328
+ clearWorkspace: false ,
329
+ generalParameter: ' ' ,
330
+ callBack: ' ' ,
331
+ programCode: ' ' ,
307
332
}),
308
333
computed: {
309
334
statusText : function () {
@@ -395,6 +420,30 @@ export default {
395
420
396
421
return { name: name, dom_code: dom_code, code: code, default: isDefault };
397
422
},
423
+ checkAction (functionToCall , parameter ) {
424
+ if (this .clearWorkspace ){
425
+ let workspace = this .workspace
426
+ workspace .clear ()
427
+ this .clearWorkspace = false
428
+ }
429
+ let data = this .getProgramData ()
430
+ let code = data .code
431
+ if (code == ' ' || code == this .programCode ){
432
+ if (parameter != null ){
433
+ console .log (" ho il parametro" )
434
+ functionToCall (parameter)
435
+ }
436
+ else {
437
+ console .log (" non ho il parametro" )
438
+ functionToCall ()
439
+ }
440
+ }
441
+ else {
442
+ this .callBack = functionToCall
443
+ this .generalParameter = parameter
444
+ this .$data .saveWorkspace = true
445
+ }
446
+ },
398
447
exportProgram () {
399
448
let data = JSON .stringify (this .getProgramData ())
400
449
const blob = new Blob ([data], { type: ' text/json' })
@@ -473,11 +522,16 @@ export default {
473
522
this .$data .isDefault = ' '
474
523
this .$data .overwrite = 0
475
524
console .log (" salvato" )
525
+ this .programCode = data .code
526
+ if (this .callBack != ' ' ){
527
+ this .callBack (this .generalParameter )
528
+ this .callBack = ' '
529
+ }
476
530
}
477
531
}.bind (this ))
478
532
} else {
479
533
this .unvalidName = true
480
- }
534
+ }
481
535
},
482
536
loadProgramList () {
483
537
let axios = this .$axios
@@ -502,11 +556,11 @@ export default {
502
556
}
503
557
})
504
558
.then (function (data ) {
505
- console .log (data)
506
559
workspace .clear ();
507
560
var xml = Blockly .Xml .textToDom (data .data .dom_code );
561
+ this .programCode = data .data .code ;
508
562
Blockly .Xml .domToWorkspace (xml, workspace);
509
- this .$data .isDefault = data .data .default
563
+ this .$data .isDefault = data .data .default ;
510
564
}.bind (this ))
511
565
},
512
566
deleteProgramDlg (program ) {
0 commit comments