/* * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. * Copyright © 2017-2018 Amdocs * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= */ import React, {Component} from 'react'; import { PropTypes } from 'prop-types'; import Pagination from 'react-bootstrap/lib/Pagination'; import Table from 'react-bootstrap/lib/Table'; const MAX_PAGE_LINKS = 5; export default class PaginatedTable extends Component { static propTypes = { tableHeaders: PropTypes.object, tableData: PropTypes.array, activePage: PropTypes.number, pageCount: PropTypes.number, onPageIndexSelected: PropTypes.func, paginationClass: PropTypes.string, tableClass: PropTypes.string, displayHeader: PropTypes.bool, maxPaginationLinks: PropTypes.number } static defaultProps = { tableHeaders: '', tableData: [], activePage: 1, pageCount: 1, displayHeader: true, maxPaginationLinks: MAX_PAGE_LINKS, tableClass: 'table table-striped table-bordered table-condensed' }; render() { let {tableHeaders, tableData, activePage, pageCount, onPageIndexSelected, paginationClass, maxPaginationLinks, tableClass, displayHeader} = this.props; let paginationClasses = (pageCount > 1) ? paginationClass : paginationClass + ' hidden'; let header = []; let indexForKeys = 0; let createIndexForKey = () => { indexForKeys = indexForKeys + 1; let newIndex = indexForKeys; return newIndex; }; if (displayHeader) { let tableColumns = []; for (var columnName in tableHeaders) { tableColumns.push( {tableHeaders[columnName].name} ); } header.push( {tableColumns} ); } return (
{header} { tableData.map((rowData) => { let tableRow = []; for (var columnName in tableHeaders) { let columnClassName = ''; if(tableHeaders[columnName].hasOwnProperty('className')){ columnClassName = tableHeaders[columnName].className; } tableRow.push( ); } return ( {tableRow} ); })}
{rowData[columnName]}
onPageIndexSelected(event)} activePage={activePage}/>
); } }