cpui-components
Version:
58 lines (51 loc) • 2.34 kB
Markdown
The CivicPlus Table
```js
const { Column } = require('../Column/Column.js')
const { CPTableTemplates } = require('./CPTable.js')
let nameTemplate = function(rowData, column) {
return <a href="#">{rowData.name}</a>;
};
let ownerTemplate = function(rowData, column) {
return <a href="#">{ rowData.owners.length > 3 ? rowData.owners.length + ' Owners' :
rowData.owners.join(', ') }</a>
};
let applicationTemplate = function(rowData, column) {
return <a href="#">{rowData.applications} Applications</a>
};
let actionsTemplate = function(rowData, column) {
return <ActionMenu id="orgActionMenu" options={[
{"text": "Modify", "url":"/Organization/" + row.Id },
{"text": "Groups", "url":"/Groups/" + row.Id }
]} />
};
let data = [];
for(var i = 0; i < 50; i++) {
var item1 = {
name: 'City of Manhattan' + i + ', KS',
owners: ['Bill Murray'],
applications: 2,
actions: ['Modify', 'Remove']
}
var item2 = {
name: 'Maricopa County' + i,
owners: ['Dan Aykroyd', 'Harold Ramis', 'Ernie Hudson'],
applications: 2,
actions: ['Modify', 'Remove']
}
var item3 = {
name: 'McKinney' + i + ', TX',
owners: ['Dan Aykroyd', 'Harold Ramis', 'Ernie Hudson', 'Bill Murray'],
applications: 0,
actions: ['Modify', 'Remove']
}
data.push(item1);
data.push(item2);
data.push(item3);
}
<CPTable value={data} sortField={'name'} sortOrder={1} paginator={true} rows={10}>
<Column key={'name'} field={'name'} body={nameTemplate} header={CPTableTemplates.headerTemplate} headerText={'Organization'} sortable={true} />
<Column key={'owners'} field={'owners'} body={ownerTemplate} header={CPTableTemplates.headerTemplate} headerText={'Owner'} sortable={true} className={'cp-ModuleManage-nextLevel'} />
<Column key={'applications'} field={'applications'} body={applicationTemplate} header={CPTableTemplates.headerTemplate} headerText={'Applications'} sortable={true} />
<Column key={'actions'} field={'actions'} body={actionsTemplate} header={CPTableTemplates.headerTemplate} headerText={'Actions'} className={'cp-Tbl-cell--actions'} />
</CPTable>
```