forked from instructure/canvas-lms
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUploadProgress.js
More file actions
79 lines (72 loc) · 2.64 KB
/
Copy pathUploadProgress.js
File metadata and controls
79 lines (72 loc) · 2.64 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
/*
* Copyright (C) 2015 - present Instructure, Inc.
*
* This file is part of Canvas.
*
* Canvas is free software: you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License as published by the Free
* Software Foundation, version 3 of the License.
*
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import React from 'react'
import I18n from 'i18n!react_files'
import classnames from 'classnames'
import UploadProgress from 'compiled/react_files/components/UploadProgress'
import ProgressBar from 'jsx/shared/ProgressBar'
import mimeClass from 'compiled/util/mimeClass'
UploadProgress.renderProgressBar = function () {
if (this.props.uploader.error) {
var errorMessage = (this.props.uploader.error.message) ?
I18n.t('Error: %{message}', {message: this.props.uploader.error.message}) :
I18n.t('Error uploading file.')
return (
<span>
{errorMessage}
<button type='button' className='btn-link' onClick={ () => this.props.uploader.upload()}>
{I18n.t('Retry')}
</button>
</span>
);
} else {
return <ProgressBar progress={this.props.uploader.roundProgress()} />
}
};
UploadProgress.render = function () {
var rowClassNames = classnames({
'ef-item-row': true,
'text-error': this.props.uploader.error
});
return (
<div className={rowClassNames}>
<div className='col-xs-6'>
<div className='media ellipsis'>
<span className='pull-left'>
<i className={`media-object mimeClass-${mimeClass(this.props.uploader.file.type)}`} />
</span>
<span className='media-body' ref='fileName'>
{this.props.uploader.getFileName()}
</span>
</div>
</div>
<div className='col-xs-5'>
{this.renderProgressBar()}
</div>
<button
type='button'
onClick={this.props.uploader.cancel}
aria-label={I18n.t('Cancel')}
className='btn-link upload-progress-view__button'
>
x
</button>
</div>
);
};
export default React.createClass(UploadProgress)