base.html.twig 7.3 KB

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