diff --git a/package-lock.json b/package-lock.json index 08f60021cefc50d7342430c248044ca112cc818e..068e9de629934d11ae42711f3069da3abccecfec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4000,9 +4000,9 @@ }, "dependencies": { "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.2.tgz", + "integrity": "sha512-DnBDwcL54b5xWMM/7RfFg4xs5amYxq2ot49aUfLjQSAracXkGvlZq0txzqr3Pa6Q0ayuCxBcwTzrPUScKY0O8w==" } } }, @@ -19721,9 +19721,9 @@ } }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.2.tgz", + "integrity": "sha512-DnBDwcL54b5xWMM/7RfFg4xs5amYxq2ot49aUfLjQSAracXkGvlZq0txzqr3Pa6Q0ayuCxBcwTzrPUScKY0O8w==" } } }, @@ -21309,8 +21309,7 @@ }, "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + "resolved": "" }, "yallist": { "version": "3.1.1", @@ -21339,6 +21338,13 @@ "which-module": "^2.0.0", "y18n": "^3.2.1", "yargs-parser": "^9.0.2" + }, + "dependencies": { + "y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + } } }, "yargs-parser": { diff --git a/src/Admin/Components/Components/Inputs/EditUser.js b/src/Admin/Components/Components/Inputs/EditUser.js index 1dadf1b4f6367c975ea280184916d353a0cc2fbd..73a42e96bf77ee04eb29cefc25ba18c305b91cf0 100644 --- a/src/Admin/Components/Components/Inputs/EditUser.js +++ b/src/Admin/Components/Components/Inputs/EditUser.js @@ -291,10 +291,9 @@ const EditUser = ({ match }) => { deleteRequest( `/users/${userId}`, (data) => { - if(data.errors) + if (data.errors) HandleSnack("Erro!", true, "warning", "#FA8072"); - else - { + else { HandleSnack(`${name} deletado com sucesso!`, true, "success", "#228B22"); history.push("/admin/usersList") } @@ -329,7 +328,7 @@ const EditUser = ({ match }) => { if (data.id) HandleSnack(`O usuário: ${name} foi atualizado`, true, 'success', '#228B22') else { - if(data.errors){ + if (data.errors) { HandleSnack(`${data.errors[0]}`, true, 'warning', '#FA8072') } if (data.email) { @@ -381,12 +380,14 @@ const EditUser = ({ match }) => { body, (data) => { setIsLoading(false) - if (data.id) - { + if (data.id) { HandleSnack(`O usuário: ${name} foi criado`, true, 'success', '#228B22') history.push("/admin/usersList") } else { + if (data.errors) { + HandleSnack(`${data.errors[0]}`, true, 'warning', '#FA8072') + } if (data.password) { let passError = ""; data.password.map((msg) => ( @@ -453,9 +454,9 @@ const EditUser = ({ match }) => { const currRolesList = [...rolesList]; const auxiliarRolesId = [ 1, 2, 3, 4, 5, 6, 7, 9, 10, 11 - ] - for (let i = 0; i < data.roles.length; i++) { - const rol = data.roles[i]; + ] + for (let i = 0; i < data.roles.length; i++) { + const rol = data.roles[i]; const index = auxiliarRolesId.indexOf(rol.id); currRolesList.splice(index, 1); auxiliarRolesId.splice(index, 1); diff --git a/src/Admin/Pages/Pages/SubPages/AproveTeacher.js b/src/Admin/Pages/Pages/SubPages/AproveTeacher.js index f6517d1ece3638202a335ae99f9154357678758a..7ff0da907971b862b013b526cdcac01e9739c19f 100644 --- a/src/Admin/Pages/Pages/SubPages/AproveTeacher.js +++ b/src/Admin/Pages/Pages/SubPages/AproveTeacher.js @@ -152,6 +152,22 @@ const AproveTeacher = () => { setEmailValue(e.target.value) }; + const removeItemFromList = (itemId) => { + let index = -1; + for (let i = 0; i < items.length; i++) { + const element = items[i]; + if (element.id === itemId) { + index = i + break + } + } + if (index !== -1) { + const cpyItems = [...items] + cpyItems.splice(index, 1) + setItems(cpyItems) + } + } + const ComplaintStatus = (status) => { switch (status) { case "accepted": @@ -238,6 +254,7 @@ const AproveTeacher = () => { "#228B22" ); setCurrPage(0) + removeItemFromList(userId) } }, (error) => { @@ -264,6 +281,7 @@ const AproveTeacher = () => { "#228B22" ); setCurrPage(0) + removeItemFromList(userId) } }, (error) => { diff --git a/src/Admin/Pages/Pages/SubPages/EducationalObjects.js b/src/Admin/Pages/Pages/SubPages/EducationalObjects.js index b2046260e5d7bf2b669d81cebb8aec4672f00778..1467f26b28c6bf1f14290fb63c26a5f3a4b135b6 100644 --- a/src/Admin/Pages/Pages/SubPages/EducationalObjects.js +++ b/src/Admin/Pages/Pages/SubPages/EducationalObjects.js @@ -155,7 +155,7 @@ const EducationalObjects = () => { const id = deleteItem.id; HandleStateAlertDialog(null); deleteRequest( - DeleteFilter("institutions", id), + DeleteFilter("learning_objects", id), (data) => { if (data.errors) HandleSnack("Ocorreu algum erro", true, "warning", "#FA8072"); @@ -168,6 +168,7 @@ const EducationalObjects = () => { ); setCurrPage(0) HandleStateCircularProgress(null); + removeItemFromList(id) } }, (error) => { @@ -177,6 +178,22 @@ const EducationalObjects = () => { ) } + const removeItemFromList = (itemId) => { + let index = -1; + for (let i = 0; i < items.length; i++) { + const element = items[i]; + if (element.id === itemId) { + index = i + break + } + } + if (index !== -1) { + const cpyItems = [...items] + cpyItems.splice(index, 1) + setItems(cpyItems) + } + } + const DisplayDate = (date) => { const convertedData = moment.utc(date); return moment(convertedData) @@ -307,6 +324,15 @@ const EducationalObjects = () => { }) } /> + <AlertDialog + open={openAlertDialog} + OnDelete={DeleteHandler} + deleteItem={deleteItem} + HandleClose={() => { + setOpenAlertDialog(false); + HandleStateCircularProgress(null); + }} + /> {/************** Start of the header **************/} <Paper style={{ padding: "1em" }}> <Grid container spacing={3} direction="row" alignItems="center"> @@ -431,6 +457,21 @@ const EducationalObjects = () => { title: "Score", subtitle: row.score }, + { + title: "Deletar", + subtitle: + <Button + variant="contained" + color="secondary" + onClick={() => { + HandleStateAlertDialog(index); + HandleStateCircularProgress(index); + }} + startIcon={<DeleteIcon />} + > + Deletar + </Button> + } ] } /> diff --git a/src/Admin/Pages/Pages/SubPages/Languages.js b/src/Admin/Pages/Pages/SubPages/Languages.js index 5c6c454ce1a6477f070baec5e7988bdc7a605c9f..c0ba74a95cd36dc59fca2f6a0e280bdd072e9848 100644 --- a/src/Admin/Pages/Pages/SubPages/Languages.js +++ b/src/Admin/Pages/Pages/SubPages/Languages.js @@ -113,6 +113,7 @@ const Languages = () => { ); setCurrPage(0) HandleStateCircularProgress(null); + removeItemFromList(id) } }, (error) => { @@ -132,6 +133,22 @@ const Languages = () => { setOpenAlertDialog(!openAlertDialog); }; + const removeItemFromList = (itemId) => { + let index = -1; + for (let i = 0; i < items.length; i++) { + const element = items[i]; + if (element.id === itemId) { + index = i + break + } + } + if (index !== -1) { + const cpyItems = [...items] + cpyItems.splice(index, 1) + setItems(cpyItems) + } + } + //getting data from server useEffect(() => { if (currPage === 0) @@ -188,7 +205,15 @@ const Languages = () => { color: '' })} /> - + <AlertDialog + open={openAlertDialog} + OnDelete={DeleteHandler} + deleteItem={deleteItem} + HandleClose={() => { + setOpenAlertDialog(false); + HandleStateCircularProgress(null); + }} + /> <Paper style={{ padding: '1em' }}> <Grid container spacing={3} direction="row" alignItems="center"> <Grid item xs={12}> @@ -274,6 +299,21 @@ const Languages = () => { subtitle: row.code }, + { + title: "Deletar", + subtitle: + <Button + variant="contained" + color="secondary" + onClick={() => { + HandleStateAlertDialog(index); + HandleStateCircularProgress(index); + }} + startIcon={<DeleteRoundedIcon />} + > + Deletar + </Button> + } ] } /> diff --git a/src/Admin/Pages/Pages/SubPages/NoteVariables.js b/src/Admin/Pages/Pages/SubPages/NoteVariables.js index b3d2e8bf0ce3ebee87ef27954da6fcf548c7273f..2c4f7bb9607253a6b3fb7090ba9d530653e9496e 100644 --- a/src/Admin/Pages/Pages/SubPages/NoteVariables.js +++ b/src/Admin/Pages/Pages/SubPages/NoteVariables.js @@ -132,7 +132,7 @@ const NoteVariables = () => { //Words in the top part of the table const topTable = ['ID', 'NOME', 'CÓDIGO', 'PESO', 'ATIVO', 'SCORE TYPE', 'VISUALIZAR']; - if (WINDOW_WIDTH <= 961) { + if (WINDOW_WIDTH <= 1000) { return ( <div> <SnackBar diff --git a/src/Admin/Pages/Pages/SubPages/Permissions.js b/src/Admin/Pages/Pages/SubPages/Permissions.js index 6873c1b54333be1c5ebe9782e94f9f4374217be0..5b0a672d9363c1e83fc10c0fdea228995a2863d9 100644 --- a/src/Admin/Pages/Pages/SubPages/Permissions.js +++ b/src/Admin/Pages/Pages/SubPages/Permissions.js @@ -111,6 +111,7 @@ const UserPermissions = () => { ); setCurrPage(0) HandleStateCircularProgress(null); + removeItemFromList(id) } }, (error) => { @@ -120,6 +121,22 @@ const UserPermissions = () => { ) } + const removeItemFromList = (itemId) => { + let index = -1; + for (let i = 0; i < items.length; i++) { + const element = items[i]; + if (element.id === itemId) { + index = i + break + } + } + if (index !== -1) { + const cpyItems = [...items] + cpyItems.splice(index, 1) + setItems(cpyItems) + } + } + const HandleStateCircularProgress = (i) => { setIsLoadingToDelete(i); }; diff --git a/src/Admin/Pages/Pages/SubPages/Questions.js b/src/Admin/Pages/Pages/SubPages/Questions.js index 70674a9a36a78a7c5083edb7c411df5f3b421687..0234ac0b31e0839b748f4aad1a42f4aa1b3b5dd6 100644 --- a/src/Admin/Pages/Pages/SubPages/Questions.js +++ b/src/Admin/Pages/Pages/SubPages/Questions.js @@ -35,8 +35,6 @@ import { Button, Typography, Paper, Grid } from '@material-ui/core'; import CircularProgress from '@material-ui/core/CircularProgress'; import AddRoundedIcon from '@material-ui/icons/AddRounded'; import UpdateRoundedIcon from '@material-ui/icons/UpdateRounded'; -import CheckCircleRoundedIcon from '@material-ui/icons/CheckCircleRounded'; -import CancelRoundedIcon from '@material-ui/icons/CancelRounded'; import Switch from '@material-ui/core/Switch'; //router import { Link } from 'react-router-dom'; @@ -109,6 +107,12 @@ const Questions = () => { return canUserEdit; } + const changeStateItem = (index, currState) => { + const copyItems = [...items] + copyItems[index].status = currState + setItems(copyItems) + } + const handleChange = async (index, status) => { const id = items[index].id; const description = items[index].description; @@ -126,6 +130,8 @@ const Questions = () => { if (data.errors) HandleSnack('Erro ao carregar os dados', true, 'warning', '#FA8072') else { + HandleSnack('Question modificada com sucesso', true, 'success', '#228B22') + changeStateItem(index, "inactive") setCurrPage(0) } }, @@ -148,6 +154,8 @@ const Questions = () => { HandleSnack('Erro ao carregar os dados', true, 'warning', '#FA8072') else { setCurrPage(0) + HandleSnack('Question modificada com sucesso', true, 'success', '#228B22') + changeStateItem(index, "active") } }, (error) => { @@ -308,35 +316,20 @@ const Questions = () => { title: "Status", subtitle: row.status === 'active' ? - <Grid container direction='row'> - <Grid item> - <CheckCircleRoundedIcon style={{ fill: '#3CB371' }} /> - - <Switch - checked={true} - onChange={() => handleChange(index, row.status)} - name="checkedB" - color="primary" - /> - </Grid> - </Grid> - + <Switch + checked={true} + onChange={() => handleChange(index, row.status)} + name="checkedB" + color="primary" + /> : - <Grid container justify='flex-end' alignItems='center' direction='row'> - <Grid item> - <CancelRoundedIcon style={{ fill: '#FA8072' }} /> - </Grid> - - <Grid item> - <Switch - checked={false} - onChange={() => handleChange(index, row.status)} - name="checkedB" - color="primary" - /> - </Grid> - </Grid> + <Switch + checked={false} + onChange={() => handleChange(index, row.status)} + name="checkedB" + color="primary" + /> }, { title: "Atualizado em", @@ -449,35 +442,20 @@ const Questions = () => { <StyledTableCell align="right"> { row.status === 'active' ? - <Grid container direction='row'> - <Grid item> - <CheckCircleRoundedIcon style={{ fill: '#3CB371' }} /> - - <Switch - checked={true} - onChange={() => handleChange(index, row.status)} - name="checkedB" - color="primary" - /> - </Grid> - </Grid> - + <Switch + checked={true} + onChange={() => handleChange(index, row.status)} + name="checkedB" + color="primary" + /> : - <Grid container justify='flex-end' alignItems='center' direction='row'> - <Grid item> - <CancelRoundedIcon style={{ fill: '#FA8072' }} /> - </Grid> - - <Grid item> - <Switch - checked={false} - onChange={() => handleChange(index, row.status)} - name="checkedB" - color="primary" - /> - </Grid> - </Grid> + <Switch + checked={false} + onChange={() => handleChange(index, row.status)} + name="checkedB" + color="primary" + /> } </StyledTableCell> <StyledTableCell align="right">{DisplayDate(row.updated_at)}</StyledTableCell> diff --git a/src/Admin/Pages/Pages/SubPages/Rating.js b/src/Admin/Pages/Pages/SubPages/Rating.js index b59d1d6164c15c7fe3fd545fafb63cac5ebe0d01..6d1725d9314b4360d36316b23a0c5950059afc65 100644 --- a/src/Admin/Pages/Pages/SubPages/Rating.js +++ b/src/Admin/Pages/Pages/SubPages/Rating.js @@ -113,6 +113,7 @@ const Ratings = () => { ); setCurrPage(0) HandleStateCircularProgress(null); + removeItemFromList(id) } }, (error) => { @@ -122,6 +123,22 @@ const Ratings = () => { ) } + const removeItemFromList = (itemId) => { + let index = -1; + for (let i = 0; i < items.length; i++) { + const element = items[i]; + if (element.id === itemId) { + index = i + break + } + } + if (index !== -1) { + const cpyItems = [...items] + cpyItems.splice(index, 1) + setItems(cpyItems) + } + } + const HandleStateCircularProgress = (i) => { setIsLoadingToDelete(i); }; @@ -191,6 +208,15 @@ const Ratings = () => { color: '' })} /> + <AlertDialog + open={openAlertDialog} + OnDelete={DeleteHandler} + deleteItem={deleteItem} + HandleClose={() => { + setOpenAlertDialog(false); + HandleStateCircularProgress(null); + }} + /> <Paper style={{ padding: '1em' }}> <Grid container spacing={3} direction="row" alignItems="center"> <Grid item xs={12}> @@ -274,6 +300,21 @@ const Ratings = () => { { title: "Descrição", subtitle: row.description + }, + { + title: "Deletar", + subtitle: + <Button + variant="contained" + color="secondary" + onClick={() => { + HandleStateAlertDialog(index); + HandleStateCircularProgress(index); + }} + startIcon={<DeleteRoundedIcon />} + > + Deletar + </Button> } ] } diff --git a/src/Admin/Pages/Pages/SubPages/Users.js b/src/Admin/Pages/Pages/SubPages/Users.js index 942147128b6f78e91dd52ba7e2a56928aeb87b73..75a2b016921f030806c061eee20372956573911a 100644 --- a/src/Admin/Pages/Pages/SubPages/Users.js +++ b/src/Admin/Pages/Pages/SubPages/Users.js @@ -120,6 +120,25 @@ const Users = () => { return false; } + const pushPublisherRole = (userId) => { + let index = -1; + for (let i = 0; i < items.length; i++) { + const element = items[i]; + if (element.id === userId) { + index = i + break + } + } + if (index !== -1) { + const cpyItems = [...items] + cpyItems[index].roles.push({ + id: 10, + name: "publisher" + }) + setItems(cpyItems) + } + } + const turnUserPublisher = (userRoles, userId) => { let roles_ids = []; userRoles.map((role) => ( @@ -140,6 +159,7 @@ const Users = () => { } else { HandleSnack(`O usuário ${userId}, agora é publicador`, true, 'success', '#228B22') + pushPublisherRole(userId) setCurrPage(0) } },