@@ -526,6 +526,8 @@ export default defineComponent({
526
526
this .$data .overwrite = true ;
527
527
console .log (' saved' );
528
528
this .dirty = false ;
529
+ this .programId = prog_data .data .id ;
530
+ this .programName = prog_data .name ;
529
531
}
530
532
}).catch ((error ) => {
531
533
if (error .response .status == 400 && error .response .data == ' defaultCannotOverwrite' ) {
@@ -565,6 +567,7 @@ export default defineComponent({
565
567
566
568
clearProgram () {
567
569
this .$data .programId = ' ' ;
570
+ this .$data .programName = ' ' ;
568
571
this .$data .code = ' ' ;
569
572
this .$refs .workspace .clear ();
570
573
this .$data .clear = false ;
@@ -594,18 +597,44 @@ export default defineComponent({
594
597
},
595
598
596
599
runProgram () {
597
- // POST /program/save
598
- console .info (" Startin program" );
600
+ const data = this .getProgramData ();
601
+ if (this .programId == ' ' ) {
602
+ this .$coderbot .saveNewProgram (this .$data .overwrite , ' untitled' , data .dom_code , data .code , false ).then ((prog_data ) => {
603
+ if (prog_data .data == ' askOverwrite' ) {
604
+ this .$data .overwriteDialog = true ;
605
+ } else {
606
+ this .$data .isStock = ' ' ;
607
+ this .$data .overwrite = true ;
608
+ console .log (' saved' );
609
+ this .dirty = false ;
610
+ this .programId = prog_data .data .id ;
611
+ this .programName = prog_data .name ;
612
+ this .runProgramInternal ();
613
+ }
614
+ }).catch ((error ) => {
615
+ if (error .response .status == 400 && error .response .data == ' defaultCannotOverwrite' ) {
616
+ console .warn (' trying to overwrite a default program' );
617
+ this .$data .programName = this .$data .defaultProgramName ;
618
+ this .$data .defaultProgramName = ' ' ;
619
+ this .$data .cannotOverwrite = true ;
620
+ }
621
+ });
622
+ } else {
623
+ this .$coderbot .saveProgram (this .$data .overwrite , data .id , data .name , data .dom_code , data .code , false ).then ((prog_data ) => {
624
+ this .runProgramInternal ();
625
+ });
626
+ }
627
+ },
628
+ runProgramInternal () {
599
629
const { code } = this .$refs .workspace .getProgramData ();
600
- const programId = this .programId != ' ' ? this . programId : ' untitled ' ;
630
+ const programId = this .programId ;
601
631
this .$coderbot .runProgram (programId, code).then (() => {
602
632
this .runtimeDialog = true ;
603
633
setTimeout (() => {
604
634
this .updateExecStatus ();
605
635
}, 1000 );
606
636
});
607
637
},
608
-
609
638
stopProgram () {
610
639
console .info (' Stopping program' );
611
640
this .$coderbot .stopProgram ();
0 commit comments