base.html.twig 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>{% block title %}VideoPotes{% endblock %}</title>
  6. {{ encore_entry_link_tags('app') }}
  7. {% block stylesheets %}{% endblock %}
  8. <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
  9. </head>
  10. <body style="padding-top:7rem;padding-bottom:4rem;">
  11. <nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
  12. <a class="navbar-brand" href="{{ path('videotheque_liste') }}">Videothèque</a>
  13. <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="/" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
  14. <span class="navbar-toggler-icon"></span>
  15. </button>
  16. <div class="collapse navbar-collapse" id="navbarsExampleDefault">
  17. {% if not is_granted('IS_AUTHENTICATED_REMEMBERED') %}
  18. <ul class="navbar-nav mr-auto">
  19. <li class="nav-item
  20. {% if app.request.attributes.get('_route') == 'videotheque_liste' %}active{% endif %}">
  21. <a class="nav-link" href="{{ path('videotheque_liste') }}">Liste des films<span class="sr-only">(current)</span></a>
  22. </li>
  23. </ul>
  24. {% endif %}
  25. {% if is_granted('IS_AUTHENTICATED_REMEMBERED') %}
  26. <ul class="navbar-nav mr-auto">
  27. <li class="nav-item
  28. {% if app.request.attributes.get('_route') == 'videothequepersonnelle_maliste' %}active{% endif %}">
  29. <a class="nav-link" href="{{ path('videothequepersonnelle_maliste') }}">Ma liste de films<span class="sr-only">(current)</span></a>
  30. </li>
  31. <li class="nav-item
  32. {% if app.request.attributes.get('_route') == 'videotheque_liste' %}active{% endif %}">
  33. <a class="nav-link" href="{{ path('videotheque_liste') }}">Liste des films<span class="sr-only">(current)</span></a>
  34. </li>
  35. <li class="nav-item
  36. {% if app.request.attributes.get('_route') == 'realisateur_liste' %}active{% endif %}">
  37. <a class="nav-link" href="{{ path('realisateur_liste') }}">Liste des réalisateurs<span class="sr-only">(current)</span></a>
  38. </li>
  39. {% if is_granted('ROLE_MODERATEUR') %}
  40. <ul class="navbar-nav">
  41. <li class="nav-item dropdown">
  42. <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownAdmin" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  43. Administration
  44. </a>
  45. <div class="dropdown-menu" aria-labelledby="navbarDropdown">
  46. {% if is_granted('ROLE_ADMIN') %}
  47. <a class="dropdown-item" href="{{ path('admin_index') }}">Utilisateurs</a>
  48. <div class="dropdown-divider"></div>
  49. {% endif %}
  50. <a class="dropdown-item" href="{{ path('genre_liste') }}">Liste des genres</a>
  51. </div>
  52. </li>
  53. </ul>
  54. {% endif %}
  55. </ul>
  56. {% endif %}
  57. <ul class="navbar-nav">
  58. <li class="nav-item">
  59. <a href="#" class="nav-link" data-toggle="modal" data-target="#modalWindow"><i class="fa fa-info-circle fa-lg text-light nav-link" aria-hidden="true"></i></a>
  60. <li>
  61. </ul>
  62. {#{% if is_granted('IS_AUTHENTICATED_REMEMBERED') %}#}
  63. <form class="form-inline my-2 my-lg-0" action="{{ path('search_recherche') }}">
  64. <input class="form-control mr-sm-2" name="q" type="text" placeholder="Rechercher" aria-label="Rechercher">
  65. <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Go</button>
  66. </form>
  67. {#{% endif %}#}
  68. {% if not is_granted('IS_AUTHENTICATED_REMEMBERED') %}
  69. <ul class="navbar-nav">
  70. <li class="nav-item"><a class="nav-link" href="{{ path('app_login') }}">Se connecter</a></li>
  71. </ul>
  72. {% else %}
  73. <ul class="navbar-nav">
  74. <li class="nav-item dropdown">
  75. <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  76. {{ app.user.nomComplet }}
  77. </a>
  78. <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
  79. <a class="dropdown-item" href="{{ path('user_profil') }}">Profil</a>
  80. <div class="dropdown-divider"></div>
  81. <a class="dropdown-item" href="{{ path('app_logout') }}">Se déconnecter</a>
  82. </div>
  83. </li>
  84. </ul>
  85. {% endif %}
  86. </div>
  87. </nav>
  88. <div class="container-fluid">
  89. <header>
  90. <div class="row">
  91. <div class="col-8">
  92. <h1>{% block titre %}{% endblock %}</h1>
  93. </div>
  94. <div class="col-4">
  95. {% if is_granted('IS_AUTHENTICATED_REMEMBERED') %}
  96. <div class="text-right">
  97. <a data-toggle="collapse" role="button" href="#collapseAide" aria-expanded="false" aria-controls="collapseAide">Aide <i class="fa fa-chevron-down"></i></a>
  98. </div>
  99. <div class="card collapse" id="collapseAide">
  100. <div class="card-body">
  101. <p><i class="fa fa-star text-primary"></i> : Films que l'on souhaite voir. On les retrouve dans "Liste de mes films"</p>
  102. <p><i class="fa fa-eye fa-lg text-success"></i> : Film qu'on a vu</p>
  103. <p><i class="fa fa-eye-slash fa-lg text-secondary"></i> : Film qu'on n'a pas vu</p>
  104. </div>
  105. </div>
  106. {% endif %}
  107. </div>
  108. </div>
  109. <!-- Modal -->
  110. <div class="modal fade" id="modalWindow" tabindex="-1" role="dialog" aria-labelledby="ModalWindow" aria-hidden="true">
  111. <div class="modal-dialog modal-dialog-centered" role="document">
  112. <div class="modal-content">
  113. <div class="modal-header">
  114. <h5 class="modal-title" id="information">Vidéothèque partagée</h5>
  115. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  116. <span aria-hidden="true">&times;</span>
  117. </button>
  118. </div>
  119. <div class="modal-body">
  120. <p>
  121. Ceci est une vidéothèque partagée entre les copains.
  122. Le but, c'est de poser les films qu'on vient de voir où qu'on souhaite voir rapidement et donner des idées aux copains quand ils ne savent plus quoi regarder.
  123. </p>
  124. <p>
  125. On n'est pas là pour recréer IMDB ou Allociné, c'est plutôt une liste de films à voir.
  126. </p>
  127. <p>
  128. D'ailleurs, le but, c'est de cocher les boutons
  129. <i class="fa fa-eye fa-lg text-success"></i> ou <i class="fa fa-eye-slash fa-lg text-secondary"></i>
  130. pour que les autres sachent qui a vu quoi et le bouton <i class="fa fa-star text-primary"></i>
  131. pour suivre un film, ça permet de trier les films dans l'onglet "Ma liste de films".
  132. </p>
  133. <p>
  134. Bon partage à tous !
  135. </p>
  136. <p>
  137. La bise dans vous.
  138. </p>
  139. </div>
  140. <div class="modal-footer">
  141. <button type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button>
  142. </div>
  143. </div>
  144. </div>
  145. </div>
  146. </header>
  147. <main role="main">
  148. {% block body %}{% endblock %}
  149. </main>
  150. <footer class="footer">
  151. <div class="text-center fixed-bottom bg-white">
  152. <span class="text-muted small">Cette application est développée en Symfony 4.3 - Code source disponible sur <a target="_blank" href="https://gogs.fdlibre.eu/sangfroid/films-symfony_42">Gogs</a><br>Licence <a target="_blank" href="http://www.wtfpl.net">WTFLP</a></span>
  153. </div>
  154. {% block footer %}
  155. {% endblock %}
  156. </footer>
  157. </div>
  158. {% for type, messages in app.session.flashBag.all %}
  159. {% for message in messages %}
  160. {% if type == 'error' %}{% set type = 'danger' %} {% endif %}
  161. <div data-toggle="notify" data-message="{{ message }}" data-type="{{ type }}"></div>
  162. {% endfor %}
  163. {% endfor %}
  164. {{ encore_entry_script_tags('app') }}
  165. {% block javascripts %}{% endblock %}
  166. </body>
  167. </html>