Skip to content
Snippets Groups Projects
collection_editor.js 3.31 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);
    
        }
    
    
        const generateSummary = async () => {
    
            setOpen(true);
            let id = props.collection["collection_id"]
    
            if (summarizer === "T5 Summarizer") {
                await dbUpdateCollectionSummary(id)
            } else if (summarizer === "BERT Summarizer") {
                await dbUpdateCollectionSummaryBERT(id)
            } else if (summarizer === "NLTK Summarizer") {
                await dbUpdateCollectionSummaryNLTK(id)
            }
            // await dbUpdateCollectionSummaryBERT(id)
    
            console.log(id,props.collection)
            props.onCollectionUpdate(await dbGetCollection(id))
            setOpen(false);
        }
    
    
    fcrisafulli-dev's avatar
    fcrisafulli-dev committed
    
        // console.log("loadedRawFiles", props.loadedRawFiles)
    
    
    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 Summarizer">T5 Summarizer</MenuItem>
                            <MenuItem value="NLTK Summarizer">NLTK Summarizer</MenuItem>
                            <MenuItem value="BERT Summarizer">BERT Summarizer</MenuItem>
                        </Select>
                    </ListItem>
                </List>
    
    fcrisafulli-dev's avatar
    fcrisafulli-dev committed
                <h3>Generated Summary:</h3>
    
                <TextField disabled multiline maxRows={20} fullWidth label="Summary:" value={props.collection["t5_summary"]}/>
    
                <Button onClick={generateSummary}>Generate Summary</Button>
    
    fcrisafulli-dev's avatar
    fcrisafulli-dev committed
    
                <Backdrop
                    open={open}
                >
                    <CircularProgress/>
                </Backdrop>
    
    fcrisafulli-dev's avatar
    fcrisafulli-dev committed
            </Box>
        );
    }
    
    export default CollectionEditor;