build_app
This commit is contained in:
parent
c8fb24e4d2
commit
31a22ce9d5
|
@ -69,6 +69,9 @@ public class BuilderService {
|
|||
executeDump(true);
|
||||
|
||||
// ADD OTHER SERVICE
|
||||
addCustomMenu( "Forma", "Transcations");
|
||||
|
||||
|
||||
|
||||
System.out.println("dashboard and menu inserted...");
|
||||
|
||||
|
|
|
@ -0,0 +1,90 @@
|
|||
package com.realnet.basicp1.Controllers;
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||
import com.fasterxml.jackson.databind.JsonMappingException;
|
||||
import com.realnet.config.EmailService;
|
||||
import com.realnet.users.entity1.AppUser;
|
||||
import com.realnet.users.service1.AppUserServiceImpl;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.beans.factory.annotation.*;
|
||||
import com.realnet.basicp1.Entity.Forma;
|
||||
import com.realnet.basicp1.Services.FormaService ;
|
||||
@RequestMapping(value = "/Forma")
|
||||
@CrossOrigin("*")
|
||||
@RestController
|
||||
public class FormaController {
|
||||
@Autowired
|
||||
private FormaService Service;
|
||||
|
||||
@Value("${projectPath}")
|
||||
private String projectPath;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@PostMapping("/Forma")
|
||||
public Forma Savedata(@RequestBody Forma data) {
|
||||
Forma save = Service.Savedata(data) ;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
System.out.println("data saved..." + save);
|
||||
|
||||
return save;
|
||||
}
|
||||
@PutMapping("/Forma/{id}")
|
||||
public Forma update(@RequestBody Forma data,@PathVariable Integer id ) {
|
||||
Forma update = Service.update(data,id);
|
||||
System.out.println("data update..." + update);
|
||||
return update;
|
||||
}
|
||||
// get all with pagination
|
||||
@GetMapping("/Forma/getall/page")
|
||||
public Page<Forma> getall(@RequestParam(value = "page", required = false) Integer page,
|
||||
@RequestParam(value = "size", required = false) Integer size) {
|
||||
Pageable paging = PageRequest.of(page, size);
|
||||
Page<Forma> get = Service.getAllWithPagination(paging);
|
||||
|
||||
return get;
|
||||
|
||||
}
|
||||
@GetMapping("/Forma")
|
||||
public List<Forma> getdetails() {
|
||||
List<Forma> get = Service.getdetails();
|
||||
return get;
|
||||
}
|
||||
// get all without authentication
|
||||
|
||||
@GetMapping("/token/Forma")
|
||||
public List<Forma> getallwioutsec() {
|
||||
List<Forma> get = Service.getdetails();
|
||||
return get;
|
||||
}
|
||||
@GetMapping("/Forma/{id}")
|
||||
public Forma getdetailsbyId(@PathVariable Integer id ) {
|
||||
Forma get = Service.getdetailsbyId(id);
|
||||
return get;
|
||||
}
|
||||
@DeleteMapping("/Forma/{id}")
|
||||
public void delete_by_id(@PathVariable Integer id ) {
|
||||
Service.delete_by_id(id);
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
package com.realnet.basicp1.Entity;
|
||||
import lombok.*;
|
||||
import com.realnet.WhoColumn.Extension;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Entity
|
||||
@Data
|
||||
public class Forma extends Extension {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Integer id;
|
||||
|
||||
private String namemm;
|
||||
|
||||
private int percentagemm;
|
||||
|
||||
private String recaptchamm;
|
||||
|
||||
private String documentss;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package com.realnet.basicp1.Repository;
|
||||
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
import java.util.*;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
import com.realnet.basicp1.Entity.Forma;
|
||||
|
||||
@Repository
|
||||
public interface FormaRepository extends JpaRepository<Forma, Integer> {
|
||||
}
|
|
@ -0,0 +1,85 @@
|
|||
package com.realnet.basicp1.Services;
|
||||
import com.realnet.basicp1.Repository.FormaRepository;
|
||||
import com.realnet.basicp1.Entity.Forma;import java.util.List;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import com.realnet.SequenceGenerator.Service.SequenceService;
|
||||
import com.realnet.Notification.Entity.NotificationService;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import com.realnet.users.service1.AppUserServiceImpl;
|
||||
import com.realnet.users.entity1.AppUser;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class FormaService {
|
||||
@Autowired
|
||||
private FormaRepository Repository;
|
||||
@Autowired
|
||||
private AppUserServiceImpl userService;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Autowired
|
||||
private SequenceService documentsssequenceService;
|
||||
|
||||
public Forma Savedata(Forma data) {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
data.setDocumentss (documentsssequenceService.GenerateSequence("kk"));
|
||||
|
||||
Forma save = Repository.save(data);
|
||||
return save;
|
||||
}
|
||||
|
||||
|
||||
// get all with pagination
|
||||
public Page<Forma> getAllWithPagination(Pageable page) {
|
||||
return Repository.findAll(page);
|
||||
}
|
||||
public List<Forma> getdetails() {
|
||||
return (List<Forma>) Repository.findAll();
|
||||
}
|
||||
|
||||
|
||||
public Forma getdetailsbyId(Integer id) {
|
||||
return Repository.findById(id).get();
|
||||
}
|
||||
|
||||
|
||||
public void delete_by_id(Integer id) {
|
||||
Repository.deleteById(id);
|
||||
}
|
||||
|
||||
|
||||
public Forma update(Forma data,Integer id) {
|
||||
Forma old = Repository.findById(id).get();
|
||||
old.setNamemm(data.getNamemm());
|
||||
|
||||
old.setPercentagemm(data.getPercentagemm());
|
||||
|
||||
old.setRecaptchamm(data.getRecaptchamm());
|
||||
|
||||
old.setDocumentss(data.getDocumentss());
|
||||
|
||||
final Forma test = Repository.save(old);
|
||||
return test;}
|
||||
public AppUser getUser() {
|
||||
AppUser user = userService.getLoggedInUser();
|
||||
return user;
|
||||
|
||||
}}
|
|
@ -0,0 +1,2 @@
|
|||
CREATE TABLE db.Forma(id BIGINT NOT NULL AUTO_INCREMENT, documentss VARCHAR(400), Namemm VARCHAR(400), Percentagemm VARCHAR(400), recaptchamm VARCHAR(400), PRIMARY KEY (id));
|
||||
|
|
@ -1,3 +1,5 @@
|
|||
import Forma from "./components/BuilderComponents/basicp1/Forma/Forma";
|
||||
|
||||
import React from "react";
|
||||
import { Routes, Route } from "react-router-dom";
|
||||
import { BrowserRouter as Router } from 'react-router-dom';
|
||||
|
@ -41,6 +43,9 @@ const App = () => {
|
|||
|
||||
|
||||
{/* buildercomponents */}
|
||||
<Route path="/Forma" element={<Forma />} />
|
||||
|
||||
|
||||
|
||||
|
||||
</Routes>
|
||||
|
|
|
@ -0,0 +1,581 @@
|
|||
import React, { useEffect, useState ,useRef } from "react";
|
||||
import axios from "axios";
|
||||
import {
|
||||
Button,
|
||||
Dialog,
|
||||
Autocomplete,
|
||||
DialogActions,
|
||||
DialogContent,
|
||||
DialogTitle,
|
||||
Snackbar,
|
||||
Alert,
|
||||
Typography,
|
||||
TextField,
|
||||
Table,
|
||||
TableBody,
|
||||
TableCell,
|
||||
TableContainer,
|
||||
TableHead,
|
||||
TableRow,
|
||||
CardMedia,
|
||||
Card,
|
||||
LinearProgress,
|
||||
Grid,
|
||||
Container,
|
||||
TablePagination,
|
||||
Paper,
|
||||
IconButton,
|
||||
InputAdornment
|
||||
} from "@mui/material";
|
||||
import Radio from '@mui/material/Radio';
|
||||
import RadioGroup from '@mui/material/RadioGroup';
|
||||
import FormControlLabel from '@mui/material/FormControlLabel';
|
||||
import FormControl from '@mui/material/FormControl';
|
||||
import FormLabel from '@mui/material/FormLabel';
|
||||
|
||||
import FormGroup from '@mui/material/FormGroup';
|
||||
import Checkbox from '@mui/material/Checkbox';
|
||||
|
||||
import InputLabel from '@mui/material/InputLabel';
|
||||
import MenuItem from '@mui/material/MenuItem';
|
||||
import Select from '@mui/material/Select';
|
||||
|
||||
import Box from '@mui/material/Box';
|
||||
import OutlinedInput from '@mui/material/OutlinedInput';
|
||||
import Chip from '@mui/material/Chip';
|
||||
|
||||
import { makeStyles } from '@mui/styles';
|
||||
import { QRCode } from "react-qrcode-logo";
|
||||
import Barcode from "react-barcode";
|
||||
import { ToastContainer, toast } from "react-toastify";
|
||||
import "react-toastify/dist/ReactToastify.css";
|
||||
import ReCAPTCHA from 'react-google-recaptcha';
|
||||
import SearchIcon from '@mui/icons-material/Search';
|
||||
|
||||
const API_URL = `${process.env.REACT_APP_API_BASE_URL}/Forma/Forma`;
|
||||
const token = localStorage.getItem("authToken");
|
||||
// Custom styles using makeStyles
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
tableHeader: {
|
||||
backgroundColor: "#000000",
|
||||
color: "#ffffff",
|
||||
},
|
||||
searchContainer: {
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
marginBottom: theme.spacing(2),
|
||||
},
|
||||
searchInput: {
|
||||
marginRight: theme.spacing(2),
|
||||
flex: 1,
|
||||
},
|
||||
tableContainer: {
|
||||
marginTop: theme.spacing(2),
|
||||
},
|
||||
dialogContent: {
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
gap: theme.spacing(2),
|
||||
},
|
||||
formControl: {
|
||||
marginBottom: theme.spacing(2),
|
||||
},
|
||||
button: {
|
||||
margin: theme.spacing(1),
|
||||
},
|
||||
}));
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
const EntityTable = () => {
|
||||
const classes = useStyles();
|
||||
const [data, setData] = useState([]);
|
||||
const [filteredData, setFilteredData] = useState([]);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
const [newEntity, setNewEntity] = useState({
|
||||
namemm: "",
|
||||
|
||||
percentagemm: "",
|
||||
|
||||
recaptchamm: "",
|
||||
|
||||
documentss: "",
|
||||
|
||||
});
|
||||
const [editEntity, setEditEntity] = useState(null);
|
||||
const [showEditModal, setShowEditModal] = useState(false);
|
||||
const [showAddModal, setShowAddModal] = useState(false);
|
||||
const [showDeleteModal, setShowDeleteModal] = useState(false);
|
||||
const [deleteEntityId, setDeleteEntityId] = useState(null);
|
||||
const [currentPage, setCurrentPage] = useState(0);
|
||||
const [itemsPerPage] = useState(5); // Adjust this value as needed
|
||||
const [searchQuery, setSearchQuery] = useState("");
|
||||
const [openSnackbar, setOpenSnackbar] = useState(false);
|
||||
const [snackbarMessage, setSnackbarMessage] = useState("");
|
||||
const [qrText, setQrText] = useState("");
|
||||
const [showQrCode, setShowQrCode] = useState(false);
|
||||
const qrCodeRef = useRef();
|
||||
const [barcodeText, setBarcodeText] = useState("");
|
||||
const barcodeRef = useRef();
|
||||
const [showBarcode, setShowBarcode] = useState(false);
|
||||
const [captchaValue, setCaptchaValue] = useState(null);
|
||||
const [alertMessage, setAlertMessage] = useState("");
|
||||
const [showPaymentOptions, setShowPaymentOptions] = useState(false);
|
||||
const [uploadProgress, setUploadProgress] = useState(0);
|
||||
const [serverData, setServerData] = useState([]);
|
||||
const [showValulistModal, setShowValulistModal] = useState(false);
|
||||
const [snackbarSeverity, setSnackbarSeverity] = useState("success");
|
||||
|
||||
const handlePageChange = (event, newPage) => {
|
||||
setCurrentPage(newPage);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
fetchData();
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
handleSearch();
|
||||
}, [searchQuery, data]);
|
||||
|
||||
const fetchData = async () => {
|
||||
try {
|
||||
const response = await axios.get(API_URL, {
|
||||
headers: { Authorization: `Bearer ${token}` },
|
||||
});
|
||||
setData(response.data);
|
||||
} catch (error) {
|
||||
console.error("Error fetching data:", error);
|
||||
}
|
||||
};
|
||||
|
||||
const handleDelete = async () => {
|
||||
try {
|
||||
await axios.delete(`${API_URL}/${deleteEntityId}`, {
|
||||
headers: { Authorization: `Bearer ${token}` },
|
||||
});
|
||||
fetchData();
|
||||
setSnackbarMessage("Successfully deleted!");
|
||||
setSnackbarSeverity("success");
|
||||
setOpenSnackbar(true);
|
||||
setShowDeleteModal(false);
|
||||
} catch (error) {
|
||||
console.error("Error deleting data:", error);
|
||||
setSnackbarMessage("Failed to delete!");
|
||||
setSnackbarSeverity("error");
|
||||
setOpenSnackbar(true);
|
||||
}
|
||||
};
|
||||
|
||||
const handleAdd = async () => {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
try {
|
||||
await axios.post(API_URL, newEntity, {
|
||||
headers: { Authorization: `Bearer ${token}` },
|
||||
});
|
||||
fetchData();
|
||||
setNewEntity({
|
||||
namemm: "",
|
||||
|
||||
percentagemm: "",
|
||||
|
||||
recaptchamm: "",
|
||||
|
||||
documentss: "",
|
||||
|
||||
});
|
||||
setShowAddModal(false);
|
||||
setSnackbarMessage("Successfully added!");
|
||||
setSnackbarSeverity("success");
|
||||
setOpenSnackbar(true);
|
||||
} catch (error) {
|
||||
console.error("Error adding data:", error);
|
||||
setSnackbarMessage("Failed to add!");
|
||||
setSnackbarSeverity("error");
|
||||
setOpenSnackbar(true);
|
||||
}
|
||||
};
|
||||
|
||||
const handleChange = (e) => {
|
||||
const { name, value } = e.target;
|
||||
setNewEntity({ ...newEntity, [name]: value });
|
||||
};
|
||||
|
||||
const handleChangeCheckbox = (e) => {
|
||||
const { name, value, checked } = e.target;
|
||||
setNewEntity({ ...newEntity, [value]: checked });
|
||||
};
|
||||
|
||||
const handleChangeSelectMulti = (e) => {
|
||||
const { name, value } = e.target;
|
||||
setNewEntity({ ...newEntity, [name]: String(value) });
|
||||
};
|
||||
|
||||
const handleEditChange = (e) => {
|
||||
const { name, value } = e.target;
|
||||
setEditEntity({ ...editEntity, [name]: value });
|
||||
};
|
||||
|
||||
const handleEdit = (entity) => {
|
||||
let requiredKeys = Object.keys(newEntity);
|
||||
let newObj = {};
|
||||
requiredKeys.forEach((key) => {
|
||||
newObj[key] = entity[key];
|
||||
});
|
||||
setEditEntity(entity);
|
||||
setNewEntity(newObj);
|
||||
setShowEditModal(true);
|
||||
};
|
||||
|
||||
const handleUpdate = async () => {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
try {
|
||||
await axios.put(`${API_URL}/${editEntity.id}`, newEntity, {
|
||||
headers: { Authorization: `Bearer ${token}` },
|
||||
});
|
||||
fetchData();
|
||||
setShowEditModal(false);
|
||||
setSnackbarMessage("Successfully updated!");
|
||||
setSnackbarSeverity("success");
|
||||
setOpenSnackbar(true);
|
||||
} catch (error) {
|
||||
console.error("Error updating data:", error);
|
||||
setSnackbarMessage("Failed to update!");
|
||||
setSnackbarSeverity("error");
|
||||
setOpenSnackbar(true);
|
||||
}
|
||||
};
|
||||
|
||||
const handleSearch = () => {
|
||||
const filtered = data;
|
||||
setFilteredData(filtered);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
const handleCaptchaChange = (value) => {
|
||||
console.log("Captcha value:", value);
|
||||
setCaptchaValue(value); // Set the captcha value
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
return (
|
||||
<div className="container mt-5">
|
||||
<Typography variant="h4" gutterBottom>
|
||||
Entity Table
|
||||
</Typography>
|
||||
<div className={classes.searchContainer}>
|
||||
<Button
|
||||
variant="contained"
|
||||
color="primary"
|
||||
onClick={() => {
|
||||
let emptyNewEntity = {};
|
||||
Object.keys(newEntity).forEach((key) => {
|
||||
emptyNewEntity[key] =
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
"";
|
||||
});
|
||||
setNewEntity(emptyNewEntity);
|
||||
setShowAddModal(true);
|
||||
}}
|
||||
className={classes.button}
|
||||
>
|
||||
Add Entity
|
||||
</Button>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<TextField
|
||||
className={classes.searchInput}
|
||||
label="Search"
|
||||
variant="outlined"
|
||||
size="small"
|
||||
value={searchQuery}
|
||||
onChange={(e) => setSearchQuery(e.target.value)}
|
||||
InputProps={{
|
||||
endAdornment: (
|
||||
<InputAdornment position="end">
|
||||
<IconButton>
|
||||
<SearchIcon />
|
||||
</IconButton>
|
||||
</InputAdornment>
|
||||
),
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<TableContainer component={Paper} className={classes.tableContainer}>
|
||||
<Table>
|
||||
<TableHead>
|
||||
<TableRow >
|
||||
<th>namemm</th>
|
||||
|
||||
<th>percentagemm</th>
|
||||
|
||||
<th>recaptchamm</th>
|
||||
|
||||
<th>documentss</th>
|
||||
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{filteredData.slice(currentPage * itemsPerPage, (currentPage + 1) * itemsPerPage).map((entity) => (
|
||||
<TableRow key={entity.id}>
|
||||
|
||||
<td>{entity.namemm}</td>
|
||||
|
||||
|
||||
|
||||
<td>{entity.percentagemm}</td>
|
||||
|
||||
|
||||
|
||||
<td>{entity.recaptchamm}</td>
|
||||
|
||||
|
||||
|
||||
<td>{entity.documentss}</td>
|
||||
|
||||
|
||||
<TableCell>
|
||||
<Button
|
||||
variant="contained"
|
||||
color="warning"
|
||||
size="small"
|
||||
className={classes.button}
|
||||
onClick={() => handleEdit(entity)}
|
||||
>
|
||||
Update
|
||||
</Button>
|
||||
<Button
|
||||
variant="contained"
|
||||
color="error"
|
||||
size="small"
|
||||
className={classes.button}
|
||||
onClick={() => {
|
||||
setDeleteEntityId(entity.id);
|
||||
setShowDeleteModal(true);
|
||||
}}
|
||||
>
|
||||
Delete
|
||||
</Button>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
<TablePagination
|
||||
rowsPerPageOptions={[5, 10, 25]}
|
||||
component="div"
|
||||
count={filteredData.length}
|
||||
rowsPerPage={itemsPerPage}
|
||||
page={currentPage}
|
||||
onPageChange={handlePageChange}
|
||||
/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<Dialog open={showEditModal} onClose={() => setShowEditModal(false)}>
|
||||
<DialogTitle>Edit Entity</DialogTitle>
|
||||
<DialogContent className={classes.dialogContent}>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<TextField
|
||||
fullWidth
|
||||
margin="normal"
|
||||
label="Namemm"
|
||||
variant="outlined"
|
||||
name="namemm"
|
||||
value={newEntity.namemm}
|
||||
onChange={handleChange}
|
||||
required
|
||||
/>
|
||||
|
||||
<TextField
|
||||
fullWidth
|
||||
margin="normal"
|
||||
label="Percentagemm"
|
||||
variant="outlined"
|
||||
type="number"
|
||||
name="percentagemm"
|
||||
value={newEntity.percentagemm}
|
||||
onChange={handleChange}
|
||||
required
|
||||
/>
|
||||
|
||||
<ReCAPTCHA
|
||||
sitekey="6LdzvMwpAAAAAHt6h_aZ6dPpT_qp0K3OjNWsY1A9"
|
||||
onChange={handleCaptchaChange}
|
||||
/>
|
||||
|
||||
|
||||
<TextField
|
||||
label="documentss"
|
||||
variant="outlined"
|
||||
fullWidth
|
||||
name="documentss"
|
||||
value={newEntity.documentss}
|
||||
onChange={handleChange}
|
||||
className={classes.formControl}
|
||||
/>
|
||||
|
||||
</DialogContent>
|
||||
<DialogActions>
|
||||
<Button onClick={() => setShowEditModal(false)} color="primary">
|
||||
Cancel
|
||||
</Button>
|
||||
<Button onClick={handleUpdate} color="primary">
|
||||
Update
|
||||
</Button>
|
||||
</DialogActions>
|
||||
</Dialog>
|
||||
<Dialog open={showAddModal} onClose={() => setShowAddModal(false)}>
|
||||
<DialogTitle>Add Entity</DialogTitle>
|
||||
<DialogContent className={classes.dialogContent}>
|
||||
<TextField
|
||||
fullWidth
|
||||
margin="normal"
|
||||
label="Namemm"
|
||||
variant="outlined"
|
||||
name="namemm"
|
||||
value={newEntity.namemm}
|
||||
onChange={handleChange}
|
||||
required
|
||||
/>
|
||||
|
||||
<TextField
|
||||
fullWidth
|
||||
margin="normal"
|
||||
label="Percentagemm"
|
||||
variant="outlined"
|
||||
type="number"
|
||||
name="percentagemm"
|
||||
value={newEntity.percentagemm}
|
||||
onChange={handleChange}
|
||||
required
|
||||
/>
|
||||
|
||||
<ReCAPTCHA
|
||||
sitekey="6LdzvMwpAAAAAHt6h_aZ6dPpT_qp0K3OjNWsY1A9"
|
||||
onChange={handleCaptchaChange}
|
||||
/>
|
||||
|
||||
|
||||
<TextField
|
||||
label="documentss"
|
||||
variant="outlined"
|
||||
fullWidth
|
||||
name="documentss"
|
||||
value={newEntity.documentss}
|
||||
onChange={handleChange}
|
||||
className={classes.formControl}
|
||||
/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</DialogContent>
|
||||
<DialogActions>
|
||||
<Button onClick={() => setShowAddModal(false)} color="primary">
|
||||
Cancel
|
||||
</Button>
|
||||
<Button onClick={handleAdd} color="primary">
|
||||
Add
|
||||
</Button>
|
||||
</DialogActions>
|
||||
</Dialog>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<Dialog open={showDeleteModal} onClose={() => setShowDeleteModal(false)}>
|
||||
<DialogTitle>Confirm Delete</DialogTitle>
|
||||
<DialogContent>
|
||||
<Typography>Are you sure you want to delete this entity?</Typography>
|
||||
</DialogContent>
|
||||
<DialogActions>
|
||||
<Button onClick={() => setShowDeleteModal(false)} color="primary">
|
||||
Cancel
|
||||
</Button>
|
||||
<Button onClick={handleDelete} color="primary">
|
||||
Delete
|
||||
</Button>
|
||||
</DialogActions>
|
||||
</Dialog>
|
||||
<Snackbar
|
||||
open={openSnackbar}
|
||||
autoHideDuration={6000}
|
||||
onClose={() => setOpenSnackbar(false)}
|
||||
>
|
||||
<Alert onClose={() => setOpenSnackbar(false)} severity={snackbarSeverity}>
|
||||
{snackbarMessage}
|
||||
</Alert>
|
||||
</Snackbar>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default EntityTable;
|
Loading…
Reference in New Issue