aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSyndamia <kamen.d.mladenov@protonmail.com>2021-02-01 13:16:20 +0200
committerSyndamia <kamen.d.mladenov@protonmail.com>2021-02-01 13:16:20 +0200
commit31aea17afe1154e3355da9760333efae8e61904b (patch)
tree169f4c9387d502dc433a0f933c2d5db43c843131
parentd92db08645c6efefa329f2ca0e244951f46596c9 (diff)
downloadDevHive-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.html21
-rw-r--r--src/DevHive.Angular/src/app/components/admin-panel-page/admin-panel-page.component.ts85
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);
+ }
}