diff options
| author | Syndamia <kamen.d.mladenov@protonmail.com> | 2021-02-01 13:16:20 +0200 |
|---|---|---|
| committer | Syndamia <kamen.d.mladenov@protonmail.com> | 2021-02-01 13:16:20 +0200 |
| commit | 31aea17afe1154e3355da9760333efae8e61904b (patch) | |
| tree | 169f4c9387d502dc433a0f933c2d5db43c843131 | |
| parent | d92db08645c6efefa329f2ca0e244951f46596c9 (diff) | |
| download | DevHive-31aea17afe1154e3355da9760333efae8e61904b.tar DevHive-31aea17afe1154e3355da9760333efae8e61904b.tar.gz DevHive-31aea17afe1154e3355da9760333efae8e61904b.zip | |
Implemented deleting posts and users in admin panel
| -rw-r--r-- | src/DevHive.Angular/src/app/components/admin-panel-page/admin-panel-page.component.html | 21 | ||||
| -rw-r--r-- | src/DevHive.Angular/src/app/components/admin-panel-page/admin-panel-page.component.ts | 85 |
2 files changed, 102 insertions, 4 deletions
diff --git a/src/DevHive.Angular/src/app/components/admin-panel-page/admin-panel-page.component.html b/src/DevHive.Angular/src/app/components/admin-panel-page/admin-panel-page.component.html index 97504d0..980f12c 100644 --- a/src/DevHive.Angular/src/app/components/admin-panel-page/admin-panel-page.component.html +++ b/src/DevHive.Angular/src/app/components/admin-panel-page/admin-panel-page.component.html @@ -10,6 +10,7 @@ <div class="scroll-standalone"> <app-success-bar></app-success-bar> <app-error-bar></app-error-bar> + <button type="button" class="submit-btn edit-btn" (click)="toggleLanguages()">▼ Edit Languages ▼</button> <form [formGroup]="languageForm" (ngSubmit)="submitLanguages()" *ngIf="showLanguages"> <div class="input-selection"> @@ -35,6 +36,7 @@ </div> <hr> </form> + <button type="button" class="submit-btn edit-btn" (click)="toggleTechnologies()">▼ Edit Technologies ▼</button> <form [formGroup]="technologyForm" (ngSubmit)="submitTechnologies()" *ngIf="showTechnologies"> <div class="input-selection"> @@ -60,5 +62,24 @@ </div> <hr> </form> + + <button type="button" class="submit-btn delete-btn" (click)="toggleDeletions()">▼ Deletions ▼</button> + <form [formGroup]="deleteForm" (ngSubmit)="submitDelete()" *ngIf="showDeletions"> + <div class="input-selection"> + <label>Delete user by Id:</label> + <input type="text" class="input-field" formControlName="deleteUser" placeholder="User Id"> + </div> + + <div class="input-selection"> + <label>Delete post by Id:</label> + <input type="text" class="input-field" formControlName="deletePost" placeholder="Post Id"> + </div> + <div class="input-selection"> + <label>Delete comment by Id:</label> + <input type="text" class="input-field" formControlName="deleteComment" placeholder="Comment Id"> + </div> + <button class="submit-btn" type="submit">Delete</button> + <hr> + </form> </div> </div> diff --git a/src/DevHive.Angular/src/app/components/admin-panel-page/admin-panel-page.component.ts b/src/DevHive.Angular/src/app/components/admin-panel-page/admin-panel-page.component.ts index b4ce16e..80d9f07 100644 --- a/src/DevHive.Angular/src/app/components/admin-panel-page/admin-panel-page.component.ts +++ b/src/DevHive.Angular/src/app/components/admin-panel-page/admin-panel-page.component.ts @@ -2,8 +2,10 @@ import { HttpErrorResponse } from '@angular/common/http'; import { Component, OnInit, ViewChild } from '@angular/core'; import { FormBuilder, FormControl, FormGroup } from '@angular/forms'; import { Router } from '@angular/router'; +import {Guid} from 'guid-typescript'; import { AppConstants } from 'src/app/app-constants.module'; import { LanguageService } from 'src/app/services/language.service'; +import {PostService} from 'src/app/services/post.service'; import { TechnologyService } from 'src/app/services/technology.service'; import { TokenService } from 'src/app/services/token.service'; import { UserService } from 'src/app/services/user.service'; @@ -24,12 +26,14 @@ export class AdminPanelPageComponent implements OnInit { public dataArrived = false; public showLanguages = false; public showTechnologies = false; + public showDeletions = false; public availableLanguages: Language[]; public availableTechnologies: Technology[]; public languageForm: FormGroup; public technologyForm: FormGroup; + public deleteForm: FormGroup; - constructor(private _router: Router, private _fb: FormBuilder, private _userService: UserService, private _languageService: LanguageService, private _technologyService: TechnologyService, private _tokenService: TokenService) + constructor(private _router: Router, private _fb: FormBuilder, private _userService: UserService, private _languageService: LanguageService, private _technologyService: TechnologyService, private _tokenService: TokenService, private _postService: PostService) { } ngOnInit(): void { @@ -57,6 +61,11 @@ export class AdminPanelPageComponent implements OnInit { deleteLanguageName: new FormControl('') }); + this.languageForm.valueChanges.subscribe(() => { + this._successBar?.hideMsg(); + this._errorBar?.hideError(); + }); + this.technologyForm = this._fb.group({ technologyCreate: new FormControl(''), updateTechnologyOldName: new FormControl(''), @@ -64,6 +73,21 @@ export class AdminPanelPageComponent implements OnInit { deleteTechnologyName: new FormControl('') }); + this.technologyForm.valueChanges.subscribe(() => { + this._successBar?.hideMsg(); + this._errorBar?.hideError(); + }); + + this.deleteForm = this._fb.group({ + deleteUser: new FormControl(''), + deletePost: new FormControl(''), + deleteComment: new FormControl('') + }); + + this.deleteForm.valueChanges.subscribe(() => { + this._successBar?.hideMsg(); + this._errorBar?.hideError(); + }); this.loadAvailableLanguages(); this.loadAvailableTechnologies(); @@ -135,7 +159,6 @@ export class AdminPanelPageComponent implements OnInit { if (deleteLanguageName !== '' && deleteLanguageName !== null) { const langId = this.availableLanguages.filter(x => x.name === deleteLanguageName.trim())[0].id; - console.log(langId); this._languageService.deleteLanguageWithSessionStorageRequest(langId).subscribe( (result: object) => { this.languageModifiedSuccess('Successfully deleted language!'); @@ -148,9 +171,9 @@ export class AdminPanelPageComponent implements OnInit { } private languageModifiedSuccess(successMsg: string): void { + this.languageForm.reset(); this._successBar.showMsg(successMsg); this.loadAvailableLanguages(); - this.languageForm.reset(); } private loadAvailableLanguages(): void { @@ -224,9 +247,9 @@ export class AdminPanelPageComponent implements OnInit { } private technologyModifiedSuccess(successMsg: string): void { + this.technologyForm.reset(); this._successBar.showMsg(successMsg); this.loadAvailableTechnologies(); - this.technologyForm.reset(); } private loadAvailableTechnologies(): void { @@ -236,4 +259,58 @@ export class AdminPanelPageComponent implements OnInit { } ); } + + // Deletions + + toggleDeletions(): void { + this.showDeletions = !this.showDeletions; + } + + submitDelete(): void { + this.tryDeleteUser(); + this.tryDeletePost(); + this.tryDeleteComment(); + } + + private tryDeleteUser(): void { + const deleteUser: string = this.deleteForm.get('deleteUser')?.value; + + if (deleteUser !== '' && deleteUser !== null) { + const userId: Guid = Guid.parse(deleteUser); + + this._userService.deleteUserRequest(userId, this._tokenService.getTokenFromSessionStorage()).subscribe( + (result: object) => { + this.deletionSuccess('Successfully deleted user!'); + }, + (err: HttpErrorResponse) => { + this._errorBar.showError(err); + } + ); + } + } + + private tryDeletePost(): void { + const deletePost: string = this.deleteForm.get('deletePost')?.value; + + if (deletePost !== '' && deletePost !== null) { + const postId: Guid = Guid.parse(deletePost); + + this._postService.deletePostRequest(postId, this._tokenService.getTokenFromSessionStorage()).subscribe( + (result: object) => { + this.deletionSuccess('Successfully deleted user!'); + }, + (err: HttpErrorResponse) => { + this._errorBar.showError(err); + } + ); + } + } + + private tryDeleteComment(): void { + } + + private deletionSuccess(successMsg: string): void { + this.deleteForm.reset(); + this._successBar.showMsg(successMsg); + } } |
