Commit 918556f991b21c7817f06677285b4b4297cd1f49
1 parent
6792eda2
修改编译结构
Showing
1 changed file
with
130 additions
and
104 deletions
src/js/gbreplayer.js
| ... | ... | @@ -38,6 +38,7 @@ $(function(){ |
| 38 | 38 | isgblibreplay: 0, |
| 39 | 39 | continue_recording: 0, //是否继续自动保`存的录制 |
| 40 | 40 | recording_status: 1, //当前是否在录制 |
| 41 | + isRcording: 0, // 判断当前是否在录制 0:未录制 1:录制中 | |
| 41 | 42 | recordinit: function(codereplaytype, preload) { |
| 42 | 43 | /* #STRAT:生成CodeMirror Editor for JS/CSS/HTML */ |
| 43 | 44 | var htmlid = document.getElementById('HTMLeditor'), |
| ... | ... | @@ -984,109 +985,8 @@ $(function(){ |
| 984 | 985 | GBCodePlayBack.replay_enhancement = !GBCodePlayBack.replay_enhancement; |
| 985 | 986 | }); |
| 986 | 987 | |
| 987 | - // 使用服务端编译语言 | |
| 988 | - $('#comprunbtngrp').unbind("click").on('click', '#comprun', function(event){ | |
| 989 | - event.preventDefault(); | |
| 990 | - var l = Ladda.create(this); | |
| 991 | - $('#comprun').find('ladda-spinner').remove(); | |
| 992 | - l.start(); | |
| 993 | - var runStatus = $("#comprun").data('run'); | |
| 994 | - | |
| 995 | - if(runStatus == 1){ | |
| 996 | - Hourglass.pauseTimer(); // 暂停计时器 | |
| 997 | - recorder.pause(); // 音频暂停 | |
| 998 | - } | |
| 999 | - $("#comprun").data('run', 0); | |
| 1000 | - // 暂停录制 | |
| 1001 | - var pauseState = $('#pause').data('pause'); | |
| 1002 | - if(pauseState == 1 && _role == 0){ | |
| 1003 | - GBCodePlayBack.record_pause_time = new Date().getTime(); // 暂停的时间 | |
| 1004 | - var recordobj = { | |
| 1005 | - intervaltime: GBCodePlayBack.record_pause_time - GBCodePlayBack.record_startime, | |
| 1006 | - editor: 'html', | |
| 1007 | - changeobj: { | |
| 1008 | - from:{ | |
| 1009 | - ch: 0, | |
| 1010 | - line: 0, | |
| 1011 | - }, | |
| 1012 | - text: '', | |
| 1013 | - to:{ | |
| 1014 | - ch: 0, | |
| 1015 | - line: 0, | |
| 1016 | - } | |
| 1017 | - }, | |
| 1018 | - trigger: 0, | |
| 1019 | - playTime: 0 | |
| 1020 | - }; | |
| 1021 | - GBCodePlayBack.records.push(recordobj); | |
| 1022 | - | |
| 1023 | - $('#pause').data('status', '1'); | |
| 1024 | - $('#pause').data('pause', '0'); | |
| 1025 | - $('#pause').removeClass('hidden').addClass('show'); | |
| 1026 | - $('#start-recording').hide(); | |
| 1027 | - | |
| 1028 | - $('.pause-shodow').removeClass('hidden').addClass('show'); | |
| 1029 | - | |
| 1030 | - } | |
| 1031 | - | |
| 1032 | - var code = (typeof GBCodePlayBack.htmleditor !=='undefined' && GBCodePlayBack.htmleditor.getValue()) | |
| 1033 | - || (typeof GBCodePlayBack.htmlplayereditor !=='undefined' && GBCodePlayBack.htmlplayereditor.getValue()); | |
| 1034 | - var langid = $('#htmlbutton').data("languageid"); | |
| 1035 | - var input = $('#input').val() || ''; | |
| 1036 | - var compileData = { | |
| 1037 | - code: code, | |
| 1038 | - langid: langid, | |
| 1039 | - input: input | |
| 1040 | - } | |
| 1041 | - $.ajax({ | |
| 1042 | - type: "post", | |
| 1043 | - url: gxb_api + "/submit/submitCode/api", | |
| 1044 | - data: JSON.stringify(compileData), | |
| 1045 | - dataType: "json", | |
| 1046 | - contentType: "application/json", | |
| 1047 | - success: function(data) { | |
| 1048 | - compileResult(data) | |
| 1049 | - l.stop(); | |
| 1050 | - | |
| 1051 | - $('.compile-loading').hide(); | |
| 1052 | - $('.compile-reslut').show(); | |
| 1053 | - GBCodePlayBack.compileResultData = data; | |
| 1054 | - | |
| 1055 | - }, | |
| 1056 | - error: function(){ | |
| 1057 | - l.stop(); | |
| 1058 | - alert('错误'); | |
| 1059 | - } | |
| 1060 | - }); | |
| 1061 | - }); | |
| 1062 | 988 | |
| 1063 | 989 | |
| 1064 | - // 保存编译结果 | |
| 1065 | - $('#save_compile').unbind("click").click(function(){ | |
| 1066 | - var length = GBCodePlayBack.records.length - 1; | |
| 1067 | - Hourglass.pauseTimer(); | |
| 1068 | - $("#comprun").data('run', 1); | |
| 1069 | - GBCodePlayBack.records[length].compile = GBCodePlayBack.compileResultData; | |
| 1070 | - | |
| 1071 | - GBCodePlayBack.records[length].output = GBCodePlayBack.compileResultData.output; | |
| 1072 | - GBCodePlayBack.records[length].stderr = GBCodePlayBack.compileResultData.stderr; | |
| 1073 | - GBCodePlayBack.records[length].cmpinfo = GBCodePlayBack.compileResultData.cmpinfo; | |
| 1074 | - GBCodePlayBack.records[length].result = GBCodePlayBack.compileResultData.result; | |
| 1075 | - | |
| 1076 | - GBCodePlayBack.record_continue_time = new Date().getTime(); | |
| 1077 | - | |
| 1078 | - contrlPause(); | |
| 1079 | - | |
| 1080 | - }) | |
| 1081 | - | |
| 1082 | - // 不保存编译结果 | |
| 1083 | - $('#cancel_compile').unbind('click').click(function(){ | |
| 1084 | - Hourglass.pauseTimer(); | |
| 1085 | - $("#comprun").data('run', 1); | |
| 1086 | - contrlPause() | |
| 1087 | - GBCodePlayBack.record_continue_time = new Date().getTime(); | |
| 1088 | - }) | |
| 1089 | - | |
| 1090 | 990 | // 进度条滚动控制播放进度 |
| 1091 | 991 | var $sliderpropress = $(".replayprogress"); |
| 1092 | 992 | $sliderpropress.slider({}).slider( "option", "disabled", true ); |
| ... | ... | @@ -1360,7 +1260,6 @@ $(function(){ |
| 1360 | 1260 | $('#pause').data('status', '0'); |
| 1361 | 1261 | } |
| 1362 | 1262 | |
| 1363 | - | |
| 1364 | 1263 | var recordobj = { |
| 1365 | 1264 | intervaltime: intervaltime, |
| 1366 | 1265 | editor: editor, |
| ... | ... | @@ -1371,6 +1270,7 @@ $(function(){ |
| 1371 | 1270 | }; |
| 1372 | 1271 | GBCodePlayBack.records.push(recordobj); |
| 1373 | 1272 | GBCodePlayBack.record_startime = currenttime; //设定起始时间 |
| 1273 | + console.log(GBCodePlayBack.records); | |
| 1374 | 1274 | }, |
| 1375 | 1275 | changeValueCallback: function(record, replay_type, offset) { |
| 1376 | 1276 | var obj = record.changeobj, |
| ... | ... | @@ -1525,7 +1425,8 @@ $(function(){ |
| 1525 | 1425 | |
| 1526 | 1426 | // 开始录制 |
| 1527 | 1427 | $('#start-recording').click(function(){ |
| 1528 | - // 编译状态 | |
| 1428 | + GBCodePlayBack.isRcording = 1; | |
| 1429 | + // 编译状态 | |
| 1529 | 1430 | var data = $(this).attr('data'); |
| 1530 | 1431 | var seconds = 0; |
| 1531 | 1432 | $("#countdown").show(); |
| ... | ... | @@ -1589,6 +1490,131 @@ $(function(){ |
| 1589 | 1490 | }); |
| 1590 | 1491 | |
| 1591 | 1492 | |
| 1493 | + | |
| 1494 | + // 使用服务端编译语言 | |
| 1495 | + $('#comprunbtngrp').unbind("click").on('click', '#comprun', function(event){ | |
| 1496 | + event.preventDefault(); | |
| 1497 | + var l = Ladda.create(this); | |
| 1498 | + $('#comprun').find('ladda-spinner').remove(); | |
| 1499 | + l.start(); | |
| 1500 | + | |
| 1501 | + // 是否在录制录制 | |
| 1502 | + if(!GBCodePlayBack.isRcording){ | |
| 1503 | + compileRun(l); | |
| 1504 | + }else{ | |
| 1505 | + timerRecord(); | |
| 1506 | + pushRecords(); | |
| 1507 | + compileRun(l); | |
| 1508 | + } | |
| 1509 | + | |
| 1510 | + }); | |
| 1511 | + | |
| 1512 | + | |
| 1513 | + // 保存编译结果 | |
| 1514 | + $('#save_compile').unbind("click").click(function(){ | |
| 1515 | + var length = GBCodePlayBack.records.length - 1; | |
| 1516 | + Hourglass.pauseTimer(); | |
| 1517 | + $("#comprun").data('run', 1); | |
| 1518 | + GBCodePlayBack.records[length].compile = GBCodePlayBack.compileResultData; | |
| 1519 | + | |
| 1520 | + GBCodePlayBack.records[length].output = GBCodePlayBack.compileResultData.output; | |
| 1521 | + GBCodePlayBack.records[length].stderr = GBCodePlayBack.compileResultData.stderr; | |
| 1522 | + GBCodePlayBack.records[length].cmpinfo = GBCodePlayBack.compileResultData.cmpinfo; | |
| 1523 | + GBCodePlayBack.records[length].result = GBCodePlayBack.compileResultData.result; | |
| 1524 | + | |
| 1525 | + GBCodePlayBack.record_continue_time = new Date().getTime(); | |
| 1526 | + | |
| 1527 | + contrlPause(); | |
| 1528 | + | |
| 1529 | + }) | |
| 1530 | + | |
| 1531 | + // 不保存编译结果 | |
| 1532 | + $('#cancel_compile').unbind('click').click(function(){ | |
| 1533 | + Hourglass.pauseTimer(); | |
| 1534 | + $("#comprun").data('run', 1); | |
| 1535 | + contrlPause() | |
| 1536 | + GBCodePlayBack.record_continue_time = new Date().getTime(); | |
| 1537 | + }) | |
| 1538 | + | |
| 1539 | + // 暂停计时、暂停录音 | |
| 1540 | + function timerRecord(){ | |
| 1541 | + var runStatus = $("#comprun").data('run'); | |
| 1542 | + if(runStatus == 1){ | |
| 1543 | + Hourglass.pauseTimer(); // 暂停计时器 | |
| 1544 | + recorder.pause(); // 音频暂停 | |
| 1545 | + } | |
| 1546 | + } | |
| 1547 | + | |
| 1548 | + // 禁止编写代码,添加遮罩 | |
| 1549 | + function showMask(){ | |
| 1550 | + $('#pause').data('status', '1'); | |
| 1551 | + $('#pause').data('pause', '0'); | |
| 1552 | + $('#pause').removeClass('hidden').addClass('show'); | |
| 1553 | + $('#start-recording').hide(); | |
| 1554 | + | |
| 1555 | + $('.pause-shodow').removeClass('hidden').addClass('show'); | |
| 1556 | + } | |
| 1557 | + | |
| 1558 | + // 给数组插入一个元素 | |
| 1559 | + function pushRecords(){ | |
| 1560 | + // 暂停录制 | |
| 1561 | + var pauseState = $('#pause').data('pause'); | |
| 1562 | + if(pauseState == 1 && _role == 0){ | |
| 1563 | + GBCodePlayBack.record_pause_time = new Date().getTime(); // 暂停的时间 | |
| 1564 | + var recordobj = { | |
| 1565 | + intervaltime: GBCodePlayBack.record_pause_time - GBCodePlayBack.record_startime, | |
| 1566 | + editor: 'html', | |
| 1567 | + changeobj: { | |
| 1568 | + from:{ | |
| 1569 | + ch: 0, | |
| 1570 | + line: 0, | |
| 1571 | + }, | |
| 1572 | + text: '', | |
| 1573 | + to:{ | |
| 1574 | + ch: 0, | |
| 1575 | + line: 0, | |
| 1576 | + } | |
| 1577 | + }, | |
| 1578 | + trigger: 0, | |
| 1579 | + playTime: 0 | |
| 1580 | + }; | |
| 1581 | + GBCodePlayBack.records.push(recordobj); | |
| 1582 | + showMask(); | |
| 1583 | + } | |
| 1584 | + } | |
| 1585 | + | |
| 1586 | + // 编译 | |
| 1587 | + function compileRun(l){ | |
| 1588 | + var code = (typeof GBCodePlayBack.htmleditor !=='undefined' && GBCodePlayBack.htmleditor.getValue()) || (typeof GBCodePlayBack.htmlplayereditor !=='undefined' && GBCodePlayBack.htmlplayereditor.getValue()); | |
| 1589 | + var langid = $('#htmlbutton').data("languageid"); | |
| 1590 | + var input = $('#input').val() || ''; | |
| 1591 | + var compileData = { | |
| 1592 | + code: code, | |
| 1593 | + langid: langid, | |
| 1594 | + input: input | |
| 1595 | + } | |
| 1596 | + $.ajax({ | |
| 1597 | + type: "post", | |
| 1598 | + url: gxb_api + "/submit/submitCode/api", | |
| 1599 | + data: JSON.stringify(compileData), | |
| 1600 | + dataType: "json", | |
| 1601 | + contentType: "application/json", | |
| 1602 | + success: function(data) { | |
| 1603 | + compileResult(data) | |
| 1604 | + l.stop(); | |
| 1605 | + | |
| 1606 | + $('.compile-loading').hide(); | |
| 1607 | + $('.compile-reslut').show(); | |
| 1608 | + GBCodePlayBack.compileResultData = data; | |
| 1609 | + | |
| 1610 | + }, | |
| 1611 | + error: function(){ | |
| 1612 | + l.stop(); | |
| 1613 | + alert('错误'); | |
| 1614 | + } | |
| 1615 | + }); | |
| 1616 | + } | |
| 1617 | + | |
| 1592 | 1618 | // 切换自动/手动运行代码 |
| 1593 | 1619 | function autoRun(autorun){ |
| 1594 | 1620 | if(autorun===1){ |
| ... | ... | @@ -1743,7 +1769,7 @@ $(function(){ |
| 1743 | 1769 | // $('#comprunbtngrp').html('<button id="runnow" type="button" data-style="expand-right" class="btn" title="运行代码"> 运行</button>'); |
| 1744 | 1770 | }else{ |
| 1745 | 1771 | $('#fontendrun').addClass('hidden'); |
| 1746 | - $('#comprunbtngrp').html('<button id="comprun" type="button" data-run="1" data-style="expand-right" class="btn" title="编译并运行代码"> 编译&运行</button>'); | |
| 1772 | + $('#comprunbtngrp').html('<button id="comprun" type="button" data-run="1" data-style="expand-right" class="btn comprun" title="编译并运行代码"> 编译&运行</button>'); | |
| 1747 | 1773 | |
| 1748 | 1774 | $('#ifrcontainer').addClass('hidden'); |
| 1749 | 1775 | $('#cmprun-output').removeClass('hidden'); | ... | ... |