diff --git a/js/components/ascribe_media/media_player.js b/js/components/ascribe_media/media_player.js index 62bf23a9..a4c84513 100644 --- a/js/components/ascribe_media/media_player.js +++ b/js/components/ascribe_media/media_player.js @@ -3,6 +3,7 @@ import React from 'react'; import InjectInHeadMixin from '../../mixins/inject_in_head_mixin'; import Panel from 'react-bootstrap/lib/Panel'; +import ProgressBar from 'react-bootstrap/lib/ProgressBar'; import AppConstants from '../../constants/application_constants.js'; /** @@ -72,7 +73,7 @@ let Audio = React.createClass({ ready() { window.audiojs.events.ready(function() { - var as = audiojs.createAll(); + window.audiojs.createAll(); }); }, @@ -87,7 +88,8 @@ let Video = React.createClass({ propTypes: { preview: React.PropTypes.string.isRequired, url: React.PropTypes.string.isRequired, - extraData: React.PropTypes.array.isRequired + extraData: React.PropTypes.array.isRequired, + encodingStatus: React.PropTypes.number }, mixins: [InjectInHeadMixin], @@ -132,6 +134,24 @@ let Video = React.createClass({ }); +let EncodingStatus = React.createClass({ + propTypes: { + encodingStatus: React.PropTypes.number.isRequired + }, + + render() { + return ( + + ); + } +}); + + let resourceMap = { 'image': Image, 'video': Video, @@ -144,19 +164,30 @@ let MediaPlayer = React.createClass({ mimetype: React.PropTypes.oneOf(['image', 'video', 'audio', 'pdf', 'other']).isRequired, preview: React.PropTypes.string.isRequired, url: React.PropTypes.string.isRequired, - extraData: React.PropTypes.array + extraData: React.PropTypes.array, + encodingStatus: React.PropTypes.number }, render() { - let Component = resourceMap[this.props.mimetype] || Other; - - return ( -
- -
- ); + if (this.props.encodingStatus !== undefined && this.props.encodingStatus !== 100) { + return ( +
+

Please be patient, the video is been encoded

+ +
+ ); + } else { + let Component = resourceMap[this.props.mimetype] || Other; + return ( +
+ +
+ ); + } } }); diff --git a/js/components/edition.js b/js/components/edition.js index 3ed04fab..7a6de18c 100644 --- a/js/components/edition.js +++ b/js/components/edition.js @@ -7,7 +7,6 @@ import Row from 'react-bootstrap/lib/Row'; import Col from 'react-bootstrap/lib/Col'; import Button from 'react-bootstrap/lib/Button'; import Glyphicon from 'react-bootstrap/lib/Glyphicon'; -import CollapsibleMixin from 'react-bootstrap/lib/CollapsibleMixin'; import UserActions from '../actions/user_actions'; import UserStore from '../stores/user_store'; @@ -35,7 +34,6 @@ import GlobalNotificationActions from '../actions/global_notification_actions'; import apiUrls from '../constants/api_urls'; import AppConstants from '../constants/application_constants'; -import classNames from 'classnames'; import { getCookie } from '../utils/fetch_api_utils'; @@ -67,12 +65,10 @@ let Edition = React.createClass({ }, render() { - return ( - + @@ -152,6 +148,7 @@ let MediaContainer = React.createClass({ let mimetype = this.props.edition.digital_work.mime; let embed = null; let extraData = null; + let encodingStatus = this.props.edition.digital_work.isEncoding; if (this.props.edition.digital_work.encoding_urls) { extraData = this.props.edition.digital_work.encoding_urls.map(e => { return { url: e.url, type: e.label }; }); @@ -177,9 +174,10 @@ let MediaContainer = React.createClass({ return (
+ preview={thumbnail} + url={this.props.edition.digital_work.url} + extraData={extraData} + encodingStatus={encodingStatus} />