import { h, Component } from 'preact'; import WBTable from 'wb-table'; import makeArvadosRequest from 'make-arvados-request'; import arvadosTypeName from 'arvados-type-name'; import arvadosObjectName from 'arvados-object-name'; import urlForObject from 'url-for-object'; import wbFormatDate from 'wb-format-date'; import WBNameAndUuid from 'wb-name-and-uuid'; import WBAccordion from 'wb-accordion'; import wbFormatSpecialValue from 'wb-format-special-value'; import WBJsonViewer from 'wb-json-viewer'; class WBCollectionFields extends Component { componentDidMount() { this.prepareRows(); } componentWillReceiveProps(nextProps) { this.props = nextProps; this.prepareRows(); } prepareRows() { let { uuid, app } = this.props; let { arvHost, arvToken } = app.state; const filters = [ ['uuid', '=', uuid] ]; let prom = makeArvadosRequest(arvHost, arvToken, '/arvados/v1/collections?filters=' + encodeURIComponent(JSON.stringify(filters))); prom = prom.then(xhr => { const item = xhr.response.items[0]; if (!item) throw Error('Item not found'); let rows = [ [ 'Name', item.name ], [ 'Description', wbFormatSpecialValue(item.description) ], [ 'Properties', ( ) ], [ 'Portable Data Hash', item.portable_data_hash ], [ 'Replication Desired', item.replication_desired ? item.replication_desired : ( { String(item.replication_desired) } ) ], [ 'Replication Confirmed', item.replication_confirmed ? item.replication_confirmed : ( { String(item.replication_confirmed) } ) ], [ 'Replication Confirmed At', wbFormatDate(item.replication_confirmed_at) ], [ 'Trash At', wbFormatDate(item.trash_at) ], [ 'Delete At', wbFormatDate(item.delete_at) ], [ 'Is Trashed', String(item.is_trashed) ], [ 'Current Version UUID', ( ) ], [ 'Version', item.version ], [ 'Preserve Version', String(item.preserve_version) ], [ 'File Count', item.file_count ], [ 'Total Size', filesize(item.file_size_total) ] ]; this.setState({ 'rows': rows }); }); } render({}, { rows }) { return ( rows ? ( ) : (
Loading...
) ); } } export default WBCollectionFields;