templates/common/header.html.twig line 1

Open in your IDE?
  1. {% import 'macro/user.html.twig' as user_macro %}
  2. <header id="header-container" class="fullwidth {{ isTransparent ? 'transparent-header' : 'dashboard-header' }}">
  3.     <style>
  4.     @media (max-width: 1099px) {
  5.         .mmenu-trigger {
  6.             margin: 0 !important;
  7.         }
  8.         .hide-on-mobile {
  9.             display: none !important;
  10.         }
  11.     }
  12.     @media (min-width: 1100px) {
  13.         .hide-on-large {
  14.             display: none !important;
  15.         }
  16.     }
  17.         #logo { border-right: none !important; }
  18.         .header-widget { border-left: none !important; }
  19.         .user-avatar {
  20.             width: 48px;
  21.             height: 48px;
  22.             border-radius: 50%;
  23.             display: inline-block;
  24.             background: #fff;
  25.             border: 2px solid #eee;
  26.             vertical-align: middle;
  27.         }
  28.         .user-avatar img {
  29.             width: 100%;
  30.             height: 100%;
  31.             object-fit: cover;
  32.             border-radius: 50%;
  33.             display: block;
  34.         }
  35.     </style>
  36.     <!-- Header -->
  37.     <div id="header">
  38.         <div class="container">
  39.             <!-- Left Side Content -->
  40.             <div class="left-side">
  41.                 <!-- Logo -->
  42.                 <div id="logo" style="overflow: hidden">
  43.                     <a href="{{ app.user ? path('dashboard') : path('homepage') }}" class="">
  44.                         <img src="{{ asset('images/logo.webp.svg') }}" class="img-fluid"
  45.                              title="WorkDispo est un site avec des milliers de missions IT moyenne et longue durée pour les freelances."
  46.                              alt="WorkDispo est un site avec des milliers de missions IT moyenne et longue durée pour les freelances.">
  47.                     </a>
  48.                 </div>
  49.                 {% if not app.user %}
  50.                 <div class="btn-inscription-mobile" style="position: absolute; top: 25px;left: 12rem;display: none;z-index:2;">
  51.                     <a class="animating-link button "
  52.                        style="padding: 4px 8px;border-radius: 2rem;color: white !important;font-size: 16px;" href="/inscription">
  53.                         S'inscrire
  54.                     </a>
  55.                 </div>
  56.                 {% endif %}
  57.                 <nav id="navigation">
  58.                     <ul id="responsive">
  59. {#                        {% if not is_granted('ROLE_USER') %}#}
  60. {#                            <li><a class="animating-link" href="{{ path('why_subscribe') }}">Pourquoi s'inscrire?</a>#}
  61. {#                            </li>#}
  62. {#                        {% endif %}#}
  63.                         {% if app.user.isSociety|default(false) %}
  64.                             <li>
  65.                                 <a class="animating-link {{ app.user ? 'button' : '' }} {{  is_granted('ROLE_SOCIETY') and (app.user.society.package == null or app.user.society.package == 'month' or app.user.society.packageExpireAt < "now"|date("Y-m-d H:i:s"))? 'popup-with-zoom-anim' : '' }}"
  66.                                         {{ app.user ? 'style="padding: 6px; border-radius: 2rem; color: white !important;"' : '' }}
  67.                             href="{{  is_granted('ROLE_SOCIETY') and (app.user.society.package == null or app.user.society.package == 'month' or app.user.society.packageExpireAt < "now"|date("Y-m-d H:i:s")) ? '#package-other' : path('mission_search_default') }}"
  68.                                 >
  69.                                     Missions ouvertes à la sous-traitance
  70.                                 </a>
  71.                             </li>
  72.                         {% else %}
  73.                             <li>
  74.                                 <a class="animating-link {{ app.user ? 'button' : '' }} {{ not is_granted('ROLE_ADMIN') and is_granted('ROLE_FREELANCE') and app.user.uniqueProfile.id == null ? 'popup-with-zoom-anim' : '' }}"
  75.                                    href="{{ not is_granted('ROLE_ADMIN') and is_granted('ROLE_FREELANCE') and app.user.uniqueProfile.id == null ? '#complete-cv-dialog' : path('offre_search') }}"
  76.                                         {{ app.user ? 'style="padding: 6px; border-radius: 2rem; color: white !important;"' : '' }}
  77.                                 >
  78.                                     Trouvez une offre
  79.                                 </a>
  80.                             </li>
  81.                             {% if app.user %}
  82.                                 <li>
  83.                                     <a class="animating-link {{ app.user ? 'button' : '' }}"
  84.                                        href="{{ path('formation_recherche') }}"
  85.                                             {{ app.user ? 'style="padding: 6px; border-radius: 2rem; color: white !important;"' : '' }}
  86.                                     >
  87.                                         Trouvez une formation
  88.                                     </a>
  89.                                 </li>
  90.                             {% endif %}
  91.                         {% endif %}
  92.                         {% if app.user.isSociety|default(false) %}
  93.                             <li>
  94.                                 <a class="animating-link button" href="{{ path('freelance_search') }}"
  95.                                    style="padding: 6px; border-radius: 2rem; color: white !important;">
  96.                                     CVtèque de candidats et intercontrats
  97.                                 </a>
  98.                             </li>
  99.                         {% else %}
  100.                             {% if not app.user.isFreelance|default(false) %}
  101. {#                                 <li> #}
  102. {#                                     <a class="animating-link" href="{{ path('register_society') }}"> #}
  103. {#                                         Trouver un freelance #}
  104. {#                                     </a> #}
  105. {#                                 </li> #}
  106.                                 {# <li>
  107.                                     <a class="animating-link" href="{{ path('register_society') }}">
  108.                                         Publier une offre
  109.                                     </a>
  110.                                 </li> #}
  111.                                 <li>
  112.                                     <a class="animating-link" href="https://www.workdispo.com/formations/recherche">
  113.                                         Trouvez une formation
  114.                                     </a>
  115.                                 </li>
  116.                             {% endif %}
  117.                         {% endif %}
  118.                         {% if not app.user %}
  119.                             {# <li>
  120.                                 <a class="animating-link {{ not is_granted('ROLE_ADMIN') and is_granted('ROLE_FREELANCE') and app.user.uniqueProfile.id == null ? 'popup-with-zoom-anim' : '' }} "
  121.                                    href="{{ path('all_news') }}"
  122.                                 >
  123.                                     News de la tech
  124.                                 </a>
  125.                             </li> #}
  126.                             <li class="mobileshow">
  127.                                 <a class="animating-link "
  128.                                    href="{{ path('login') }}"
  129.                                 >
  130.                                     Connexion
  131.                                 </a>
  132.                             </li>
  133.                             <li class="mobileshow">
  134.                                 <a class="animating-link "
  135.                                    href="{{ path('register_freelance') }}"
  136.                                 >
  137.                                     Inscription
  138.                                 </a>
  139.                             </li>
  140.                             <li class="mobileshow">
  141.                                 <a class="animating-link "
  142.                                    href="{{ path('register_society') }}"
  143.                                 >
  144.                                     Accès recruteur
  145.                                 </a>
  146.                             </li>
  147.                         {% endif %}
  148.                     </ul>
  149.                 </nav>
  150.                 <div class="clearfix"></div>
  151.                 <!-- Main Navigation / End -->
  152.             </div>
  153.             <!-- Left Side Content / End -->
  154.             <!-- Right Side Content / End -->
  155.             <div class="right-side">
  156.                 {% if is_granted('ROLE_USER') %}
  157.                     {% if app.user.society %}
  158.                         <div class="header-widget hide-on-mobile">
  159.                             <a class="log-in-button text-black">
  160.                                 Une question? <span class="text-blue">06 18 12 28 26</span>
  161.                             </a>
  162.                         </div>
  163.                     {% endif %}
  164.                     {% if app.user.isFreelance|default(false) %}
  165.                         {% set __freelance_disponibility = app.user.uniqueProfile.disponibility|default('Immédiate') %}
  166.                         <div class="header-widget hide-on-mobile">
  167.                             <nav id="navigation" class="nav-disponibility">
  168.                                 <ul id="responsive">
  169.                                     <li>
  170.                                         <a class="animating-link button  "
  171.                                            style="padding: 6px; border-radius: 2rem; color: white !important;">
  172.                                             &nbsp; Disponibilité: <b>{{ __freelance_disponibility }}</b> <i
  173.                                                     class="icon-feather-chevrons-down"></i>
  174.                                         </a>
  175.                                         <ul class="dropdown-nav">
  176.                                             {% if __freelance_disponibility != "Immédiate" %}
  177.                                                 <li>
  178.                                                     <a href="{{ path('profile_edit_disponibility', {'disponibility' : "Immédiate"}) }}">Immédiate</a>
  179.                                                 </li>
  180.                                             {% endif %}
  181.                                             {% if __freelance_disponibility != "Sous 1 mois" %}
  182.                                                 <li>
  183.                                                     <a href="{{ path('profile_edit_disponibility', {'disponibility' : "Sous 1 mois"}) }}">Sous
  184.                                                         1 mois</a>
  185.                                                 </li>
  186.                                             {% endif %}
  187.                                             {% if __freelance_disponibility != "Sous 2 mois" %}
  188.                                                 <li>
  189.                                                     <a href="{{ path('profile_edit_disponibility', {'disponibility' : "Sous 2 mois"}) }}">Sous
  190.                                                         2 mois</a>
  191.                                                 </li>
  192.                                             {% endif %}
  193.                                             {% if __freelance_disponibility != "Sous 3 mois" %}
  194.                                                 <li>
  195.                                                     <a href="{{ path('profile_edit_disponibility', {'disponibility' : "Sous 3 mois"}) }}">Sous
  196.                                                         3 mois</a>
  197.                                                 </li>
  198.                                             {% endif %}
  199.                                         </ul>&nbsp;
  200.                                     </li>
  201.                                 </ul>
  202.                             </nav>
  203.                         </div>
  204.                     {% endif %}
  205.                     <!--  User Notifications -->
  206.                     <div class="header-widget hide-on-mobile">
  207.                         <!-- Messages -->
  208.                         <div class="header-notifications">
  209.                             <div class="header-notifications-trigger">
  210.                                 <a href="#"><i class="icon-feather-mail"></i>
  211.                                     {% if messagerie.unreadCount > 0 %}
  212.                                         <span>{{ messagerie.unreadCount }}</span>
  213.                                     {% endif %}
  214.                                 </a>
  215.                             </div>
  216.                             <!-- Dropdown -->
  217.                             <div class="header-notifications-dropdown">
  218.                                 <div class="header-notifications-headline">
  219.                                     <h4>Messages</h4>
  220.                                     <button class="mark-as-read ripple-effect-dark" title="Mark all as read"
  221.                                             data-tippy-placement="left">
  222.                                         <i class="icon-feather-check-square"></i>
  223.                                     </button>
  224.                                 </div>
  225.                                 <div class="header-notifications-content">
  226.                                     <div class="header-notifications-scroll" data-simplebar>
  227.                                         <ul>
  228.                                             {% for notificationRoom in messagerie.latestMessage %}
  229.                                                 {% set notificationRoomUser = app.user.id == notificationRoom.caller.id ? notificationRoom.called : notificationRoom.caller %}
  230.                                                 <!-- Notification -->
  231.                                                 <li class="notifications-not-read">
  232.                                                     <a href="{{ path('message_room', {'id':notificationRoomUser.id}) }}">
  233.                                                         <span class="notification-avatar status-online">
  234.                                                             {{ user_macro.userPhoto(notificationRoomUser.photo) }}
  235.                                                         </span>
  236.                                                         <div class="notification-text">
  237.                                                             <strong>{{ notificationRoomUser.publicName }}</strong>
  238.                                                             <p class="notification-msg-text">{{ notificationRoom.lastMessage|u.truncate(20) }}
  239.                                                                 ...</p>
  240.                                                             <span
  241.                                                                     class="color">{{ notificationRoom.lastUpdate|ago(locale='fr') }}</span>
  242.                                                         </div>
  243.                                                     </a>
  244.                                                 </li>
  245.                                             {% endfor %}
  246.                                         </ul>
  247.                                     </div>
  248.                                 </div>
  249.                                 <a href="{{ path('messages') }}"
  250.                                    class="header-notifications-button ripple-effect button-sliding-icon">
  251.                                     Voir tout<i class="icon-material-outline-arrow-right-alt"></i>
  252.                                 </a>
  253.                             </div>
  254.                         </div>
  255.                     </div>
  256.                     <!--  User Notifications / End -->
  257.                     <!-- User Menu -->
  258.                     <div class="header-widget">
  259.                         <!-- Messages -->
  260.                         <div class="header-notifications user-menu">
  261.                             <div class="header-notifications-trigger">
  262.                                 <a href="#">
  263.                                     <div class="user-avatar status-online">
  264.                                         <img
  265.                                                 src="{{ app.user.getPhoto()  ? path('download_avatar', {'filename': app.user.getPhoto()}) : asset('images/user-avatar-placeholder.png') }}"
  266.                                                 alt="{{ app.user.getFullName() }}">
  267.                                     </div>
  268.                                 </a>
  269.                             </div>
  270.                             <!-- Dropdown -->
  271.                             <div class="header-notifications-dropdown">
  272.                                 <!-- User Status -->
  273.                                 <div class="user-status">
  274.                                     <!-- User Name / Avatar -->
  275.                                     <div class="user-details">
  276.                                         <div class="user-avatar status-online">
  277.                                             <img
  278.                                                     src="{{ app.user.getPhoto()  ? path('download_avatar', {'filename': app.user.getPhoto()}) : asset('images/user-avatar-placeholder.png') }}"
  279.                                                     alt="">
  280.                                         </div>
  281.                                         <div class="user-name">
  282.                                             {{ app.user.getFullName() }}
  283.                                             <span>{{ app.user.isFreelance ? '' : app.user.isSociety ? 'Société' : 'Admin' }}</span>
  284.                                         </div>
  285.                                     </div>
  286.                                 </div>
  287.                                 <ul class="user-menu-small-nav">
  288.                                     <li>
  289.                                         <a href="{{ app.user.isAdmin ? path('admin_dashboard') : path('dashboard') }}">
  290.                                             <i class="icon-material-outline-dashboard"></i>
  291.                                             Tableau de bord
  292.                                         </a>
  293.                                     </li>
  294.                                     {% if(not app.user.isAdmin and not app.user.compteSociety) %}
  295.                                         <li>
  296.                                             <a href="{{ path('user_setting') }}">
  297.                                                 <i class="icon-material-outline-settings"></i>
  298.                                                 Réglages
  299.                                             </a>
  300.                                         </li>
  301.                                     {% endif %}
  302.                                     <li>
  303.                                         <a href="{{ path('logout') }}">
  304.                                             <i class="icon-material-outline-power-settings-new"></i>
  305.                                             Déconnexion
  306.                                         </a>
  307.                                     </li>
  308.                                 </ul>
  309.                             </div>
  310.                         </div>
  311.                     </div>
  312.                     <!-- User Menu / End -->
  313.                 {% else %}
  314.                 {# fait le changement que le bouton soit centrer verticalement êt que le hide-on-mobile fonctionne toujour #}
  315.                  <div class="header-widget hide-on-mobile " style="display: flex;align-items:center;padding:0 10px;">
  316.                         <a class="button"  href="{{ path('register_society') }}">Espace recruteur</a>
  317.                     </div> 
  318.                     {# bouton bleu avec écrit “Publier une formation” (lien vers formation.workdispo) #}
  319.                     <div class="header-widget hide-on-mobile " style="display: flex;align-items:center;padding:0 10px;">
  320.                         <a class="button"  href="https://formation.workdispo.com">Publier une formation</a>
  321.                     </div>
  322.                     <div class="header-widget hide-on-large " style="display: flex;align-items:center;">
  323.                         <a class="button"  href="{{ path('register_freelance') }}">S'inscrire</a>
  324.                     </div>
  325.                    
  326.                     <div class="header-widget hide-on-mobile">
  327.                         <a href="{{ path('register_freelance') }}"class="log-in-button text-black">
  328.                             <i class="icon-feather-user-plus"></i> <span class="">S'inscrire</span>
  329.                         </a>
  330.                     </div>
  331.                     
  332.                     <div class="header-widget hide-on-mobile">
  333.                         <a href="{{ path('login') }}" class="log-in-button text-black">
  334.                             <i class="icon-feather-log-in"></i> <span class="">Se connecter</span>
  335.                         </a>
  336.                     </div>
  337.                 {% endif %}
  338.                 <!-- Mobile Navigation Button -->
  339.                 <span class="mmenu-trigger">
  340.                     <button class="hamburger hamburger--collapse" type="button" aria-label="Navigation mobile">
  341.                         <span class="hamburger-box">
  342.                             <span class="hamburger-inner"></span>
  343.                         </span>
  344.                     </button>
  345.                 </span>
  346.             </div>
  347.             <!-- Right Side Content / End -->
  348.         </div>
  349.     </div>
  350.     <!-- Header / End -->
  351. </header>
  352. <div class="clearfix"></div>