Hello, I have a react file that looks like this:
export default class ShareFilter extends Component {
constructor(props) {
super(props);
this.state = {
error: null,
isLoaded: false,
shareFilterRows: []
};
}
componentDidMount() {
fetch(AJS.contextPath() + "/rest/securityrestresource/1.0/results?check=ShareFilter")
.then((res)=>{
if(res.ok) {
return res.json();
}
}).then((res)=>{
this.setState({
isLoaded: true,
shareFilterRows: res.map((row, index) => ({
key: `row-${index}-${row.filterID}`,
cells: [{
key: `${row.filterID}`,
content: row.filterID,
},
{
key: `${row.author}`,
content: row.author,
},
{
key: `${row.filtername}`,
content: row.filtername,
},
{
key: `${row.jql}`,
content: row.jql,
},]}))
})
})
}
render() {
const { error, isLoaded, shareFilterRows } = this.state;
if (error) {
return <div>Error: {error.message}</div>;
} else if (!isLoaded) {
return <div>Loading Shared Filters...</div>;
} else {
return (<Wrapper>
<div>
<DynamicTable
head={shareFilterHead}
rows={shareFilterRows}
rowsPerPage={10}
defaultPage={1}
loadingSpinnerSize="large"
isLoading={false}
isFixedSize
defaultSortKey="filterID"
defaultSortOrder="ASC"
onSort={() => console.log('onSort')}
onSetPage={() => console.log('onSetPage')}
/>
</div>
</Wrapper>
);
}
}
}
I would like to download {ShareFilterRows} and {ShareFilterHead} as a .CSV file when I click on a button. The data is in JSON, I tried many open source libraries but I couldnt get it done:
import {shareFilterHead} from "./content/share-filter";
import {shareFilterRows} from "./content/share-filter";
import { ExportToCsv } from 'export-to-csv';
AJS.$(document).on("click", "#downloadShareFilterCheck", function(){
const csvExporter = new ExportToCsv(options);
csvExporter.generateCsv({shareFilterHead});
});
Do you have any ideas how to achieve that?
I'm not really following what you are trying to do, but if you are wanting to extract only certain elements from the JSON output, you can pipe it to jq and work with those elements very easily.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.