app/Plugin/ContactManagement42/Resource/template/admin/index.twig line 1

Open in your IDE?
  1. {% extends '@admin/default_frame.twig' %}
  2. {% set menus = ['contact', 'contact'] %}
  3. {% block title %}{{ 'admin.contact.index.title'|trans }}{% endblock %}
  4. {% block sub_title %}{{ 'contact.title'|trans }}{% endblock %}
  5. {% form_theme searchForm '@admin/Form/bootstrap_4_horizontal_layout.html.twig' %}
  6. {% block stylesheet %}
  7. <link rel="stylesheet" href="{{ asset('assets/css/bootstrap-datetimepicker.min.css', 'admin') }}">
  8. {% endblock stylesheet %}
  9. {% block javascript %}
  10. <script src="{{ asset('assets/js/vendor/moment.min.js', 'admin') }}"></script>
  11. <script src="{{ asset('assets/js/vendor/moment-ja.js', 'admin') }}"></script>
  12. <script src="{{ asset('assets/js/vendor/bootstrap-datetimepicker.min.js', 'admin') }}"></script>
  13. <script>
  14. $(function() {
  15.     var inputDate = document.createElement('input');
  16.     inputDate.setAttribute('type', 'date');
  17.     if (inputDate.type !== 'date') {
  18.         $('input[id$=_date_start]').datetimepicker({
  19.             locale: 'ja',
  20.             format: 'YYYY-MM-DD',
  21.             useCurrent: false,
  22.             showTodayButton: true
  23.         });
  24.         $('input[id$=_date_end]').datetimepicker({
  25.             locale: 'ja',
  26.             format: 'YYYY-MM-DD',
  27.             useCurrent: false,
  28.             showTodayButton: true
  29.         });
  30.     $('#admin_search_contact_birth_start').datetimepicker({
  31.             locale: 'ja',
  32.             format: 'YYYY-MM-DD',
  33.             useCurrent: false,
  34.             showTodayButton: true
  35.         });
  36.     $('#admin_search_contact_birth_end').datetimepicker({
  37.             locale: 'ja',
  38.             format: 'YYYY-MM-DD',
  39.             useCurrent: false,
  40.             showTodayButton: true
  41.         });
  42.     $('#admin_search_contact_last_buy_start').datetimepicker({
  43.             locale: 'ja',
  44.             format: 'YYYY-MM-DD',
  45.             useCurrent: false,
  46.             showTodayButton: true
  47.         });
  48.     $('#admin_search_contact_last_buy_end').datetimepicker({
  49.             locale: 'ja',
  50.             format: 'YYYY-MM-DD',
  51.             useCurrent: false,
  52.             showTodayButton: true
  53.         });
  54.     }
  55. });
  56. function fnChangeActionSubmit(action) {
  57.     document.search_form.action = action;
  58.     document.search_form.submit();
  59. }
  60. </script>
  61. {% endblock javascript %}
  62. {% block main %}
  63. <form name="search_form" id="search_form" method="post" action="">
  64.     {{ form_widget(searchForm._token) }}
  65.     <div class="c-outsideBlock">
  66.         <div class="c-outsideBlock__contents">
  67.             <div class="row justify-content-start">
  68.                 <div class="col-6">
  69.                     <div class="mb-2">
  70.                         <label class="col-form-label">{{ 'admin.contact.multi_search_label'|trans }}</label>
  71.                         {{ form_widget(searchForm.multi) }}
  72.                         {{ form_errors(searchForm.multi) }}
  73.                     </div>
  74.                     <div class="d-inline-block mb-3 collapsed" data-bs-toggle="collapse" href="#searchDetail" aria-expanded="false" aria-controls="searchDetail"><a><i class="fa fw-bold me-1 fa-plus-square-o"></i><span class="fw-bold">{{ 'admin.common.search_detail'|trans }}</span></a></div>
  75.                 </div>
  76.             </div>
  77.         </div>
  78.         <div class="c-subContents ec-collapse collapse{{ has_errors ? ' show' }}" id="searchDetail">
  79.             <div class="row mb-2">
  80.                 <div class="col">
  81.                     <div class="form-row">
  82.                         <div class="col-12">
  83.                             <p class="col-form-label">{{ 'contact.status'|trans }}</p>
  84.                             {{ form_widget(searchForm.status, { 'label_attr': { 'class': 'checkbox-inline'}}) }}
  85.                             {{ form_errors(searchForm.status) }}
  86.                         </div>
  87.                     </div>
  88.                 </div>
  89.                 <div class="col">
  90.                     <div>
  91.                         <label>{{ 'admin.common.pref'|trans }}</label>
  92.                         <div class="row">
  93.                             <div class="col-5">
  94.                                 {{ form_widget(searchForm.pref) }}
  95.                                 {{ form_errors(searchForm.pref) }}
  96.                             </div>
  97.                             <div class="col-7"></div>
  98.                         </div>
  99.                     </div>
  100.                 </div>
  101.             </div>
  102.             <div class="row mb-2">
  103.                 <div class="col">
  104.                     <div>
  105.                         <label>{{ 'admin.common.create_date'|trans }}</label>
  106.                         <div class="row align-items-center">
  107.                             <div class="col">
  108.                                 {{ form_widget(searchForm.create_date_start) }}
  109.                                 {{ form_errors(searchForm.create_date_start) }}
  110.                             </div>
  111.                             <div class="col-auto text-center"><span>{{ 'admin.common.separator__range'|trans }}</span></div>
  112.                             <div class="col">
  113.                                 {{ form_widget(searchForm.create_date_end) }}
  114.                                 {{ form_errors(searchForm.create_date_end) }}
  115.                             </div>
  116.                         </div>
  117.                     </div>
  118.                 </div>
  119.                 <div class="col">
  120.                     <div>
  121.                         <label>{{ 'admin.common.update_date'|trans }}</label>
  122.                         <div class="row align-items-center">
  123.                             <div class="col">
  124.                                 {{ form_widget(searchForm.update_date_start) }}
  125.                                 {{ form_errors(searchForm.update_date_start) }}
  126.                             </div>
  127.                             <div class="col-auto text-center"><span>{{ 'admin.common.separator__range'|trans }}</span></div>
  128.                             <div class="col">
  129.                                 {{ form_widget(searchForm.update_date_end) }}
  130.                                 {{ form_errors(searchForm.update_date_end) }}
  131.                             </div>
  132.                         </div>
  133.                     </div>
  134.                 </div>
  135.             </div>
  136.             <div class="row mb-2">
  137.                 <div class="col">
  138.                     <div class="mb-3">
  139.                         <label>{{ 'admin.common.phone_number'|trans }}</label>
  140.                         {{ form_widget(searchForm.phone_number) }}
  141.                         {{ form_errors(searchForm.phone_number) }}
  142.                     </div>
  143.                 </div>
  144.             </div>
  145.             {# エンティティ拡張の自動出力 #}
  146.             {% for f in searchForm|filter(f => f.vars.eccube_form_options.auto_render) %}
  147.                 {# TODO 1項目1行になるのを改善 #}
  148.                 <div class="row mb-2">
  149.                     {% if f.vars.eccube_form_options.form_theme %}
  150.                         {% form_theme f f.vars.eccube_form_options.form_theme %}
  151.                         {{ form_row(f) }}
  152.                     {% else %}
  153.                         <div class="col">
  154.                             <div class="mb-3">
  155.                                 <label>{{ f.vars.label|trans }}</label>
  156.                                 {{ form_widget(f) }}
  157.                                 {{ form_errors(f) }}
  158.                             </div>
  159.                         </div>
  160.                     {% endif %}
  161.                 </div>
  162.             {% endfor %}
  163.         </div>
  164.     </div>
  165.     <div class="c-outsideBlock__contents mb-5">
  166.         <button type="submit" class="btn btn-ec-conversion px-5">{{ 'admin.common.search'|trans }}</button>
  167.         {% if pagination %}
  168.             <span class="fw-bold ms-2">{{ 'admin.common.search_result'|trans({'%count%':pagination.totalItemCount}) }}</span>
  169.         {% endif %}
  170.     </div>
  171.     <div class="c-outsideBlock__contents mb-5">
  172.         {{ include('@admin/search_items.twig', { 'form': searchForm }, ignore_missing = true) }}
  173.     </div>
  174.     <div class="c-contentsArea__cols">
  175.         <div class="c-contentsArea__primaryCol">
  176.             <div class="c-primaryCol">
  177.                 {% if pagination and pagination.totalItemCount %}
  178.                     <div class="row justify-content-between mb-2">
  179.                         <div class="col-6"></div>
  180.                         <div class="col-5 text-end">
  181.                             {#Dropdown page count#}
  182.                             <div class="d-inline-block me-2">
  183.                                 <select class="form-select" onchange="location = this.value;">
  184.                                     {% for pageMax in pageMaxis %}
  185.                                         <option {% if pageMax.name == page_count %} selected {% endif %}
  186.                                                 value="{{ path('plugin_contact_page', {'page_no': 1, 'page_count': pageMax.name }) }}">
  187.                                             {{ 'admin.common.count'|trans({ '%count%': pageMax.name }) }}</option>
  188.                                     {% endfor %}
  189.                                 </select>
  190.                             </div>
  191.                             <div class="d-inline-block">
  192.                                 <div class="btn-group" role="group"></div>
  193.                             </div>
  194.                         </div>
  195.                     </div>
  196.                     <div class="card rounded border-0 mb-4">
  197.                         <div class="card-body p-0">
  198.                             <table class="table">
  199.                                 <thead>
  200.                                     <tr>
  201.                                         <th class="border-top-0 pt-2 pb-3 pl-3">{{ 'contact.contact_id'|trans }}</th>
  202.                                         <th class="border-top-0 pt-2 pb-3 pl-3">{{ 'contact.contact_date'|trans }}</th>
  203.                                         <th class="border-top-0 pt-2 pb-3 pl-3">{{ 'contact.status'|trans }}</th>
  204.                                         <th class="border-top-0 pt-2 pb-3">{{ 'admin.common.name'|trans }}</th>
  205.                                         <th class="border-top-0 pt-2 pb-3">{{ 'admin.common.phone_number'|trans }}</th>
  206.                                         <th class="border-top-0 pt-2 pb-3">{{ 'admin.common.mail_address'|trans }}</th>
  207.                                         <th class="border-top-0 pt-2 pb-3">{{ 'admin.contact.contents'|trans }}</th>
  208.                                     </tr>
  209.                                 </thead>
  210.                                 <tbody>
  211.                                 {% for Contact in pagination %}
  212.                                     <tr>
  213.                                         <td class="align-middle pl-3"><a href="{{ url('plugin_contact_edit', { 'id': Contact.id}) }}">{{ Contact.id }}</a></td>
  214.                                         <td class="align-middle pl-3">{{ Contact.contact_date|date_min }}</td>
  215.                                         <td class="align-middle pl-3">{{ Contact.Status }}</td>
  216.                                         <td class="align-middle">
  217.                                             <a href="{{ url('plugin_contact_edit', { 'id': Contact.id}) }}">
  218.                                                 {{ Contact.name01 }}&nbsp;{{ Contact.name02 }}
  219.                                             </a>
  220.                                         </td>
  221.                                         <td class="align-middle">{{ Contact.phoneNumber }}</td>
  222.                                         <td class="align-middle">{{ Contact.email }}</td>
  223.                                         <td class="align-middle">{{ Contact.contents|length < 50 ? Contact.contents|nl2br : (Contact.contents|slice(0, 50) ~ '...')|nl2br }}</td>
  224.                                     </tr>
  225.                                 {% endfor %}
  226.                                 </tbody>
  227.                             </table>
  228.                             <div class="row justify-content-md-center mb-4">
  229.                                 {% if pagination.totalItemCount > 0 %}
  230.                                     {% include "@admin/pager.twig" with { 'pages' : pagination.paginationData, 'routes' : 'plugin_contact_page' } %}
  231.                                 {% endif %}
  232.                             </div>
  233.                         </div>
  234.                     </div>
  235.                 {% elseif has_errors %}
  236.                     <div class="card rounded border-0">
  237.                         <div class="card-body p-4">
  238.                             <div class="text-center text-muted mb-4 h5">{{ 'admin.common.search_invalid_condition'|trans }}</div>
  239.                             <div class="text-center text-muted">{{ 'admin.common.search_try_change_condition'|trans }}</div>
  240.                         </div>
  241.                     </div>
  242.                 {% else %}
  243.                     <div class="card rounded border-0">
  244.                         <div class="card-body p-4">
  245.                             <div class="text-center text-muted mb-4 h5">{{ 'admin.common.search_no_result'|trans }}</div>
  246.                             <div class="text-center text-muted">{{ 'admin.common.search_try_change_condition'|trans }}</div>
  247.                             <div class="text-center text-muted">{{ 'admin.common.search_try_advanced_search'|trans }}</div>
  248.                         </div>
  249.                     </div>
  250.                 {% endif %}
  251.             </div>
  252.         </div>
  253.     </div>
  254. </form>
  255. {% endblock %}