Add community resource content and associated pages, links, forms, etc
This commit is contained in:
165
templates/internal/community_resource/add.html.twig
Normal file
165
templates/internal/community_resource/add.html.twig
Normal 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 %}
|
164
templates/internal/community_resource/edit.html.twig
Normal file
164
templates/internal/community_resource/edit.html.twig
Normal 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 %}
|
79
templates/internal/community_resource/list.html.twig
Normal file
79
templates/internal/community_resource/list.html.twig
Normal 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 %}
|
Reference in New Issue
Block a user