import React from 'react'; import superagent from 'superagent'; import _ from 'lodash'; import { fromUnixTime, formatDistanceToNow, format } from "date-fns"; import { formatInTimeZone } from 'date-fns-tz' import constants, { DEFAULT_TIMEZONE } from '../CloudApi/Constants.js'; import MoviesTVWrapper from './MoviesTVWrapper.jsx'; import { Container, Segment, Grid, Header, Image, Icon, Button, Table, Form, Label, Message, Menu, Tab, Dropdown, Modal, Card, Divider} from 'semantic-ui-react' export default class MediaItems extends React.Component { constructor(props) { super(props); this.state = { loading: false, currentMediaItems: [], originaMediaItems: [], searchTerm: "" }; } async componentDidMount() { this.setState({ loading: true }); const res = await superagent.get(`/api/admin/media/items`).accept('json'); this.setState({ originaMediaItems: res.body, currentMediaItems: res.body, loading: false }); } onSearch(e, { name, value }) { e.preventDefault(); if (value.length >= 1) { const currentMediaItems = this.state.originaMediaItems.filter(mediaItem => _.toLower(mediaItem.title).includes(_.toLower(value))); this.setState({ currentMediaItems }); } else { if (this.state.currentMediaItems.length !== this.state.originaMediaItems.length) { this.setState({ currentMediaItems: this.state.originaMediaItems }); } } } onSorted(clickedColumn) { const { currentMediaItems, sortDirection } = this.state; const newSortDirection = sortDirection === 'ascending' ? 'descending' : 'ascending'; const sortedMediaItems = _.sortBy(currentMediaItems, [clickedColumn]); if (newSortDirection === "descending") { sortedMediaItems.reverse(); } this.setState({ currentMediaItems: sortedMediaItems, sortDirection: newSortDirection }); } onClickMediaItem(mediaItem, e) { this.props.history.push({pathname: `/cinema/media_item/${mediaItem.id}`}); } render() { return (
Title Type Content Delivery Rendering Duration Created At Tools {this.state.currentMediaItems.map(mediaItem => { let steroLabel = null; let stereoWidth = null; if (mediaItem.isStereo === false) { steroLabel = (); } else { if (mediaItem.stereoPacking === "LeftRight") { steroLabel = (); } else if (mediaItem.stereoPacking === "OverUnder") { steroLabel = (); } stereoWidth = () } const createdAt = formatInTimeZone(fromUnixTime(mediaItem.createdAt._seconds), DEFAULT_TIMEZONE, 'PPPp z'); const cdnOriginalFilename = (mediaItem.cdnDataSnapshot && mediaItem.cdnDataSnapshot.original_filename) ? mediaItem.cdnDataSnapshot.original_filename : null; const tempDuration = mediaItem.duration || 0; const hours = Math.floor(tempDuration / 3600000); const minutes = ((tempDuration - (hours * 3600000)) / 60000).toFixed(0); const duration = hours > 0 ? hours + "hr " + minutes + "min" : minutes + "min"; let isPositive = (hours === 0); return (
{mediaItem.title}
{mediaItem.cdnId}
{cdnOriginalFilename}
{steroLabel}{stereoWidth} {createdAt}
); })}
); } }