Skip to content

Commit 22b7730

Browse files
committed
Merge pull request #80 from meilixie/js-sdk-upload-cancel
add upload cancel
2 parents bc934aa + 138ad33 commit 22b7730

File tree

7 files changed

+54
-17
lines changed

7 files changed

+54
-17
lines changed

.travis.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
language: node_js
2+
node_js:
3+
- "0.12"
4+
- "iojs"
5+
- "iojs-v1.0.4"

demo/js/main.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ $(function() {
3535
plupload.each(files, function(file) {
3636
var progress = new FileProgress(file, 'fsUploadProgress');
3737
progress.setStatus("等待...");
38+
progress.bindUploadCancel(up);
3839
});
3940
},
4041
'BeforeUpload': function(up, file) {
@@ -43,12 +44,14 @@ $(function() {
4344
if (up.runtime === 'html5' && chunk_size) {
4445
progress.setChunkProgess(chunk_size);
4546
}
47+
progress.bindUploadCancel(up);
4648
},
4749
'UploadProgress': function(up, file) {
4850
var progress = new FileProgress(file, 'fsUploadProgress');
4951
var chunk_size = plupload.parseSize(this.getOption('chunk_size'));
50-
5152
progress.setProgress(file.percent + "%", file.speed, chunk_size);
53+
progress.bindUploadCancel(up);
54+
5255
},
5356
'UploadComplete': function() {
5457
$('#success').show();
@@ -58,11 +61,11 @@ $(function() {
5861
progress.setComplete(up, info);
5962
},
6063
'Error': function(up, err, errTip) {
61-
$('table').show();
62-
var progress = new FileProgress(err.file, 'fsUploadProgress');
63-
progress.setError();
64-
progress.setStatus(errTip);
65-
}
64+
$('table').show();
65+
var progress = new FileProgress(err.file, 'fsUploadProgress');
66+
progress.setError();
67+
progress.setStatus(errTip);
68+
}
6669
// ,
6770
// 'Key': function(up, file) {
6871
// var key = "";

demo/js/qiniu.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,7 @@ function QiniuJsSDK() {
440440
});
441441

442442
uploader.bind('UploadProgress', function(up, file) {
443+
443444
// 计算速度
444445

445446
speedCalInfo.currentTime = new Date().getTime();

demo/js/ui.js

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ function FileProgress(file, targetID) {
3232
var progressBarWrapper = $("<div/>");
3333
progressBarWrapper.addClass("progress progress-striped");
3434

35-
3635
var progressBar = $("<div/>");
3736
progressBar.addClass("progress-bar progress-bar-info")
3837
.attr('role', 'progressbar')
@@ -44,22 +43,18 @@ function FileProgress(file, targetID) {
4443
var progressBarPercent = $('<span class=sr-only />');
4544
progressBarPercent.text(fileSize);
4645

47-
48-
var progressCancel = $('<a href=# />');
49-
progressCancel.hide().addClass('progressCancel').text('');
50-
46+
var progressCancel = $('<a href=javascript:; />');
47+
progressCancel.show().addClass('progressCancel').text('×');
5148

5249
progressBar.append(progressBarPercent);
5350
progressBarWrapper.append(progressBar);
5451
progressBarBox.append(progressBarWrapper);
5552
progressBarBox.append(progressCancel);
5653

57-
5854
var progressBarStatus = $('<div class="status text-center"/>');
5955
progressBarBox.append(progressBarStatus);
6056
progressBarTd.append(progressBarBox);
6157

62-
6358
Wrappeer.append(progressText);
6459
Wrappeer.append(progressSize);
6560
Wrappeer.append(progressBarTd);
@@ -141,6 +136,7 @@ FileProgress.prototype.setProgress = function(percentage, speed, chunk_size) {
141136
if (file.status !== plupload.DONE && percentage === 100) {
142137
percentage = 99;
143138
}
139+
144140
progressbar.attr('aria-valuenow', percentage).css('width', percentage + '%');
145141

146142
if (chunk_size) {
@@ -187,7 +183,8 @@ FileProgress.prototype.setProgress = function(percentage, speed, chunk_size) {
187183
};
188184

189185
FileProgress.prototype.setComplete = function(up, info) {
190-
var td = this.fileProgressWrapper.find('td:eq(2) .progress');
186+
var td = this.fileProgressWrapper.find('td:eq(2)'),
187+
tdProgress = td.find('.progress');
191188

192189
var res = $.parseJSON(info);
193190
var url;
@@ -203,7 +200,8 @@ FileProgress.prototype.setComplete = function(up, info) {
203200
"<div class=hash><strong>Hash:</strong>" + res.hash + "</div>";
204201
}
205202

206-
td.html(str).removeClass().next().next('.status').hide();
203+
tdProgress.html(str).removeClass().next().next('.status').hide();
204+
td.find('.progressCancel').hide();
207205

208206
var progressNameTd = this.fileProgressWrapper.find('.progressName');
209207
var imageView = '?imageView2/1/w/100/h/100';
@@ -360,7 +358,9 @@ FileProgress.prototype.setCancelled = function(manual) {
360358
progressContainer += ' red';
361359
}
362360
this.fileProgressWrapper.attr('class', progressContainer);
363-
this.fileProgressWrapper.find('td .progress .progress-bar-info').css('width', 0);
361+
this.fileProgressWrapper.find('td .progress').remove();
362+
this.fileProgressWrapper.find('td:eq(2) .btn-default').hide();
363+
this.fileProgressWrapper.find('td:eq(2) .progressCancel').hide();
364364
};
365365

366366
FileProgress.prototype.setStatus = function(status, isUploading) {
@@ -369,6 +369,21 @@ FileProgress.prototype.setStatus = function(status, isUploading) {
369369
}
370370
};
371371

372+
// 绑定取消上传事件
373+
FileProgress.prototype.bindUploadCancel = function(up) {
374+
var self = this;
375+
if (up) {
376+
377+
self.fileProgressWrapper.find('td:eq(2) .progressCancel').on('click', function(){
378+
self.setCancelled(false);
379+
self.setStatus("取消上传");
380+
self.fileProgressWrapper.find('.status').css('left', '0');
381+
up.removeFile(self.file);
382+
return true;
383+
});
384+
}
385+
386+
};
372387

373388
FileProgress.prototype.appear = function() {
374389
if (this.getTimer() !== null) {

demo/main.css

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ h1 .view_code {
5050
position: relative;
5151
height: 100%;
5252
}
53+
tr .progress{
54+
width: 96%;
55+
display: inline-block;
56+
}
5357
tr .progress-bar {
5458
min-height: 20px;
5559
float: none;
@@ -63,6 +67,14 @@ tr .progress .chunk-status {
6367
left: 24px;
6468
top: 0;
6569
}
70+
tr .progressCancel{
71+
display: inline-block;
72+
float: right;
73+
position: relative;
74+
z-index: 100;
75+
color: #333;
76+
text-decoration: none;
77+
}
6678
.status {
6779
position: absolute;
6880
width: 100%;

src/qiniu.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,7 @@ function QiniuJsSDK() {
440440
});
441441

442442
uploader.bind('UploadProgress', function(up, file) {
443+
443444
// 计算速度
444445

445446
speedCalInfo.currentTime = new Date().getTime();

src/qiniu.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)