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

Open in your IDE?
  1. {% extends '@admin/default_frame.twig' %}
  2. {% set menus = ['content', 'feature'] %}
  3. {% block title %}{{ 'tbs_feature_page.admin.feature.title'|trans }}{% endblock %}
  4. {% block sub_title %}{{ 'tbs_feature_page.admin.feature.sub_title'|trans }}{% endblock %}
  5. {% block stylesheet %}
  6. <!--
  7.     <link rel="stylesheet" href="{{ asset('assets/css/tempusdominus-bootstrap-4.min.css', 'admin') }}">
  8. -->
  9.     <link rel="stylesheet" href="/html/template/admin/assets/css/tempusdominus-bootstrap-4.min.css">
  10.     <style type="text/css">
  11.         .datepicker-days th.dow:first-child,
  12.         .datepicker-days td:first-child {
  13.             color: #f00;
  14.         }
  15.         .datepicker-days th.dow:last-child,
  16.         .datepicker-days td:last-child {
  17.             color: #00f;
  18.         }
  19.     </style>
  20. {% endblock stylesheet %}
  21. {% block javascript %}
  22. <!--
  23.     <script src="{{ asset('assets/js/vendor/jquery.ui/jquery.ui.core.min.js', 'admin') }}"></script>
  24.     <script src="{{ asset('assets/js/vendor/jquery.ui/jquery.ui.widget.min.js', 'admin') }}"></script>
  25.     <script src="{{ asset('assets/js/vendor/jquery.ui/jquery.ui.mouse.min.js', 'admin') }}"></script>
  26.     <script src="{{ asset('assets/js/vendor/jquery.ui/jquery.ui.sortable.min.js', 'admin') }}"></script>
  27. -->
  28.     <script src="/html/plugin/tbsFeaturePage/assets/js/vendor/jquery.ui/jquery.ui.core.min.js"></script>
  29.     <script src="/html/plugin/tbsFeaturePage/assets/js/vendor/jquery.ui/jquery.ui.widget.min.js"></script>
  30.     <script src="/html/plugin/tbsFeaturePage/assets/js/vendor/jquery.ui/jquery.ui.mouse.min.js"></script>
  31.     <script src="/html/plugin/tbsFeaturePage/assets/js/vendor/jquery.ui/jquery.ui.sortable.min.js"></script>
  32.     <script src="/html/template/admin/assets/js/vendor/moment.min.js"></script>
  33.     <script src="/html/template/admin/assets/js/vendor/tempusdominus-bootstrap-4.min.js"></script>
  34.     <script>
  35.         $(function() {
  36.             // 画面の中のrank一覧を保持
  37.             var oldRanks = [];
  38.             $(".table .sortable-item > tr").each(function() {
  39.                 oldRanks.push(this.dataset.rank);
  40.             });
  41.             // rsort
  42.             oldRanks.sort(function (a, b) {
  43.                 return a - b;
  44.             }).reverse();
  45.             // Drag and Drop
  46.             $(".table").sortable({
  47.                 items: '.sortable-item > tr',
  48.                 cursor: 'move',
  49.                 update: function(e, ui) {
  50.                     $("body").append($('<div class="modal-backdrop show"></div>'));
  51.                     updateRank();
  52.                 }
  53.             });
  54.             // 並び替え後にrankを更新
  55.             var updateRank = function() {
  56.                 var newRanks = {};
  57.                 var i = 0;
  58.                 $(".table .sortable-item > tr").each(function() {
  59.                     newRanks[this.dataset.featureid] = oldRanks[i];
  60.                     i++;
  61.                 });
  62.                 $.ajax({
  63.                     url: '{{ url('tbs_feature_page_admin_feature_move') }}',
  64.                     type: 'POST',
  65.                     data: newRanks
  66.                 }).always(function() {
  67.                     $(".modal-backdrop").remove();
  68.                 });
  69.             };
  70.             $('.delete-feature').click(function () {
  71.                 var modalId = $(this).data('target');
  72.                 $(modalId).css('opacity', 1.0);
  73.                 $(modalId).children('div.modal-dialog').css('transform', 'none');
  74.                 $(modalId).show();
  75.             });
  76.             $('.close-modal').click(function () {
  77.                 var p = $(this).parents('div.modal');
  78.                 p.css('opacity', 0.0);
  79.                 p.hide();
  80.             });
  81.         });
  82.     </script>
  83. {% endblock javascript %}
  84. {% block main %}
  85. <div class="c-contentsArea__cols">
  86.     <div class="c-contentsArea__primaryCol">
  87.         <div class="c-primaryCol">
  88.             <div class="d-block mb-3">
  89.                 <a id="addNew" class="btn btn-ec-regular"
  90.                    href="{{ url('tbs_feature_page_admin_feature_new') }}">{{ 'admin.common.create__new'|trans }}</a>
  91.             </div>
  92.             <div class="card rounded border-0 mb-4">
  93.                 <div class="card-body p-0">
  94.                     <table class="table table-sm">
  95.                         <thead>
  96.                             <tr>
  97.                                 <th class="col-auto"></th>
  98.                                 <th class="col-auto">{{ 'tbs_feature_page.admin.feature.th_id'|trans }}</th>
  99.                                 <th class="col-auto">{{ 'tbs_feature_page.admin.feature.th_title'|trans }}</th>
  100.                                 <th class="col-auto">{{ 'tbs_feature_page.admin.feature.th_url'|trans }}</th>
  101.                                 <th class="col-auto">{{ 'tbs_feature_page.admin.feature.th_banner'|trans }}</th>
  102.                                 <th class="col-auto">{{ 'tbs_feature_page.admin.feature.th_display_status'|trans }}</th>
  103.                                 <th class="col-auto">{{ 'tbs_feature_page.admin.feature.th_display_period'|trans }}</th>
  104.                                 <th class="col-auto">&nbsp;</th>
  105.                             </tr>
  106.                         </thead>
  107.                         <tbody class="sortable-item">
  108.                         {% for Feature in Features %}
  109.                             <tr data-featureid="{{ Feature.id }}" data-rank="{{ Feature.rank }}">
  110.                                 <td class="col-auto"><i class="fa fa-bars text-ec-gray"></i></td>
  111.                                 <td class="col-auto">{{ Feature.id }}</td>
  112.                                 <td class="col-auto">
  113.                                     <a href="{{ url('tbs_feature_page_admin_feature_edit', { id : Feature.id }) }}">{{ Feature.title }}</a>
  114.                                 </td>
  115.                                 <td class="col-auto">{{ Feature.url }}</td>
  116.                                 <td class="col-auto">
  117.                                     <a href="{{ url('tbs_feature_page_admin_feature_edit', { id : Feature.id }) }}">
  118.                                     {% if Feature.banner_file_name %}
  119.                                         <img src="{{ asset('tbsFeaturePage/save_image/' ~ Feature.banner_file_name, 'plugin') }}" style="width:265px;" />
  120.                                     {% endif %}
  121.                                     </a>
  122.                                 </td>
  123.                                 <td class="col-auto">{{ Feature.Status.name }}</td>
  124.                                 <td class="col-auto">{{ Feature.start_date|date_format }} {{ 'admin.common.separator__range'|trans }} {{ Feature.end_date|date_format }}</td>
  125.                                 <td class="col-auto icon_edit text-right">
  126.                                     <a href="{{ url('tbs_feature_page_admin_feature_edit', { id : Feature.id }) }}"
  127.                                        class="btn btn-ec-actionIcon mr-3 action-edit"
  128.                                        data-toggle="tooltip"
  129.                                        data-placement="top" title=""
  130.                                        data-original-title=""><i class="fa fa-pencil fa-lg text-secondary"></i></a>
  131.                                     <a href="{{ url('feature_detail', {url:Feature.url}) }}"
  132.                                        class="btn btn-ec-actionIcon mr-3 action-edit"
  133.                                        target="_blank"><i class="fa fa-eye fa-lg text-secondary" aria-hidden="true"></i></a>
  134.                                     <a
  135.                                         class="btn btn-ec-actionIcon mr-3 delete-feature"
  136.                                         data-toggle="modal"
  137.                                         data-target="#confirmModal-{{ Feature.id }}"
  138.                                         data-toggle="tooltip"
  139.                                         data-placement="top"><i class="fa fa-close fa-lg text-secondary"></i></a>
  140.                                     <div class="modal fade" id="confirmModal-{{ Feature.id }}" tabindex="-1"
  141.                                          role="dialog"
  142.                                          aria-labelledby="confirmModal-{{ Feature.id }}" aria-hidden="true">
  143.                                         <div class="modal-dialog" role="document">
  144.                                             <div class="modal-content">
  145.                                                 <div class="modal-header">
  146.                                                     <h5 class="modal-title font-weight-bold">
  147.                                                         {{ 'tbs_feature_page.admin.feature.delete_confirm_title'|trans }}</h5>
  148.                                                     <button class="close close-modal" type="button"
  149.                                                             data-dismiss="modal"
  150.                                                             aria-label="Close"><span
  151.                                                                 aria-hidden="true">×</span>
  152.                                                     </button>
  153.                                                 </div>
  154.                                                 <div class="modal-body text-left">
  155.                                                     <p class="text-left">
  156.                                                         {{ 'tbs_feature_page.admin.feature.delete_confirm_message'|trans }}</p>
  157.                                                 </div>
  158.                                                 <div class="modal-footer">
  159.                                                     <button class="btn btn-ec-sub close-modal" type="button"
  160.                                                             data-dismiss="modal">{{ 'tbs_feature_page.admin.feature.delete_cancel'|trans }}
  161.                                                     </button>
  162.                                                     <a
  163.                                                             href="{{ url('tbs_feature_page_admin_feature_delete', { id : Feature.id }) }}"
  164.                                                             class="btn btn-ec-delete"
  165.                                                             data-confirm="false"
  166.                                                             {{ csrf_token_for_anchor() }}
  167.                                                             data-method="delete">
  168.                                                         {{ 'tbs_feature_page.admin.feature.delete'|trans }}
  169.                                                     </a>
  170.                                                 </div>
  171.                                             </div>
  172.                                         </div>
  173.                                     </div>
  174.                                 </td>
  175.                             </tr>
  176.                         {% endfor %}
  177.                         </tbody>
  178.                     </table>
  179.                 </div>
  180.             </div>
  181.         </div>
  182.     </div>
  183. </div>
  184. {% endblock %}