Compare commits

..

14 Commits

20 changed files with 368 additions and 30 deletions

View File

@ -47,7 +47,8 @@
"symfony/yaml": "7.2.*", "symfony/yaml": "7.2.*",
"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",
"vich/uploader-bundle": "^2.5"
}, },
"config": { "config": {
"allow-plugins": { "allow-plugins": {

View File

@ -32,4 +32,42 @@ return [
'@symfony/ux-leaflet-map' => [ '@symfony/ux-leaflet-map' => [
'path' => './vendor/symfony/ux-leaflet-map/assets/dist/map_controller.js', 'path' => './vendor/symfony/ux-leaflet-map/assets/dist/map_controller.js',
], ],
'bootstrap' => [
'version' => '5.3.3',
],
'@popperjs/core' => [
'version' => '2.11.8',
],
'bootstrap/dist/css/bootstrap.min.css' => [
'version' => '5.3.3',
'type' => 'css',
],
'perfect-scrollbar' => [
'version' => '1.5.6',
],
'perfect-scrollbar/css/perfect-scrollbar.min.css' => [
'version' => '1.5.6',
'type' => 'css',
],
'smooth-scrollbar' => [
'version' => '8.8.4',
],
'tslib' => [
'version' => '1.14.1',
],
'core-js/es/map' => [
'version' => '3.33.2',
],
'core-js/es/set' => [
'version' => '3.33.2',
],
'core-js/es/weak-map' => [
'version' => '3.33.2',
],
'core-js/es/array/from' => [
'version' => '3.33.2',
],
'core-js/es/object/assign' => [
'version' => '3.33.2',
],
]; ];

View File

@ -140,7 +140,8 @@ class AdminController extends AbstractController
->setRateType($form->get('rateType')->getData()) ->setRateType($form->get('rateType')->getData())
->setRate($form->get('rate')->getData()) ->setRate($form->get('rate')->getData())
->setLevel($form->get('level')->getData()) ->setLevel($form->get('level')->getData())
->setCompany($admin->getCompany()); ->setCompany($admin->getCompany())
;
$msg = MessageFactory::createUser($admin, $user, 'Welcome', "Welcome to CM Tracker"); $msg = MessageFactory::createUser($admin, $user, 'Welcome', "Welcome to CM Tracker");

View File

@ -96,6 +96,37 @@ class CaseController extends AbstractController
); );
} }
#[Route('/case/{caseId}', name: 'app_view_case')]
public function showCase(Request $request, string $caseId): Response
{
if (!$this->isGranted('IS_AUTHENTICATED_FULLY')) {
return $this->redirectToRoute('app_login');
}
$case = $this->entityManager->getRepository(MemberCase::class)->find($caseId);
$sources = $this->entityManager->getRepository(ReferralSource::class)->findAll();
$this->msgs = $this->entityManager->getRepository(Messages::class)->getUnreadMessages($this->getUser());
$this->notificationCount = $this->entityManager->getRepository(Messages::class)->getUnreadMessageCount($this->getUser());
return $this->render(
'internal/cases/view-case.html.twig',
array_merge(
$this->navLinks,
[
'case' => $case,
'sources' => $sources,
'breadcrumbs' => [
new Breadcrumb($this->generateUrl('app_list_cases'), 'List Cases'),
new Breadcrumb($this->generateUrl('app_view_case', ['caseId' => $case->getId()]), 'View Case')
],
'notifications' => $this->msgs,
'notificationCount' => $this->notificationCount,
]
)
);
}
#[Route('/add-case', name: 'app_add_case')] #[Route('/add-case', name: 'app_add_case')]
public function addCase(Request $request, #[CurrentUser()] User $admin): Response public function addCase(Request $request, #[CurrentUser()] User $admin): Response
{ {

View File

@ -34,11 +34,15 @@ class ReferralController extends AbstractController
private array $navLinks = [] private array $navLinks = []
) { ) {
$this->navLinks = NavList::LIST; $this->navLinks = NavList::LIST;
if (strpos($_SERVER['HTTP_REFERER'], 'my-cases') !== false) {
$this->navLinks['my_cases'] = NavList::PRESENT_LINK;
} else {
$this->navLinks['case_list'] = NavList::PRESENT_LINK; $this->navLinks['case_list'] = NavList::PRESENT_LINK;
} }
}
#[Route('/list-referrals/{id}', name: 'app_list_referrals')] #[Route('/list-referrals/{id}', name: 'app_list_referrals')]
public function listReferrals(#[CurrentUser()] User $user, string $id): Response public function listReferrals(#[CurrentUser()] User $user, string $id, Request $request): Response
{ {
$this->msgs = $this->entityManager->getRepository(Messages::class)->getUnreadMessages($user); $this->msgs = $this->entityManager->getRepository(Messages::class)->getUnreadMessages($user);
$this->notificationCount = $this->entityManager->getRepository(Messages::class)->getUnreadMessageCount($user); $this->notificationCount = $this->entityManager->getRepository(Messages::class)->getUnreadMessageCount($user);
@ -53,7 +57,11 @@ class ReferralController extends AbstractController
$this->navLinks, $this->navLinks,
[ [
'breadcrumbs' => [ 'breadcrumbs' => [
new Breadcrumb($this->generateUrl('app_list_cases'), 'List Cases'), (
strpos($request->server->get('HTTP_REFERER'), 'my-cases') !== false
? new Breadcrumb($this->generateUrl('app_my_cases'), 'My Cases')
: new Breadcrumb($this->generateUrl('app_list_cases'), 'List Cases')
),
new Breadcrumb($this->generateUrl('app_list_referrals', ['id' => $case->getId()]), 'Referrals'), new Breadcrumb($this->generateUrl('app_list_referrals', ['id' => $case->getId()]), 'Referrals'),
], ],
'notifications' => $this->msgs, 'notifications' => $this->msgs,

View File

@ -16,13 +16,15 @@ class MemberCaseFixture extends Fixture implements DependentFixtureInterface
{ {
public function load(ObjectManager $manager): void public function load(ObjectManager $manager): void
{ {
if(!$_ENV['CREATE_CASES']) {
return; return;
}
$sources = $manager->getRepository(ReferralSource::class)->findAll(); $sources = $manager->getRepository(ReferralSource::class)->findAll();
$users = $manager->getRepository(User::class)->findAll(); $users = $manager->getRepository(User::class)->findAll();
$gen = \Faker\Factory::create(); $gen = \Faker\Factory::create();
for ($x = 0; $x < 50; $x++) { for ($x = 0; $x < $_ENV['CREATE_CASES']; $x++) {
$case = new MemberCase(); $case = new MemberCase();
$case->setCaseNumber($gen->numberBetween(1000000, 9999999)) $case->setCaseNumber($gen->numberBetween(1000000, 9999999))
->setDcsCaseId($gen->numberBetween(1000000, 9999999)) ->setDcsCaseId($gen->numberBetween(1000000, 9999999))

View File

@ -16,7 +16,9 @@ class MemberFixture extends Fixture implements DependentFixtureInterface
{ {
public function load(ObjectManager $manager): void public function load(ObjectManager $manager): void
{ {
if (!$_ENV['CREATE_MEMBERS']) {
return; return;
}
$gen = \Faker\Factory::create(); $gen = \Faker\Factory::create();
$cases = $manager->getRepository(MemberCase::class)->findAll(); $cases = $manager->getRepository(MemberCase::class)->findAll();
@ -24,7 +26,7 @@ class MemberFixture extends Fixture implements DependentFixtureInterface
/** @var MemberCase $case */ /** @var MemberCase $case */
$caseLastName = $case->getLastName(); $caseLastName = $case->getLastName();
print "Adding members for case {$case->getCaseName()}".PHP_EOL; print "Adding members for case {$case->getCaseName()}".PHP_EOL;
$memCount = $gen->numberBetween(0, 5); $memCount = $gen->numberBetween(0, $_ENV['CREATE_MEMBERS']);
for ($x = 0; $x < $memCount; $x++) { for ($x = 0; $x < $memCount; $x++) {
$isChild = $gen->boolean(); $isChild = $gen->boolean();
$isParent = ($isChild ? false : $gen->boolean()); $isParent = ($isChild ? false : $gen->boolean());

View File

@ -19,14 +19,16 @@ class NoteFixture extends Fixture implements DependentFixtureInterface
{ {
public function load(ObjectManager $manager): void public function load(ObjectManager $manager): void
{ {
if(!$_ENV['CREATE_NOTES']) {
return; return;
}
$gen = \Faker\Factory::create(); $gen = \Faker\Factory::create();
$refs = $manager->getRepository(Referral::class)->findAll(); $refs = $manager->getRepository(Referral::class)->findAll();
foreach ($refs as $ref) { foreach ($refs as $ref) {
/** @var Referral $ref */ /** @var Referral $ref */
print "Adding notes for referral {$ref->getReferralId()}".PHP_EOL; print "Adding notes for referral {$ref->getReferralId()}".PHP_EOL;
$noteCount = $gen->numberBetween(0, 10); $noteCount = $gen->numberBetween(0, $_ENV['CREATE_NOTES']);
$case = $ref->getMemberCase(); $case = $ref->getMemberCase();
$caseMembers = $case->getMembers(); $caseMembers = $case->getMembers();

View File

@ -13,13 +13,15 @@ class ReferralFixture extends Fixture implements DependentFixtureInterface
{ {
public function load(ObjectManager $manager): void public function load(ObjectManager $manager): void
{ {
if(!$_ENV['CREATE_REFERRALS']) {
return; return;
}
$gen = \Faker\Factory::create(); $gen = \Faker\Factory::create();
$cases = $manager->getRepository(MemberCase::class)->findAll(); $cases = $manager->getRepository(MemberCase::class)->findAll();
foreach ($cases as $case) { foreach ($cases as $case) {
print "Adding referrals for case {$case->getCaseNumber()}".PHP_EOL; print "Adding referrals for case {$case->getCaseNumber()}".PHP_EOL;
$refCount = $gen->numberBetween(0, 2); $refCount = $gen->numberBetween(0, $_ENV['CREATE_REFERRALS']);
for ($x = 0; $x < $refCount; $x++) { for ($x = 0; $x < $refCount; $x++) {
$ref = new Referral(); $ref = new Referral();
$ref->setReferralId($gen->numberBetween(1000000, 9999999)) $ref->setReferralId($gen->numberBetween(1000000, 9999999))

View File

@ -12,10 +12,12 @@ class ReferralSourceFixture extends Fixture
{ {
public function load(ObjectManager $manager): void public function load(ObjectManager $manager): void
{ {
if(!$_ENV['CREATE_SOURCES']) {
return; return;
}
$gen = Factory::create(); $gen = Factory::create();
for ($x = 0; $x < 20; $x++) { for ($x = 0; $x < $_ENV['CREATE_REFERRALS']; $x++) {
$src = new ReferralSource(); $src = new ReferralSource();
$name = "{$gen->firstName()} {$gen->lastName()}"; $name = "{$gen->firstName()} {$gen->lastName()}";
$username = strtolower(str_replace(' ', '.', $name)); $username = strtolower(str_replace(' ', '.', $name));

View File

@ -0,0 +1,64 @@
<?php
namespace App\DataFixtures;
use App\Entity\MemberCase;
use App\Entity\StaffNote;
use App\Enums\ReferralServiceType;
use DateTime;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\DataFixtures\DependentFixtureInterface;
use Doctrine\Persistence\ObjectManager;
class StaffNoteFixture extends Fixture implements DependentFixtureInterface
{
public function load(ObjectManager $manager): void
{
if(!$_ENV['CREATE_STAFF_NOTES']) {
return;
}
$cases = $manager->getRepository(MemberCase::class)->findAll();
$gen = \Faker\Factory::create();
foreach ($cases as $case) {
/** @var MemberCase $case */
$note = new StaffNote();
$admitDate = new DateTime($case->getAdmitDate()?->format('Y-m-d').' '.$gen->time('H:i:s'));
$admitDate->add(\DateInterval::createFromDateString('7 day'));
$note->setDate($admitDate);
$note->setMemberCase($case);
$note->setServicesProvided($gen->randomElements(ReferralServiceType::class, $gen->numberBetween(1, 3)));
while ($admitDate->getTimestamp() < time()) {
$workerSignDatetime = clone $admitDate;
$workerSignDatetime->setTime($gen->time('H'), $gen->time('i'), $gen->time('s'));
$workerSignDatetime->add(\DateInterval::createFromDateString('1 day'));
$note->setWorkerSignDatetime($workerSignDatetime);
$supervisorSignDatetime = clone $admitDate;
$supervisorSignDatetime->setTime($gen->time('H'), $gen->time('i'), $gen->time('s'));
$supervisorSignDatetime->add(\DateInterval::createFromDateString('1 day'));
$note->setSupervisorSignDatetime($supervisorSignDatetime);
$note->setNote($gen->text(200));
$note->setRecommendations($gen->text(20));
$manager->persist($note);
$admitDate->add(\DateInterval::createFromDateString('14 days'));
$note = clone $note;
$note->setDate(clone $admitDate);
}
}
$manager->flush();
}
public function getDependencies(): array
{
return [
MemberCaseFixture::class,
];
}
}

View File

@ -20,10 +20,12 @@ class UserFixture extends Fixture
public function load(ObjectManager $manager): void public function load(ObjectManager $manager): void
{ {
if(!$_ENV['CREATE_USERS']) {
return; return;
}
$comp = $manager->getRepository(Company::class)->findOneBy(['name' => 'Counseling Partners, LLC']); $comp = $manager->getRepository(Company::class)->findOneBy(['name' => 'Counseling Partners, LLC']);
$gen = \Faker\Factory::create(); $gen = \Faker\Factory::create();
for ($x = 0; $x < 20; $x++) { for ($x = 0; $x < $_ENV['CREATE_USERS']; $x++) {
$user = new User(); $user = new User();
$name = $gen->firstName().' '.$gen->lastName(); $name = $gen->firstName().' '.$gen->lastName();
$username = strtolower(str_replace(' ', '.', $name)); $username = strtolower(str_replace(' ', '.', $name));

View File

@ -19,7 +19,35 @@ class Libs
if (isset($result['results'][0]['lat']) && isset($result['results'][0]['lon'])) { if (isset($result['results'][0]['lat']) && isset($result['results'][0]['lon'])) {
$lat = $result['results'][0]['lat']; $lat = $result['results'][0]['lat'];
$lon = $result['results'][0]['lon']; $lon = $result['results'][0]['lon'];
return [$lat, $lon]; return [number_format($lat, 6), number_format($lon, 6)];
}
return null;
}
public static function getRoute($lat1, $lon1, $lat2, $lon2): ?array
{
$params = [
'waypoints' => "{$lat1},{$lon1}|{$lat2},{$lon2}",
'mode' => 'drive',
'units' => 'imperial',
'format' => 'json',
'apiKey' => $_ENV['GEOAPIFY_API_KEY']
];
$url = "https://api.geoapify.com/v1/routing?".http_build_query($params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$result = curl_exec($ch);
curl_close($ch);
$result = json_decode($result, true);
dd($result);
if (isset($result['features'][0]['geometry']['coordinates'])) {
$route = $result['features'][0]['geometry']['coordinates'];
return $route;
} }
return null; return null;
} }

View File

@ -14,9 +14,10 @@ class NavList
'add_user' => 'nav-link text-dark', 'add_user' => 'nav-link text-dark',
'referral_sources' => 'nav-link text-dark', 'referral_sources' => 'nav-link text-dark',
'case_notes' => 'nav-link text-dark', 'case_notes' => 'nav-link text-dark',
'community_resource' => 'nav-link text-dark', 'community_resources' => 'nav-link text-dark',
'my_cases' => 'nav-link text-dark', 'my_cases' => 'nav-link text-dark',
'staff_notes' => 'nav-link text-dark', 'staff_notes' => 'nav-link text-dark',
'case_itinerary' => 'nav-link text-dark',
]; ];
public const PRESENT_LINK = 'nav-link text-white active bg-gradient-dark'; public const PRESENT_LINK = 'nav-link text-white active bg-gradient-dark';

View File

@ -35,10 +35,6 @@
{% block javascripts %} {% block javascripts %}
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script> <script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script>
<script src="{{ asset('js/core/popper.min.js') }}"></script>
<script src="{{ asset('js/core/bootstrap.min.js') }}"></script>
<script src="{{ asset('js/plugins/perfect-scrollbar.min.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')) {

View File

@ -87,6 +87,5 @@
</div> </div>
</div> </div>
</div> </div>
</main> </main>
{% endblock %} {% endblock %}

View File

@ -60,13 +60,16 @@
<p class='text-center text-xs font-weight-bold mb-0'>{{ c.referrals|length }}</p> <p class='text-center text-xs font-weight-bold mb-0'>{{ c.referrals|length }}</p>
</td> </td>
<td class='align-right'> <td class='align-right'>
<a href='{{ path('app_list_referrals', {id: c.id}) }}' class='' title='List Referrals' data-toggle='tooltip'> <a href='{{ path('app_view_case', {caseId: c.id}) }}' title='View Case'>
<i class='material-symbols-rounded opacity-5'>visibility</i>
</a>
<a href='{{ path('app_list_referrals', {id: c.id}) }}' title='List Referrals'>
<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='{{ path('app_case_members', {id: c.id}) }}' class='' title='List Members' data-toggle='tooltip'> <a href='{{ path('app_case_members', {id: c.id}) }}' title='List Members'>
<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'> <a href='{{ path('app_case_notes', {id: c.id}) }}' title='Show Notes'>
<i class='material-symbols-rounded opacity-5'>clinical_notes</i> <i class='material-symbols-rounded opacity-5'>clinical_notes</i>
</a> </a>
</td> </td>

View File

@ -0,0 +1,148 @@
{% extends 'base.html.twig' %}
{% block body %}
{{ block('nav', 'internal/libs/nav.html.twig') }}
<main class="main-content position-relative max-height-vh-100 h-100 border-radius-lg ">
{{ block('topnav', 'internal/libs/top-nav.html.twig') }}
<section>
<div class="card card-plain">
<div class="card-header">
<h4 class="font-weight-bolder">Case Info</h4>
<p class="mb-0"></p>
</div>
<div class="card-body">
<div class="container">
<div class="row">
<div class='col'>
<div class='input-group input-group-outline mb-3 is-filled'>
<label for='case_form_caseNumber' class='form-label'>Case #</label>
<input type='text' name='caseNumber' id='case_form_caseNumber' value='{{ case.caseNumber }}' class='form-control' required='required'/>
</div>
<div class='input-group input-group-outline mb-3 is-filled'>
<label for='case_form_dcsCaseId' class='form-label'>DCS Case ID</label>
<input type='text' name='dcsCaseId' id='case_form_dcsCaseId' value='{{ case.dcsCaseId }}' class='form-control' required='required'/>
</div>
<div class='input-group input-group-outline mb-3 is-filled'>
<label for='case_form_admitDate' class='form-label'>Admit Date</label>
<input type='date' name='admitDate' id='case_form_admitDate' value='{{ case.admitDate|date('Y-m-d') }}' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3{% if case.closeDate %} is-filled{% endif %}'>
<label for='case_form_closeDate' class='form-label'></label>
<input type='date' name='closeDate' id='case_form_closeDate' value='{% if case.closeDate %}{{ case.closeDate|date('Y-m-d') }}{% endif %}' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<label for='case_form_caseEmail' class='form-label'>Case Email</label>
<input type='text' name='caseEmail' id='case_form_caseEmail' value='{{ case.caseEmail }}' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3 is-filled'>
<label for='case_form_referralType' class='form-label'>Referral Type</label>
<input type='text' name='referralType' id='case_form_referralType' value='{{ case.referralType }}' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3 is-filled'>
<label for='case_form_level' class='form-label'>Level</label>
<select name='level' id='case_form_level' class='form-control'>
<option value=''></option>
{% for l in enum('App\\Enums\\CaseLevel').cases() %}
<option value='{{ l.value }}' {% if case.level.value == l.value %} selected='selected' {% endif %}>{{ l.name }}</option>
{% endfor %}
</select>
</div>
<div class='input-group input-group-outline mb-3 is-filled'>
<label for='case_form_referralSource' class='form-label'>Referral Source</label>
<select name='referralSource' id='case_form_referralSource' class='form-control'>
<option value=''></option>
{% for src in sources %}
<option value='{{ src.id }}' {% if case.referralSource.id == src.id %} selected='selected' {% endif %}>{{ src.name}}</option>
{% endfor %}
</select>
</div>
<div class='input-group input-group-outline mb-3 {% if case.referralSource2 %}is-filled{% endif %}'>
<label for='case_form_referralSources2' class='form-label'>2nd Referral Source</label>
<select name='referralSource2' id='case_form_referralSources2' class='form-control'>
<option value=''></option>
{% for src in sources %}
<option value='{{ src.id }}' {% if case.referralSource2 and case.referralSource2.id == src.id %} selected='selected' {% endif %}>{{ src.name }}</option>
{% endfor %}
</select>
</div>
</div>
<div class='col'>
<div class='input-group input-group-outline mb-3 is-filled'>
<label for='case_form_firstName' class='form-label'>First Name</label>
<input type='text' name='firstName' id='case_form_firstName' value='{{ case.firstName }}' class='form-control' required='required'/>
</div>
<div class='input-group input-group-outline mb-3 is-filled'>
<label for='case_form_lastName' class='form-label'>Last Name</label>
<input type='text' name='lastName' id='case_form_lastName' value='{{ case.lastName }}' class='form-control' required='required'/>
</div>
<div class='input-group input-group-outline mb-3{% if case.address %} is-filled{% endif %}'>
<label for='case_form_address' class='form-label'>Address</label>
<input type='text' name='address' id='case_form_address' value='{{ case.address }}' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3{% if case.address2 %} is-filled{% endif %}'>
<label for='case_form_address2' class='form-label'>Address 2</label>
<input type='text' name='address2' id='case_form_address2' value='{{ case.address2 }}' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3{% if case.city %} is-filled{% endif %}'>
<label for='case_form_city' class='form-label'>City</label>
<input type='text' name='city' id='case_form_city' value='{{ case.city }}' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3{% if case.state %} is-filled{% endif %}'>
<label for='case_form_state' class='form-label'>State</label>
<input type='text' name='state' id='case_form_state' value='{{ case.state }}' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3{% if case.zip %} is-filled{% endif %}'>
<label for='case_form_zip' class='form-label'>Zip</label>
<input type='text' name='zip' id='case_form_zip' value='{{ case.zip }}' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3 is-filled'>
<label for='case_form_county' class='form-label'>County</label>
<select name='county' id='case_form_county' class='form-control'>
<option value=''></option>
{% for c in enum('App\\Enums\\County').cases() %}
<option value='{{ c.value }}' {% if case.county.value == c.value %} selected='selected' {% endif %}>{{ c.name }}</option>
{% endfor %}
</select>
</div>
<div class='input-group input-group-outline mb-3{% if case.insurance %} is-filled{% endif %}'>
<label for='case_form_insurance' class='form-label'>Insurance</label>
<input type='text' name='insurance' id='case_form_insurance' value='{{ case.insurance }}' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3{% if case.medicaid %} is-filled{% endif %}'>
<label for='case_form_medicaid' class='form-label'>Medicaid</label>
<input type='text' name='medicaid' id='case_form_medicaid' value='{{ case.medicaid }}' class='form-control'/>
</div>
</div>
</div>
<div class='row'>
<div class="text-center">
<button type="button" class="btn btn-lg bg-gradient-dark btn-lg w-100 mt-4 mb-0" onclick='history.go(-1)'>Back</button>
</div>
</div>
</div>
</div>
</div>
</section>
</main>
{% endblock %}

View File

@ -44,6 +44,7 @@
<th class="text-uppercase text-secondary text-xxs font-weight-bolder opacity-7 ps-2">Address</th> <th class="text-uppercase text-secondary text-xxs font-weight-bolder opacity-7 ps-2">Address</th>
<th class="text-center text-uppercase text-secondary text-xxs font-weight-bolder opacity-7">Contact Info</th> <th class="text-center text-uppercase text-secondary text-xxs font-weight-bolder opacity-7">Contact Info</th>
<th class="text-center text-uppercase text-secondary text-xxs font-weight-bolder opacity-7">Hours</th> <th class="text-center text-uppercase text-secondary text-xxs font-weight-bolder opacity-7">Hours</th>
<th class="text-center text-uppercase text-secondary text-xxs font-weight-bolder opacity-7">Lat/Lon</th>
<th class="text-secondary opacity-7"></th> <th class="text-secondary opacity-7"></th>
</tr> </tr>
</thead> </thead>
@ -58,6 +59,7 @@
<td>{{ r.getFormattedAddress()|raw }}</td> <td>{{ r.getFormattedAddress()|raw }}</td>
<td>{{ r.getContactCard()|raw }}</td> <td>{{ r.getContactCard()|raw }}</td>
<td>{{ r.getHours() }}</td> <td>{{ r.getHours() }}</td>
<td>{{ r.lat|number_format(6) }}/{{ r.lon|number_format(6) }}</td>
<td class='align-right'> <td class='align-right'>
<a href='{{ path('app_community_resource_edit', {id: r.id}) }}' title='Edit Resource'> <a href='{{ path('app_community_resource_edit', {id: r.id}) }}' title='Edit Resource'>
<i class="material-symbols-rounded opacity-5">edit</i> <i class="material-symbols-rounded opacity-5">edit</i>

View File

@ -86,7 +86,13 @@
</a> </a>
</li> </li>
<li class='nav-item'> <li class='nav-item'>
<a class='{{ community_resource }}' href='{{ path('app_community_resource') }}'> <a class='{{ case_itinerary }}' href='{{ path('app_list_case_addresses') }}'>
<i class='material-symbols-rounded opacity-5'>map</i>
<span class='nav-link-text ms-1'>Case Addresses</span>
</a>
</li>
<li class='nav-item'>
<a class='{{ community_resources }}' href='{{ path('app_community_resource') }}'>
<i class='material-symbols-rounded opacity-5'>verified</i> <i class='material-symbols-rounded opacity-5'>verified</i>
<span class='nav-link-text ms-1'>Resources</span> <span class='nav-link-text ms-1'>Resources</span>
</a> </a>