diff --git a/src/app/components/board/board.component.ts b/src/app/components/board/board.component.ts
index 701f07d..1a10a44 100644
--- a/src/app/components/board/board.component.ts
+++ b/src/app/components/board/board.component.ts
@@ -1,11 +1,10 @@
import { Component, ElementRef, ViewChild } from '@angular/core';
import { DragDropService } from '../../services/drag-drop.service';
import { CommonModule } from '@angular/common';
-import { Task } from '../../interfaces/task.interface';
-import { TaskService } from '../../services/task.service';
import { TaskComponent } from './task/task.component';
import { TaskEmptyComponent } from './task/task-empty/task-empty.component';
import { FormsModule } from '@angular/forms';
+import { FirebaseService } from '../../services/firebase.service';
@Component({
selector: 'app-board',
@@ -17,7 +16,7 @@ import { FormsModule } from '@angular/forms';
export class BoardComponent {
constructor(
public dragDropService: DragDropService,
- private taskService: TaskService
+ private firebaseService: FirebaseService
) {}
searchValue: string = '';
searchInput: boolean = false;
@@ -30,27 +29,29 @@ export class BoardComponent {
getTaskStatus(status: string) {
if (this.updateSearchInput()) {
- return this.taskService
+ return this.firebaseService
.getFiltertTasks()
.filter((task) => task.status === status);
} else {
- return this.taskService
+ return this.firebaseService
.getAllTasks()
.filter((task) => task.status === status);
}
}
handleItemDropped(id: string, status: string): void {
- const index = this.taskService.allTasks.findIndex((task) => task.id === id);
- const filteredIndex = this.taskService.filteredTasks.findIndex(
+ const index = this.firebaseService.allTasks.findIndex(
+ (task) => task.id === id
+ );
+ const filteredIndex = this.firebaseService.filteredTasks.findIndex(
(task) => task.id === id
);
if (index !== -1) {
- this.taskService.allTasks[index].status = status;
+ this.firebaseService.allTasks[index].status = status;
if (filteredIndex !== -1) {
- this.taskService.filteredTasks[filteredIndex].status = status;
+ this.firebaseService.filteredTasks[filteredIndex].status = status;
}
- this.taskService.updateTask(id, index);
+ this.firebaseService.updateTask(id, index);
}
}
@@ -71,7 +72,7 @@ export class BoardComponent {
searchTask(): void {
this.updateSearchInput();
- this.taskService.filteredTasks = this.taskService
+ this.firebaseService.filteredTasks = this.firebaseService
.getAllTasks()
.filter(
(task) =>
diff --git a/src/app/components/board/task/task.component.ts b/src/app/components/board/task/task.component.ts
index effb289..6d092af 100644
--- a/src/app/components/board/task/task.component.ts
+++ b/src/app/components/board/task/task.component.ts
@@ -1,9 +1,8 @@
import { CommonModule } from '@angular/common';
import { Component, Input } from '@angular/core';
import { DragDropService } from '../../../services/drag-drop.service';
-import { TaskService } from '../../../services/task.service';
-import { UserService } from '../../../services/user.service';
import { Task } from '../../../interfaces/task.interface';
+import { FirebaseService } from '../../../services/firebase.service';
@Component({
selector: 'app-task',
@@ -22,7 +21,7 @@ export class TaskComponent {
constructor(
public dragDropService: DragDropService,
- private userService: UserService
+ private firebaseService: FirebaseService
) {}
// Subtasks
@@ -45,7 +44,7 @@ export class TaskComponent {
userBadged(id: number) {
const userId = String(id);
- const user = this.userService
+ const user = this.firebaseService
.getAllUsers()
.find((user) => user.id === userId);
if (user) {
@@ -63,7 +62,7 @@ export class TaskComponent {
userBadgedColor(id: number) {
const userId = String(id);
- const user = this.userService
+ const user = this.firebaseService
.getAllUsers()
.find((user) => user.id === userId);
if (user) {
diff --git a/src/app/components/contacts/contact-delete/contact-delete.component.ts b/src/app/components/contacts/contact-delete/contact-delete.component.ts
index aff771d..f68c7bb 100644
--- a/src/app/components/contacts/contact-delete/contact-delete.component.ts
+++ b/src/app/components/contacts/contact-delete/contact-delete.component.ts
@@ -1,8 +1,8 @@
import { Component, Input } from '@angular/core';
import { SharedService } from '../../../services/shared.service';
import { TranslateModule } from '@ngx-translate/core';
-import { UserService } from '../../../services/user.service';
import { Router } from '@angular/router';
+import { FirebaseService } from '../../../services/firebase.service';
@Component({
selector: 'app-contact-delete',
@@ -16,12 +16,12 @@ export class ContactDeleteComponent {
constructor(
private sharedService: SharedService,
- private userService: UserService,
+ private firebaseService: FirebaseService,
private router: Router
) {}
deleteContact() {
- this.userService.deleteUser(this.currentUserId);
+ this.firebaseService.deleteUser(this.currentUserId);
this.router.navigate(['contacts']);
this.sharedService.isDeleteContactDialogOpen = false;
this.sharedService.isAnyDialogOpen = false;
diff --git a/src/app/components/contacts/contact-detail/contact-detail.component.html b/src/app/components/contacts/contact-detail/contact-detail.component.html
index f8c4808..940ec40 100644
--- a/src/app/components/contacts/contact-detail/contact-detail.component.html
+++ b/src/app/components/contacts/contact-detail/contact-detail.component.html
@@ -22,17 +22,20 @@
- {{ userService.getUserDetails(currentUserId, "initials") }}
+ {{ firebaseService.getUserDetails(currentUserId, "initials") }}
- {{ userService.getUserDetails(currentUserId, "firstName") }}
- {{ userService.getUserDetails(currentUserId, "lastName") }}
+ {{ firebaseService.getUserDetails(currentUserId, "firstName") }}
+ {{ firebaseService.getUserDetails(currentUserId, "lastName") }}
diff --git a/src/app/components/contacts/contact-detail/contact-detail.component.ts b/src/app/components/contacts/contact-detail/contact-detail.component.ts
index fdad017..82306b6 100644
--- a/src/app/components/contacts/contact-detail/contact-detail.component.ts
+++ b/src/app/components/contacts/contact-detail/contact-detail.component.ts
@@ -1,11 +1,11 @@
import { Component, HostListener, Input } from '@angular/core';
-import { UserService } from '../../../services/user.service';
import { CommonModule } from '@angular/common';
import { ContactsComponent } from '../contacts.component';
import { Router } from '@angular/router';
import { ContactEditComponent } from '../contact-edit/contact-edit.component';
import { SharedService } from '../../../services/shared.service';
import { ContactNavComponent } from '../contact-nav/contact-nav.component';
+import { FirebaseService } from '../../../services/firebase.service';
@Component({
selector: 'app-contact-detail',
standalone: true,
@@ -24,9 +24,9 @@ export class ContactDetailComponent {
isMobileNavbarOpen: boolean = false;
constructor(
- public userService: UserService,
private router: Router,
- public sharedService: SharedService
+ public sharedService: SharedService,
+ public firebaseService: FirebaseService
) {}
closeUserDetails() {
diff --git a/src/app/components/contacts/contact-edit/contact-edit.component.html b/src/app/components/contacts/contact-edit/contact-edit.component.html
index 7ae4d3a..3853fac 100644
--- a/src/app/components/contacts/contact-edit/contact-edit.component.html
+++ b/src/app/components/contacts/contact-edit/contact-edit.component.html
@@ -12,14 +12,14 @@
- {{ userService.getUserDetails(currentUserId, "initials") }}
+ {{ firebaseService.getUserDetails(currentUserId, "initials") }}
diff --git a/src/app/components/contacts/contact-edit/contact-edit.component.ts b/src/app/components/contacts/contact-edit/contact-edit.component.ts
index 429f309..ff942c8 100644
--- a/src/app/components/contacts/contact-edit/contact-edit.component.ts
+++ b/src/app/components/contacts/contact-edit/contact-edit.component.ts
@@ -1,8 +1,8 @@
import { Component, Input } from '@angular/core';
import { ContactFormComponent } from '../contact-form/contact-form.component';
import { CommonModule } from '@angular/common';
-import { UserService } from '../../../services/user.service';
import { BtnCloseComponent } from '../../../shared/components/buttons/btn-close/btn-close.component';
+import { FirebaseService } from '../../../services/firebase.service';
@Component({
selector: 'app-contact-edit',
@@ -14,5 +14,5 @@ import { BtnCloseComponent } from '../../../shared/components/buttons/btn-close/
export class ContactEditComponent {
@Input() currentUserId!: string;
- constructor(public userService: UserService) {}
+ constructor(public firebaseService: FirebaseService) {}
}
diff --git a/src/app/components/contacts/contact-form/contact-form.component.ts b/src/app/components/contacts/contact-form/contact-form.component.ts
index 5acc5ef..2817090 100644
--- a/src/app/components/contacts/contact-form/contact-form.component.ts
+++ b/src/app/components/contacts/contact-form/contact-form.component.ts
@@ -1,8 +1,8 @@
import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';
import { FormsModule, NgForm } from '@angular/forms';
import { TranslateModule } from '@ngx-translate/core';
-import { UserService } from '../../../services/user.service';
import { SharedService } from '../../../services/shared.service';
+import { FirebaseService } from '../../../services/firebase.service';
@Component({
selector: 'app-contact-form',
@@ -15,7 +15,7 @@ export class ContactFormComponent implements OnChanges {
@Input() currentUserId!: string;
constructor(
- public userService: UserService,
+ private firebaseService: FirebaseService,
private sharedService: SharedService
) {
this.updateContactData();
@@ -35,23 +35,23 @@ export class ContactFormComponent implements OnChanges {
}
private updateContactData() {
- this.contactData.firstName = this.userService
+ this.contactData.firstName = this.firebaseService
.getUserDetails(this.currentUserId, 'firstName')
.join(', ');
- this.contactData.lastName = this.userService
+ this.contactData.lastName = this.firebaseService
.getUserDetails(this.currentUserId, 'lastName')
.join(', ');
- this.contactData.email = this.userService
+ this.contactData.email = this.firebaseService
.getUserDetails(this.currentUserId, 'email')
.join(', ');
- this.contactData.phone = this.userService
+ this.contactData.phone = this.firebaseService
.getUserDetails(this.currentUserId, 'phone')
.join(', ');
}
onSubmit(ngForm: NgForm) {
if (ngForm.submitted && ngForm.form.valid) {
- this.userService.updateUserData(this.currentUserId, this.contactData);
+ this.firebaseService.updateUserData(this.currentUserId, this.contactData);
this.closeEditDialog();
}
}
diff --git a/src/app/components/contacts/contacts.component.html b/src/app/components/contacts/contacts.component.html
index 15cc809..5a1d667 100644
--- a/src/app/components/contacts/contacts.component.html
+++ b/src/app/components/contacts/contacts.component.html
@@ -28,25 +28,25 @@
- {{ userService.getUserDetails(user.id, "initials") }}
+ {{ firebaseService.getUserDetails(user.id, "initials") }}
- {{ userService.getUserDetails(user.id, "firstName") }}
+ {{ firebaseService.getUserDetails(user.id, "firstName") }}
,
- {{ userService.getUserDetails(user.id, "lastName") }}
+ {{ firebaseService.getUserDetails(user.id, "lastName") }}
- {{ userService.getUserDetails(user.id, "email") }}
+ {{ firebaseService.getUserDetails(user.id, "email") }}
diff --git a/src/app/components/contacts/contacts.component.ts b/src/app/components/contacts/contacts.component.ts
index 79de343..e1bcf0b 100644
--- a/src/app/components/contacts/contacts.component.ts
+++ b/src/app/components/contacts/contacts.component.ts
@@ -1,10 +1,10 @@
import { Component, EventEmitter, HostListener, Output } from '@angular/core';
-import { UserService } from '../../services/user.service';
import { User } from '../../interfaces/user.interface';
import { CommonModule } from '@angular/common';
import { ActivatedRoute, RouterLink } from '@angular/router';
import { ContactDetailComponent } from './contact-detail/contact-detail.component';
import { SharedService } from '../../services/shared.service';
+import { FirebaseService } from '../../services/firebase.service';
@Component({
selector: 'app-contacts',
@@ -21,7 +21,7 @@ export class ContactsComponent {
currentUserId: string = '';
constructor(
- public userService: UserService,
+ public firebaseService: FirebaseService,
private route: ActivatedRoute,
private sharedService: SharedService
) {}
@@ -50,7 +50,7 @@ export class ContactsComponent {
}
loadAllUserWithoutGuest(): User[] {
- return this.userService
+ return this.firebaseService
.getAllUsers()
.filter((user) => user.initials !== 'G');
}
diff --git a/src/app/components/summary/summary.component.html b/src/app/components/summary/summary.component.html
index 6946c51..2f8551e 100644
--- a/src/app/components/summary/summary.component.html
+++ b/src/app/components/summary/summary.component.html
@@ -96,14 +96,14 @@
{{ displayGreeting() }},
{{
- this.userService.getUserDetails(
- userService.getCurrentUserId(),
+ this.firebaseService.getUserDetails(
+ firebaseService.getCurrentUserId(),
"firstName"
)
}}
{{
- this.userService.getUserDetails(
- userService.getCurrentUserId(),
+ this.firebaseService.getUserDetails(
+ firebaseService.getCurrentUserId(),
"lastName"
)
}} task.status === query);
return filteredTasks.length;
}
displayNumberOfTaskStatusUrgent() {
- return this.taskService
+ return this.firebaseService
.getAllTasks()
.filter((task) => task.priority === 'urgent');
}
diff --git a/src/app/services/user.service.ts b/src/app/services/firebase.service.ts
similarity index 61%
rename from src/app/services/user.service.ts
rename to src/app/services/firebase.service.ts
index 818bdaf..f6589c3 100644
--- a/src/app/services/user.service.ts
+++ b/src/app/services/firebase.service.ts
@@ -7,23 +7,57 @@ import {
onSnapshot,
updateDoc,
} from '@angular/fire/firestore';
+import { Task } from '../interfaces/task.interface';
import { User } from '../interfaces/user.interface';
-
@Injectable({
providedIn: 'root',
})
-export class UserService implements OnDestroy {
+export class FirebaseService implements OnDestroy {
firestore: Firestore = inject(Firestore);
+ allTasks: Task[] = [];
+ filteredTasks: Task[] = [];
allUsers: User[] = [];
isUserLogin: boolean = true;
+ unsubTask;
unsubUser;
constructor() {
+ this.unsubTask = this.subTaskList();
this.unsubUser = this.subUserList();
}
+ // ------------- TASKS ------------- //
+
+ subTaskList() {
+ return onSnapshot(collection(this.firestore, 'tasks'), (list) => {
+ this.allTasks = [];
+ list.forEach((element) => {
+ const taskWithId = { id: element.id, ...element.data() } as Task;
+ this.allTasks.push(taskWithId);
+ });
+ });
+ }
+
+ getAllTasks(): Task[] {
+ return this.allTasks;
+ }
+
+ getFiltertTasks(): Task[] {
+ return this.filteredTasks;
+ }
+
+ async updateTask(taskId: any, index: number) {
+ await updateDoc(doc(collection(this.firestore, 'tasks'), taskId), {
+ status: this.allTasks[index].status,
+ }).catch((err) => {
+ console.error(err);
+ });
+ }
+
+ // ------------- USERS ------------- //
+
subUserList() {
return onSnapshot(collection(this.firestore, 'users'), (list) => {
this.allUsers = [];
@@ -69,6 +103,7 @@ export class UserService implements OnDestroy {
}
ngOnDestroy() {
+ this.unsubTask();
this.unsubUser();
}
}
diff --git a/src/app/services/task.service.ts b/src/app/services/task.service.ts
deleted file mode 100644
index 94f62e3..0000000
--- a/src/app/services/task.service.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import { EventEmitter, Injectable, OnDestroy, inject } from '@angular/core';
-import {
- Firestore,
- collection,
- doc,
- onSnapshot,
- updateDoc,
-} from '@angular/fire/firestore';
-import { Task } from '../interfaces/task.interface';
-@Injectable({
- providedIn: 'root',
-})
-export class TaskService implements OnDestroy {
- firestore: Firestore = inject(Firestore);
-
- allTasks: Task[] = [];
- filteredTasks: Task[] = [];
-
- unsubTask;
-
- constructor() {
- this.unsubTask = this.subTaskList();
- }
-
- subTaskList() {
- return onSnapshot(collection(this.firestore, 'tasks'), (list) => {
- this.allTasks = [];
- list.forEach((element) => {
- const taskWithId = { id: element.id, ...element.data() } as Task;
- this.allTasks.push(taskWithId);
- });
- });
- }
-
- getAllTasks(): Task[] {
- return this.allTasks;
- }
-
- getFiltertTasks(): Task[] {
- return this.filteredTasks;
- }
-
- async updateTask(taskId: any, index: number) {
- await updateDoc(doc(collection(this.firestore, 'tasks'), taskId), {
- status: this.allTasks[index].status,
- }).catch((err) => {
- console.error(err);
- });
- }
-
- ngOnDestroy() {
- this.unsubTask();
- }
-}
diff --git a/src/app/shared/components/header/header.component.html b/src/app/shared/components/header/header.component.html
index 7970d52..ee82346 100644
--- a/src/app/shared/components/header/header.component.html
+++ b/src/app/shared/components/header/header.component.html
@@ -15,8 +15,8 @@
{{
- this.userService.getUserDetails(
- userService.getCurrentUserId(),
+ this.firebaseService.getUserDetails(
+ firebaseService.getCurrentUserId(),
"initials"
)
}}
diff --git a/src/app/shared/components/header/header.component.ts b/src/app/shared/components/header/header.component.ts
index 23cdb89..acc5161 100644
--- a/src/app/shared/components/header/header.component.ts
+++ b/src/app/shared/components/header/header.component.ts
@@ -3,7 +3,7 @@ import { RouterModule } from '@angular/router';
import { NavbarComponent } from '../navbar/navbar.component';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
-import { UserService } from '../../../services/user.service';
+import { FirebaseService } from '../../../services/firebase.service';
@Component({
selector: 'app-header',
@@ -16,7 +16,7 @@ export class HeaderComponent {
navbarVisible: boolean = false;
navbarLanguageVisible: boolean = false;
- constructor(public userService: UserService) {}
+ constructor(public firebaseService: FirebaseService) {}
toggleNavbar() {
this.navbarVisible = !this.navbarVisible;