This commit is contained in:
“spicecat” 2022-08-18 17:02:05 -04:00
commit f4228ad22e
5 changed files with 17 additions and 14 deletions

View file

@ -5,7 +5,7 @@ import { AnswerForm } from 'controllers/FormControllers';
export default function CreateAnswer({ canAnswer, show, toggleShow }) { export default function CreateAnswer({ canAnswer, show, toggleShow }) {
return ( return (
<div> <div style = {{display : 'inline'}}>
<Tooltip <Tooltip
title={ title={
canAnswer canAnswer

View file

@ -14,15 +14,16 @@ export default function Suggest(){
useEffect(()=>{ useEffect(()=>{
setCanSuggest(userData.level >= 7) setCanSuggest(userData.level >= 7)
if(ongoingEdit.users.length > 0)setCanSuggest((userData.username !== ongoingEdit.users[0]))
if(!questionData.loading) setOngoingEdit({users : questionData.edit, new : questionData.editText}) if(!questionData.loading) setOngoingEdit({users : questionData.edit, new : questionData.editText})
},[userData, questionData, setCanSuggest]) },[userData, questionData, setCanSuggest])
async function toggleShow(){ async function toggleShow(){
if(questionData.edit.length === 0){ if(questionData.edit.length === 0 || userData.username !== ongoingEdit.users[0]){
setShow(!show) setShow(!show)
}else{ }else{
const { status } = await editQuestion(questionData.question_id); const { status } = await editQuestion(questionData.question_id);
window.location.reload(false);
} }
} }
@ -30,7 +31,7 @@ export default function Suggest(){
return ( return (
<div> <div style = {{display : 'inline', marginLeft : '10px'}}>
<Tooltip <Tooltip
title= { title= {
canSuggest canSuggest
@ -53,10 +54,10 @@ export default function Suggest(){
{ongoingEdit.users.length > 0 && {ongoingEdit.users.length > 0 &&
<Card> <Card>
<CardContent> <CardContent>
<Markdown {...{content: ongoingEdit.new[0]}}/> New Title: <Markdown {...{content: ongoingEdit.new[1]}}/>
<Markdown {...{content: ongoingEdit.new[1]}}/> New Text: <Markdown {...{content: ongoingEdit.new[0]}}/>
</CardContent> </CardContent>
<Typography> {ongoingEdit.users} have voted to edit the question </Typography> <Typography> {ongoingEdit.users} has voted to edit the question </Typography>
</Card> </Card>
} }

View file

@ -2,7 +2,7 @@
import { Form } from 'controllers/FormControllers'; import { Form } from 'controllers/FormControllers';
import { generateEditFields } from 'services/fields'; import { generateEditFields } from 'services/fields';
import { editQuestion } from 'services/questionsServices'; import { editQuestion } from 'services/questionsServices';
import { questionSchema } from 'services/schemas'; import { editSchema } from 'services/schemas';
import { useQuestion } from 'contexts'; import { useQuestion } from 'contexts';
export default function EditFormController() { export default function EditFormController() {
@ -22,7 +22,7 @@ export default function EditFormController() {
return !questionData.loading && Form({ return !questionData.loading && Form({
fields: field, fields: field,
onSubmit: editTheQuestion, onSubmit: editTheQuestion,
validationSchema: questionSchema, validationSchema: editSchema,
initialValues: {etext : text, etitle : title} initialValues: {etext : text, etitle : title}
}); });
} }

View file

@ -119,4 +119,5 @@ export {
registerSchema, registerSchema,
resetSchema, resetSchema,
searchSchema, searchSchema,
editSchema
}; };

View file

@ -8,7 +8,7 @@ async function EditQuestionStatusClosed(req, res) {
const { user } = req; const { user } = req;
const { question_id } = req.params; const { question_id } = req.params;
const { etext, etitle } = req.body; const { etext, etitle } = req.body;
let eObj = [etext, etitle]
// Verify user has required level // Verify user has required level
if (getUserLevel(user.points) < 7) { if (getUserLevel(user.points) < 7) {
return res.status(403).send(config.errorForbidden); return res.status(403).send(config.errorForbidden);
@ -25,7 +25,7 @@ async function EditQuestionStatusClosed(req, res) {
} }
await Question.findByIdAndUpdate(question_id, { await Question.findByIdAndUpdate(question_id, {
editText: etext, editText: eObj,
$push: { edit: user.username }, $push: { edit: user.username },
}); });
@ -48,13 +48,14 @@ async function EditQuestionStatusClosed(req, res) {
if (question.edit.length === 2) { if (question.edit.length === 2) {
const question = await Question.findByIdAndUpdate(question_id, { const question = await Question.findByIdAndUpdate(question_id, {
edit: [], edit: [],
etext, eObj,
etitle
}); });
const { success } = await createRequest('patch', `/questions/${question_id}`, { const { success } = await createRequest('patch', `/questions/${question_id}`, {
etext, etext,
etitle eObj
}); });
return success return success