Skip to content
Snippets Groups Projects
Commit 4bd3954c authored by alec.schmidt's avatar alec.schmidt
Browse files

added logic for answers update

parent 9b034f34
Branches
No related tags found
No related merge requests found
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
<tr *ngFor="let answer of answers" class="border-b dark:border-neutral-500"> <tr *ngFor="let answer of answers" class="border-b dark:border-neutral-500">
<td class="whitespace-nowrap px-6 py-4">{{answer.text_answer}}</td> <td class="whitespace-nowrap px-6 py-4">{{answer.text_answer}}</td>
<td class="whitespace-nowrap px-6 py-4">{{answer.correct}}</td> <td class="whitespace-nowrap px-6 py-4">{{answer.correct}}</td>
<td><button class="bg-teal-200 w-fit border-2 border-teal-600 rounded-lg px-2 hover:bg-teal-400 mt-2">UPDATE</button></td> <td><button class="bg-teal-200 w-fit border-2 border-teal-600 rounded-lg px-2 hover:bg-teal-400 mt-2" (click)="showAnswerUpdateModal(answer)">UPDATE</button></td>
<td><button class="bg-red-400 w-fit border-2 border-red-600 rounded-lg px-2 hover:bg-red-300 mt-2" (click)="deleteAnswer(answer)">DELETE</button></td> <td><button class="bg-red-400 w-fit border-2 border-red-600 rounded-lg px-2 hover:bg-red-300 mt-2" (click)="deleteAnswer(answer)">DELETE</button></td>
</tr> </tr>
</tbody> </tbody>
...@@ -73,5 +73,7 @@ ...@@ -73,5 +73,7 @@
<div *ngIf="modalQuestionUpdate"> <div *ngIf="modalQuestionUpdate">
<app-update-question [question]="questionToEdit" (closeModal)="modalQuestionUpdate=false;"></app-update-question> <app-update-question [question]="questionToEdit" (closeModal)="modalQuestionUpdate=false;"></app-update-question>
</div> </div>
<div *ngIf="modalAnswerUpdate">
<app-update-answer [answer]="answerToEdit" (closeModal)="modalAnswerUpdate=false" ></app-update-answer>
</div>
</div> </div>
...@@ -20,6 +20,7 @@ export class AdminComponent implements OnInit { ...@@ -20,6 +20,7 @@ export class AdminComponent implements OnInit {
selectedQuestionID!: number; selectedQuestionID!: number;
userToEdit!: User; userToEdit!: User;
questionToEdit!: Question; questionToEdit!: Question;
answerToEdit!: Answer;
buttonCreateAnswer!: boolean; buttonCreateAnswer!: boolean;
...@@ -28,6 +29,7 @@ export class AdminComponent implements OnInit { ...@@ -28,6 +29,7 @@ export class AdminComponent implements OnInit {
modalQuestionCreate: boolean = false; modalQuestionCreate: boolean = false;
modalQuestionUpdate: boolean = false; modalQuestionUpdate: boolean = false;
modalAnswerCreate: boolean = false; modalAnswerCreate: boolean = false;
modalAnswerUpdate: boolean = false;
constructor( constructor(
private router: Router, private router: Router,
...@@ -87,4 +89,10 @@ export class AdminComponent implements OnInit { ...@@ -87,4 +89,10 @@ export class AdminComponent implements OnInit {
this.questionToEdit = question; this.questionToEdit = question;
this.modalQuestionUpdate = true; this.modalQuestionUpdate = true;
} }
showAnswerUpdateModal(answer: Answer) {
this.answerToEdit = answer;
this.modalAnswerUpdate = true;
}
} }
...@@ -14,6 +14,7 @@ import { UpdateUserComponent } from './user-shit/update-user/update-user.compone ...@@ -14,6 +14,7 @@ import { UpdateUserComponent } from './user-shit/update-user/update-user.compone
import { CreateQuestionComponent } from './question-shit/create-question/create-question.component'; import { CreateQuestionComponent } from './question-shit/create-question/create-question.component';
import { CreateAnswerComponent } from './question-shit/create-answer/create-answer.component'; import { CreateAnswerComponent } from './question-shit/create-answer/create-answer.component';
import { UpdateQuestionComponent } from './question-shit/update-question/update-question.component'; import { UpdateQuestionComponent } from './question-shit/update-question/update-question.component';
import { UpdateAnswerComponent } from './question-shit/update-answer/update-answer.component';
@NgModule({ @NgModule({
declarations: [ declarations: [
...@@ -25,7 +26,8 @@ import { UpdateQuestionComponent } from './question-shit/update-question/update- ...@@ -25,7 +26,8 @@ import { UpdateQuestionComponent } from './question-shit/update-question/update-
UpdateUserComponent, UpdateUserComponent,
CreateQuestionComponent, CreateQuestionComponent,
CreateAnswerComponent, CreateAnswerComponent,
UpdateQuestionComponent UpdateQuestionComponent,
UpdateAnswerComponent
], ],
imports: [ imports: [
BrowserModule, BrowserModule,
......
<div class="z-10 relative">
<div class="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"></div>
<div class="fixed inset-0 z-10 overflow-y-auto">
<div class="flex flex-col min-h-full justify-center p-4 text-center items-center sm:p-0">
<div class="relative transform overflow-hidden rounded-lg bg-white text-left shadow-xl transition-all sm:my-8 ">
<h1 class="mt-2 mx-2 font-bold">Update Answer</h1>
<form [formGroup]="updateAnswer" (ngSubmit)="onSubmit()" class="flex flex-col pb-2 mx-2">
<input class="border-b-4 mt-2 w-full" type="text" placeholder="Text" formControlName="answer">
<div class="my-2 border-b-4">
<label class="mt-2 w-fit">Correct</label><input class="ml-6" type="checkbox" formControlName="correct">
</div>
<div class="flex flex-row justify-between">
<button class="border-2 border-black rounded-lg px-2 hover:bg-gray-300 mt-2" type="submit">Update</button>
<button class="border-2 border-black rounded-lg px-2 hover:bg-gray-300 mt-2" (click)="closeModal.emit()">Close</button>
</div>
</form>
</div>
</div>
</div>
</div>
\ No newline at end of file
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { UpdateAnswerComponent } from './update-answer.component';
describe('UpdateAnswerComponent', () => {
let component: UpdateAnswerComponent;
let fixture: ComponentFixture<UpdateAnswerComponent>;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [UpdateAnswerComponent]
});
fixture = TestBed.createComponent(UpdateAnswerComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { FormControl, FormGroup, Validators } from '@angular/forms';
import { Answer } from 'src/app/Types/types';
import { QuestionsService } from 'src/app/services/questions.service';
@Component({
selector: 'app-update-answer',
templateUrl: './update-answer.component.html',
styleUrls: ['./update-answer.component.css']
})
export class UpdateAnswerComponent {
updateAnswer: FormGroup;
@Input() answer: Answer;
@Output() closeModal: EventEmitter<string> = new EventEmitter<string>();
constructor(private questionsController: QuestionsService) { }
ngOnInit(): void {
this.updateAnswer = new FormGroup({
answer: new FormControl(this.answer.text_answer, Validators.required),
correct: new FormControl(this.answer.correct, Validators.required)
});
}
onSubmit() {
const answer = this.updateAnswer.get("answer")!.value;
const correct = this.updateAnswer.get("correct")!.value;
const newAnswer: Answer = {
id: this.answer.id,
text_answer: answer,
correct: correct,
id_question: this.answer.id_question
}
this.questionsController.updateAnswer(newAnswer);
this.closeModal.emit();
}
}
...@@ -78,9 +78,10 @@ export class QuestionsService { ...@@ -78,9 +78,10 @@ export class QuestionsService {
}) })
} }
// addUser(user: User) { updateAnswer(answer: Answer) {
// this.http.post<User>(ROUTE, user).subscribe(res => { this.http.patch(ROUTE + "/answer/" + answer.id.toString(), answer).subscribe(() => {
// this.auth.login(user.username, user.password); this.fetchAnswers(answer.id_question);
// }); })
// } }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment