Added messages, notifications, count, and supporting elements

This commit is contained in:
2024-12-22 01:13:28 +00:00
parent 2b8682bcbb
commit 6b61d1a182
14 changed files with 593 additions and 33 deletions

View File

@ -5,6 +5,7 @@ namespace App\Controller;
use App\Entity\Member;
use App\Entity\User;
use App\Entity\MemberCase;
use App\Entity\Messages;
use App\Form\MemberFormType;
use App\Libs\Breadcrumb;
use App\Libs\NavList;
@ -17,6 +18,15 @@ use Symfony\Component\Security\Http\Attribute\CurrentUser;
class MemberController extends AbstractController
{
/**
* Variable to store unread notification messages
*
* @var array
*/
private array $msgs;
private int $notificationCount;
public function __construct(
private EntityManagerInterface $entityManager,
private array $navLinks = [],
@ -28,6 +38,9 @@ class MemberController extends AbstractController
#[Route('/list-members/{id}', name: 'app_case_members')]
public function listMembers(Request $request, #[CurrentUser()] User $user, string $id): Response
{
$this->msgs = $this->entityManager->getRepository(Messages::class)->getUnreadMessages($user);
$this->notificationCount = $this->entityManager->getRepository(Messages::class)->getUnreadMessageCount($user);
$case = $this->entityManager->getRepository(MemberCase::class)->find($id);
$members = $this->entityManager->getRepository(Member::class)->getCaseMembersByName($case);
@ -40,9 +53,10 @@ class MemberController extends AbstractController
new Breadcrumb($this->generateUrl('app_list_cases'), 'List Cases'),
new Breadcrumb($this->generateUrl('app_case_members', ['id' => $id]), 'List Members'),
],
'notifications' => $user->retrieveUnreadNotifications(),
'notifications' => $this->msgs,
'case' => $case,
'members' => $members,
'notificationCount' => $this->notificationCount,
]
)
);
@ -51,6 +65,9 @@ class MemberController extends AbstractController
#[Route('/add-member/{id}', name: 'app_case_add_member')]
public function addMember(Request $request, #[CurrentUser()] User $user, string $id): Response
{
$this->msgs = $this->entityManager->getRepository(Messages::class)->getUnreadMessages($user);
$this->notificationCount = $this->entityManager->getRepository(Messages::class)->getUnreadMessageCount($user);
/** @var MemberCase $case */
$case = $this->entityManager->getRepository(MemberCase::class)->find($id);
@ -110,9 +127,10 @@ class MemberController extends AbstractController
new Breadcrumb($this->generateUrl('app_case_members', ['id' => $id]), 'List Members'),
new Breadcrumb($this->generateUrl('app_case_add_member', ['id' => $id]), 'Add Member'),
],
'notifications' => $user->retrieveUnreadNotifications(),
'notifications' => $this->msgs,
'case' => $case,
'form' => $form->createView(),
'notificationCount' => $this->notificationCount,
]
)
);
@ -121,6 +139,9 @@ class MemberController extends AbstractController
#[Route('/case/{caseId}/edit-member/{memberId}', name: 'app_case_edit_member')]
public function editMember(Request $request, #[CurrentUser()] User $user, string $caseId, string $memberId): Response
{
$this->msgs = $this->entityManager->getRepository(Messages::class)->getUnreadMessages($user);
$this->notificationCount = $this->entityManager->getRepository(Messages::class)->getUnreadMessageCount($user);
$member = $this->entityManager->getRepository(Member::class)->find($memberId);
$form = $this->createForm(MemberFormType::class, $member);
@ -175,7 +196,8 @@ class MemberController extends AbstractController
new Breadcrumb($this->generateUrl('app_case_members', ['id' => $caseId]), 'List Members'),
new Breadcrumb($this->generateUrl('app_case_edit_member', ['caseId' => $caseId, 'memberId' => $memberId]), 'Edit Member'),
],
'notifications' => $user->retrieveUnreadNotifications(),
'notifications' => $this->msgs,
'notificationCount' => $this->notificationCount,
'member' => $member,
'form' => $form->createView(),
'caseId' => $caseId,