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
; } // (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}
Name: {bigscreen.name}