slot.html.twig 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. {% extends 'bulma.html.twig' %}
  2. {% block title %}Administration > Événement > Configurer{% endblock %}
  3. {% block content %}
  4. <nav class="breadcrumb has-arrow-separator" aria-label="breadcrumbs">
  5. <ul>
  6. <li><a href="{{ path('app_main') }}">Accueil</a></li>
  7. <li><a href="{{ path('app_admin') }}">Administration</a></li>
  8. <li><a href="{{ path('app_admin_event') }}">Gestion des événements</a></li>
  9. <li class="is-active"><a>Configuration</a></li>
  10. </ul>
  11. </nav>
  12. <div class="box has-text-centered">
  13. <strong class="has-text-primary">{{ event.name }}</strong> du {{ event.startOn|date('d/m/Y H:i', app_timezone) }} au {{ event.endOn|date('d/m/Y H:i', app_timezone) }}
  14. </div>
  15. <div class="tabs is-boxed">
  16. <ul>
  17. <li><a href="{{ path('app_admin_event_config', {'id': event.id}) }}">Accueil</a></li>
  18. <li><a href="{{ path('app_admin_event_config_space', {'id': event.id}) }}">Espaces</a></li>
  19. <li><a href="{{ path('app_admin_event_config_period', {'id': event.id}) }}">Périodes</a></li>
  20. <li class="is-active"><a>Slots</a></li>
  21. <li><a href="{{ path('app_admin_event_config_gamemaster', {'id': event.id}) }}">Meneur(euse)s de jeu</a></li>
  22. <li><a href="{{ path('app_admin_event_config_game', {'id': event.id}) }}">Jeux</a></li>
  23. <li><a href="{{ path('app_admin_event_config_party', {'id': event.id}) }}">Parties</a></li>
  24. </ul>
  25. </div>
  26. <div id="tabs-content">
  27. <div class="container">
  28. <div class="block">
  29. <h3 class="title is-3">Configuration des slots</h3>
  30. </div>
  31. <div class="columns">
  32. <div class="column">
  33. <p>Les <strong>slot</strong> représentent des unités de temps de 30 minutes qui vont accueillir les animations afin de calculer simplement les disponibilités des espaces et/ou des MJ. Ils sont générés à partir des espaces et des périodes. Si vous modifiez, ajoutez ou supprimez des espaces ou des périodes après génération des slots, vous devrez les supprimer, puis relancer leur génération ensuite.</p>
  34. </div>
  35. <div class="column">
  36. <div class="box">
  37. <div class="level">
  38. <div class="level-item has-text-centered">
  39. {% if event.getSpaces()|length > 0 %}
  40. <p class="title">{{ event.getSpaces()|length }}</p>&nbsp;
  41. <p class="heading">espaces</p>
  42. {% else %}
  43. <p class="heading">Aucun espace</p>
  44. {% endif %}
  45. </div>
  46. <div class="level-item has-text-centered">
  47. {% if event.getPeriods()|length > 0 %}
  48. <p class="title">{{ event.getPeriods()|length }}</p>&nbsp;
  49. <p class="heading">périodes</p>
  50. {% else %}
  51. <p class="heading">Aucune période</p>
  52. {% endif %}
  53. </div>
  54. <div class="level-item has-text-centered">
  55. {% if event.getSlots()|length > 0 %}
  56. <p class="title">{{ event.getSlots()|length }}</p>&nbsp;
  57. <p class="heading">slots</p>
  58. {% else %}
  59. <p class="heading">Aucun slot</p>
  60. {% endif %}
  61. </div>
  62. </div>
  63. <div class="block has-text-centered">
  64. {% if event.getPeriods()|length > 0 and event.getSpaces()|length > 0 and event.getSlots()|length < 1 %}
  65. <a href="{{ path('app_main_event_config_slot_generate', {id: event.getId })}}" data-turbo="false" class="button is-primary">Générer les slots</a>
  66. {% elseif event.getSlots()|length > 0 and not event.isPublished %}
  67. <a href="#" data-id="{{ path('app_main_event_config_slot_delete', {id: event.getId })}}" class="button is-danger" {{ stimulus_controller('admin_confirm') }}>Supprimer les slots</a>
  68. {% elseif event.getSlots()|length > 0 and event.isPublished %}
  69. <button href="#" class="button" disabled>Supprimer les slots</button>
  70. {% else %}
  71. <button href="#" class="button" disabled>Générer les slots</button>
  72. {% endif %}
  73. </div>
  74. </div>
  75. </div>
  76. </div>
  77. <div class="block">
  78. <div class="content">
  79. <h3 class="title is-3">Aperçu du planning</h3>
  80. <p>Cliquez sur les <strong>slots</strong> pour les basculer <span class="icon-text"><span class="icon"><twig:ux:icon name="bi:lock-fill"/></span><span><em>indisponible</em></span></span> (aucune partie ne pourra être organisé sur ce slot) ou <em>disponible</em>. <em class="has-text-danger">Fonctionnalité en cours de développement.</em></p>
  81. </div>
  82. </div>
  83. {% if event.getSlots()|length > 0 %}
  84. <div id="planning">
  85. {{ component('Planning', {event: event, displayLocked: true}) }}
  86. </div>
  87. {% else %}
  88. <article class="message is-danger">
  89. <div class="message-header">
  90. <p>Aucun slot généré</p>
  91. </div>
  92. <div class="message-body">
  93. Le planning n'est pas encore consultable. Générez les slots à l'aide du bouton à gauche de l'écran.
  94. </div>
  95. </article>
  96. {% endif %}
  97. </div>
  98. </div>
  99. {% endblock %}