Commit 92c241c576ac9cb64f1c562c15ee67eb70615f95

Authored by ykxie
1 parent 982c84f7

fix bug

src/js/gb.js
@@ -144,7 +144,7 @@ $(function() { @@ -144,7 +144,7 @@ $(function() {
144 * @param {[type]} id 代码编辑器的id 144 * @param {[type]} id 代码编辑器的id
145 */ 145 */
146 ,getCurrentEditor: function (id){ 146 ,getCurrentEditor: function (id){
147 - console.info('ZTREE.getCurrentEditor'); 147 + // console.info('ZTREE.getCurrentEditor');
148 var _id = id || treeLinkEditor[0].CodeMirrorRecordId, 148 var _id = id || treeLinkEditor[0].CodeMirrorRecordId,
149 _name; 149 _name;
150 150
@@ -663,6 +663,7 @@ $(function() { @@ -663,6 +663,7 @@ $(function() {
663 } 663 }
664 664
665 $('#recordertab a:eq(1)').tab('show'); 665 $('#recordertab a:eq(1)').tab('show');
  666 + GBCodePlayBack.resetCodeMirrorValue(1);
666 667
667 var playstatus = $(this).data('status'); 668 var playstatus = $(this).data('status');
668 669
@@ -677,11 +678,11 @@ $(function() { @@ -677,11 +678,11 @@ $(function() {
677 if (!playstatus) { 678 if (!playstatus) {
678 console.log('if (!playstatus) {'); 679 console.log('if (!playstatus) {');
679 // TOTO 680 // TOTO
680 - // GBCodePlayBack.resetCodeMirrorValue(); 681 + // GBCodePlayBack.resetCodeMirrorValue(1);
681 // 会触发编辑器的onChange事件导致 GBCodePlayBack.records 数组会添加一个空记录 682 // 会触发编辑器的onChange事件导致 GBCodePlayBack.records 数组会添加一个空记录
682 // 播放之前删除 683 // 播放之前删除
683 console.log(GBCodePlayBack.records); 684 console.log(GBCodePlayBack.records);
684 - GBCodePlayBack.records.pop(); 685 + // GBCodePlayBack.records.pop();
685 console.log(GBCodePlayBack.records); 686 console.log(GBCodePlayBack.records);
686 687
687 var playbackrecord = GBCodePlayBack.records, 688 var playbackrecord = GBCodePlayBack.records,
@@ -759,7 +760,6 @@ $(function() { @@ -759,7 +760,6 @@ $(function() {
759 error: '', 760 error: '',
760 code: '' 761 code: ''
761 }; 762 };
762 - GBCodePlayBack.resetCodeMirrorValue();  
763 compileResult(resultData); 763 compileResult(resultData);
764 var data = $(this).attr('data'); 764 var data = $(this).attr('data');
765 if (_role == 0) { 765 if (_role == 0) {
@@ -1601,7 +1601,7 @@ $(function() { @@ -1601,7 +1601,7 @@ $(function() {
1601 /* #END: 编辑器自适应窗口 */ 1601 /* #END: 编辑器自适应窗口 */
1602 }, 1602 },
1603 onChange: function(editor, changeobj) { // 监听输入事件 editor: 输入语言;changeobj:输入内容{from,text,to} 1603 onChange: function(editor, changeobj) { // 监听输入事件 editor: 输入语言;changeobj:输入内容{from,text,to}
1604 - console.info('GBCodePlayBack.onChange'); 1604 + // console.info('GBCodePlayBack.onChange');
1605 var intervaltime = 100, 1605 var intervaltime = 100,
1606 currenttime = new Date().getTime(); 1606 currenttime = new Date().getTime();
1607 // if(!GBCodePlayBack.record_startime) GBCodePlayBack.record_startime = currenttime; 1607 // if(!GBCodePlayBack.record_startime) GBCodePlayBack.record_startime = currenttime;
@@ -1669,7 +1669,7 @@ $(function() { @@ -1669,7 +1669,7 @@ $(function() {
1669 code: record.code || '' 1669 code: record.code || ''
1670 }; 1670 };
1671 1671
1672 - if (resultData.cmpinfo || resultData.result == 1) { 1672 + if (resultData.compilerInfo) {
1673 compileResult(resultData); 1673 compileResult(resultData);
1674 } 1674 }
1675 1675
@@ -1787,15 +1787,37 @@ $(function() { @@ -1787,15 +1787,37 @@ $(function() {
1787 doc.writeln(result); 1787 doc.writeln(result);
1788 doc.close(); 1788 doc.close();
1789 }, 1789 },
1790 - resetCodeMirrorValue: function (){ 1790 + /**
  1791 + * 重置编辑器值
  1792 + * @Author syantao
  1793 + * Created by Keystion on 2017-02-06
  1794 + * @param {[type]} num 0: 重置所有录制CodeMirror的值; 0: 重置所有播放CodeMirror的值;
  1795 + * @return {[type]} [description]
  1796 + */
  1797 + resetCodeMirrorValue: function(num) {
  1798 + console.info('GBCodePlayBack.resetCodeMirrorValue');
1791 var _this = this; 1799 var _this = this;
  1800 + var _thisNum = num || -1;
1792 console.log(_this.records); 1801 console.log(_this.records);
1793 - for (var i = 0; i < treeLinkEditor.length; i++) {  
1794 - if(treeLinkEditor[i].CodeMirrorRecord.getValue() != ''){  
1795 - treeLinkEditor[i].CodeMirrorRecord.setValue(""); 1802 + if (_thisNum == 0) {
  1803 + // _this.resetRecordCodeMirrorValue();
  1804 + for (var i = 0; i < treeLinkEditor.length; i++) {
  1805 + if (treeLinkEditor[i].CodeMirrorRecord.getValue() != undefined) {
  1806 + treeLinkEditor[i].CodeMirrorRecord.setValue("");
  1807 + }
1796 } 1808 }
  1809 + } else if (_thisNum == 1) {
  1810 + // _this.resetReplayCodeMirrorValue();
  1811 + for (var i = 0; i < treeLinkEditor.length; i++) {
  1812 + if (treeLinkEditor[i].CodeMirrorReplay.getValue() != undefined) {
  1813 + treeLinkEditor[i].CodeMirrorReplay.setValue("");
  1814 + }
  1815 + }
  1816 + } else {
  1817 + return false;
1797 } 1818 }
1798 } 1819 }
  1820 +
1799 } 1821 }
1800 1822
1801 $('.record-before').hide(); 1823 $('.record-before').hide();
@@ -1845,7 +1867,7 @@ $(function() { @@ -1845,7 +1867,7 @@ $(function() {
1845 console.log('开始录制'); 1867 console.log('开始录制');
1846 1868
1847 GBCodePlayBack.isRcording = 1; 1869 GBCodePlayBack.isRcording = 1;
1848 - $("#countdown").find('img').attr('src', 'img/ready-go.gif'); 1870 + $("#countdown").find('img').attr('src', '../img/ready-go.gif');
1849 $("#countdown").find('img').load(function() { 1871 $("#countdown").find('img').load(function() {
1850 var countdown = setInterval(function() { 1872 var countdown = setInterval(function() {
1851 seconds += 1; 1873 seconds += 1;
@@ -1928,7 +1950,7 @@ $(function() { @@ -1928,7 +1950,7 @@ $(function() {
1928 GBCodePlayBack.record_pause_time = new Date().getTime(); // 暂停的时间 1950 GBCodePlayBack.record_pause_time = new Date().getTime(); // 暂停的时间
1929 var recordobj = { 1951 var recordobj = {
1930 intervaltime: GBCodePlayBack.record_pause_time - GBCodePlayBack.record_startime, 1952 intervaltime: GBCodePlayBack.record_pause_time - GBCodePlayBack.record_startime,
1931 - editor: 'html', 1953 + editor: 'Class1',
1932 changeobj: { 1954 changeobj: {
1933 from: { 1955 from: {
1934 ch: 0, 1956 ch: 0,
@@ -1958,16 +1980,17 @@ $(function() { @@ -1958,16 +1980,17 @@ $(function() {
1958 1980
1959 // 保存编译结果 1981 // 保存编译结果
1960 $('#save_compile').unbind("click").click(function(){ 1982 $('#save_compile').unbind("click").click(function(){
  1983 + console.log(GBCodePlayBack.records);
1961 console.info('$(\'#save_compile\').unbind("click")'); 1984 console.info('$(\'#save_compile\').unbind("click")');
1962 var length = GBCodePlayBack.records.length - 1; 1985 var length = GBCodePlayBack.records.length - 1;
1963 recodingConf() 1986 recodingConf()
1964 1987
1965 GBCodePlayBack.records[length].compile = GBCodePlayBack.compileResultData; 1988 GBCodePlayBack.records[length].compile = GBCodePlayBack.compileResultData;
1966 1989
1967 - GBCodePlayBack.records[length].output = GBCodePlayBack.compileResultData.output;  
1968 - GBCodePlayBack.records[length].stderr = GBCodePlayBack.compileResultData.stderr;  
1969 - GBCodePlayBack.records[length].cmpinfo = GBCodePlayBack.compileResultData.cmpinfo;  
1970 - GBCodePlayBack.records[length].result = GBCodePlayBack.compileResultData.result; 1990 + GBCodePlayBack.records[length].content = GBCodePlayBack.compileResultData.content;
  1991 + GBCodePlayBack.records[length].error = GBCodePlayBack.compileResultData.error;
  1992 + GBCodePlayBack.records[length].compilerInfo = GBCodePlayBack.compileResultData.compilerInfo;
  1993 + GBCodePlayBack.records[length].code = GBCodePlayBack.compileResultData.code;
1971 1994
1972 contrlPause(); 1995 contrlPause();
1973 }) 1996 })
@@ -2110,22 +2133,39 @@ $(function() { @@ -2110,22 +2133,39 @@ $(function() {
2110 // 编译结果 2133 // 编译结果
2111 function compileResult(data) { 2134 function compileResult(data) {
2112 if (data.status == 200) { 2135 if (data.status == 200) {
2113 - if (data.code == 0) {  
2114 - $('#output').html('<p class="text-success">' + data.content.replace(/\n/g, "<br />") + "</p>");  
2115 - $('#cmpinfo').prepend('<p class="alert alert-success"><i class="glyphicon glyphicon-ok-sign"></i> 编译成功 </p>');  
2116 - $('#cmprun-tabs a[href="#output"]').tab('show');  
2117 - } else if (data.code == 1) {  
2118 - if (data.error.length) {  
2119 - $('#cmpinfo').html('<p class="text-warning">' + data.error.replace(/\n/g, "<br />") + "</p>");  
2120 - }else if (data.compilerInfo.length){  
2121 - $('#cmpinfo').html('<p class="text-warning">' + data.compilerInfo.replace(/\n/g, "<br />") + "</p>");  
2122 - }else{  
2123 - $('#cmpinfo').html('<p class="alert alert-danger"><i class="glyphicon glyphicon-exclamation-sign"></i> 编译超时,请重新编译 </p>');  
2124 - } 2136 +
  2137 + $('#cmpinfo').html('<p class="text-warning">' + data.compilerInfo.replace(/\n/g, "<br />") + "</p>");
  2138 + $('#stderr').html('<p class="text-danger">' + data.error.replace(/\n/g, "<br />") + "</p>");
  2139 + $('#output').html('<p class="text-success">' + data.content.replace(/\n/g, "<br />") + "</p>");
  2140 +
  2141 + if(data.compilerInfo.length){
2125 $('#cmprun-tabs a[href="#cmpinfo"]').tab('show'); 2142 $('#cmprun-tabs a[href="#cmpinfo"]').tab('show');
2126 - }else{  
2127 - $('#cmpinfo').prepend('<p class="alert alert-success"><i class="glyphicon glyphicon-ok-sign"></i> 等待编译 </p>'); 2143 + }else if(data.error.length){
  2144 + $('#cmprun-tabs a[href="#stderr"]').tab('show');
  2145 + }else if(data.content.length){
  2146 + $('#cmprun-tabs a[href="#output"]').tab('show');
2128 } 2147 }
  2148 +
  2149 + if(!data.compilerInfo.length){
  2150 + $('#cmpinfo').prepend('<p class="alert alert-success"><i class="glyphicon glyphicon-ok-sign"></i> 编译已成功</p>');
  2151 + }
  2152 +
  2153 + // if (data.code == 0) {
  2154 + // $('#output').html('<p class="text-success">' + data.content.replace(/\n/g, "<br />") + "</p>");
  2155 + // $('#cmpinfo').prepend('<p class="alert alert-success"><i class="glyphicon glyphicon-ok-sign"></i> 编译成功 </p>');
  2156 + // $('#cmprun-tabs a[href="#output"]').tab('show');
  2157 + // } else if (data.code == 1) {
  2158 + // if (data.error.length) {
  2159 + // $('#cmpinfo').html('<p class="text-warning">' + data.error.replace(/\n/g, "<br />") + "</p>");
  2160 + // }else if (data.compilerInfo.length){
  2161 + // $('#cmpinfo').html('<p class="text-warning">' + data.compilerInfo.replace(/\n/g, "<br />") + "</p>");
  2162 + // }else{
  2163 + // $('#cmpinfo').html('<p class="alert alert-danger"><i class="glyphicon glyphicon-exclamation-sign"></i> 编译超时,请重新编译 </p>');
  2164 + // }
  2165 + // $('#cmprun-tabs a[href="#cmpinfo"]').tab('show');
  2166 + // }else{
  2167 + // $('#cmpinfo').prepend('<p class="alert alert-success"><i class="glyphicon glyphicon-ok-sign"></i> 等待编译 </p>');
  2168 + // }
2129 }else{ 2169 }else{
2130 $('#cmpinfo').html('<p class="alert alert-danger"><i class="glyphicon glyphicon-exclamation-sign"></i> 请求失败 </p>'); 2170 $('#cmpinfo').html('<p class="alert alert-danger"><i class="glyphicon glyphicon-exclamation-sign"></i> 请求失败 </p>');
2131 $('#cmprun-tabs a[href="#cmpinfo"]').tab('show'); 2171 $('#cmprun-tabs a[href="#cmpinfo"]').tab('show');
@@ -2139,7 +2179,7 @@ $(function() { @@ -2139,7 +2179,7 @@ $(function() {
2139 recorder = rec; 2179 recorder = rec;
2140 recorder.start(); 2180 recorder.start();
2141 2181
2142 - GBCodePlayBack.resetCodeMirrorValue(); 2182 + GBCodePlayBack.resetCodeMirrorValue(0);
2143 GBCodePlayBack.records = []; 2183 GBCodePlayBack.records = [];
2144 GBCodePlayBack.record_startime = new Date().getTime(); 2184 GBCodePlayBack.record_startime = new Date().getTime();
2145 2185
src/v1.1/index.html
@@ -99,6 +99,23 @@ @@ -99,6 +99,23 @@
99 <div id="replayzone"></div> 99 <div id="replayzone"></div>
100 </div> 100 </div>
101 <div id="handleMR"></div> 101 <div id="handleMR"></div>
  102 + <div class="pause-shodow hidden">
  103 + <div class="compile-loading">
  104 + <img src="../img/loading.png" alt="">
  105 + </div>
  106 + <div class="compile-reslut" style="display: none;">
  107 + <div class="tip-header">
  108 + <span>成功获取编译运行结果</span>
  109 + </div>
  110 + <div class="tip-content">
  111 + <p>保存编译结果后,播放到此处会在运行区域直接显示结果。需要保存结果后继续录制吗?</p>
  112 + </div>
  113 + <div class="tip-footer">
  114 + <button class="btn btn-success btn-sm" id="save_compile">保存并继续录制</button>
  115 + <button class="btn btn-danger btn-sm" id="cancel_compile">不保存继续录制</button>
  116 + </div>
  117 + </div>
  118 + </div>
102 </div> 119 </div>
103 <div id="appRight"> 120 <div id="appRight">
104 <div id="resultpanel" class="panel panel-default editor-result"> 121 <div id="resultpanel" class="panel panel-default editor-result">