ToolBox.js
6.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
;(function(window){
var template = '<div class="record-ctrl">'+
'<div class="audio-view" style="display: none;">'+
'<audio id="audio"></audio>'+
'</div>'+
'<div class="ctrl-wrap">'+
'<div class="tool-item" id="start-recording" data="1" title="开始录制"><img src="" alt="" /></div>'+
'<div class="tool-item" id="stop-recording" data="1" title="结束录制"><img src="" alt="" /></div>'+
'<div class="tool-item" id="re-recoding" data="1" title="开始录制"><img src="" alt="" /></div>'+
'<div class="tool-item" id="audio-play" data="1" title="开始录制"><img src="" alt="" /></div>'+
'</div>'+
'<div class="recording-time" id="timer" value="">00:00:00</div>'+
'<div class="save-wrap">'+
'<input type="button" id="upload" class="upload-teach" disabled="disabled" value="保存">'+
'<input type="button" id="savecode" class="upload-stud" style="display: none;" disabled="disabled" value="保存">'+
'<input type="button" id="cancel" value="关闭">'+
'</div>'+
'</div>';
function ToolBox(){
this.userId = getQuery('languageid');
this.languageid = getQuery('languageid');
this.template = template;
this.init.apply(this, arguments);
}
ToolBox.prototype = {
constructor: ToolBox,
options: {
el: "#toolBox", // 控制条插入位置id
role: 0, // 角色
startCallback: null, // 开始录制代码
stopCallback: null, // 结束录制
restartCallback: null, // 重新录制代码
playCallback: null, // 播放代码
uploadCallback: null, // 上传音频
saveCallback: null, // 上传代码
cancelCallback: null, // 关闭
},
init: function(options){
var _this = this;
_this.options = $.extend(this.options, options);
var toolBox = this.options.el;
$(toolBox).html(template)
$('#start-recording img').attr('src', '../img/ideicon/record.svg');
$('#stop-recording img').attr('src', '../img/ideicon/stop.svg');
$('#re-recoding img').attr('src', '../img/ideicon/re-record.svg');
$('#audio-play img').attr('src', '../img/ideicon/play.svg');
_this.events();
},
events: function(){
var _this = this;
$('#start-recording').on('click', function(){ _this.startRecording(); })
$('#stop-recording').on('click', function(){ _this.stopRecording(); })
$('#re-recoding').on('click', function(){ _this.restartRecord(); })
$('#audio-play').on('click', function(){ _this.playCode(); })
$('#upload').on('click', function(){ _this.uploadAudio(); })
$('#savecode').on('click', function(){ _this.saveCode(); })
$('#cancel').on('click', function(){ _this.cancel(); })
},
startRecording: function(callback){
console.log('startRecord');
var _this = this;
if (typeof _this.options.startRecordingCallback == 'function') {
console.log('startRecordingCallback');
_this.options.startRecordingCallback();
}
HZRecorder.get(function(rec) {
console.log(rec);
recorder = rec;
recorder.start();
// CodingEditer.resetCodeMirrorValue(0);
CodingEditer.initRecodesValue();
});
},
stopRecording: function(){
console.log('停止录制');
var _this = this;
// 录制完成后禁止修改
var treeLinkEditor = Dir.treeLinkEditor
for (var i = 0; i < treeLinkEditor.length; i++) {
treeLinkEditor[i].CodeMirrorRecord.setOption('readOnly', true);
treeLinkEditor[i].CodeMirrorReplay.setOption('readOnly', true);
}
if (typeof _this.options.stopCallback == 'function') {
console.log('stopCallback');
_this.options.stopCallback();
}
recorder.stop();
recorder.getBlobData();
},
restartRecord: function(){
console.log('重新录制代码');
// CodingEditer.resetCodeMirrorValue(2);
},
playCode: function(){
console.log('播放代码');
$('#audio')[0].play();
CodingEditer.playCoding()
},
uploadAudio: function(){
console.log('uploadAudio');
},
saveCode: function(){
console.log('saveCode');
},
cancel: function(){
console.log('cancel');
}
};
// 编译结果
function compileResult(data, value) {
var runtimeArgus = value || '';
console.info('compileResult')
if (value != '') {
$('#cmprun-tabs a[href="#stdin"]').tab('show');
$('#stdin input').val(runtimeArgus);
}else{
return;
}
if (data.status == 200) {
$('#cmpinfo').html('<p class="text-warning">' + data.compilerInfo.replace(/\n/g, "<br />") + "</p>");
$('#stderr').html('<p class="text-danger">' + data.error.replace(/\n/g, "<br />") + "</p>");
$('#output').html('<p class="text-success">' + data.content.replace(/\n/g, "<br />") + "</p>");
if(data.compilerInfo.length){
$('#cmprun-tabs a[href="#cmpinfo"]').tab('show');
}else if(data.error.length){
$('#cmprun-tabs a[href="#stderr"]').tab('show');
}else if(data.content.length){
$('#cmprun-tabs a[href="#output"]').tab('show');
}
if(!data.compilerInfo.length){
$('#cmpinfo').prepend('<p class="alert alert-success"><i class="glyphicon glyphicon-ok-sign"></i> 编译已成功</p>');
}
}else if(data.status == 500){
$('#cmprun-tabs a[href="#stderr"]').tab('show');
$('#stderr').html('<p class="text-danger">' + data.error.replace(/\n/g, "<br />") + "</p>");
}else{
$('#cmpinfo').html('<p class="alert alert-danger"><i class="glyphicon glyphicon-exclamation-sign"></i> 请求失败 </p>');
$('#cmprun-tabs a[href="#cmpinfo"]').tab('show');
}
}
window.ToolBox = ToolBox;
})(window)