Skip to content
Snippets Groups Projects
collection_editor.js 3.39 KiB
Newer Older
  • Learn to ignore specific revisions
  • fcrisafulli-dev's avatar
    fcrisafulli-dev committed
    // import './login.css';
    
    import { Backdrop, Box, Button, CircularProgress, TextField, List, ListItem, ListItemButton, ListItemText, ListItemIcon, Select, MenuItem } from '@mui/material';
    
    fcrisafulli-dev's avatar
    fcrisafulli-dev committed
    import React, { useState, useEffect } from 'react'
    
    import { dbGetCollection, dbGetItems, dbUpdateCollectionGlob, dbUpdateCollectionSummary, dbUpdateCollectionSummaryNLTK, dbUpdateCollectionSummaryBERT } from './database_util';
    
    fcrisafulli-dev's avatar
    fcrisafulli-dev committed
    
    import AddIcon from '@mui/icons-material/Add';
    
    fcrisafulli-dev's avatar
    fcrisafulli-dev committed
    
    const CollectionEditor = (props) => {
    
    fcrisafulli-dev's avatar
    fcrisafulli-dev committed
        const [open, setOpen] = useState(false);
    
        const [summarizer, setSummarizer] = useState('');
    
    fcrisafulli-dev's avatar
    fcrisafulli-dev committed
    
    
        const updateGlob = (event) => {
            // console.log();
    
            let copy =  JSON.parse(JSON.stringify(props.collection))
    
            copy["collection_data"]["glob"] = event.target.value
    
            props.onCollectionUpdate(copy)
    
            // console.log(copy);
    
        }
    
    
    Tarek Shah's avatar
    Tarek Shah committed
        const summary_array = () => {
            return [["T5",props.collection["t5_summary"]], ["NLTK", props.collection["nltk_summary"]], ["BERT",props.collection["bert_summary"]]]
        }
    
        const generateSummary = async () => {
    
            setOpen(true);
            let id = props.collection["collection_id"]
    
    Tarek Shah's avatar
    Tarek Shah committed
            await dbUpdateCollectionSummary(id, summarizer);
            props.onCollectionUpdate(await dbGetCollection(id));
            setOpen(false);
    
    fcrisafulli-dev's avatar
    fcrisafulli-dev committed
        return (
            <Box>
    
    fcrisafulli-dev's avatar
    fcrisafulli-dev committed
                <h1>{props.collection["collection_name"]}</h1>
    
                <h3>Loaded Files</h3>
    
    fcrisafulli-dev's avatar
    fcrisafulli-dev committed
                
                <List sx={{boxShadow:1}}>
                {
                    props.loadedRawFiles.map((f) => {
                        return (
                            <ListItem>
                                <ListItemButton>
                                    <ListItemText>
    
    fcrisafulli-dev's avatar
    fcrisafulli-dev committed
                                        {f}
    
    fcrisafulli-dev's avatar
    fcrisafulli-dev committed
                                    </ListItemText>
                                </ListItemButton>
                            </ListItem>
                        );
                    })
                }
                </List>
    
                <List sx={{boxShadow:1}}>
                    <ListItem>
                        <ListItemText>
                            Please select which summarizer you would like to use to generate the summary
                        </ListItemText>
                        <Select 
                            value={summarizer} 
                            onChange={(e) => setSummarizer(e.target.value)} 
                            sx={{ width: "300px" }}
                        >
    
                            <MenuItem value="t5">T5 Summarizer</MenuItem>
                            <MenuItem value="nltk">NLTK Summarizer</MenuItem>
                            <MenuItem value="bert">BERT Summarizer</MenuItem>
    
                        </Select>
                    </ListItem>
                </List>
                <Button onClick={generateSummary}>Generate Summary</Button>
    
    Tarek Shah's avatar
    Tarek Shah committed
                {
                    summary_array().map((f) => {
                        return (
                            <div>
                                <h3>{f[0]}</h3>
                                <TextField disabled multiline maxRows={20} fullWidth label="Summary:" value={f[1]} />
                            </div>
                            
                        );
                    })
                }
                {/* {summaries.map((summary) => summary)} */}
    
    fcrisafulli-dev's avatar
    fcrisafulli-dev committed
    
                <Backdrop
                    open={open}
                >
                    <CircularProgress/>
                </Backdrop>
    
    fcrisafulli-dev's avatar
    fcrisafulli-dev committed
            </Box>
        );
    }
    
    export default CollectionEditor;