Commit cc43c3069907410351317d222221ab53851f2ef3

Authored by ykxie
1 parent 08286742

fix restart

src/css/ide.css
@@ -85,7 +85,7 @@ html, body { @@ -85,7 +85,7 @@ html, body {
85 height: 100%; 85 height: 100%;
86 position: absolute; 86 position: absolute;
87 overflow: hidden; 87 overflow: hidden;
88 - background-color: #999; } 88 + background-color: #FFF; }
89 89
90 .record-title { 90 .record-title {
91 width: 100%; 91 width: 100%;
@@ -116,8 +116,7 @@ html, body { @@ -116,8 +116,7 @@ html, body {
116 .record-wrap #ideEditer { 116 .record-wrap #ideEditer {
117 width: calc(100% - 170px); 117 width: calc(100% - 170px);
118 float: left; 118 float: left;
119 - height: 100%;  
120 - background-color: #00F; } 119 + height: 100%; }
121 .record-wrap #ideEditer #recordzone, .record-wrap #ideEditer #replayzone, .record-wrap #ideEditer .coding { 120 .record-wrap #ideEditer #recordzone, .record-wrap #ideEditer #replayzone, .record-wrap #ideEditer .coding {
122 height: 100%; } 121 height: 100%; }
123 .record-wrap #folder { 122 .record-wrap #folder {
@@ -225,21 +224,12 @@ html, body { @@ -225,21 +224,12 @@ html, body {
225 background-color: rgba(0, 0, 0, 0.4); } 224 background-color: rgba(0, 0, 0, 0.4); }
226 .pause-shodow .compile-loading { 225 .pause-shodow .compile-loading {
227 position: absolute; 226 position: absolute;
228 - top: 50%; 227 + top: 30%;
229 left: 50%; 228 left: 50%;
230 transform: translate(-50%, -50%); 229 transform: translate(-50%, -50%);
231 z-index: 999; } 230 z-index: 999; }
232 .pause-shodow .compile-reslut .btn { 231 .pause-shodow .compile-reslut .btn {
233 margin-right: 8px; } 232 margin-right: 8px; }
234 - .pause-shodow .btn-success {  
235 - background-color: #1FB6FF;  
236 - border: none;  
237 - box-shadow: 0 1px 5px; }  
238 - .pause-shodow .btn-danger {  
239 - background-color: #FFFFFF;  
240 - color: #6E787F;  
241 - border: none;  
242 - box-shadow: 0 1px 5px; }  
243 233
244 .compile-reslut, .re-reslut { 234 .compile-reslut, .re-reslut {
245 position: absolute; 235 position: absolute;
@@ -261,6 +251,10 @@ html, body { @@ -261,6 +251,10 @@ html, body {
261 bottom: 0; 251 bottom: 0;
262 text-align: right; } 252 text-align: right; }
263 253
  254 +.re-reslut {
  255 + top: 40% !important;
  256 + transform: translate(-50%, -50%) !important; }
  257 +
264 #countdown { 258 #countdown {
265 display: block; 259 display: block;
266 z-index: 999; 260 z-index: 999;
@@ -296,3 +290,30 @@ html, body { @@ -296,3 +290,30 @@ html, body {
296 padding: 10px 24px; } 290 padding: 10px 24px; }
297 #playFooter #componentWrapper { 291 #playFooter #componentWrapper {
298 width: 100%; } 292 width: 100%; }
  293 +
  294 +.re-tips .btn-success, .pause-shodow .btn-success {
  295 + background-color: #1FB6FF;
  296 + border: none;
  297 + box-shadow: 0 1px 5px; }
  298 +
  299 +.re-tips .btn-danger, .pause-shodow .btn-danger {
  300 + background-color: #FFFFFF;
  301 + color: #6E787F;
  302 + border: none;
  303 + box-shadow: 0 1px 5px; }
  304 +
  305 +.re-tips {
  306 + position: absolute;
  307 + top: 0;
  308 + width: 100%;
  309 + height: 100%;
  310 + background-color: rgba(0, 0, 0, 0.6);
  311 + z-index: 999; }
  312 +
  313 +.contrl-shodow {
  314 + width: 100%;
  315 + height: 60px;
  316 + position: absolute;
  317 + bottom: 0;
  318 + background-color: rgba(0, 0, 0, 0.4);
  319 + z-index: 999; }
src/css/main.css
@@ -7,7 +7,7 @@ html, body { @@ -7,7 +7,7 @@ html, body {
7 height: 100%; 7 height: 100%;
8 position: absolute; 8 position: absolute;
9 overflow: hidden; 9 overflow: hidden;
10 - background-color: #999; } 10 + background-color: #FFF; }
11 11
12 .record-title { 12 .record-title {
13 width: 100%; 13 width: 100%;
@@ -38,8 +38,7 @@ html, body { @@ -38,8 +38,7 @@ html, body {
38 .record-wrap #ideEditer { 38 .record-wrap #ideEditer {
39 width: calc(100% - 170px); 39 width: calc(100% - 170px);
40 float: left; 40 float: left;
41 - height: 100%;  
42 - background-color: #00F; } 41 + height: 100%; }
43 .record-wrap #ideEditer #recordzone, .record-wrap #ideEditer #replayzone, .record-wrap #ideEditer .coding { 42 .record-wrap #ideEditer #recordzone, .record-wrap #ideEditer #replayzone, .record-wrap #ideEditer .coding {
44 height: 100%; } 43 height: 100%; }
45 .record-wrap #folder { 44 .record-wrap #folder {
@@ -147,21 +146,12 @@ html, body { @@ -147,21 +146,12 @@ html, body {
147 background-color: rgba(0, 0, 0, 0.4); } 146 background-color: rgba(0, 0, 0, 0.4); }
148 .pause-shodow .compile-loading { 147 .pause-shodow .compile-loading {
149 position: absolute; 148 position: absolute;
150 - top: 50%; 149 + top: 30%;
151 left: 50%; 150 left: 50%;
152 transform: translate(-50%, -50%); 151 transform: translate(-50%, -50%);
153 z-index: 999; } 152 z-index: 999; }
154 .pause-shodow .compile-reslut .btn { 153 .pause-shodow .compile-reslut .btn {
155 margin-right: 8px; } 154 margin-right: 8px; }
156 - .pause-shodow .btn-success {  
157 - background-color: #1FB6FF;  
158 - border: none;  
159 - box-shadow: 0 1px 5px; }  
160 - .pause-shodow .btn-danger {  
161 - background-color: #FFFFFF;  
162 - color: #6E787F;  
163 - border: none;  
164 - box-shadow: 0 1px 5px; }  
165 155
166 .compile-reslut, .re-reslut { 156 .compile-reslut, .re-reslut {
167 position: absolute; 157 position: absolute;
@@ -183,6 +173,10 @@ html, body { @@ -183,6 +173,10 @@ html, body {
183 bottom: 0; 173 bottom: 0;
184 text-align: right; } 174 text-align: right; }
185 175
  176 +.re-reslut {
  177 + top: 40% !important;
  178 + transform: translate(-50%, -50%) !important; }
  179 +
186 #countdown { 180 #countdown {
187 display: block; 181 display: block;
188 z-index: 999; 182 z-index: 999;
@@ -218,3 +212,30 @@ html, body { @@ -218,3 +212,30 @@ html, body {
218 padding: 10px 24px; } 212 padding: 10px 24px; }
219 #playFooter #componentWrapper { 213 #playFooter #componentWrapper {
220 width: 100%; } 214 width: 100%; }
  215 +
  216 +.re-tips .btn-success, .pause-shodow .btn-success {
  217 + background-color: #1FB6FF;
  218 + border: none;
  219 + box-shadow: 0 1px 5px; }
  220 +
  221 +.re-tips .btn-danger, .pause-shodow .btn-danger {
  222 + background-color: #FFFFFF;
  223 + color: #6E787F;
  224 + border: none;
  225 + box-shadow: 0 1px 5px; }
  226 +
  227 +.re-tips {
  228 + position: absolute;
  229 + top: 0;
  230 + width: 100%;
  231 + height: 100%;
  232 + background-color: rgba(0, 0, 0, 0.6);
  233 + z-index: 999; }
  234 +
  235 +.contrl-shodow {
  236 + width: 100%;
  237 + height: 60px;
  238 + position: absolute;
  239 + bottom: 0;
  240 + background-color: rgba(0, 0, 0, 0.4);
  241 + z-index: 999; }
src/gxb-ide/CodingEditer.js
@@ -10,6 +10,8 @@ @@ -10,6 +10,8 @@
10 isPause: true, // 是否暂停 true:不暂停,flase:暂停 10 isPause: true, // 是否暂停 true:不暂停,flase:暂停
11 recordtimeoutcontrolls: [], 11 recordtimeoutcontrolls: [],
12 isRcording: false, 12 isRcording: false,
  13 + firstPlay: 1, // 第一次播放
  14 + pauseValue: [],
13 init: function(){ 15 init: function(){
14 console.log('CodingEditer'); 16 console.log('CodingEditer');
15 }, 17 },
@@ -48,13 +50,8 @@ @@ -48,13 +50,8 @@
48 50
49 }, 51 },
50 initCodeMirror: function(langid){ 52 initCodeMirror: function(langid){
51 - console.log('---------------------------')  
52 -  
53 var treeLinkEditor = Dir.treeLinkEditor; 53 var treeLinkEditor = Dir.treeLinkEditor;
54 - console.log(treeLinkEditor)  
55 -  
56 initProgramPage(treeLinkEditor); 54 initProgramPage(treeLinkEditor);
57 -  
58 }, 55 },
59 /** 56 /**
60 * 获取各个文件中的代码 57 * 获取各个文件中的代码
@@ -70,40 +67,101 @@ @@ -70,40 +67,101 @@
70 console.log(pauseValue); 67 console.log(pauseValue);
71 return pauseValue; 68 return pauseValue;
72 }, 69 },
  70 + getPlayCodeMirrorValue: function(){
  71 + CodingEditer.pauseValue = [];
  72 + var treeLinkEditor = Dir.treeLinkEditor;
  73 + for (var i = 0; i < treeLinkEditor.length; i++) {
  74 + console.log(treeLinkEditor[i].CodeMirrorReplay.getValue())
  75 + // ZTREE.showEdite({'treeNode': {'name': treeLinkEditor[i].file}});
  76 + CodingEditer.pauseValue.push(treeLinkEditor[i].CodeMirrorReplay.getValue());
  77 + }
  78 + },
  79 + setCodeMirrorValue: function(){
  80 + CodingEditer.resetCodeMirrorValue(1);
  81 + var codeLength = CodingEditer.pauseValue;
  82 + var treeLinkEditor = Dir.treeLinkEditor;
  83 +
  84 + console.log(treeLinkEditor);
  85 +
  86 + for (var i = 0; i < treeLinkEditor.length; i++) {
  87 + Dir.showEdite({'treeNode': {'name': treeLinkEditor[i].file}});
  88 + treeLinkEditor[i].CodeMirrorReplay.setValue(codeLength[i]);
  89 + }
  90 + },
73 /** 91 /**
74 * 播放代码 92 * 播放代码
75 * Created by Kira on 2017-02-08 93 * Created by Kira on 2017-02-08
76 */ 94 */
77 playCoding: function(){ 95 playCoding: function(){
78 - CodingEditer.resetCodeMirrorValue(1) 96 +
  97 + // if (CodingEditer.firstPlay == 0) {
  98 + // CodingEditer.setCodeMirrorValue();
  99 + // Dir.showEdite({'treeNode': CodingEditer.treeSelectNode});
  100 + // }else{
  101 + // CodingEditer.resetCodeMirrorValue(1);
  102 + // var iterm = new Iterm();
  103 + // iterm.compileResult()
  104 + // }
  105 +
  106 + CodingEditer.resetCodeMirrorValue(1);
79 var iterm = new Iterm(); 107 var iterm = new Iterm();
80 iterm.compileResult() 108 iterm.compileResult()
81 - console.log('------------------CodingEditer.records')  
82 - console.log(CodingEditer.records) 109 +
83 var playbackrecord = CodingEditer.records; 110 var playbackrecord = CodingEditer.records;
84 var starttime = 0; 111 var starttime = 0;
  112 + var playTotalTime = 0;
  113 +
85 $('#recordertab a:eq(1)').tab('show'); 114 $('#recordertab a:eq(1)').tab('show');
  115 +
  116 + // if (playerpage) {
  117 + // $('#recordertab a:eq(0)').tab('show');
  118 + // }else{
  119 + // $('#recordertab a:eq(1)').tab('show');
  120 + // }
  121 +
  122 +
86 for (var i = 0; i < playbackrecord.length; i++) { 123 for (var i = 0; i < playbackrecord.length; i++) {
87 if (playbackrecord[i].trigger === 1) { 124 if (playbackrecord[i].trigger === 1) {
88 - console.log('已播放------------------') 125 + playTotalTime += parseInt(playbackrecord[i].intervaltime);
89 }else if (playbackrecord[i].trigger === 0) { 126 }else if (playbackrecord[i].trigger === 0) {
90 var timeoutcontroller = null; 127 var timeoutcontroller = null;
91 var replayinterval = playbackrecord[i].intervaltime; 128 var replayinterval = playbackrecord[i].intervaltime;
92 129
93 if (!CodingEditer.isPause) { 130 if (!CodingEditer.isPause) {
94 starttime = replayinterval - (CodingEditer.audioTime - playTotalTime); 131 starttime = replayinterval - (CodingEditer.audioTime - playTotalTime);
95 - CodingEditer.isPause = false; 132 + CodingEditer.isPause = true;
96 }else{ 133 }else{
97 - if (i == 0) {  
98 - starttime = replayinterval;  
99 - }else{  
100 - starttime = parseInt(starttime) + parseInt(replayinterval);  
101 - } 134 + // if (i == 0) {
  135 + // starttime = replayinterval;
  136 + // }else{
  137 + // starttime = parseInt(starttime) + parseInt(replayinterval);
  138 + // }
  139 + starttime = parseInt(starttime) + parseInt(replayinterval);
102 } 140 }
  141 + // starttime = parseInt(starttime) + parseInt(replayinterval);
  142 +
103 timeoutcontroller = setTimeout(changeValueCallback(playbackrecord[i]), starttime/CodingEditer.speed); 143 timeoutcontroller = setTimeout(changeValueCallback(playbackrecord[i]), starttime/CodingEditer.speed);
104 CodingEditer.recordtimeoutcontrolls.push(timeoutcontroller); 144 CodingEditer.recordtimeoutcontrolls.push(timeoutcontroller);
105 } 145 }
106 } 146 }
  147 + console.log(CodingEditer.recordtimeoutcontrolls)
  148 + },
  149 + pauseCode: function(){
  150 + CodingEditer.getPlayCodeMirrorValue();
  151 + console.log('---------------------------------');
  152 + console.log(CodingEditer.pauseValue)
  153 + CodingEditer.isPause = 0;
  154 + CodingEditer.firstPlay = 0;
  155 + CodingEditer.editable(0);
  156 + CodingEditer.treeSelectNode = Dir.treeObj.getSelectedNodes()[0];
  157 +
  158 + var recordtimeoutcontrolls = CodingEditer.recordtimeoutcontrolls;
  159 +
  160 + for (var i = 0; i < recordtimeoutcontrolls.length; i++) {
  161 + clearTimeout(recordtimeoutcontrolls[i]);
  162 + }
  163 + CodingEditer.recordtimeoutcontrolls = [];
  164 + CodingEditer.recordtimeouts = [];
107 }, 165 },
108 /** 166 /**
109 * 记录动作 167 * 记录动作
@@ -186,7 +244,10 @@ @@ -186,7 +244,10 @@
186 } 244 }
187 } 245 }
188 } else { 246 } else {
  247 + console.log('------------------------------------------------')
189 console.log(treeLinkEditor) 248 console.log(treeLinkEditor)
  249 + console.log('------------------------------------------------')
  250 +
190 for (var i = 0; i < treeLinkEditor.length; i++) { 251 for (var i = 0; i < treeLinkEditor.length; i++) {
191 if(treeLinkEditor[i].CodeMirrorRecord){ 252 if(treeLinkEditor[i].CodeMirrorRecord){
192 Dir.showEdite({'treeNode': {'name': treeLinkEditor[i].file}}); 253 Dir.showEdite({'treeNode': {'name': treeLinkEditor[i].file}});
@@ -201,6 +262,25 @@ @@ -201,6 +262,25 @@
201 }, 262 },
202 playEnd: function(){ 263 playEnd: function(){
203 Hourglass.stopTimer() 264 Hourglass.stopTimer()
  265 + for (var i = 0; i < CodingEditer.records.length; i++) {
  266 + CodingEditer.records[i].trigger = 0;
  267 + }
  268 + },
  269 + /*
  270 + * 修改代码状态
  271 + */
  272 + editable: function(status){
  273 + // status: 1 禁止修改,0 允许修改
  274 + var treeLinkEditor = Dir.treeLinkEditor;
  275 + console.log(status + '##########################')
  276 + if (status == 0 || status == 1) {
  277 + for (var i = 0; i < treeLinkEditor.length; i++) {
  278 + treeLinkEditor[i].CodeMirrorRecord.setOption('readOnly', status);
  279 + treeLinkEditor[i].CodeMirrorReplay.setOption('readOnly', status);
  280 + }
  281 + }else{
  282 + console.log('status undefind');
  283 + }
204 } 284 }
205 285
206 } 286 }
@@ -209,7 +289,6 @@ @@ -209,7 +289,6 @@
209 289
210 // 初始化编程页面 290 // 初始化编程页面
211 function initProgramPage(treeLinkEditor, langid){ 291 function initProgramPage(treeLinkEditor, langid){
212 - console.log(treeLinkEditor);  
213 // 生成 CodeMirror 292 // 生成 CodeMirror
214 for (var i = 0; i < treeLinkEditor.length; i++) { 293 for (var i = 0; i < treeLinkEditor.length; i++) {
215 // 判断是否是播放页面,如果是则不显示录制区相关dom 294 // 判断是否是播放页面,如果是则不显示录制区相关dom
@@ -254,9 +333,6 @@ @@ -254,9 +333,6 @@
254 treeLinkEditor[i].CodeMirrorReplayId = treeLinkEditor[i].replay + 'CodeMirror'; 333 treeLinkEditor[i].CodeMirrorReplayId = treeLinkEditor[i].replay + 'CodeMirror';
255 $('#' + treeLinkEditor[i].replay).next().attr('id', treeLinkEditor[i].CodeMirrorReplayId).hide(); 334 $('#' + treeLinkEditor[i].replay).next().attr('id', treeLinkEditor[i].CodeMirrorReplayId).hide();
256 } 335 }
257 -  
258 - console.log(treeLinkEditor);  
259 -  
260 // 默认显示第一个文件夹的第一个文件 336 // 默认显示第一个文件夹的第一个文件
261 Dir.showEdite(); 337 Dir.showEdite();
262 } 338 }
@@ -266,8 +342,6 @@ @@ -266,8 +342,6 @@
266 * by Kira 2017-3-9 342 * by Kira 2017-3-9
267 */ 343 */
268 function buildRecords(editor, changeobj){ 344 function buildRecords(editor, changeobj){
269 - console.log(editor);  
270 -  
271 var intervaltime, 345 var intervaltime,
272 currenttime = new Date().getTime(); 346 currenttime = new Date().getTime();
273 347
@@ -282,7 +356,6 @@ @@ -282,7 +356,6 @@
282 356
283 intervaltime = currenttime - CodingEditer.record_startime; 357 intervaltime = currenttime - CodingEditer.record_startime;
284 358
285 -  
286 var recordobj = { 359 var recordobj = {
287 intervaltime: intervaltime, 360 intervaltime: intervaltime,
288 editor: editor, 361 editor: editor,
@@ -295,9 +368,6 @@ @@ -295,9 +368,6 @@
295 CodingEditer.records.push(recordobj); // 添加每次输入对象 368 CodingEditer.records.push(recordobj); // 添加每次输入对象
296 369
297 CodingEditer.record_startime = currenttime; //设定起始时间 370 CodingEditer.record_startime = currenttime; //设定起始时间
298 -  
299 - console.log(CodingEditer.records);  
300 -  
301 } 371 }
302 372
303 373
@@ -305,7 +375,7 @@ @@ -305,7 +375,7 @@
305 var obj = record.changeobj, 375 var obj = record.changeobj,
306 editor = record.editor, 376 editor = record.editor,
307 treeLinkEditor = Dir.treeLinkEditor; 377 treeLinkEditor = Dir.treeLinkEditor;
308 - console.log(treeLinkEditor); 378 +
309 return function() { 379 return function() {
310 // 播放 380 // 播放
311 for (var i = 0; i < treeLinkEditor.length; i++) { 381 for (var i = 0; i < treeLinkEditor.length; i++) {
@@ -319,8 +389,9 @@ @@ -319,8 +389,9 @@
319 record.trigger = 1; //标记已运行 389 record.trigger = 1; //标记已运行
320 record.playTime = new Date().getTime(); // 播放开始时间 390 record.playTime = new Date().getTime(); // 播放开始时间
321 391
322 -  
323 - console.log("================== _role ======================"); 392 + console.log("==================++======================");
  393 + console.log(record);
  394 +
324 if (record.code == 0 || record.code == 1) { 395 if (record.code == 0 || record.code == 1) {
325 var iterm = new Iterm(); 396 var iterm = new Iterm();
326 var resultData = { 397 var resultData = {
@@ -342,11 +413,8 @@ @@ -342,11 +413,8 @@
342 for (var i = 0; i < CodingEditer.records.length; i++) { 413 for (var i = 0; i < CodingEditer.records.length; i++) {
343 CodingEditer.records[i].trigger = 0; 414 CodingEditer.records[i].trigger = 0;
344 } 415 }
345 - // $('.play-code').attr('disabled', false); 416 +
346 Hourglass.stopTimer(); 417 Hourglass.stopTimer();
347 - // if(document.URL.indexOf('index.htm') >= 0) {  
348 - // Hourglass.stopTimer();  
349 - // }  
350 418
351 CodingEditer.triggertotal = 0; 419 CodingEditer.triggertotal = 0;
352 } 420 }
@@ -357,7 +425,6 @@ @@ -357,7 +425,6 @@
357 425
358 426
359 function processChangeObject(playbackcm, obj) { 427 function processChangeObject(playbackcm, obj) {
360 - console.log(playbackcm);  
361 // 菜单选中 428 // 菜单选中
362 Dir.showEdite({'treeNode': {'name': getEditor(playbackcm, 'name')},'replay': true}); 429 Dir.showEdite({'treeNode': {'name': getEditor(playbackcm, 'name')},'replay': true});
363 430
@@ -431,10 +498,8 @@ @@ -431,10 +498,8 @@
431 } 498 }
432 } 499 }
433 500
434 - console.log(currentObj);  
435 switch (key) { 501 switch (key) {
436 case 'name': 502 case 'name':
437 - console.log('-------------------getEditor-------------------');  
438 return currentObj.name; 503 return currentObj.name;
439 break; 504 break;
440 case 'file': 505 case 'file':
src/gxb-ide/Dir.js
@@ -66,6 +66,7 @@ @@ -66,6 +66,7 @@
66 treeData = res[_lang]; 66 treeData = res[_lang];
67 console.log(treeData); 67 console.log(treeData);
68 treeObj = $.fn.zTree.init($(el), setting, treeData); 68 treeObj = $.fn.zTree.init($(el), setting, treeData);
  69 + Dir.treeObj = $.fn.zTree.init($(el), setting, treeData);
69 70
70 addTextareaPage(treeData); 71 addTextareaPage(treeData);
71 72
@@ -395,7 +396,6 @@ @@ -395,7 +396,6 @@
395 if(!_datalist.length){ 396 if(!_datalist.length){
396 return false; 397 return false;
397 } 398 }
398 - console.log(_datalist);  
399 399
400 // 生成 textarea 400 // 生成 textarea
401 for (var i = 0; i < _datalist.length; i++) { 401 for (var i = 0; i < _datalist.length; i++) {
src/gxb-ide/Iterm.js
@@ -51,6 +51,7 @@ @@ -51,6 +51,7 @@
51 51
52 compileMode(el, userId, languageId) 52 compileMode(el, userId, languageId)
53 } 53 }
  54 + $('.contrl-shodow').show();
54 }, 55 },
55 compileResult: function(data, value){ 56 compileResult: function(data, value){
56 if (!data) { 57 if (!data) {
@@ -95,6 +96,8 @@ @@ -95,6 +96,8 @@
95 // 继续录制配置 96 // 继续录制配置
96 function recodingConf(){ 97 function recodingConf(){
97 $('.pause-shodow').hide() 98 $('.pause-shodow').hide()
  99 + $('.compile-reslut').hide();
  100 + $('.contrl-shodow').hide();
98 101
99 Hourglass.pauseTimer(); 102 Hourglass.pauseTimer();
100 recorder.pause(); 103 recorder.pause();
src/gxb-ide/ToolBox.js
@@ -6,8 +6,8 @@ @@ -6,8 +6,8 @@
6 '<div class="ctrl-wrap">'+ 6 '<div class="ctrl-wrap">'+
7 '<div class="tool-item" id="start-recording" data="1" title="开始录制"><img src="" alt="" /></div>'+ 7 '<div class="tool-item" id="start-recording" data="1" title="开始录制"><img src="" alt="" /></div>'+
8 '<div class="tool-item" id="stop-recording" data="1" title="结束录制"><img src="" alt="" /></div>'+ 8 '<div class="tool-item" id="stop-recording" data="1" title="结束录制"><img src="" alt="" /></div>'+
9 - '<div class="tool-item" id="re-recoding" data="1" title="开始录制"><img src="" alt="" /></div>'+  
10 - '<div class="tool-item" id="audio-play" data="1" title="开始录制"><img src="" alt="" /></div>'+ 9 + '<div class="tool-item" id="re-recoding" data="1" title="重新录制"><img src="" alt="" /></div>'+
  10 + '<div class="tool-item" id="audio-play" data="1" title="播放预览"><img src="" alt="" /></div>'+
11 '</div>'+ 11 '</div>'+
12 '<div class="recording-time" id="timer" value="">00:00:00</div>'+ 12 '<div class="recording-time" id="timer" value="">00:00:00</div>'+
13 '<div class="save-wrap">'+ 13 '<div class="save-wrap">'+
@@ -66,6 +66,8 @@ @@ -66,6 +66,8 @@
66 $('#upload').on('click', function(){ _this.uploadAudio(); }) 66 $('#upload').on('click', function(){ _this.uploadAudio(); })
67 $('#savecode').on('click', function(){ _this.saveCode(); }) 67 $('#savecode').on('click', function(){ _this.saveCode(); })
68 $('#cancel').on('click', function(){ _this.cancel(); }) 68 $('#cancel').on('click', function(){ _this.cancel(); })
  69 + $('#re-sure').on('click', function(){ _this.reSure(); })
  70 + $('#re-cancel').on('click', function(){ _this.reCancel(); })
69 }, 71 },
70 startRecording: function(callback){ 72 startRecording: function(callback){
71 console.log(this.options.userId); 73 console.log(this.options.userId);
@@ -99,22 +101,45 @@ @@ -99,22 +101,45 @@
99 } 101 }
100 CodingEditer.isRcording = false; 102 CodingEditer.isRcording = false;
101 $('#upload').removeClass('upload-teach').addClass('recording-finish').removeAttr('disabled').prop("disabled", false); 103 $('#upload').removeClass('upload-teach').addClass('recording-finish').removeAttr('disabled').prop("disabled", false);
102 -  
103 }, 104 },
104 restartRecord: function(){ 105 restartRecord: function(){
  106 + $('.re-tips').show()
  107 +
  108 + if (typeof _this.options.restartCallback == 'function') {
  109 + _this.options.restartCallback();
  110 + }
  111 +
  112 + // var _this = this;
  113 + // $('#recordertab a:first').tab('show');
  114 + // // CodingEditer.records = [];
  115 + // _this.readOnly(0)
  116 + // _this.startRecording()
  117 + },
  118 + reSure: function(){
  119 + $('.re-tips').hide()
105 $('#re-recoding').hide() 120 $('#re-recoding').hide()
106 $('#stop-recording').show() 121 $('#stop-recording').show()
107 $('#audio-play').hide() 122 $('#audio-play').hide()
108 - console.log('重新录制代码');  
109 - var _this = this;  
110 - $('#recordertab a:first').tab('show');  
111 - // CodingEditer.records = [];  
112 - _this.readOnly(0)  
113 - if (typeof _this.options.restartCallback == 'function') {  
114 - console.log('restartCallback');  
115 - _this.options.restartCallback(); 123 + $('#upload').removeClass('recording-finish').addClass('upload-teach').attr("disabled", true);
  124 + $('#recordertab a:eq(0)').tab('show');
  125 +
  126 + CodingEditer.resetCodeMirrorValue(0);
  127 +
  128 + var recordtimeoutcontrolls = CodingEditer.recordtimeoutcontrolls;
  129 + for (var i = 0; i < recordtimeoutcontrolls.length; i++) {
  130 + clearTimeout(recordtimeoutcontrolls[i]);
116 } 131 }
117 - recordAudio() 132 +
  133 + CodingEditer.recordtimeoutcontrolls = [];
  134 + CodingEditer.recordtimeouts = [];
  135 +
  136 + $('#audio')[0].pause();
  137 + Hourglass.stopTimer();
  138 +
  139 + this.startRecording()
  140 + },
  141 + reCancel: function(){
  142 + $('.re-tips').hide()
118 }, 143 },
119 initRecording: function(){ 144 initRecording: function(){
120 var _this = this; 145 var _this = this;
@@ -133,10 +158,11 @@ @@ -133,10 +158,11 @@
133 recorder.getBlobData(); 158 recorder.getBlobData();
134 }, 159 },
135 playCode: function(){ 160 playCode: function(){
136 - console.log('播放代码'); 161 + console.log('播放代码=-------------------------');
137 $('#audio')[0].play(); 162 $('#audio')[0].play();
138 Hourglass.init() 163 Hourglass.init()
139 CodingEditer.playCoding() 164 CodingEditer.playCoding()
  165 + console.log('播放代码=-------------------------');
140 }, 166 },
141 uploadAudio: function(){ 167 uploadAudio: function(){
142 console.log('uploadAudio'); 168 console.log('uploadAudio');
src/js/c.js
@@ -6,7 +6,8 @@ $(function(){ @@ -6,7 +6,8 @@ $(function(){
6 var _userId = getQuery('userId'); 6 var _userId = getQuery('userId');
7 var _role = getQuery('role'); 7 var _role = getQuery('role');
8 8
9 - $("title").html("C 语言"); 9 + // $("title").html("C 语言");
  10 +
10 // new一个基本IDE结构 11 // new一个基本IDE结构
11 var ide = new GxbIde({ 12 var ide = new GxbIde({
12 el: '#folder', 13 el: '#folder',
@@ -26,11 +27,13 @@ $(function(){ @@ -26,11 +27,13 @@ $(function(){
26 recordReady() 27 recordReady()
27 }) 28 })
28 iterm.compileResult() 29 iterm.compileResult()
  30 +
29 }, 31 },
30 stopCallback: function(){ 32 stopCallback: function(){
31 - 33 + $("#countdown").find('img').attr('src', '')
32 }, 34 },
33 restartCallback: function(){ 35 restartCallback: function(){
  36 +
34 } 37 }
35 }); 38 });
36 39
src/js/player.js
@@ -77,6 +77,8 @@ $(function(){ @@ -77,6 +77,8 @@ $(function(){
77 CodingEditer.playCoding(); 77 CodingEditer.playCoding();
78 }, 78 },
79 pauseCallback: function() { // 暂停 79 pauseCallback: function() { // 暂停
  80 + CodingEditer.audioTime = parseInt(player.elements.audioDom.currentTime*1000);
  81 + CodingEditer.pauseCode();
80 }, 82 },
81 seekedCallback: function() { // 拖拽 83 seekedCallback: function() { // 拖拽
82 }, 84 },
src/js/util/Hourglass.js
@@ -36,7 +36,7 @@ @@ -36,7 +36,7 @@
36 seconds = seconds < 10 ? ('0' + seconds) : seconds; 36 seconds = seconds < 10 ? ('0' + seconds) : seconds;
37 37
38 time = hour + ':'+ min + ':' + seconds; 38 time = hour + ':'+ min + ':' + seconds;
39 - console.log(_dom); 39 + // console.log(_dom);
40 _dom.innerHTML = time; 40 _dom.innerHTML = time;
41 _dom.value = Timer.options.seconds; 41 _dom.value = Timer.options.seconds;
42 42
src/scss/main.scss
@@ -7,7 +7,7 @@ html, body{ @@ -7,7 +7,7 @@ html, body{
7 height: 100%; 7 height: 100%;
8 position: absolute; 8 position: absolute;
9 overflow: hidden; 9 overflow: hidden;
10 - background-color: #999; 10 + background-color: #FFF;
11 } 11 }
12 12
13 // 头部菜单 13 // 头部菜单
@@ -49,7 +49,6 @@ html, body{ @@ -49,7 +49,6 @@ html, body{
49 width: calc(100% - 170px); 49 width: calc(100% - 170px);
50 float: left; 50 float: left;
51 height: 100%; 51 height: 100%;
52 - background-color: #00F;  
53 52
54 #recordzone, #replayzone, .coding{ 53 #recordzone, #replayzone, .coding{
55 height: 100%; 54 height: 100%;
@@ -194,7 +193,7 @@ html, body{ @@ -194,7 +193,7 @@ html, body{
194 193
195 .compile-loading{ 194 .compile-loading{
196 position: absolute; 195 position: absolute;
197 - top: 50%; 196 + top: 30%;
198 left: 50%; 197 left: 50%;
199 transform: translate(-50%, -50%); 198 transform: translate(-50%, -50%);
200 z-index: 999; 199 z-index: 999;
@@ -205,18 +204,6 @@ html, body{ @@ -205,18 +204,6 @@ html, body{
205 margin-right: 8px; 204 margin-right: 8px;
206 } 205 }
207 } 206 }
208 -  
209 - .btn-success{  
210 - background-color: #1FB6FF;  
211 - border: none;  
212 - box-shadow: 0 1px 5px;  
213 - }  
214 - .btn-danger{  
215 - background-color: #FFFFFF;  
216 - color: #6E787F;  
217 - border: none;  
218 - box-shadow: 0 1px 5px;  
219 - }  
220 } 207 }
221 208
222 .compile-reslut, .re-reslut{ 209 .compile-reslut, .re-reslut{
@@ -243,6 +230,10 @@ html, body{ @@ -243,6 +230,10 @@ html, body{
243 text-align: right; 230 text-align: right;
244 } 231 }
245 } 232 }
  233 +.re-reslut{
  234 + top: 40% !important;
  235 + transform: translate(-50%, -50%) !important;
  236 +}
246 237
247 // 开始录制动画 238 // 开始录制动画
248 #countdown{ 239 #countdown{
@@ -290,8 +281,38 @@ html, body{ @@ -290,8 +281,38 @@ html, body{
290 } 281 }
291 } 282 }
292 283
  284 +.re-tips, .pause-shodow{
  285 + .btn-success{
  286 + background-color: #1FB6FF;
  287 + border: none;
  288 + box-shadow: 0 1px 5px;
  289 + }
  290 + .btn-danger{
  291 + background-color: #FFFFFF;
  292 + color: #6E787F;
  293 + border: none;
  294 + box-shadow: 0 1px 5px;
  295 + }
  296 +}
293 297
  298 +// ti
  299 +.re-tips{
  300 + position: absolute;
  301 + top: 0;
  302 + width: 100%;
  303 + height: 100%;
  304 + background-color: rgba(0, 0, 0, 0.6);
  305 + z-index: 999;
  306 +}
294 307
  308 +.contrl-shodow{
  309 + width: 100%;
  310 + height: 60px;
  311 + position: absolute;
  312 + bottom: 0;
  313 + background-color: rgba(0,0,0,0.4);
  314 + z-index: 999;
  315 +}
295 316
296 317
297 318
src/v1.1/index.html
@@ -17,49 +17,18 @@ @@ -17,49 +17,18 @@
17 <link rel="stylesheet" href="../gxb-ide/toolBox.css"> 17 <link rel="stylesheet" href="../gxb-ide/toolBox.css">
18 <link rel="stylesheet" href="../css/ide.css"> 18 <link rel="stylesheet" href="../css/ide.css">
19 19
20 - <script src="../js/jquery-1.7.1.js"></script>  
21 - <script src="../js/bootstrap.js"></script>  
22 - <script src="../js/codemirror.js"></script>  
23 - <script type="text/javascript" src="../js/zTree_v3-3.5.27/js/jquery.ztree.core.js"></script>  
24 - <script type="text/javascript" src="../js/zTree_v3-3.5.27/js/jquery.ztree.exedit.js"></script>  
25 - <script src="../js/emmet.js"></script>  
26 -  
27 <link rel="stylesheet" href="../js/ladda/ladda-themeless.min.css"> 20 <link rel="stylesheet" href="../js/ladda/ladda-themeless.min.css">
28 - <script src="../js/ladda/spin.js"></script>  
29 - <script src="../js/ladda/ladda.js"></script>  
30 -  
31 - <script src="../js/util/Hourglass.js"></script>  
32 - <script src="../js/util/util.js"></script>  
33 -  
34 - <script src="../js/05-util.js"></script>  
35 - <script src="../js/03-http.js"></script>  
36 -  
37 - <script src="../js/recorder/Myna.js"></script>  
38 - <script src="../gxb-ide/Dir.js"></script>  
39 - <script src="../gxb-ide/CodingEditer.js"></script>  
40 - <script src="../gxb-ide/Iterm.js"></script>  
41 - <script src="../gxb-ide/Ide.js"></script>  
42 - <script src="../gxb-ide/ToolBox.js"></script>  
43 -  
44 - <script src="../js/c.js"></script>  
45 -  
46 - <script src="../js/gbdebug/mode/xml/xml.js"></script>  
47 - <script src="../js/gbdebug/mode/javascript/javascript.js"></script>  
48 - <script src="../js/gbdebug/mode/css/css.js"></script>  
49 - <script src="../js/gbdebug/mode/htmlmixed/htmlmixed.js"></script>  
50 - <script src="../js/gbdebug/mode/clike/clike.js"></script>  
51 -  
52 <script> 21 <script>
53 var gxb_api = "https://restful.gaoxiaobang.com"; 22 var gxb_api = "https://restful.gaoxiaobang.com";
54 // var gxb_api = "http://192.168.80.223:8080" 23 // var gxb_api = "http://192.168.80.223:8080"
55 - $(function(){  
56 - $('.my-button').click(function(){  
57 - var l = Ladda.create(this);  
58 - l.start(); 24 + // $(function(){
  25 + // $('.my-button').click(function(){
  26 + // var l = Ladda.create(this);
  27 + // l.start();
59 28
60 - }) 29 + // })
61 30
62 - }) 31 + // })
63 </script> 32 </script>
64 33
65 <style> 34 <style>
@@ -176,8 +145,58 @@ @@ -176,8 +145,58 @@
176 <div class="upload-tip" style="display: none;"> 145 <div class="upload-tip" style="display: none;">
177 <img src="../img/upload_tip.png" alt=""> 146 <img src="../img/upload_tip.png" alt="">
178 </div> 147 </div>
  148 +
  149 + <!-- 重新开始 -->
  150 + <div class="re-tips" style="display: none;">
  151 + <div class="re-reslut">
  152 + <div class="tip-header">
  153 + <span>提示</span>
  154 + </div>
  155 + <div class="tip-content">
  156 + <p>你确定要重新录制吗?</p>
  157 + </div>
  158 + <div class="tip-footer">
  159 + <button class="btn btn-success btn-sm" id="re-sure">确定</button>
  160 + <button class="btn btn-danger btn-sm" id="re-cancel">取消</button>
  161 + </div>
  162 + </div>
  163 + </div>
179 164
  165 + <div class="contrl-shodow" style="display: none;">
  166 +
  167 + </div>
180 </div> 168 </div>
181 169
  170 + <script src="../js/jquery-1.7.1.js"></script>
  171 + <script src="../js/bootstrap.js"></script>
  172 + <script src="../js/codemirror.js"></script>
  173 + <script type="text/javascript" src="../js/zTree_v3-3.5.27/js/jquery.ztree.core.js"></script>
  174 + <script type="text/javascript" src="../js/zTree_v3-3.5.27/js/jquery.ztree.exedit.js"></script>
  175 + <script src="../js/emmet.js"></script>
  176 +
  177 + <script src="../js/ladda/spin.js"></script>
  178 + <script src="../js/ladda/ladda.js"></script>
  179 +
  180 + <script src="../js/util/Hourglass.js"></script>
  181 + <script src="../js/util/util.js"></script>
  182 +
  183 + <script src="../js/05-util.js"></script>
  184 + <script src="../js/03-http.js"></script>
  185 +
  186 + <script src="../js/recorder/Myna.js"></script>
  187 + <script src="../gxb-ide/Dir.js"></script>
  188 + <script src="../gxb-ide/CodingEditer.js"></script>
  189 + <script src="../gxb-ide/Iterm.js"></script>
  190 + <script src="../gxb-ide/Ide.js"></script>
  191 + <script src="../gxb-ide/ToolBox.js"></script>
  192 +
  193 + <script src="../js/c.js"></script>
  194 +
  195 + <script src="../js/gbdebug/mode/xml/xml.js"></script>
  196 + <script src="../js/gbdebug/mode/javascript/javascript.js"></script>
  197 + <script src="../js/gbdebug/mode/css/css.js"></script>
  198 + <script src="../js/gbdebug/mode/htmlmixed/htmlmixed.js"></script>
  199 + <script src="../js/gbdebug/mode/clike/clike.js"></script>
  200 +
182 </body> 201 </body>
183 </html> 202 </html>
184 \ No newline at end of file 203 \ No newline at end of file