2015-06-01 11:51:03 +02:00
|
|
|
import React from 'react';
|
|
|
|
|
|
|
|
import EditionListStore from '../../stores/edition_list_store';
|
|
|
|
import EditionListActions from '../../actions/edition_list_actions';
|
|
|
|
|
|
|
|
import AccordionListItemTable from './accordion_list_item_table';
|
|
|
|
|
|
|
|
import TableColumnContentModel from '../../models/table_column_content_model';
|
|
|
|
|
|
|
|
import TableItemImg from '../ascribe_table/table_item_img';
|
|
|
|
import TableItemText from '../ascribe_table/table_item_text';
|
2015-06-01 14:10:11 +02:00
|
|
|
import TableItemCheckbox from '../ascribe_table/table_item_checkbox';
|
2015-06-01 13:18:24 +02:00
|
|
|
import TableItemAclFiltered from '../ascribe_table/table_item_acl_filtered';
|
2015-06-01 11:51:03 +02:00
|
|
|
|
2015-06-02 13:31:12 +02:00
|
|
|
import getLangText from '../../utils/lang_utils';
|
2015-06-01 18:20:15 +02:00
|
|
|
|
2015-06-01 11:51:03 +02:00
|
|
|
let AccordionListItemTableEditions = React.createClass({
|
|
|
|
|
|
|
|
propTypes: {
|
|
|
|
className: React.PropTypes.string,
|
2015-06-01 13:18:24 +02:00
|
|
|
parentId: React.PropTypes.number,
|
|
|
|
numOfEditions: React.PropTypes.number
|
2015-06-01 11:51:03 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
getInitialState() {
|
|
|
|
return EditionListStore.getState();
|
|
|
|
},
|
|
|
|
|
|
|
|
onChange(state) {
|
|
|
|
this.setState(state);
|
|
|
|
},
|
|
|
|
|
|
|
|
componentDidMount() {
|
|
|
|
EditionListStore.listen(this.onChange);
|
|
|
|
},
|
|
|
|
|
|
|
|
componentDidUnmount() {
|
|
|
|
EditionListStore.unlisten(this.onChange);
|
|
|
|
},
|
|
|
|
|
|
|
|
getEditionList() {
|
|
|
|
EditionListActions.fetchEditionList(this.props.parentId);
|
|
|
|
},
|
|
|
|
|
2015-06-01 14:10:11 +02:00
|
|
|
selectItem(pieceId, editionId) {
|
|
|
|
EditionListActions.selectEdition({pieceId, editionId});
|
|
|
|
},
|
2015-06-01 11:51:03 +02:00
|
|
|
|
2015-06-01 14:10:11 +02:00
|
|
|
render() {
|
2015-06-01 11:51:03 +02:00
|
|
|
let columnList = [
|
2015-06-01 14:10:11 +02:00
|
|
|
new TableColumnContentModel((item) => { return { 'editionId': item.id, 'pieceId': this.props.parentId, 'selectItem': this.selectItem, 'selected': item.selected }}, '', '', TableItemCheckbox, 1, false),
|
2015-06-01 18:20:15 +02:00
|
|
|
new TableColumnContentModel((item) => { return { 'content': item.edition_number }}, 'num_editions', '#', TableItemText, 1, false),
|
2015-06-02 13:31:12 +02:00
|
|
|
new TableColumnContentModel((item) => { return { 'content': item.bitcoin_id }}, 'bitcoin_id', getLangText('Bitcoin Address'), TableItemText, 5, false),
|
|
|
|
new TableColumnContentModel((item) => { return { 'content': item.acl }}, 'acl', getLangText('Actions'), TableItemAclFiltered, 4, false)
|
2015-06-01 11:51:03 +02:00
|
|
|
];
|
|
|
|
|
|
|
|
return (
|
|
|
|
<AccordionListItemTable
|
|
|
|
className={this.props.className}
|
|
|
|
parentId={this.props.parentId}
|
|
|
|
fetchData={this.getEditionList}
|
|
|
|
itemList={this.state.editionList[this.props.parentId]}
|
2015-06-01 13:18:24 +02:00
|
|
|
columnList={columnList}
|
|
|
|
numOfTableItems={this.props.numOfEditions} />
|
2015-06-01 11:51:03 +02:00
|
|
|
);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
export default AccordionListItemTableEditions;
|