templates/pages/battle-detail.html.twig line 1

Open in your IDE?
  1. {% extends "base.html.twig" %}
  2. {% block title %}Battle detail{% endblock %}
  3. {% block bodyClass %}battleBody{% endblock %}
  4. {% import "components/macros.html.twig" as macros %}
  5. {% block body %}
  6.     <section id="battles" class="battles mb-5">
  7.         <div class="container">
  8.             <div class="row">
  9.                 <div class="col-12 heading">
  10.                     <h2><span class="text-success text-bold">{{ battle.challenger.pseudoname }}</span> <span class="text-muted">vs.</span> <span class="text-danger text-bold">{{ battle.oponnent.pseudoname }}</span></h2>
  11.                 </div>
  12.             </div>
  13.             <div class="row">
  14.                 <button class="js-btn-vote col-1 mb-4 btn btn-outline btn-vote" data-type="challenger" data-battle-id="{{ battle.id }}" data-rapper-id="{{ battle.challenger.id }}" data-user-logged="{% if app.user %}true{% else %}false{% endif %}" {% if battle.isFinished %}disabled{% endif %}>
  15.                     <div class="icon">
  16.                         <i class="bi bi-hand-thumbs-up"></i>
  17.                         <small>{{ getBattleVotesChallenger(battle) }}x</small>
  18.                     </div>
  19.                 </button>
  20.                 <div class="card battle-card mb-4 box-shadow position-relative col-10">
  21.                     <div class="card-bg-players position-absolute">
  22.                         <div class="card-player-left">
  23.                             <img src="{{ asset("uploads/images/rappers/"~ battle.challenger.avatarName) }}" alt="Challenger"/>
  24.                         </div>
  25.                         <img src="{{ asset("build/images/VS-BIG.png") }}" class="card-player-mid" alt="Divider"/>
  26.                         <div class="card-player-right">
  27.                             <img src="{{ asset("uploads/images/rappers/"~ battle.oponnent.avatarName) }}"  alt="Opponent"/>
  28.                         </div>
  29.                     </div>
  30.                     <div class="card-controls position-absolute">
  31.                         <div class="card-bottom-controls detail">
  32.                             <div class="playingIndicator" data-indicator-id='{{ battle.id }}' style='--piWidth: 0%;'></div>
  33.                             <div class="card-voting-controls position-absolute pt-4">
  34.                                 <small class="text-white">{{ battle.challenger.pseudoname }}</small>
  35.                                 <small class="text-white">{{ battle.challenger.rank }} RP</small>
  36.                             </div>
  37.                             <div class="play-button" data-id="{{ battle.id }}" data-sample="{{ battle.battleFileName }}">
  38.                                 <i class="bi bi-play-circle-fill text-white" data-icon-id="{{ battle.id }}"></i>
  39.                             </div>
  40.                             <div class="time-info position-absolute pt-4">
  41.                                 <small class="text-white">{{ battle.oponnent.pseudoname }}</small>
  42.                                 <small class="text-white">{{ battle.oponnent.rank }} RP</small>
  43.                             </div>
  44.                         </div>
  45.                     </div>
  46.                 </div>
  47.                 <button class="js-btn-vote col-1 mb-4 btn btn-outline btn-vote" data-type="oponnent" data-battle-id="{{ battle.id }}" data-rapper-id="{{ battle.oponnent.id }}" data-user-logged="{% if app.user %}{{ app.user.id }}{% else %}false{% endif %}" {% if battle.isFinished %}disabled{% endif %}>
  48.                     <div class="icon">
  49.                         <i class="bi bi-hand-thumbs-up"></i>
  50.                         <small>{{ getBattleVotesOponnent(battle) }}x</small>
  51.                     </div>
  52.                 </button>
  53.             </div>
  54.             <div class="row">
  55.                 <div class="col-md-6">
  56.                     <div class="card mb-4 mb-md-0">
  57.                         <div class="card-body">
  58.                             <h5 class="mb-4"> Battle details
  59.                             </h5>
  60.                             <p class="mb-1" style="font-size: .77rem;">Beat</p>
  61.                             <p class="mb-4">{{ battle.beat.author.pseudoname }} - {{ battle.beat.name }}</p>
  62.                             <p class="mt-4 mb-1" style="font-size: .77rem;">Battle ends in</p>
  63.                             {% if battle.isFinished == false %}
  64.                             <p class="js-battle-ends mb-4" data-enddate="{{ battle.battleEnds|date("d/m/Y H:i:s") }}">
  65.                                 <span id="days"></span>
  66.                                 <span id="hours"></span>
  67.                                 <span id="minutes"></span>
  68.                                 <span id="seconds"></span>
  69.                             </p>
  70.                             {% else %}
  71.                                 <p>Finished</p>
  72.                             {% endif %}
  73.                             <p class="mt-4 mb-1" style="font-size: .77rem;">Created</p>
  74.                             <p class="mb-4" >{{ battle.createdAt|date("d/m/Y H:i:s") }}</p>
  75.                             <p class="mt-4 mb-1" style="font-size: .77rem;">Votes</p>
  76.                             <p class="mb-4" >{{ battle.allVotes|length }}x</p>
  77.                         </div>
  78.                     </div>
  79.                 </div>
  80.                 <div class="col-md-6">
  81.                     <div class="card mb-4 mb-md-0">
  82.                         <div class="card-body">
  83.                             <h5 class="mb-4">
  84.                                 Comments
  85.                             </h5>
  86.                             <div class="comments-wrapper">
  87.                                 <div class="comments-body">
  88.                                     {# @var \App\Entity\BattleComment comment #}
  89.                                     {# @var \App\Entity\BattleComment replyComment #}
  90.                                     {% if battle.comments|length>0 %}
  91.                                         {% for comment in battle.comments %}
  92.                                             {% if comment.replyCommentRoot == null %}
  93.                                                 {{ macros.renderComment(comment) }}
  94.                                                 {{ macros.renderPostBattleCommentForm(battle,true,comment) }}
  95.                                             {% endif %}
  96.                                             {% if comment.replies| length > 0 %}
  97.                                                 {% for replyComment in comment.replies %}
  98.                                                     {{ macros.renderComment(replyComment) }}
  99.                                                     {{ macros.renderPostBattleCommentForm(battle,true,replyComment) }}
  100.                                                 {% endfor %}
  101.                                             {% endif %}
  102.                                         {% endfor %}
  103.                                     {% else %}
  104.                                         <div class="no-items">
  105.                                             <p class="text-center pt-3">No comments yet </p>
  106.                                         </div>
  107.                                     {% endif %}
  108.                                 </div>
  109.                                 <hr/>
  110.                                 {% if app.user != null %}
  111.                                     {{ macros.renderPostBattleCommentForm(battle,false) }}
  112.                                 {% else %}
  113.                                     <p class="text-center"><a href="{{ path('login') }}">Log in</a> if you want to leave comment on this battle.</p>
  114.                                 {% endif %}
  115.                             </div>
  116.                         </div>
  117.                     </div>
  118.                 </div>
  119.             </div>
  120.         </div>
  121.     </section>
  122. {% endblock %}