templates/article/index.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block title %}Hello ArticleController!
  3. {% endblock %}
  4. {% block body %}
  5.     <div class="container">
  6.         {% for category in categories %}
  7.             <a href="{{path('app_category', {'id':category.id})}}">{{category.name}}</a>
  8.             <p></p>
  9.             {% set i=0 %}
  10.             <div class="row">
  11.                 {% for article in articles %}
  12.                     {% if article.category.name is same as category.name %}
  13.                         {% set i=i+1 %}
  14.                         <div class="col-3">
  15.                             <div class="card" style="width: 16rem;">
  16.                                 <img class="card-img-top" src="{{asset('uploads/') ~ article.image}}" alt="Card image cap" height="200px">
  17.                                 <div class="card-body">
  18.                                     <a href="{{path('app_detail', {'id':article.id})}}">
  19.                                         <h5 class="card-title">{{article.name}}</h5>
  20.                                     </a>
  21.                                     <p class="card-text">{{article.category}}</p>
  22.                                 </div>
  23.                                 {% if article.quantity < article.warnining %}
  24.                                     <div class="card-footer bg-danger">
  25.                                     {% else %}
  26.                                         <div class="card-footer">
  27.                                         {% endif %}
  28.                                         <small class="text-muted">
  29.                                             <div class="input-group js-count">
  30.                                                 <span class="input-group-btn">
  31.                                                     <a href="{{path('article_minus', {'id':article.id})}}" class="btn btn-link js-count js-count {{article.id}}">
  32.                                                         <button type="button" class="btn btn-danger btn-number" data-type="minus" data-field="quant[2]">
  33.                                                             <span class="fa fa-minus"></span>
  34.                                                         </button>
  35.                                                     </a>
  36.                                                 </span>
  37.                                                 <h5>
  38.                                                     <span class="js-count" id="js{{article.id}}" min="0">{{article.quantity}}</span>
  39.                                                 </h5>
  40.                                                 <span class="input-group-btn">
  41.                                                     <a href="{{ path('article_add', {'id':article.id})}}" class="btn btn-link js-count {{article.id}}">
  42.                                                         <button type="button" class="btn btn-success " data-type="plus" data-field="quant[2]">
  43.                                                             <span class="fa fa-plus"></span>
  44.                                                         </button>
  45.                                                     </a>
  46.                                                 </span>
  47.                                             </div>
  48.                                         </small>
  49.                                     </div>
  50.                                 </div>
  51.                             </div>
  52.                             {% if i % 4 == 0 %}
  53.                             </div>
  54.                             <br><br>
  55.                             <div class="row">
  56.                             {% endif %}
  57.                             {# <img class="img-fluid" alt="Responsive image" src="{{asset('uploads/') ~ article.image}}"> #}
  58.                         {% endif %}
  59.                     {% endfor %}
  60.                     <hr>
  61.                 {% endfor %}
  62.             </div>
  63.         </div>
  64.         <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
  65.         <script>
  66.             function onClickBtnCount(event) {
  67. event.preventDefault();
  68. const url = this.href;
  69. console.log(url);
  70. axios.get(url).then(function (response) {
  71. console.log(response);
  72. const spanCount = document.querySelector("#js" + response.data.id);
  73. spanCount.textContent = response.data.quantity;
  74. }).catch(function (error) {
  75. console.log(error);
  76. });
  77. }
  78. document.querySelectorAll('span.input-group-btn > a.js-count').forEach(function (link) {
  79. link.addEventListener('click', onClickBtnCount);
  80. })
  81.         </script>
  82.     {% endblock %}