Add community resource content and associated pages, links, forms, etc

This commit is contained in:
2024-12-18 05:24:20 +00:00
parent 78d149c348
commit fe44642fee
10 changed files with 1376 additions and 0 deletions

View File

@ -0,0 +1,165 @@
{% extends 'base.html.twig' %}
{% block title %}Community Resources
{% endblock %}
{% 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">
{{ form_start(form) }}
{{ form_errors(form) }}
<div class="row">
<div class='col'>
<div class='input-group input-group-outline mb-3'>
<label for='rsc_form_name' class='form-label'>Name</label>
<input type='text' name='{{ field_name(form.name) }}' id='rsc_form_name' class='form-control' required='required'/>
</div>
<div class='input-group input-group-outline mb-3'>
<label for='rsc_form_address' class='form-label'>Address</label>
<input type='text' name='{{ field_name(form.address) }}' id='rsc_form_address' class='form-control' required='required'/>
</div>
<div class='input-group input-group-outline mb-3'>
<label for='rsc_form_address2' class='form-label'>Address 2</label>
<input type='text' name='{{ field_name(form.address2) }}' id='rsc_form_address2' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<label for='rsc_form_city' class='form-label'>City</label>
<input type='text' name='{{ field_name(form.city) }}' id='rsc_form_city' class='form-control' required='required'/>
</div>
<div class='input-group input-group-outline mb-3'>
<label for='rsc_form_state'></label>
<select id='rsc_form_state' name='{{ field_name(form.state) }}' class='form-control' required='required'>
<option value=''>-- Select --</option>
{% for s in enum('App\\Enums\\State').cases() %}
<option value='{{ s.value }}'>{{ s.name }}</option>
{% endfor %}
</select>
</div>
<div class='input-group input-group-outline mb-3'>
<label for='rsc_form_zip' class='form-label'>Zip</label>
<input type='text' name='{{ field_name(form.zip) }}' id='rsc_form_zip' class='form-control' required='required'/>
</div>
<div class='input-group input-group-outline mb-3'>
<label for='rsc_form_county' class='form-label'></label>
<select name='{{ field_name(form.county) }}' id='rsc_form_county' class='form-control' required='required'>
<option value=''>-- Select --</option>
{% for c in enum('App\\Enums\\County').cases() %}
<option value='{{ c.value }}'>{{ c.value }}</option>
{% endfor %}
</select>
</div>
<div class='input-group input-group-outline mb-3'>
<label for='rsc_form_phone' class='form-label'>Phone</label>
<input type='phone' name='{{ field_name(form.phone) }}' id='rsc_form_phone' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<label for='rsc_form_email' class='form-label'>Email</label>
<input type='email' name='{{ field_name(form.email) }}' id='rsc_form_email' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<label for='rsc_form_url' class='form-label'>URL</label>
<input type='text' name='{{ field_name(form.url) }}' id='rsc_form_url' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<label for='rsc_form_services' class='form-label'>Services Available</label>
<input type='text' name='{{ field_name(form.servicesAvailable) }}' id='rsc_form_services' class='form-control'/>
</div>
</div>
<div class='col'>
<div class='input-group input-group-outline mb-3'>
<span>Sunday</span>
<label for='rsc_form_sunOpen'></label>
<input type='time' name='{{ field_name(form.sunOpen) }}' id='rsc_form_sunOpen' class='form-control'/>
<label for='rsc_form_sunClose'></label>
<input type='time' name='{{ field_name(form.sunClose) }}' id='rsc_form_sunClose' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<span>Monday</span>
<label for='rsc_form_monOpen'></label>
<input type='time' name='{{ field_name(form.monOpen) }}' id='rsc_form_monOpen' class='form-control'/>
<label for='rsc_form_monClose'></label>
<input type='time' name='{{ field_name(form.monClose) }}' id='rsc_form_monClose' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<span>Tuesday</span>
<label for='rsc_form_tueOpen'></label>
<input type='time' name='{{ field_name(form.tueOpen) }}' id='rsc_form_tueOpen' class='form-control'/>
<label for='rsc_form_tueClose'></label>
<input type='time' name='{{ field_name(form.tueClose) }}' id='rsc_form_tueClose' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<span>Wednesday</span>
<label for='rsc_form_wedOpen'></label>
<input type='time' name='{{ field_name(form.wedOpen) }}' id='rsc_form_wedOpen' class='form-control'/>
<label for='rsc_form_wedClose'></label>
<input type='time' name='{{ field_name(form.wedClose) }}' id='rsc_form_wedClose' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<span>Thursday</span>
<label for='rsc_form_thuOpen'></label>
<input type='time' name='{{ field_name(form.thuOpen) }}' id='rsc_form_thuOpen' class='form-control'/>
<label for='rsc_form_thuClose'></label>
<input type='time' name='{{ field_name(form.thuClose) }}' id='rsc_form_thuClose' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<span>Friday</span>
<label for='rsc_form_friOpen'></label>
<input type='time' name='{{ field_name(form.friOpen) }}' id='rsc_form_friOpen' class='form-control'/>
<label for='rsc_form_friClose'></label>
<input type='time' name='{{ field_name(form.friClose) }}' id='rsc_form_friClose' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<span>Saturday</span>
<label for='rsc_form_satOpen'></label>
<input type='time' name='{{ field_name(form.satOpen) }}' id='rsc_form_satOpen' class='form-control'/>
<label for='rsc_form_satClose'></label>
<input type='time' name='{{ field_name(form.satClose) }}' id='rsc_form_satClose' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<textarea name='{{ field_name(form.notes) }}' id='rsc_form_notes' style='width:100%;height:150px;' placeholder='Notes'></textarea>
</div>
</div>
</div>
<div class='row'>
<div class='text-center'>
<button type="submit" class="btn btn-lg bg-gradient-dark btn-lg w-100 mt-4 mb-0">Save Resource</button>
</div>
</div>
{{ form_end(form) }}
</div>
</div>
</div>
</section>
</main>
{% endblock %}

View File

@ -0,0 +1,164 @@
{% extends 'base.html.twig' %}
{% block title %}Community Resources
{% endblock %}
{% 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">{{ field_value(form.name) }}</h4>
</div>
<div class="card-body">
<div class="container">
{{ form_start(form) }}
{{ form_errors(form) }}
<div class="row">
<div class='col'>
<div class='input-group input-group-outline mb-3 is-filled'>
<label for='rsc_form_name' class='form-label'>Name</label>
<input type='text' name='{{ field_name(form.name) }}' value='{{ field_value(form.name) }}' id='rsc_form_name' class='form-control' required='required'/>
</div>
<div class='input-group input-group-outline mb-3 is-filled'>
<label for='rsc_form_address' class='form-label'>Address</label>
<input type='text' name='{{ field_name(form.address) }}' value='{{ field_value(form.address) }}' id='rsc_form_address' class='form-control' required='required'/>
</div>
<div class='input-group input-group-outline mb-3 {% if field_value(form.address2) %}is-filled{% endif %}'>
<label for='rsc_form_address2' class='form-label'>Address 2</label>
<input type='text' name='{{ field_name(form.address2) }}' value='{{ field_value(form.address2) }}' id='rsc_form_address2' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3 is-filled'>
<label for='rsc_form_city' class='form-label'>City</label>
<input type='text' name='{{ field_name(form.city) }}' value='{{ field_value(form.city) }}' id='rsc_form_city' class='form-control' required='required'/>
</div>
<div class='input-group input-group-outline mb-3'>
<label for='rsc_form_state'></label>
<select id='rsc_form_state' name='{{ field_name(form.state) }}' class='form-control' required='required'>
<option value=''>-- Select --</option>
{% for s in enum('App\\Enums\\State').cases() %}
<option value='{{ s.value }}' {% if s.value == field_value(form.state) %} selected='selected' {% endif %}>{{ s.name }}</option>
{% endfor %}
</select>
</div>
<div class='input-group input-group-outline mb-3 is-filled'>
<label for='rsc_form_zip' class='form-label'>Zip</label>
<input type='text' name='{{ field_name(form.zip) }}' value='{{ field_value(form.zip) }}' id='rsc_form_zip' class='form-control' required='required'/>
</div>
<div class='input-group input-group-outline mb-3'>
<label for='rsc_form_county' class='form-label'></label>
<select name='{{ field_name(form.county) }}' id='rsc_form_county' class='form-control' required='required'>
<option value=''>-- Select --</option>
{% for c in enum('App\\Enums\\County').cases() %}
<option value='{{ c.value }}' {% if c.value == field_value(form.county) %} selected='selected' {% endif %}>{{ c.value }}</option>
{% endfor %}
</select>
</div>
<div class='input-group input-group-outline mb-3 {% if field_value(form.phone) %}is-filled{% endif %}'>
<label for='rsc_form_phone' class='form-label'>Phone</label>
<input type='phone' name='{{ field_name(form.phone) }}' value='{{ field_value(form.phone) }}' id='rsc_form_phone' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3 {% if field_value(form.email) %}is-filled{% endif %}'>
<label for='rsc_form_email' class='form-label'>Email</label>
<input type='email' name='{{ field_name(form.email) }}' value='{{ field_value(form.email) }}' id='rsc_form_email' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3 {% if field_value(form.url) %}is-filled{% endif %}'>
<label for='rsc_form_url' class='form-label'>URL</label>
<input type='text' name='{{ field_name(form.url) }}' value='{{ field_value(form.url) }}' id='rsc_form_url' class=' form-control'/>
</div>
<div class=' input-group input-group-outline mb-3 {% if field_value(form.servicesAvailable) %}is-filled{% endif %}'>
<label for='rsc_form_services' class='form-label'>Services Available</label>
<input type='text' name='{{ field_name(form.servicesAvailable) }}' value='{{ field_value(form.servicesAvailable) }}' id='rsc_form_services' class='form-control'/>
</div>
</div>
<div class='col'>
<div class='input-group input-group-outline mb-3'>
<span>Sunday</span>
<label for='rsc_form_sunOpen'></label>
<input type='time' name='{{ field_name(form.sunOpen) }}' value='{{ field_value(form.sunOpen) }}' id='rsc_form_sunOpen' class='form-control'/>
<label for='rsc_form_sunClose'></label>
<input type='time' name='{{ field_name(form.sunClose) }}' value='{{ field_value(form.sunClose) }}' id='rsc_form_sunClose' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<span>Monday</span>
<label for='rsc_form_monOpen'></label>
<input type='time' name='{{ field_name(form.monOpen) }}' value='{{ field_value(form.monOpen) }}' id='rsc_form_monOpen' class='form-control'/>
<label for='rsc_form_monClose'></label>
<input type='time' name='{{ field_name(form.monClose) }}' value='{{ field_value(form.monClose) }}' id='rsc_form_monClose' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<span>Tuesday</span>
<label for='rsc_form_tueOpen'></label>
<input type='time' name='{{ field_name(form.tueOpen) }}' value='{{ field_value(form.tueOpen) }}' id='rsc_form_tueOpen' class='form-control'/>
<label for='rsc_form_tueClose'></label>
<input type='time' name='{{ field_name(form.tueClose) }}' value='{{ field_value(form.tueClose) }}' id='rsc_form_tueClose' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<span>Wednesday</span>
<label for='rsc_form_wedOpen'></label>
<input type='time' name='{{ field_name(form.wedOpen) }}' value='{{ field_value(form.wedOpen) }}' id='rsc_form_wedOpen' class='form-control'/>
<label for='rsc_form_wedClose'></label>
<input type='time' name='{{ field_name(form.wedClose) }}' value='{{ field_value(form.wedClose) }}' id='rsc_form_wedClose' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<span>Thursday</span>
<label for='rsc_form_thuOpen'></label>
<input type='time' name='{{ field_name(form.thuOpen) }}' value='{{ field_value(form.thuOpen) }}' id='rsc_form_thuOpen' class='form-control'/>
<label for='rsc_form_thuClose'></label>
<input type='time' name='{{ field_name(form.thuClose) }}' value='{{ field_value(form.thuClose) }}' id='rsc_form_thuClose' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<span>Friday</span>
<label for='rsc_form_friOpen'></label>
<input type='time' name='{{ field_name(form.friOpen) }}' value='{{ field_value(form.friOpen) }}' id='rsc_form_friOpen' class='form-control'/>
<label for='rsc_form_friClose'></label>
<input type='time' name='{{ field_name(form.friClose) }}' value='{{ field_value(form.friClose) }}' id='rsc_form_friClose' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<span>Saturday</span>
<label for='rsc_form_satOpen'></label>
<input type='time' name='{{ field_name(form.satOpen) }}' value='{{ field_value(form.satOpen) }}' id='rsc_form_satOpen' class='form-control'/>
<label for='rsc_form_satClose'></label>
<input type='time' name='{{ field_name(form.satClose) }}' value='{{ field_value(form.satClose) }}' id='rsc_form_satClose' class='form-control'/>
</div>
<div class='input-group input-group-outline mb-3'>
<textarea name='{{ field_name(form.notes) }}' id='rsc_form_notes' style='width:100%;height:150px;' placeholder='Notes'>{{ field_value(form.notes) }}</textarea>
</div>
</div>
</div>
<div class='row'>
<div class='text-center'>
<button type="submit" class="btn btn-lg bg-gradient-dark btn-lg w-100 mt-4 mb-0">Save Resource</button>
</div>
</div>
{{ form_end(form) }}
</div>
</div>
</div>
</section>
</main>
{% endblock %}

View File

@ -0,0 +1,79 @@
{% extends 'base.html.twig' %}
{% block title %}Community Resources
{% endblock %}
{% block body %}
{% set today = date("now", "America/Indiana/Indianapolis") %}
{{ 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') }}
<div class="container-fluid py-2">
<div class="row">
<div class="col-12">
<div class="card my-4">
<div class="card-header p-0 position-relative mt-n4 mx-3 z-index-2">
<div class="d-flex justify-content-between bg-gradient-dark shadow-dark border-radius-lg pt-4 pb-3 ps-3 p-2">
<div>
<h6 class="text-white text-capitalize ps-3">Free/Low-cost Community Resources</h6>
</div>
<div>
<button type="button" class="btn btn-block btn-light mb-3" onclick="window.open('{{ path('app_community_resource_add') }}', '_self')">Add Resource</button>
</div>
</div>
</div>
<div class="card-body px-0 pb-2">
<div>
Filters:
<select onchange='filterResourceByCounty(this.value)'>
<option value=''></option>
{% for c in enum('App\\Enums\\County').cases() %}
<option value='{{ c.value }}'>{{ c.value }}</option>
{% endfor %}
</select>
</div>
<div class="table-responsive p-0">
<table class="table align-items-center mb-0">
<thead>
<tr>
<th class="text-uppercase text-secondary text-xxs font-weight-bolder opacity-7">Name</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">Hours</th>
<th class="text-secondary opacity-7"></th>
</tr>
</thead>
<tbody id='resource-list'>
{% for r in resources %}
<tr>
<td>{{ r.name }}
{% if r.url %}
<br/>{{ r.urlString|raw }}
{% endif %}
</td>
<td>{{ r.getFormattedAddress()|raw }}</td>
<td>{{ r.getContactCard()|raw }}</td>
<td>{{ r.getHours() }}</td>
<td class='align-right'>
<a href='{{ path('app_community_resource_edit', {id: r.id}) }}' title='Edit Resource'>
<i class="material-symbols-rounded opacity-5">edit</i>
</a>
<a href='{{ path('app_community_resource_download', {id: r.id}) }}' title='Download vCard'>
<i class="material-symbols-rounded opacity-5">import_contacts</i>
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
{% endblock %}

View File

@ -70,6 +70,12 @@
<span class='nav-link-text ms-1'>Case Notes</span>
</a>
</li>
<li class='nav-item'>
<a class='{{ community_resource }}' href='{{ path('app_community_resource') }}'>
<i class='material-symbols-rounded opacity-5'>verified</i>
<span class='nav-link-text ms-1'>Resources</span>
</a>
</li>
<li class="nav-item mt-3">
<h6 class="ps-4 ms-2 text-uppercase text-xs text-dark font-weight-bolder opacity-5">Account pages</h6>
</li>