1
0
mirror of https://github.com/ascribe/onion.git synced 2025-02-14 21:10:27 +01:00

basically reverting media player changes

This commit is contained in:
Tim Daubenschütz 2015-07-15 11:47:14 +02:00
parent cc0301f5e5
commit a8dd915ad7
2 changed files with 37 additions and 29 deletions

View File

@ -14,13 +14,21 @@ import AclProxy from '../acl_proxy';
let MediaContainer = React.createClass({ let MediaContainer = React.createClass({
propTypes: { propTypes: {
digitalWork: React.PropTypes.object.isRequired, content: React.PropTypes.object
thumbnail: React.PropTypes.string
}, },
getEmbed() { render() {
if (['video', 'audio'].indexOf(mimetype) > -1) { let thumbnail = this.props.content.thumbnail;
return ( let mimetype = this.props.content.digital_work.mime;
let embed = null;
let extraData = null;
if (this.props.content.digital_work.encoding_urls) {
extraData = this.props.content.digital_work.encoding_urls.map(e => { return { url: e.url, type: e.label }; });
}
if (['video', 'audio'].indexOf(mimetype) > -1){
embed = (
<CollapsibleButton <CollapsibleButton
button={ button={
<Button bsSize="xsmall" className="ascribe-margin-1px"> <Button bsSize="xsmall" className="ascribe-margin-1px">
@ -36,35 +44,22 @@ let MediaContainer = React.createClass({
}/> }/>
); );
} }
},
render() {
if(!this.props.digitalWork) {
return null;
}
let extraData = null;
if (this.props.digitalWork.encoding_urls) {
extraData = this.props.digitalWork.encoding_urls.map(e => { return { url: e.url, type: e.label }; });
}
return ( return (
<div> <div>
<MediaPlayer <MediaPlayer
mimetype={this.props.digitalWork.mime} mimetype={mimetype}
preview={this.props.thumbnail} preview={thumbnail}
url={this.props.digitalWork.url} url={this.props.content.digital_work.url}
extraData={extraData} /> extraData={extraData} />
<p className="text-center"> <p className="text-center">
<AclProxy <AclProxy
aclObject={this.props.content.acl} aclObject={this.props.content.acl}
aclName="acl_download"> aclName="acl_download">
<Button bsSize="xsmall" className="ascribe-margin-1px" href={this.props.digitalWork.url} target="_blank"> <Button bsSize="xsmall" className="ascribe-margin-1px" href={this.props.content.digital_work.url} target="_blank">
Download <Glyphicon glyph="cloud-download"/> Download <Glyphicon glyph="cloud-download"/>
</Button> </Button>
</AclProxy> </AclProxy>
{this.getEmbed()} {embed}
</p> </p>
</div> </div>
); );

View File

@ -6,8 +6,12 @@ import Router from 'react-router';
import Row from 'react-bootstrap/lib/Row'; import Row from 'react-bootstrap/lib/Row';
import Col from 'react-bootstrap/lib/Col'; import Col from 'react-bootstrap/lib/Col';
import CollapsibleParagraph from './../ascribe_collapsible/collapsible_paragraph';
import DetailProperty from './detail_property'; import DetailProperty from './detail_property';
import FurtherDetails from './further_details';
import UserActions from '../../actions/user_actions'; import UserActions from '../../actions/user_actions';
import UserStore from '../../stores/user_store'; import UserStore from '../../stores/user_store';
@ -33,15 +37,13 @@ import GlobalNotificationActions from '../../actions/global_notification_actions
import { getLangText } from '../../utils/lang_utils'; import { getLangText } from '../../utils/lang_utils';
import { mergeOptions } from '../../utils/general_utils'; import { mergeOptions } from '../../utils/general_utils';
/** /**
* This is the component that implements display-specific functionality * This is the component that implements display-specific functionality
*/ */
let Piece = React.createClass({ let Piece = React.createClass({
propTypes: { propTypes: {
piece: React.PropTypes.object, piece: React.PropTypes.object,
loadPiece: React.PropTypes.func, loadPiece: React.PropTypes.func
children: React.PropTypes.object
}, },
mixins: [Router.Navigation], mixins: [Router.Navigation],
@ -126,8 +128,7 @@ let Piece = React.createClass({
<Row> <Row>
<Col md={6}> <Col md={6}>
<MediaContainer <MediaContainer
digitalWork={this.props.piece.digitalWork} content={this.props.piece}/>
thumbnail={this.props.piece.thumbnail}/>
</Col> </Col>
<Col md={6} className="ascribe-edition-details"> <Col md={6} className="ascribe-edition-details">
<div className="ascribe-detail-header"> <div className="ascribe-detail-header">
@ -158,8 +159,20 @@ let Piece = React.createClass({
</AclButtonList> </AclButtonList>
{this.getCreateEditionsDialog()} {this.getCreateEditionsDialog()}
{this.props.children}
<CollapsibleParagraph
title="Further Details"
show={this.props.piece.acl.acl_edit
|| Object.keys(this.props.piece.extra_data).length > 0
|| this.props.piece.other_data !== null}
defaultExpanded={true}>
<FurtherDetails
editable={this.props.piece.acl.acl_edit}
pieceId={this.props.piece.id}
extraData={this.props.piece.extra_data}
otherData={this.props.piece.other_data}
handleSuccess={this.props.loadPiece}/>
</CollapsibleParagraph>
</Col> </Col>
</Row> </Row>
); );