import React from 'react'; import superagent from 'superagent'; import constants from '../CloudApi/Constants.js'; import MoviesTVWrapper from './MoviesTVWrapper.jsx'; import { Accordion, Segment, Dropdown, Grid, Header, Form, Image, Message, Icon, Button, Table, Divider} from 'semantic-ui-react' export default class MediaItemEditor extends React.Component { constructor(props) { super(props); this.state = { loading: false, mediaItem: { title: "", type: "MOVIE", locationCodes: ["us"], isStereo: false, stereoPacking: "Off", stereoWidth: "Full" }, cdnInfo: null }; let cdns = [ "Brightcove_v1", "Youtube", "PlutoTV", "BigscreenTestDRM" ]; this.cdns = cdns.map(cdn => { return {"key": cdn, "value": cdn, "text": cdn}}); } async componentDidMount() { if (this.props.match.params.mediaItemId) { this.setState({ loading: true }); const res = await superagent.get(`/api/admin/media/item/${this.props.match.params.mediaItemId}`).accept('json'); this.setState({ mediaItem: res.body, loading: false }); await this.loadCDNData(); } } async loadCDNData() { if (this.state.mediaItem.cdn && this.state.mediaItem.cdnId) { this.setState({ cdnInfo: null, loading: true }); try { const res = await superagent.get(`/api/admin/media/cdn/${this.state.mediaItem.cdn}/${this.state.mediaItem.cdnId}`).accept('json'); this.setState({ cdnInfo: res.body, loading: false }); } catch (e) { console.log(e); this.setState({ loading: false }); } } } async onSaveMediaItem() { this.setState({ loading: true }); if (this.state.mediaItem.id) { const res = await superagent.put(`/api/admin/media/item`).send(this.state.mediaItem); this.setState({ loading: false }); } else { const res = await superagent.post(`/api/admin/media/item`).send(this.state.mediaItem); this.setState({ mediaItem: res.body, loading: false }); } } async onCDNInfoChanged(e, { name, value }) { const mediaItem = this.state.mediaItem; mediaItem[name] = value; this.setState({ mediaItem }); await this.loadCDNData(); } async onChange(e, { name, value }) { const mediaItem = this.state.mediaItem; mediaItem[name] = value; this.setState({ mediaItem }); } render() { if (!this.state.mediaItem) { return
; } // () let onStereoChanged = function(e, { name, value }) { if (value === 0) { this.state.mediaItem.isStereo = false; this.state.mediaItem.stereoPacking = "None"; } else if (value === 1) { this.state.mediaItem.isStereo = true; this.state.mediaItem.stereoPacking = "LeftRight"; } else if (value === 2) { this.state.mediaItem.isStereo = true; this.state.mediaItem.stereoPacking = "OverUnder"; } this.setState({ mediaItem: this.state.mediaItem }); } // const renderSettings = (
) let cdnInfo = (
) if (this.state.cdnInfo && this.state.cdnInfo.brightcove) { const brightcove = this.state.cdnInfo.brightcove; cdnInfo = (
CDN Data

Created At: {brightcove.created_at}

Name: {brightcove.name}

State: {brightcove.state}

Duration: {brightcove.duration ? (brightcove.duration / 1000.0) : 0} seconds

Original Filename: {brightcove.original_filename}

) } else if (this.state.cdnInfo && this.state.cdnInfo.bigscreen) { const bigscreen = this.state.cdnInfo.bigscreen; cdnInfo = (
CDN Data

Name: {bigscreen.name}

) } if (this.state.mediaItem) { return ( {(!this.state.mediaItem.id) &&
Create Media Item
} {(this.state.mediaItem.id) &&
Edit Media Item
}
{(this.state.mediaItem.id) && }
CDN Settings
{cdnInfo}
Render Settings
{renderSettings} {(!this.state.mediaItem.id) &&