@@ -5,3 +5,7 @@ pre.word-wrap { | |||
white-space: -o-pre-wrap; /* Opera 7 */ | |||
word-wrap: break-word; /* Internet Explorer 5.5+ */ | |||
} | |||
.w-1 { | |||
width: 1px !important; | |||
} |
@@ -21,9 +21,11 @@ class WBCollectionListing extends Component { | |||
} | |||
prepareRows(items, ownerLookup) { | |||
let { app, renderRenameLink, renderDeleteButton } = this.props; | |||
let { app, renderRenameLink, renderDeleteButton, | |||
renderSelectionCell } = this.props; | |||
return items.map(item => [ | |||
renderSelectionCell(item), | |||
(<div> | |||
<div> | |||
<a href={ urlForObject(item) }> | |||
@@ -137,7 +139,8 @@ class WBCollectionListing extends Component { | |||
{ error } | |||
</div>) : null } | |||
<WBTable columns={ [ 'Name', 'Description', 'Owner', 'File Count', 'Total Size', 'Actions' ] } | |||
<WBTable columns={ [ '', 'Name', 'Description', 'Owner', 'File Count', 'Total Size', 'Actions' ] } | |||
headerClasses={ [ 'w-1'] } | |||
rows={ rows } /> | |||
<WBPagination numPages={ numPages } | |||
@@ -28,9 +28,11 @@ class WBProcessListing extends Component { | |||
} | |||
prepareRows(requests, containerLookup, ownerLookup, outputLookup) { | |||
const { app, renderRenameLink, renderDeleteButton } = this.props; | |||
const { app, renderRenameLink, renderDeleteButton, | |||
renderSelectionCell } = this.props; | |||
return requests.map(item => { | |||
return ( [ | |||
renderSelectionCell(item), | |||
(<div> | |||
<div> | |||
<a href={ '/process/' + item['uuid'] }> | |||
@@ -95,7 +97,8 @@ class WBProcessListing extends Component { | |||
cssClass="float-left mx-2 my-2" title="Request State: " | |||
onChange={ () => this.fetchItems() } /> | |||
<WBTable columns={ [ 'Name', 'Status', 'Owner', 'Created At', 'Output', 'Actions' ] } | |||
<WBTable columns={ [ '', 'Name', 'Status', 'Owner', 'Created At', 'Output', 'Actions' ] } | |||
headerClasses={ [ 'w-1' ] } | |||
rows={ rows } /> | |||
<WBPagination numPages={ numPages } | |||
@@ -17,9 +17,11 @@ class WBProjectListing extends Component { | |||
} | |||
prepareRows(items) { | |||
let { app, renderRenameLink, renderDeleteButton } = this.props; | |||
const { app, renderRenameLink, renderDeleteButton, | |||
renderSelectionCell } = this.props; | |||
return items.map(item => [ | |||
renderSelectionCell(item), | |||
(<div> | |||
<div> | |||
<a href="#" | |||
@@ -70,7 +72,8 @@ class WBProjectListing extends Component { | |||
render({ arvHost, arvToken, ownerUuid, activePage, getPageUrl }, { rows, numPages }) { | |||
return ( | |||
<div> | |||
<WBTable columns={ [ 'Name', 'Description', 'Owner', 'Actions' ] } | |||
<WBTable columns={ [ '', 'Name', 'Description', 'Owner', 'Actions' ] } | |||
headerClasses={ [ 'w-1' ] } | |||
rows={ rows } /> | |||
<WBPagination numPages={ numPages } | |||
@@ -84,7 +87,9 @@ class WBProjectListing extends Component { | |||
WBProjectListing.defaultProps = { | |||
'itemsPerPage': 100, | |||
'ownerUuid': null, | |||
'renderRenameLink': () => null | |||
'renderRenameLink': () => null, | |||
'renderDeleteButton': () => null, | |||
'renderSelectionCell': () => null | |||
}; | |||
export default WBProjectListing; |
@@ -21,8 +21,10 @@ class WBWorkflowListing extends Component { | |||
} | |||
prepareRows(items, ownerLookup) { | |||
const { renderRenameLink, renderDeleteButton } = this.props; | |||
const { renderRenameLink, renderDeleteButton, | |||
renderSelectionCell } = this.props; | |||
return items.map(item => [ | |||
renderSelectionCell(item), | |||
( | |||
<div> | |||
<div> | |||
@@ -78,7 +80,8 @@ class WBWorkflowListing extends Component { | |||
render({ app, ownerUuid, page, getPageUrl }, { rows, numPages }) { | |||
return ( | |||
<div> | |||
<WBTable columns={ [ 'Name', 'Description', 'Owner', 'Created At', 'Actions' ] } | |||
<WBTable columns={ [ '', 'Name', 'Description', 'Owner', 'Created At', 'Actions' ] } | |||
headerClasses={ [ 'w-1' ] } | |||
rows={ rows } /> | |||
<WBPagination numPages={ numPages } | |||
@@ -19,6 +19,7 @@ class WBBrowse extends Component { | |||
this.deleteDialogRef = createRef(); | |||
this.newProjectDialogRef = createRef(); | |||
this.projectListingRef = createRef(); | |||
this.state.selected = {}; | |||
} | |||
getUrl(params) { | |||
@@ -65,6 +66,22 @@ class WBBrowse extends Component { | |||
); | |||
} | |||
renderSelectionCell(item) { | |||
const { selected } = this.state; | |||
const { uuid } = item; | |||
return ( | |||
<div> | |||
<input type="checkbox" checked={ (uuid in selected) } | |||
onChange={ e => { | |||
if (e.target.value === 'on') | |||
selected[uuid] = true; | |||
else | |||
delete selected[uuid]; | |||
} } /> { '\u00A0' } | |||
</div> | |||
); | |||
} | |||
render({ mode, ownerUuid, activePage, app, | |||
objTypeTab, collectionPage, processPage, workflowPage }) { | |||
@@ -99,7 +116,8 @@ class WBBrowse extends Component { | |||
activePage={ Number(activePage || 0) } | |||
getPageUrl={ i => this.getUrl({ 'activePage': i }) } | |||
renderRenameLink={ (it, cb) => this.renderRenameLink(it, cb) } | |||
renderDeleteButton={ (it, cb) => this.renderDeleteButton(it, cb) } /> | |||
renderDeleteButton={ (it, cb) => this.renderDeleteButton(it, cb) } | |||
renderSelectionCell={ it => this.renderSelectionCell(it) } /> | |||
{ (mode !== 'browse') ? null : ( | |||
<WBTabs tabs={ [ | |||
@@ -118,7 +136,8 @@ class WBBrowse extends Component { | |||
activePage={ Number(collectionPage || 0) } | |||
getPageUrl={ i => this.getUrl({ 'collectionPage': i }) } | |||
renderRenameLink={ (it, cb) => this.renderRenameLink(it, cb) } | |||
renderDeleteButton={ (it, cb) => this.renderDeleteButton(it, cb) } /> | |||
renderDeleteButton={ (it, cb) => this.renderDeleteButton(it, cb) } | |||
renderSelectionCell={ it => this.renderSelectionCell(it) } /> | |||
) : (objTypeTab === 'process') ? ( | |||
<WBProcessListing app={ app } | |||
@@ -128,7 +147,8 @@ class WBBrowse extends Component { | |||
activePage={ Number(processPage || 0) } | |||
onPageChanged={ i => this.route({ 'processPage': i }) } | |||
renderRenameLink={ (it, cb) => this.renderRenameLink(it, cb) } | |||
renderDeleteButton={ (it, cb) => this.renderDeleteButton(it, cb) } /> | |||
renderDeleteButton={ (it, cb) => this.renderDeleteButton(it, cb) } | |||
renderSelectionCell={ it => this.renderSelectionCell(it) } /> | |||
) : (objTypeTab === 'workflow') ? ( | |||
<WBWorkflowListing app={ app } | |||
@@ -137,7 +157,8 @@ class WBBrowse extends Component { | |||
page={ Number(workflowPage || 0) } | |||
getPageUrl={ i => this.getUrl({ 'workflowPage': i }) } | |||
renderRenameLink={ (it, cb) => this.renderRenameLink(it, cb) } | |||
renderDeleteButton={ (it, cb) => this.renderDeleteButton(it, cb) } /> | |||
renderDeleteButton={ (it, cb) => this.renderDeleteButton(it, cb) } | |||
renderSelectionCell={ it => this.renderSelectionCell(it) } /> | |||
) : null | |||
} | |||