Compare commits
	
		
			23 Commits
		
	
	
		
			96933d2e01
			...
			61d8cb2e3d
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 61d8cb2e3d | |||
| ec9abbe5c0 | |||
| 7130cce4a2 | |||
| 04dfc20a28 | |||
| 1489427b80 | |||
| 809490dc44 | |||
| 569e03aab0 | |||
| d53222bd06 | |||
| dde2cb34e4 | |||
| 00e4e2170c | |||
| 5ed230e895 | |||
| 2bbb621a56 | |||
| 3b36d4ee42 | |||
| 885cddf6b1 | |||
| a93b83e392 | |||
| 5d14d05019 | |||
| f81e65938d | |||
| 7704319bd1 | |||
| 1eac26399f | |||
| 354d1fbde3 | |||
| f3a32e9d94 | |||
| 30f9be37ec | |||
| 6454d3db47 | 
| @@ -14,36 +14,34 @@ | |||||||
|         "doctrine/orm": "^3.3", |         "doctrine/orm": "^3.3", | ||||||
|         "phpdocumentor/reflection-docblock": "^5.4", |         "phpdocumentor/reflection-docblock": "^5.4", | ||||||
|         "phpstan/phpdoc-parser": "^1.33", |         "phpstan/phpdoc-parser": "^1.33", | ||||||
|         "symfony/asset": "7.1.*", |         "symfony/asset": "7.2.*", | ||||||
|         "symfony/asset-mapper": "7.1.*", |         "symfony/asset-mapper": "7.2.*", | ||||||
|         "symfony/console": "7.1.*", |         "symfony/console": "7.2.*", | ||||||
|         "symfony/doctrine-messenger": "7.1.*", |         "symfony/doctrine-messenger": "7.2.*", | ||||||
|         "symfony/dotenv": "7.1.*", |         "symfony/dotenv": "7.2.*", | ||||||
|         "symfony/expression-language": "7.1.*", |         "symfony/expression-language": "7.2.*", | ||||||
|         "symfony/flex": "^2", |         "symfony/flex": "^2", | ||||||
|         "symfony/form": "7.1.*", |         "symfony/form": "7.2.*", | ||||||
|         "symfony/framework-bundle": "7.1.*", |         "symfony/framework-bundle": "7.2.*", | ||||||
|         "symfony/http-client": "7.1.*", |         "symfony/http-client": "7.2.*", | ||||||
|         "symfony/intl": "7.1.*", |         "symfony/intl": "7.2.*", | ||||||
|         "symfony/mailer": "7.1.*", |         "symfony/mailer": "7.2.*", | ||||||
|         "symfony/mime": "7.1.*", |         "symfony/mime": "7.2.*", | ||||||
|         "symfony/monolog-bundle": "^3.0", |         "symfony/monolog-bundle": "^3.0", | ||||||
|         "symfony/notifier": "7.1.*", |         "symfony/notifier": "7.2.*", | ||||||
|         "symfony/process": "7.1.*", |         "symfony/process": "7.2.*", | ||||||
|         "symfony/property-access": "7.1.*", |         "symfony/property-access": "7.2.*", | ||||||
|         "symfony/property-info": "7.1.*", |         "symfony/property-info": "7.2.*", | ||||||
|         "symfony/runtime": "7.1.*", |         "symfony/runtime": "7.2.*", | ||||||
|         "symfony/security-bundle": "7.1.*", |         "symfony/security-bundle": "7.2.*", | ||||||
|         "symfony/serializer": "7.1.*", |         "symfony/serializer": "7.2.*", | ||||||
|         "symfony/stimulus-bundle": "^2.21", |         "symfony/string": "7.2.*", | ||||||
|         "symfony/string": "7.1.*", |         "symfony/translation": "7.2.*", | ||||||
|         "symfony/translation": "7.1.*", |         "symfony/twig-bundle": "7.2.*", | ||||||
|         "symfony/twig-bundle": "7.1.*", |         "symfony/uid": "7.2.*", | ||||||
|         "symfony/uid": "7.1.*", |         "symfony/validator": "7.2.*", | ||||||
|         "symfony/ux-turbo": "^2.21", |         "symfony/web-link": "7.2.*", | ||||||
|         "symfony/validator": "7.1.*", |         "symfony/yaml": "7.2.*", | ||||||
|         "symfony/web-link": "7.1.*", |  | ||||||
|         "symfony/yaml": "7.1.*", |  | ||||||
|         "twig/extra-bundle": "^2.12|^3.0", |         "twig/extra-bundle": "^2.12|^3.0", | ||||||
|         "twig/intl-extra": "^3.15", |         "twig/intl-extra": "^3.15", | ||||||
|         "twig/twig": "^2.12|^3.0" |         "twig/twig": "^2.12|^3.0" | ||||||
| @@ -95,17 +93,17 @@ | |||||||
|     "extra": { |     "extra": { | ||||||
|         "symfony": { |         "symfony": { | ||||||
|             "allow-contrib": false, |             "allow-contrib": false, | ||||||
|             "require": "7.1.*" |             "require": "7.2.*" | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|     "require-dev": { |     "require-dev": { | ||||||
|         "phpunit/phpunit": "^9.5", |         "phpunit/phpunit": "^9.5", | ||||||
|         "symfony/browser-kit": "7.1.*", |         "symfony/browser-kit": "7.2.*", | ||||||
|         "symfony/css-selector": "7.1.*", |         "symfony/css-selector": "7.2.*", | ||||||
|         "symfony/debug-bundle": "7.1.*", |         "symfony/debug-bundle": "7.2.*", | ||||||
|         "symfony/maker-bundle": "^1.0", |         "symfony/maker-bundle": "^1.0", | ||||||
|         "symfony/phpunit-bridge": "^7.1", |         "symfony/phpunit-bridge": "^7.2", | ||||||
|         "symfony/stopwatch": "7.1.*", |         "symfony/stopwatch": "7.2.*", | ||||||
|         "symfony/web-profiler-bundle": "7.1.*" |         "symfony/web-profiler-bundle": "7.2.*" | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ | |||||||
|  |  | ||||||
| namespace App\Controller; | namespace App\Controller; | ||||||
|  |  | ||||||
|  | use Exception; | ||||||
| use App\Entity\MemberCase; | use App\Entity\MemberCase; | ||||||
| use App\Entity\ReferralSource; | use App\Entity\ReferralSource; | ||||||
| use App\Entity\User; | use App\Entity\User; | ||||||
| @@ -140,8 +141,8 @@ class CaseController extends AbstractController | |||||||
|  |  | ||||||
|         $caseWorkers = $this->entityManager->getRepository(User::class)->getCaseWorkers(); |         $caseWorkers = $this->entityManager->getRepository(User::class)->getCaseWorkers(); | ||||||
|         $case = $this->entityManager->getRepository(MemberCase::class)->find($id); |         $case = $this->entityManager->getRepository(MemberCase::class)->find($id); | ||||||
|  |  | ||||||
|         $prevUc = $this->entityManager->getRepository(UserCase::class)->findBy(['memberCase' => $case]); |         $prevUc = $this->entityManager->getRepository(UserCase::class)->findBy(['memberCase' => $case]); | ||||||
|  |  | ||||||
|         $uc = new UserCase(); |         $uc = new UserCase(); | ||||||
|         $form = $this->createForm(UserCaseFormType::class, $uc); |         $form = $this->createForm(UserCaseFormType::class, $uc); | ||||||
|         $form->handleRequest($request); |         $form->handleRequest($request); | ||||||
| @@ -152,10 +153,6 @@ class CaseController extends AbstractController | |||||||
|             $uc->setMemberCase($case); |             $uc->setMemberCase($case); | ||||||
|             $uc->setUser($user); |             $uc->setUser($user); | ||||||
|  |  | ||||||
|             if(!$uc->checkLevel()) { |  | ||||||
|                 throw new Exception(''); |  | ||||||
|             } |  | ||||||
|  |  | ||||||
|             if (count($prevUc) > 0) { |             if (count($prevUc) > 0) { | ||||||
|                 $this->entityManager->remove($prevUc[0]); |                 $this->entityManager->remove($prevUc[0]); | ||||||
|                 $this->entityManager->flush(); |                 $this->entityManager->flush(); | ||||||
| @@ -177,7 +174,7 @@ class CaseController extends AbstractController | |||||||
|                     'title' => 'Assign Case', |                     'title' => 'Assign Case', | ||||||
|                     'breadcrumbs' => [ |                     'breadcrumbs' => [ | ||||||
|                         new Breadcrumb($this->generateUrl('app_list_cases'), 'List Cases'), |                         new Breadcrumb($this->generateUrl('app_list_cases'), 'List Cases'), | ||||||
|                         new Breadcrumb($this->generateUrl('app_assign_case', ['id' => $id]), 'Assign Case') |                         new Breadcrumb($this->generateUrl('app_assign_case', ['id' => $id]), 'Assign User') | ||||||
|                     ], |                     ], | ||||||
|                     'notifications' => $admin->retrieveUnreadNotifications(), |                     'notifications' => $admin->retrieveUnreadNotifications(), | ||||||
|                     'form' => $form, |                     'form' => $form, | ||||||
| @@ -189,6 +186,33 @@ class CaseController extends AbstractController | |||||||
|         ); |         ); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     #[Route('/case-notes/{id}', name: 'app_case_notes')] | ||||||
|  |     public function showCaseNotes(Request $request, string $id): Response | ||||||
|  |     { | ||||||
|  |         $case = $this->entityManager->getRepository(MemberCase::class)->find($id); | ||||||
|  |         return new Response(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     #[Route('/api/case/{caseId}/user/{userId}', name: 'ajax_case_user_level_check')] | ||||||
|  |     public function checkUserCaseLevel(string $caseId, string $userId) : Response | ||||||
|  |     { | ||||||
|  |         $ret = true; | ||||||
|  |  | ||||||
|  |         $user = $this->entityManager->getRepository(User::class)->find($userId); | ||||||
|  |         $case = $this->entityManager->getRepository(MemberCase::class)->find($caseId); | ||||||
|  |  | ||||||
|  |         $res = UserCase::checkLevel($user, $case); | ||||||
|  |  | ||||||
|  |         if (!$res) { | ||||||
|  |             $ret = [ | ||||||
|  |                 'userLevel' => ucwords(str_replace('_', ' ', strtolower($user->getLevel()->name))), | ||||||
|  |                 'caseLevel' => ucwords(str_replace('_', ' ', strtolower($case->getLevel()->name))), | ||||||
|  |             ]; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return $this->json($ret); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     #[Route('/api/filter-cases-by-user', name: 'ajax_filter_cases_by_user')] |     #[Route('/api/filter-cases-by-user', name: 'ajax_filter_cases_by_user')] | ||||||
|     public function filterCasesByUser(Request $request): Response |     public function filterCasesByUser(Request $request): Response | ||||||
|     { |     { | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ | |||||||
|  |  | ||||||
| namespace App\Entity; | namespace App\Entity; | ||||||
|  |  | ||||||
|  | use App\Enums\CaseLevel; | ||||||
| use App\Repository\UserCaseRepository; | use App\Repository\UserCaseRepository; | ||||||
| use Doctrine\ORM\Mapping as ORM; | use Doctrine\ORM\Mapping as ORM; | ||||||
|  |  | ||||||
| @@ -49,4 +50,9 @@ class UserCase | |||||||
|  |  | ||||||
|         return $this; |         return $this; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public static function checkLevel(User $user, MemberCase $case): bool | ||||||
|  |     { | ||||||
|  |         return ($user->getLevel()->value >= $case->getLevel()->value); | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -2,11 +2,11 @@ | |||||||
|  |  | ||||||
| namespace App\Enums; | namespace App\Enums; | ||||||
|  |  | ||||||
| enum CaseLevel: string | enum CaseLevel: int | ||||||
| { | { | ||||||
|     case PARAPROFESSIONAL = 'Paraprofessional'; |     case PARAPROFESSIONAL = 0; | ||||||
|     case BACHELOR = 'Bachelor'; |     case BACHELOR = 1; | ||||||
|     case MASTER = 'Master'; |     case MASTER = 2; | ||||||
|     case DOCTORATE = 'Doctorate'; |     case DOCTORATE = 3; | ||||||
|     case ADMIN = 'Admin'; |     case ADMIN = 99; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -5,6 +5,7 @@ namespace App\Form; | |||||||
| use App\Entity\User; | use App\Entity\User; | ||||||
| use Symfony\Component\Form\AbstractType; | use Symfony\Component\Form\AbstractType; | ||||||
| use Symfony\Component\Form\Extension\Core\Type\PasswordType; | use Symfony\Component\Form\Extension\Core\Type\PasswordType; | ||||||
|  | use Symfony\Component\Form\Extension\Core\Type\RepeatedType; | ||||||
| use Symfony\Component\Form\FormBuilderInterface; | use Symfony\Component\Form\FormBuilderInterface; | ||||||
| use Symfony\Component\OptionsResolver\OptionsResolver; | use Symfony\Component\OptionsResolver\OptionsResolver; | ||||||
| use Symfony\Component\Validator\Constraints\Length; | use Symfony\Component\Validator\Constraints\Length; | ||||||
| @@ -18,7 +19,10 @@ class RegistrationFormType extends AbstractType | |||||||
|             ->add('name') |             ->add('name') | ||||||
|             ->add('username') |             ->add('username') | ||||||
|             ->add('email') |             ->add('email') | ||||||
|             ->add('plainPassword', PasswordType::class, [ |             ->add('plainPassword', RepeatedType::class, [ | ||||||
|  |                 'type' => PasswordType::class, | ||||||
|  |                 'first_options' => ['label' => 'Password'], | ||||||
|  |                 'second_options' => ['label' => 'Repeat Password'], | ||||||
|                 // instead of being set onto the object directly, |                 // instead of being set onto the object directly, | ||||||
|                 // this is read and encoded in the controller |                 // this is read and encoded in the controller | ||||||
|                 'mapped' => false, |                 'mapped' => false, | ||||||
|   | |||||||
| @@ -6,6 +6,7 @@ use App\Entity\User; | |||||||
| use App\Entity\UserCase; | use App\Entity\UserCase; | ||||||
| use Symfony\Bridge\Doctrine\Form\Type\EntityType; | use Symfony\Bridge\Doctrine\Form\Type\EntityType; | ||||||
| use Symfony\Component\Form\AbstractType; | use Symfony\Component\Form\AbstractType; | ||||||
|  | use Symfony\Component\Form\Extension\Core\Type\CheckboxType; | ||||||
| use Symfony\Component\Form\FormBuilderInterface; | use Symfony\Component\Form\FormBuilderInterface; | ||||||
| use Symfony\Component\OptionsResolver\OptionsResolver; | use Symfony\Component\OptionsResolver\OptionsResolver; | ||||||
|  |  | ||||||
| @@ -18,6 +19,9 @@ class UserCaseFormType extends AbstractType | |||||||
|                 'class' => User::class, |                 'class' => User::class, | ||||||
|                 'choice_label' => 'name', |                 'choice_label' => 'name', | ||||||
|             ]) |             ]) | ||||||
|  |             ->add('overrideLevel', CheckboxType::class, [ | ||||||
|  |                 'mapped' => false | ||||||
|  |             ]) | ||||||
|         ; |         ; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										22
									
								
								src/Libs/Breadcrumb.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/Libs/Breadcrumb.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  | <?php | ||||||
|  |  | ||||||
|  | namespace App\Libs; | ||||||
|  |  | ||||||
|  | class Breadcrumb | ||||||
|  | { | ||||||
|  |     public function __construct( | ||||||
|  |         private string $link, | ||||||
|  |         private string $name | ||||||
|  |     ) { | ||||||
|  |  | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function __toString(): string | ||||||
|  |     { | ||||||
|  |         return <<<HTML | ||||||
|  |         <li class='breadcrumb-item text-sm'> | ||||||
|  |             <a class='opacity-6 opacity-5 text-dark' href="{$this->link}">{$this->name}</a> | ||||||
|  |         </li> | ||||||
|  |         HTML; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -86,8 +86,10 @@ class UserRepository extends ServiceEntityRepository implements PasswordUpgrader | |||||||
|         return $this->createQueryBuilder('u') |         return $this->createQueryBuilder('u') | ||||||
|             ->orWhere('u.caseWorker = :case_worker') |             ->orWhere('u.caseWorker = :case_worker') | ||||||
|             ->orWhere('u.caseManager = :case_manager') |             ->orWhere('u.caseManager = :case_manager') | ||||||
|  |             ->orWhere('u.therapist = :therapist') | ||||||
|             ->setParameter('case_worker', true) |             ->setParameter('case_worker', true) | ||||||
|             ->setParameter('case_manager', true) |             ->setParameter('case_manager', true) | ||||||
|  |             ->setParameter('therapist', true) | ||||||
|             ->orderBy('u.name', 'ASC') |             ->orderBy('u.name', 'ASC') | ||||||
|             ->getQuery() |             ->getQuery() | ||||||
|             ->getResult() |             ->getResult() | ||||||
|   | |||||||
| @@ -3,35 +3,40 @@ | |||||||
| 	<head> | 	<head> | ||||||
| 		<meta charset="utf-8"/> | 		<meta charset="utf-8"/> | ||||||
| 		<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | 		<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | ||||||
| 		<link rel="apple-touch-icon" sizes="76x76" href="/assets/img/apple-icon.png"> | 		<link rel="apple-touch-icon" sizes="76x76" href="{{ asset('img/apple-icon.png') }}"> | ||||||
| 		<link rel="icon" type="image/png" href="/assets/img/favicon.png"> | 		<link rel="icon" type="image/png" href="{{ asset('img/favicon.png') }}"> | ||||||
| 		<title> | 		<title> | ||||||
| 			{% block title %}CM Tracker | 			{% block title %}CM Tracker | ||||||
| 			{% endblock %} | 			{% endblock %} | ||||||
| 		</title> | 		</title> | ||||||
|  |  | ||||||
|  | 		<!-- Simple CSS | ||||||
|  | 						<link | ||||||
|  | 						rel="stylesheet" href="https://cdn.simplecss.org/simple.min.css">--> | ||||||
|  |  | ||||||
| 		<!--     Fonts and icons     --> | 		<!--     Fonts and icons     --> | ||||||
| 		<link | 		<link | ||||||
| 		rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Inter:300,400,500,600,700,900"/> | 		rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Inter:300,400,500,600,700,900"/> | ||||||
| 		<!-- Nucleo Icons --> | 		<!-- Nucleo Icons --> | ||||||
| 		<link href="/assets/css/nucleo-icons-a27f14049a724caccfdf868df5270952.css" rel="stylesheet"/> | 		<link href="{{ asset('css/nucleo-icons.css') }}" rel="stylesheet"/> | ||||||
| 		<link | 		<link | ||||||
| 		href="/assets/css/nucleo-svg-3db27f91a3b15bada90bc46e8e6e1035.css" rel="stylesheet"/> | 		href="{{ asset('css/nucleo-svg.css') }}" rel="stylesheet"/> | ||||||
| 		<!-- Font Awesome Icons --> | 		<!-- Font Awesome Icons --> | ||||||
| 		<script src="https://kit.fontawesome.com/f15a79324f.js" crossorigin="anonymous"></script> | 		<script src="https://kit.fontawesome.com/f15a79324f.js" crossorigin="anonymous"></script> | ||||||
| 		<!-- Material Icons --> | 		<!-- Material Icons --> | ||||||
| 		<link | 		<link | ||||||
| 		rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,400,0,0"/> | 		rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,400,0,0"/> | ||||||
| 		<!-- CSS Files --> | 		<!-- CSS Files --> | ||||||
| 		<link id="pagestyle" href="/assets/css/material-dashboard-69c5ab25ac23935d84707ae832be200b.css?v=3.2.0" rel="stylesheet"/> {% block stylesheets %}{% endblock %} | 		<link id="pagestyle" href="{{ asset('css/material-dashboard.css') }}?v=3.2.0" rel="stylesheet"/> {% block stylesheets %}{% endblock %} | ||||||
| 		</head> | 		</head> | ||||||
|  |  | ||||||
| 		<body class="bg-gray-200"> {% block body %}{% endblock %} | 		<body class="bg-gray-200"> {% block body %}{% endblock %} | ||||||
|  |  | ||||||
| 			{% block javascripts %} | 			{% block javascripts %} | ||||||
| 				<script src="/assets/js/core/popper.min-0e0d7375f38434864f6e8b17b83248aa.js"></script> | 				<script src="{{ asset('js/core/popper.min.js') }}"></script> | ||||||
| 				<script src="/assets/js/core/bootstrap.min-98996657a881e005a859bf6c1669833e.js"></script> | 				<script src="{{ asset('js/core/bootstrap.min.js') }}"></script> | ||||||
| 				<script src="/assets/js/plugins/perfect-scrollbar.min-a3b6b88d9191651d76bca1d18ad6ff6f.js"></script> | 				<script src="{{ asset('js/plugins/perfect-scrollbar.min.js') }}"></script> | ||||||
| 				<script src="/assets/js/plugins/smooth-scrollbar.min-7f3b7aad407cb76c47d8ba2ff36b2917.js"></script> | 				<script src="{{ asset('js/plugins/smooth-scrollbar.min.js') }}"></script> | ||||||
| 				<script> | 				<script> | ||||||
| 					var win = navigator.platform.indexOf('Win') > -1; | 					var win = navigator.platform.indexOf('Win') > -1; | ||||||
| if (win && document.querySelector('#sidenav-scrollbar')) { | if (win && document.querySelector('#sidenav-scrollbar')) { | ||||||
| @@ -44,7 +49,9 @@ Scrollbar.init(document.querySelector('#sidenav-scrollbar'), options); | |||||||
| 				<!-- Github buttons --> | 				<!-- Github buttons --> | ||||||
| 				<script async defer src="https://buttons.github.io/buttons.js"></script> | 				<script async defer src="https://buttons.github.io/buttons.js"></script> | ||||||
| 				<!-- Control Center for Material Dashboard: parallax effects, scripts for the example pages etc --> | 				<!-- Control Center for Material Dashboard: parallax effects, scripts for the example pages etc --> | ||||||
| 				<script src="/assets/js/material-dashboard-3c2e68ac5dcb043e53d475fe9d10a964.js?v=3.2.0"></script> | 				<script src="{{ asset('js/material-dashboard.js') }}?v=3.2.0"></script> | ||||||
|  |  | ||||||
|  | 				<script src='{{ asset('js/script.js') }}'></script> | ||||||
|  |  | ||||||
| 				{% block importmap %} | 				{% block importmap %} | ||||||
| 					{{ importmap('app') }} | 					{{ importmap('app') }} | ||||||
|   | |||||||
| @@ -27,8 +27,7 @@ | |||||||
| 										<select name='{{ field_name(form.supervisor) }}' id='user_form_supervisor' class='form-control'> | 										<select name='{{ field_name(form.supervisor) }}' id='user_form_supervisor' class='form-control'> | ||||||
| 											<option value=''></option> | 											<option value=''></option> | ||||||
| 											{% for s in supervisors %} | 											{% for s in supervisors %} | ||||||
| 												{% set selected = (s.id == data.id) %} | 												<option value='{{ s.id }}' {% if user.supervisor and user.supervisor.id == s.id %} selected="selected" {% endif %}>{{ s.name }}</option> | ||||||
| 												<option value='{{ s.id }}' {% if selected %} selected="true" {% endif %}>{{ s.name }}</option> |  | ||||||
| 											{% endfor %} | 											{% endfor %} | ||||||
| 										</select> | 										</select> | ||||||
| 									</div> | 									</div> | ||||||
|   | |||||||
| @@ -55,7 +55,7 @@ | |||||||
| 									<select name='{{ field_name(form.level) }}' id='case_form_level' class='form-control'> | 									<select name='{{ field_name(form.level) }}' id='case_form_level' class='form-control'> | ||||||
| 										<option value=''></option> | 										<option value=''></option> | ||||||
| 										{% for l in enum('App\\Enums\\CaseLevel').cases() %} | 										{% for l in enum('App\\Enums\\CaseLevel').cases() %} | ||||||
| 											<option value='{{ l.value }}'>{{ l.name }}</option> | 											<option value='{{ l.value }}'>{{ l.name|replace({'_': ' '})|lower|capitalize }}</option> | ||||||
| 										{% endfor %} | 										{% endfor %} | ||||||
| 									</select> | 									</select> | ||||||
| 								</div> | 								</div> | ||||||
|   | |||||||
| @@ -19,12 +19,15 @@ | |||||||
| 									<h4 class="font-weight-bolder">Assign Case Worker</h4> | 									<h4 class="font-weight-bolder">Assign Case Worker</h4> | ||||||
| 								</div> | 								</div> | ||||||
| 								<div class="card-body"> | 								<div class="card-body"> | ||||||
|  | 									{{ form_start(form, {'attr': {'onsubmit': 'return validateAssignForm()'}}) }} | ||||||
|  |  | ||||||
| 									{{ form_errors(form) }} | 									{{ form_errors(form) }} | ||||||
|  |  | ||||||
| 									{{ form_start(form) }} |  | ||||||
| 									<div class='input-group input-group-outline mb-3 is-filled'> | 									<div class='input-group input-group-outline mb-3 is-filled'> | ||||||
|  | 										<input type='hidden' id='caseId' value='{{ id }}'/> | ||||||
|  | 										<input type='hidden' id='mustOverride' value="false"/> | ||||||
| 										<label for='user_form_caseWorker' class='form-label'>Case Worker</label> | 										<label for='user_form_caseWorker' class='form-label'>Case Worker</label> | ||||||
| 										<select name='{{ field_name(form.user) }}' id='user_form_caseWorker' class='form-control'> | 										<select name='{{ field_name(form.user) }}' id='user_form_caseWorker' class='form-control' onchange='javascript:checkLevels()'> | ||||||
| 											<option value=''></option> | 											<option value=''></option> | ||||||
| 											{% for w in caseWorkers %} | 											{% for w in caseWorkers %} | ||||||
| 												{% set selected = (w.id == assignedWorkerId) %} | 												{% set selected = (w.id == assignedWorkerId) %} | ||||||
| @@ -34,12 +37,12 @@ | |||||||
| 									</div> | 									</div> | ||||||
|  |  | ||||||
| 									<div class='input-group input-group-outline mb-3'> | 									<div class='input-group input-group-outline mb-3'> | ||||||
| 										<input type='checkbox' name='user_form_levelOverride' id='user_form_levelOverride' value='1'/> | 										<input type='checkbox' name='{{ field_name(form.overrideLevel) }}' id='user_form_levelOverride' value='1'/>   | ||||||
| 										<label for='user_form_levelOverride' class='form-label'>Override Level</label> | 										<label for='user_form_levelOverride'>Override Level</label> | ||||||
| 									</div> | 									</div> | ||||||
|  |  | ||||||
| 									<div class="text-center"> | 									<div class="text-center"> | ||||||
| 										<button type="submit" class="btn btn-lg bg-gradient-dark btn-lg w-100 mt-4 mb-0">Assign Case Worker</button> | 										<button type="submit" id='submit-btn' class="btn btn-lg bg-gradient-dark btn-lg w-100 mt-4 mb-0">Assign Case Worker</button> | ||||||
| 									</div> | 									</div> | ||||||
| 									{{ form_end(form) }} | 									{{ form_end(form) }} | ||||||
| 								</div> | 								</div> | ||||||
|   | |||||||
| @@ -54,11 +54,7 @@ | |||||||
| 									<select name='{{ field_name(form.level) }}' id='case_form_level' class='form-control'> | 									<select name='{{ field_name(form.level) }}' id='case_form_level' class='form-control'> | ||||||
| 										<option value=''></option> | 										<option value=''></option> | ||||||
| 										{% for l in enum('App\\Enums\\CaseLevel').cases() %} | 										{% for l in enum('App\\Enums\\CaseLevel').cases() %} | ||||||
| 											{% set selected="" %} | 											<option value='{{ l.value }}' {% if case.level.value == l.value %} selected='selected'{% endif %}>{{ l.name }}</option> | ||||||
| 											{% if case.level.value == l.value %} |  | ||||||
| 												{% set selected=" selected='selected" %} |  | ||||||
| 											{% endif %} |  | ||||||
| 											<option value='{{ l.value }}' {{ selected }}>{{ l.name }}</option> |  | ||||||
| 										{% endfor %} | 										{% endfor %} | ||||||
| 									</select> | 									</select> | ||||||
| 								</div> | 								</div> | ||||||
|   | |||||||
| @@ -19,8 +19,8 @@ | |||||||
| 						<div class="col-xl-4 col-lg-5 col-md-7 d-flex flex-column ms-auto me-auto ms-lg-auto me-lg-5"> | 						<div class="col-xl-4 col-lg-5 col-md-7 d-flex flex-column ms-auto me-auto ms-lg-auto me-lg-5"> | ||||||
| 							<div class="card card-plain"> | 							<div class="card card-plain"> | ||||||
| 								<div class="card-header"> | 								<div class="card-header"> | ||||||
| 									<h4 class="font-weight-bolder">Add Referral Source</h4> | 									<h4 class="font-weight-bolder">Edit Referral Source</h4> | ||||||
| 									<p class="mb-0">Add a source of receiving referrals</p> | 									<p class="mb-0">{{ rs.name }}</p> | ||||||
| 								</div> | 								</div> | ||||||
| 								<div class="card-body"> | 								<div class="card-body"> | ||||||
| 									{{ form_errors(form) }} | 									{{ form_errors(form) }} | ||||||
|   | |||||||
| @@ -19,7 +19,7 @@ | |||||||
| 									<h6 class="text-white text-capitalize ps-3">Referral Source List</h6> | 									<h6 class="text-white text-capitalize ps-3">Referral Source List</h6> | ||||||
| 								</div> | 								</div> | ||||||
| 								<div> | 								<div> | ||||||
| 									<button type="button" class="btn btn-block btn-light mb-3" onclick="window.open('/index.php/add-source', '_self')">Add Source</button> | 									<button type="button" class="btn btn-block btn-light mb-3" onclick="window.open('{{ path('app_add_source') }}', '_self')">Add Source</button> | ||||||
| 								</div> | 								</div> | ||||||
| 							</div> | 							</div> | ||||||
| 						</div> | 						</div> | ||||||
| @@ -58,7 +58,7 @@ | |||||||
| 													{{ src.phone }} | 													{{ src.phone }} | ||||||
| 												</td> | 												</td> | ||||||
| 												<td class='align-middle'> | 												<td class='align-middle'> | ||||||
| 													<a href='/index.php/edit-source/{{ src.id }}' class='text-secondary font-weight-bold text-xs' data-toggle='tooltip' data-original-title='Edit Source'>Edit</a> | 													<a href="{{ path('app_edit_source', {id: src.id}) }}" class='text-secondary font-weight-bold text-xs' data-toggle='tooltip' data-original-title='Edit Source'>Edit</a> | ||||||
| 												</td> | 												</td> | ||||||
| 											</tr> | 											</tr> | ||||||
| 										{% endfor %} | 										{% endfor %} | ||||||
|   | |||||||
| @@ -33,21 +33,21 @@ | |||||||
| 									<div class='input-group input-group-outline mb-3'> | 									<div class='input-group input-group-outline mb-3'> | ||||||
| 										<div class='row justify-content-center flex-column'> | 										<div class='row justify-content-center flex-column'> | ||||||
| 											<div class='col'> | 											<div class='col'> | ||||||
| 												<input type='checkbox' name='{{ field_name(form.caseWorker) }}' id='user_form_job_CASE_WORKER' value='CASE_WORKER' {% if is_granted('ROLE_CASE_WORKER') %} checked="checked" {% endif %}/> | 												<input type='checkbox' name='{{ field_name(form.caseWorker) }}' id='user_form_job_CASE_WORKER' value='CASE_WORKER' {% if data.caseWorker %} checked="checked" {% endif %}/> | ||||||
| 												<label for='user_form_job_CASE_WORKER'>Case Worker</label><br/> | 												<label for='user_form_job_CASE_WORKER'>Case Worker</label><br/> | ||||||
| 											</div> | 											</div> | ||||||
| 											<div class='col'> | 											<div class='col'> | ||||||
| 												<input type='checkbox' name='{{ field_name(form.therapist) }}' id='user_form_job_THERAPIST' value='THERAPIST' {% if is_granted('ROLE_THERAPIST') %} checked="checked" {% endif %}/> | 												<input type='checkbox' name='{{ field_name(form.therapist) }}' id='user_form_job_THERAPIST' value='THERAPIST' {% if data.therapist %} checked="checked" {% endif %}/> | ||||||
| 												<label for='user_form_job_THERAPIST'>Therapist</label><br/> | 												<label for='user_form_job_THERAPIST'>Therapist</label><br/> | ||||||
| 											</div> | 											</div> | ||||||
| 										</div> | 										</div> | ||||||
| 										<div class='row justify-content-center flex-column'> | 										<div class='row justify-content-center flex-column'> | ||||||
| 											<div class='col'> | 											<div class='col'> | ||||||
| 												<input type='checkbox' name='{{ field_name(form.caseManager) }}' id='user_form_job_CASE_MANAGER' value='CASE_MANAGER' {% if is_granted('ROLE_CASE_MANAGER') %} checked="checked" {% endif %}/> | 												<input type='checkbox' name='{{ field_name(form.caseManager) }}' id='user_form_job_CASE_MANAGER' value='CASE_MANAGER' {% if data.caseManager %} checked="checked" {% endif %}/> | ||||||
| 												<label for='user_form_job_CASE_MANAGER'>Case Manager</label> | 												<label for='user_form_job_CASE_MANAGER'>Case Manager</label> | ||||||
| 											</div> | 											</div> | ||||||
| 											<div class='col'> | 											<div class='col'> | ||||||
| 												<input type='checkbox' name='{{ field_name(form.su) }}' id='user_form_job_ADMIN' value='ADMIN' {% if is_granted('ROLE_ADMIN') %} checked="checked" {% endif %}/> | 												<input type='checkbox' name='{{ field_name(form.su) }}' id='user_form_job_ADMIN' value='ADMIN' {% if data.su %} checked="checked" {% endif %}/> | ||||||
| 												<label for='user_form_job_ADMIN'>Admin</label><br/> | 												<label for='user_form_job_ADMIN'>Admin</label><br/> | ||||||
| 											</div> | 											</div> | ||||||
| 										</div> | 										</div> | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ | |||||||
| 									<h6 class="text-white text-capitalize ps-3">User List</h6> | 									<h6 class="text-white text-capitalize ps-3">User List</h6> | ||||||
| 								</div> | 								</div> | ||||||
| 								<div> | 								<div> | ||||||
| 									<button type="button" class="btn btn-block btn-light mb-3" onclick="window.open('/index.php/add-user', '_self')">Add User</button> | 									<button type="button" class="btn btn-block btn-light mb-3" onclick="window.open('{{ path('app_add_user') }}', '_self')">Add User</button> | ||||||
| 								</div> | 								</div> | ||||||
| 							</div> | 							</div> | ||||||
| 						</div> | 						</div> | ||||||
| @@ -60,9 +60,9 @@ | |||||||
| 													{% endif %} | 													{% endif %} | ||||||
| 												</td> | 												</td> | ||||||
| 												<td class='align-middle'> | 												<td class='align-middle'> | ||||||
| 													<a href='/index.php/edit-user/{{ user.id }}' class='text-secondary font-weight-bold text-xs' data-toggle='tooltip' data-original-title='Edit user'>Edit</a> | 													<a href='{{ path('app_edit_user', {id: user.id}) }}' class='text-secondary font-weight-bold text-xs' data-toggle='tooltip' data-original-title='Edit user'>Edit</a> | ||||||
| 													   | 													   | ||||||
| 													<a href='/index.php/assign-supervisor/{{ user.id }}' class='text-secondary text-xs' data-toggle='tooltip' data-original-title='Assign supervisor'>Assign</a> | 													<a href='{{ path('app_assign_supervisor', {id: user.id}) }}' class='text-secondary text-xs' data-toggle='tooltip' data-original-title='Assign supervisor'>Assign</a> | ||||||
| 												</td> | 												</td> | ||||||
| 											</tr> | 											</tr> | ||||||
| 										{% endfor %} | 										{% endfor %} | ||||||
|   | |||||||
| @@ -16,14 +16,14 @@ | |||||||
| 									<h6 class="text-white text-capitalize ps-3">Case List</h6> | 									<h6 class="text-white text-capitalize ps-3">Case List</h6> | ||||||
| 								</div> | 								</div> | ||||||
| 								<div> | 								<div> | ||||||
| 									<button type="button" class="btn btn-block btn-light mb-3" onclick="window.open('/index.php/add-case', '_self')">Add Case</button> | 									<button type="button" class="btn btn-block btn-light mb-3" onclick="window.open('{{ path('app_add_case') }}', '_self')">Add Case</button> | ||||||
| 								</div> | 								</div> | ||||||
| 							</div> | 							</div> | ||||||
| 						</div> | 						</div> | ||||||
| 						<div class="card-body px-0 pb-2"> | 						<div class="card-body px-0 pb-2"> | ||||||
| 							<div> | 							<div> | ||||||
| 								Filters: | 								Filters: | ||||||
| 								<select onchange='javascript:filterCasesByUser(this.value)'> | 								<select onchange='filterCasesByUser(this.value)'> | ||||||
| 									<option value=''></option> | 									<option value=''></option> | ||||||
|  |  | ||||||
| 									{% for w in workers %} | 									{% for w in workers %} | ||||||
| @@ -45,7 +45,7 @@ | |||||||
| 											<th class="text-secondary opacity-7"></th> | 											<th class="text-secondary opacity-7"></th> | ||||||
| 										</tr> | 										</tr> | ||||||
| 									</thead> | 									</thead> | ||||||
| 									<tbody> | 									<tbody id='case-list'> | ||||||
| 										{% for c in cases %} | 										{% for c in cases %} | ||||||
| 											<tr> | 											<tr> | ||||||
| 												<td> | 												<td> | ||||||
| @@ -81,18 +81,21 @@ | |||||||
| 													</p> | 													</p> | ||||||
| 												</td> | 												</td> | ||||||
| 												<td class='align-right'> | 												<td class='align-right'> | ||||||
| 													<a href='/index.php/edit-case/{{ c.id }}' class='' title='Edit Case' data-toggle='tooltip' data-original-title='Edit Case'> | 													<a href='{{ path('app_edit_case', {id: c.id}) }}' class='' title='Edit Case' data-toggle='tooltip'> | ||||||
| 														<i class="material-symbols-rounded opacity-5">edit</i> | 														<i class="material-symbols-rounded opacity-5">edit</i> | ||||||
| 													</a> | 													</a> | ||||||
| 													<a href='/index.php/assign-case/{{ c.id }}' class='' title='Assign Case Worker' data-toggle='tooltip' data-original-title='Assign Worker'> | 													<a href='{{ path('app_assign_case', {id: c.id}) }}' class='' title='Assign Case Worker' data-toggle='tooltip'> | ||||||
| 														<i class='material-symbols-rounded opacity-5'>badge</i> | 														<i class='material-symbols-rounded opacity-5'>badge</i> | ||||||
| 													</a> | 													</a> | ||||||
| 													<a href='/index.php/list-referrals/{{ c.id }}' class='' title='List Referrals' data-toggle='tooltip' data-original-title='Add Referral'> | 													<a href='{{ path('app_list_referrals', {id: c.id}) }}' class='' title='List Referrals' data-toggle='tooltip'> | ||||||
| 														<i class='material-symbols-rounded opacity-5'>create_new_folder</i> | 														<i class='material-symbols-rounded opacity-5'>create_new_folder</i> | ||||||
| 													</a> | 													</a> | ||||||
| 													<a href='/index.php/list-members/{{ c.id }}' class='' title='List Members' data-toggle='tooltip' data-original-title='Add Member'> | 													<a href='{{ path('app_case_members', {id: c.id}) }}' class='' title='List Members' data-toggle='tooltip'> | ||||||
| 														<i class='material-symbols-rounded opacity-5'>group_add</i> | 														<i class='material-symbols-rounded opacity-5'>group_add</i> | ||||||
| 													</a> | 													</a> | ||||||
|  | 													<a href='{{ path('app_case_notes', {id: c.id}) }}' class='' title='Show Notes' data-toggle='tooltip'> | ||||||
|  | 														<i class='material-symbols-rounded opacity-5'>clinical_notes</i> | ||||||
|  | 													</a> | ||||||
| 												</td> | 												</td> | ||||||
| 											</tr> | 											</tr> | ||||||
| 										</td> | 										</td> | ||||||
|   | |||||||
| @@ -19,7 +19,7 @@ | |||||||
| 									<h6 class="text-white text-capitalize ps-3">Member List</h6> | 									<h6 class="text-white text-capitalize ps-3">Member List</h6> | ||||||
| 								</div> | 								</div> | ||||||
| 								<div> | 								<div> | ||||||
| 									<button type="button" class="btn btn-block btn-light mb-3" onclick="window.open('/index.php/add-member/{{ case.id }}', '_self')">Add Member</button> | 									<button type="button" class="btn btn-block btn-light mb-3" onclick="window.open('{{ path('app_case_add_member', {id: case.id}) }}', '_self')">Add Member</button> | ||||||
| 								</div> | 								</div> | ||||||
| 							</div> | 							</div> | ||||||
| 						</div> | 						</div> | ||||||
| @@ -73,7 +73,7 @@ | |||||||
| 													{% endif %} | 													{% endif %} | ||||||
| 												</td> | 												</td> | ||||||
| 												<td class='align-middle'> | 												<td class='align-middle'> | ||||||
| 													<a href='/index.php/case/{{ case.id }}/edit-member/{{ member.id }}' class='text-secondary font-weight-bold text-xs' data-toggle='tooltip' data-original-title='Edit Source'> | 													<a href='{{ path('app_case_edit_member', {caseId: case.id, memberId: member.id}) }}' class='text-secondary font-weight-bold text-xs' data-toggle='tooltip' data-original-title='Edit Source'> | ||||||
| 														<i class="material-symbols-rounded opacity-5">edit</i> | 														<i class="material-symbols-rounded opacity-5">edit</i> | ||||||
| 													</a> | 													</a> | ||||||
| 												</td> | 												</td> | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ | |||||||
| 									<h6 class="text-white text-capitalize ps-3">Referral List</h6> | 									<h6 class="text-white text-capitalize ps-3">Referral List</h6> | ||||||
| 								</div> | 								</div> | ||||||
| 								<div> | 								<div> | ||||||
| 									<button type="button" class="btn btn-block btn-light mb-3" onclick="window.open('/index.php/add-referral/{{ case.id }}', '_self')">Add Referral</button> | 									<button type="button" class="btn btn-block btn-light mb-3" onclick="window.open('{{ path('app_case_add_referral', {id: case.id}) }}', '_self')">Add Referral</button> | ||||||
| 								</div> | 								</div> | ||||||
| 							</div> | 							</div> | ||||||
| 						</div> | 						</div> | ||||||
| @@ -51,7 +51,7 @@ | |||||||
| 													<p class='text-xs font-weight-bold mb-0'>{{ r.endDate|date("F j, Y") }}</p> | 													<p class='text-xs font-weight-bold mb-0'>{{ r.endDate|date("F j, Y") }}</p> | ||||||
| 												</td> | 												</td> | ||||||
| 												<td class='align-right'> | 												<td class='align-right'> | ||||||
| 													<a href='/index.php/case/{{ case.id }}/edit-referral/{{ r.id }}' class='' title='Edit Referral' data-toggle='tooltip'> | 													<a href='{{ path('app_case_edit_referral', {caseId: case.id, referralId: r.id}) }}' class='' title='Edit Referral' data-toggle='tooltip'> | ||||||
| 														<i class="material-symbols-rounded opacity-5">edit</i> | 														<i class="material-symbols-rounded opacity-5">edit</i> | ||||||
| 													</a> | 													</a> | ||||||
| 													<a href='/index.php/list-notes/{{ r.id }}' class='' title='List Notes' data-toggle='tooltip'> | 													<a href='/index.php/list-notes/{{ r.id }}' class='' title='List Notes' data-toggle='tooltip'> | ||||||
|   | |||||||
| @@ -2,11 +2,8 @@ | |||||||
| 	<nav aria-label="breadcrumb"> | 	<nav aria-label="breadcrumb"> | ||||||
| 		<ol class="breadcrumb bg-transparent mb-0 pb-0 pt-1 px-0 me-sm-6 me-5"> | 		<ol class="breadcrumb bg-transparent mb-0 pb-0 pt-1 px-0 me-sm-6 me-5"> | ||||||
| 			{% for crumb in breadcrumbs %} | 			{% for crumb in breadcrumbs %} | ||||||
| 				<li class="breadcrumb-item text-sm"> | 				{{ crumb|raw }} | ||||||
| 					<a class="opacity-5 text-dark" href="javascript:;">{{ crumb }}</a> |  | ||||||
| 				</li> |  | ||||||
| 			{% endfor %} | 			{% endfor %} | ||||||
| 			{#<li class="breadcrumb-item text-sm text-dark active" aria-current="page">Tables</li>#} |  | ||||||
| 		</ol> | 		</ol> | ||||||
| 	</nav> | 	</nav> | ||||||
| {% endblock %} | {% endblock %} | ||||||
|   | |||||||
| @@ -2,8 +2,8 @@ | |||||||
| 	<aside class="sidenav navbar navbar-vertical navbar-expand-xs border-radius-lg fixed-start ms-2  bg-white my-2" id="sidenav-main"> | 	<aside class="sidenav navbar navbar-vertical navbar-expand-xs border-radius-lg fixed-start ms-2  bg-white my-2" id="sidenav-main"> | ||||||
| 		<div class="sidenav-header"> | 		<div class="sidenav-header"> | ||||||
| 			<i class="fas fa-times p-3 cursor-pointer text-dark opacity-5 position-absolute end-0 top-0 d-none d-xl-none" aria-hidden="true" id="iconSidenav"></i> | 			<i class="fas fa-times p-3 cursor-pointer text-dark opacity-5 position-absolute end-0 top-0 d-none d-xl-none" aria-hidden="true" id="iconSidenav"></i> | ||||||
| 			<a class="navbar-brand px-4 py-3 m-0" href="/index.php/dashboard"> | 			<a class="navbar-brand px-4 py-3 m-0" href="{{ path('app_dashboard') }}"> | ||||||
| 				<img src="/assets/img/logo-ct-dark-fede0e8581dd87c5e6217653376c32a4.png" class="navbar-brand-img" width="26" height="26" alt="main_logo"> | 				<img src="{{ asset('img/logo-ct-dark.png') }}" class="navbar-brand-img" width="26" height="26" alt="main_logo"> | ||||||
| 				<span class="ms-1 text-sm text-dark">CM Tracker</span> | 				<span class="ms-1 text-sm text-dark">CM Tracker</span> | ||||||
| 			</a> | 			</a> | ||||||
| 		</div> | 		</div> | ||||||
| @@ -18,19 +18,19 @@ | |||||||
| 			<ul class="navbar-nav"> | 			<ul class="navbar-nav"> | ||||||
| 				{% if is_granted('ROLE_ADMIN') %} | 				{% if is_granted('ROLE_ADMIN') %} | ||||||
| 					<li class='nav-item'> | 					<li class='nav-item'> | ||||||
| 						<a class="{{ admin_dashboard }}" href="/index.php/admin-dashboard"> | 						<a class="{{ admin_dashboard }}" href="{{ path('app_admin_dashboard') }}"> | ||||||
| 							<i class="material-symbols-rounded opacity-5">dashboard</i> | 							<i class="material-symbols-rounded opacity-5">dashboard</i> | ||||||
| 							<span class="nav-link-text ms-1">Admin Dashboard</span> | 							<span class="nav-link-text ms-1">Admin Dashboard</span> | ||||||
| 						</a> | 						</a> | ||||||
| 					</li> | 					</li> | ||||||
| 					<li class='nav-item'> | 					<li class='nav-item'> | ||||||
| 						<a class='{{ case_list }}' href='/index.php/list-cases'> | 						<a class='{{ case_list }}' href='{{ path('app_list_cases') }}'> | ||||||
| 							<i class='material-symbols-rounded opacity-5'>cases</i> | 							<i class='material-symbols-rounded opacity-5'>cases</i> | ||||||
| 							<span class='nav-link-text ms-1'>Case List</span> | 							<span class='nav-link-text ms-1'>Case List</span> | ||||||
| 						</a> | 						</a> | ||||||
| 					</li> | 					</li> | ||||||
| 					<li clas='nav-item'> | 					<li clas='nav-item'> | ||||||
| 						<a class='{{ referral_sources }}' href='/index.php/list-referral-sources'> | 						<a class='{{ referral_sources }}' href='{{ path('app_referral_source') }}'> | ||||||
| 							<i class='material-symbols-rounded opacity-5'>groups</i> | 							<i class='material-symbols-rounded opacity-5'>groups</i> | ||||||
| 							<span class='nav-link-text ms-1'>Referral Sources</span> | 							<span class='nav-link-text ms-1'>Referral Sources</span> | ||||||
| 						</a> | 						</a> | ||||||
| @@ -39,7 +39,7 @@ | |||||||
|  |  | ||||||
| 				{% if is_granted('ROLE_CASE_MANAGER') %} | 				{% if is_granted('ROLE_CASE_MANAGER') %} | ||||||
| 					<li class='nav-item'> | 					<li class='nav-item'> | ||||||
| 						<a class='{{ staff_dashboard }}' href='/index.php/staff-dashboard'> | 						<a class='{{ staff_dashboard }}' href='{{ path('app_staff_dashboard') }}'> | ||||||
| 							<i class='material-symbols-rounded opacity-5'>dashboard</i> | 							<i class='material-symbols-rounded opacity-5'>dashboard</i> | ||||||
| 							<span class='nav-link-text ms-1'>Staff Dashboard</span> | 							<span class='nav-link-text ms-1'>Staff Dashboard</span> | ||||||
| 						</a> | 						</a> | ||||||
| @@ -47,7 +47,7 @@ | |||||||
| 				{% endif %} | 				{% endif %} | ||||||
|  |  | ||||||
| 				<li class="nav-item"> | 				<li class="nav-item"> | ||||||
| 					<a class="{{ user_dashboard }}" href="/index.php/dashboard"> | 					<a class="{{ user_dashboard }}" href="{{ path('app_dashboard') }}"> | ||||||
| 						<i class="material-symbols-rounded opacity-5">dashboard</i> | 						<i class="material-symbols-rounded opacity-5">dashboard</i> | ||||||
| 						<span class="nav-link-text ms-1">Dashboard</span> | 						<span class="nav-link-text ms-1">Dashboard</span> | ||||||
| 					</a> | 					</a> | ||||||
| @@ -56,21 +56,21 @@ | |||||||
| 					<h6 class="ps-4 ms-2 text-uppercase text-xs text-dark font-weight-bolder opacity-5">Account pages</h6> | 					<h6 class="ps-4 ms-2 text-uppercase text-xs text-dark font-weight-bolder opacity-5">Account pages</h6> | ||||||
| 				</li> | 				</li> | ||||||
| 				<li class="nav-item"> | 				<li class="nav-item"> | ||||||
| 					<a class="{{ profile }}" href="/index.php/profile"> | 					<a class="{{ profile }}" href="{{ path('app_profile') }}"> | ||||||
| 						<i class="material-symbols-rounded opacity-5">person</i> | 						<i class="material-symbols-rounded opacity-5">person</i> | ||||||
| 						<span class="nav-link-text ms-1">Profile</span> | 						<span class="nav-link-text ms-1">Profile</span> | ||||||
| 					</a> | 					</a> | ||||||
| 				</li> | 				</li> | ||||||
| 				{% if is_granted('ROLE_ADMIN') %} | 				{% if is_granted('ROLE_ADMIN') %} | ||||||
| 					<li class="nav-item"> | 					<li class="nav-item"> | ||||||
| 						<a class="{{ user_list }}" href="/index.php/list-users"> | 						<a class="{{ user_list }}" href="{{ path('app_list_users') }}"> | ||||||
| 							<i class="material-symbols-rounded opacity-5">assignment</i> | 							<i class="material-symbols-rounded opacity-5">assignment</i> | ||||||
| 							<span class="nav-link-text ms-1">User List</span> | 							<span class="nav-link-text ms-1">User List</span> | ||||||
| 						</a> | 						</a> | ||||||
| 					</li> | 					</li> | ||||||
| 				{% endif %} | 				{% endif %} | ||||||
| 				<li class='nav-item'> | 				<li class='nav-item'> | ||||||
| 					<a class='text-dark nav-link' href='/index.php/logout'> | 					<a class='text-dark nav-link' href='{{ logout_path() }}'> | ||||||
| 						<i class='material-symbols-rounded opacity-5'>logout</i> | 						<i class='material-symbols-rounded opacity-5'>logout</i> | ||||||
| 						<span class='nav-link-text ms-1'>Logout</span> | 						<span class='nav-link-text ms-1'>Logout</span> | ||||||
| 					</a> | 					</a> | ||||||
|   | |||||||
| @@ -3,6 +3,16 @@ | |||||||
| 		<div class="container-fluid py-1 px-3"> | 		<div class="container-fluid py-1 px-3"> | ||||||
| 			{{ block('breadcrumb', 'internal/libs/breadcrumb.html.twig') }} | 			{{ block('breadcrumb', 'internal/libs/breadcrumb.html.twig') }} | ||||||
| 			<div class="collapse navbar-collapse mt-sm-0 mt-2 me-md-0 me-sm-4" id="navbar"> | 			<div class="collapse navbar-collapse mt-sm-0 mt-2 me-md-0 me-sm-4" id="navbar"> | ||||||
|  | 				<div class='ms-md-auto pe-md-3 d-flex align-items-left'> | ||||||
|  | 					{% for label, messages in app.flashes %} | ||||||
|  | 						{% for message in messages %} | ||||||
|  | 							<div class="flash-{{ label }}"> | ||||||
|  | 								{{ message }} | ||||||
|  | 							</div> | ||||||
|  | 						{% endfor %} | ||||||
|  | 					{% endfor %} | ||||||
|  | 				</div> | ||||||
|  |  | ||||||
| 				<div class="ms-md-auto pe-md-3 d-flex align-items-center"> | 				<div class="ms-md-auto pe-md-3 d-flex align-items-center"> | ||||||
| 					<div class="input-group input-group-outline"> | 					<div class="input-group input-group-outline"> | ||||||
| 						<label class="form-label">Case Search...</label> | 						<label class="form-label">Case Search...</label> | ||||||
| @@ -47,7 +57,7 @@ | |||||||
| 						</ul> | 						</ul> | ||||||
| 					</li> | 					</li> | ||||||
| 					<li class="nav-item d-flex align-items-center" title="Profile"> | 					<li class="nav-item d-flex align-items-center" title="Profile"> | ||||||
| 						<a href="/index.php/profile" class="nav-link text-body font-weight-bold px-0"> | 						<a href="{{ path('app_profile') }}" class="nav-link text-body font-weight-bold px-0"> | ||||||
| 							<i class="material-symbols-rounded">account_circle</i> | 							<i class="material-symbols-rounded">account_circle</i> | ||||||
| 						</a> | 						</a> | ||||||
| 					</li> | 					</li> | ||||||
|   | |||||||
| @@ -43,7 +43,11 @@ | |||||||
| 									</div> | 									</div> | ||||||
| 									<div class="input-group input-group-outline mb-3"> | 									<div class="input-group input-group-outline mb-3"> | ||||||
| 										<label for="registration_form_plainPassword" class="form-label">Password</label> | 										<label for="registration_form_plainPassword" class="form-label">Password</label> | ||||||
| 										<input type="password" name="{{ field_name(form.plainPassword) }}" placeholder="" class="form-control" required="required"/> | 										<input type="password" name="{{ field_name(form.plainPassword.first) }}" placeholder="" class="form-control" required="required"/> | ||||||
|  | 									</div> | ||||||
|  | 									<div class='input-group input-group-outline mb-3'> | ||||||
|  | 										<label for='registration_form_repeatPassword' class='form-label'>Repeat Password</label> | ||||||
|  | 										<input type='password' name='{{ field_name(form.plainPassword.second) }}' class='form-control'/> | ||||||
| 									</div> | 									</div> | ||||||
| 									<div class="text-center"> | 									<div class="text-center"> | ||||||
| 										<button type="submit" class="btn btn-lg bg-gradient-dark btn-lg w-100 mt-4 mb-0">Sign Up</button> | 										<button type="submit" class="btn btn-lg bg-gradient-dark btn-lg w-100 mt-4 mb-0">Sign Up</button> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user