|
- import { h, Component } from 'preact';
- import WBTable from 'wb-table';
- import WBNameAndUuid from 'wb-name-and-uuid';
- import wbFetchObjects from 'wb-fetch-objects';
- import wbFormatDate from 'wb-format-date';
-
- class WBToolboxDialog extends Component {
- constructor(...args) {
- super(...args);
- this.state.rows = [];
- }
-
- componentDidMount() {
- this.fetchRows();
- }
-
- componentWillReceiveProps(nextProps) {
- this.props = nextProps;
- this.fetchRows();
- }
-
- fetchRows() {
- const { items } = this.props;
- const { arvHost, arvToken } = this.props.app.state;
- let prom = wbFetchObjects(arvHost, arvToken,
- items);
- let lookup;
- prom = prom.then(lkup => (lookup = lkup));
- prom = prom.then(() => wbFetchObjects(arvHost, arvToken,
- items.map(uuid => lookup[uuid].owner_uuid)));
- let ownerLookup;
- prom = prom.then(lkup => (ownerLookup = lkup));
- prom = prom.then(() => {
- const rows = items.map(uuid => {
- const it = lookup[uuid];
- const ow = ownerLookup[it.owner_uuid];
- return [
- ( <div><input type="checkbox" /></div> ),
- ( <WBNameAndUuid uuid={ uuid } lookup={ lookup } /> ),
- it.kind,
- wbFormatDate(it.created_at),
- ( <WBNameAndUuid uuid={ it.owner_uuid } lookup={ ownerLookup } /> )
- ];
- });
- this.setState({ rows });
- });
- }
-
- render({ id }, { rows }) {
- return (
- <div class="modal" id={ id } tabindex="-1" role="dialog">
- <div class="modal-dialog modal-lg" role="document">
- <div class="modal-content">
- <div class="modal-header">
- <h5 class="modal-title">Browse Toolbox</h5>
- <button type="button" class="close" data-dismiss="modal" aria-label="Close">
- <span aria-hidden="true">×</span>
- </button>
- </div>
-
- <div class="modal-body">
- <WBTable columns={ [ '', 'Name', 'Kind', 'Created At', 'Owner' ] }
- rows={ rows } />
- </div>
-
- <div class="modal-footer">
- <button type="button" class="btn btn-primary">Accept</button>
- <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
- </div>
- </div>
- </div>
- </div>
- );
- }
- }
-
- export default WBToolboxDialog;
|