vendor/uvdesk/core-framework/Resources/views/Templates/header.html.twig line 1

Open in your IDE?
  1. <!-- Navbar -->
  2. <style>
  3.     .uv-navbar .uv-notification-list li {
  4.         cursor: default;
  5.         font-size: 15px !important;
  6.     }
  7.     .uv-navbar .uv-notification-list li * {
  8.         display: inline-block !important;
  9.     }
  10.     .uv-navbar .uv-notification-list li a {
  11.          color: #2750C4 !important;
  12.     }
  13.     .uv-navbar .uv-notification-list ul {
  14.         max-height: 320px !important;
  15.     }
  16.     .uv-navbar .uv-notification-list .timeago {
  17.         color: #9E9E9E;
  18.         margin-top: 5px;
  19.         font-size: 13px;
  20.     }
  21.     .uv-navbar .uv-dropdown-container.load-more {
  22.         border-top: solid 1px #D3D3D3;
  23.         text-align: center;
  24.     }
  25.     .uv-navbar .uv-dropdown-container.load-more a {
  26.         color: #333;
  27.         text-transform: capitalize;
  28.         font-size: 15px;
  29.         font-weight: 500;
  30.     }
  31.     .uv-navbar .uv-icon-load-more {
  32.         margin-right: 5px;
  33.     }
  34.     .uv-plan-list-item .uv-text-light-color {
  35.         color: #9E9E9E;
  36.     }
  37.     .uv-plan-list-item .uv-plan-badge {
  38.         color: #FFFFFF;
  39.         font-size: 12px;
  40.         padding: 1px 5px;
  41.         border-radius: 3px;
  42.         margin-left: 5px;
  43.         display: inline-block;
  44.         text-transform: uppercase;
  45.     }
  46.     .uv-plan-list-item .uv-plan-badge-color-free {
  47.         background: #4486ee;
  48.     }
  49.     .uv-plan-list-item .uv-plan-badge-color-pro {
  50.         background: #f5d02a;
  51.     }
  52.     .uv-plan-list-item .uv-plan-badge-color-enterprise {
  53.         background: #fd9a9a;
  54.     }
  55.     .uv-plan-list-item .uv-plan-badge-color-customized {
  56.         background: #b77af5;
  57.     }
  58.     .uv-onboard-navigator {
  59.         cursor: pointer;
  60.     }
  61.     .uv-margin-icon-srch {
  62.         margin: 5px 0px 0px 5px;
  63.     }
  64.     .uv-mob-aside{
  65.         position: fixed;
  66.         z-index: 999;
  67.         top: 105px;
  68.         left: 288px;
  69.         transition: 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  70.     }
  71.     .uv-sidebar.uv-sidebar-active ~ .uv-paper .uv-mob-aside{
  72.         left: 320px;
  73.     }
  74.     .uv-mob-aside.uv-mob-aside-collapsed{
  75.         left: 286px;
  76.     }
  77.     .uv-sidebar.uv-sidebar-active ~ .uv-paper .uv-mob-aside.uv-mob-aside-collapsed{
  78.         left: 45px;
  79.     }
  80.     .uv-view.uv-aside-view{
  81.         padding: 25px 0px 25px 25px;
  82.     }
  83.     .uv-inner-section .uv-view.uv-aside-view .uv-ticket-scroll-region.uv-aside-view-tv{
  84.         left: 20px;
  85.     }
  86.     .uv-mob-aside .uv-icon-aside-menu,.uv-mob-aside .uv-icon-aside-menu:hover {
  87.         background-position: 1px -497px;
  88.     }
  89.     .uv-mob-aside-collapsed .uv-icon-aside-menu, .uv-mob-aside-collapsed .uv-icon-aside-menu:hover {
  90.         background-position: 5px -497px;
  91.     }
  92.     .uv-mob-aside:not(.uv-mob-aside-collapsed) .uv-icon-aside-menu,.uv-mob-aside:not(.uv-mob-aside-collapsed) .uv-icon-aside-menu:hover {
  93.         -ms-transform: rotate(180deg);
  94.         -webkit-transform: rotate(180deg);
  95.         transform: rotate(180deg);
  96.     }
  97.     .uv-mob-aside:not(.uv-mob-aside-collapsed) .uv-icon-aside-menu:hover,.uv-rtl .uv-mob-aside.uv-mob-aside-collapsed .uv-icon-aside-menu:hover {
  98.         box-shadow: 0px -8px 15px 3px rgba(0, 0, 0, 0.15), 0px -2px 3px 0px rgba(0, 0, 0, 0.2);
  99.     }
  100.     .uv-rtl .uv-mob-aside:not(.uv-mob-aside-collapsed) .uv-icon-aside-menu,.uv-rtl .uv-mob-aside:not(.uv-mob-aside-collapsed) .uv-icon-aside-menu:hover {
  101.         -ms-transform: unset;
  102.         -webkit-transform: unset;
  103.         transform: unset;
  104.     }
  105.     .uv-rtl .uv-mob-aside.uv-mob-aside-collapsed .uv-icon-aside-menu,.uv-rtl .uv-mob-aside.uv-mob-aside-collapsed .uv-icon-aside-menu:hover {
  106.         -ms-transform: rotate(180deg)!important;
  107.         -webkit-transform: rotate(180deg)!important;
  108.         transform: rotate(180deg)!important;
  109.     }
  110.     .uv-rtl .uv-sidebar.uv-sidebar-active ~ .uv-paper .uv-mob-aside{
  111.         right: 320px;
  112.         left: unset;
  113.     }
  114.     .uv-rtl .uv-mob-aside.uv-mob-aside-collapsed{
  115.         right: 286px;
  116.     }
  117.     .uv-rtl .uv-sidebar.uv-sidebar-active ~ .uv-paper .uv-mob-aside.uv-mob-aside-collapsed{
  118.         right: 45px;
  119.     }
  120.     .uv-rtl .uv-inner-section .uv-view.uv-aside-view .uv-ticket-scroll-region.uv-aside-view-tv{
  121.         right: 20px;
  122.     }
  123.     .uv-rtl .uv-sidebar:not(.uv-sidebar-active) ~ .uv-paper .uv-mob-aside:not(.uv-mob-aside-collapsed) {
  124.         right: 560px
  125.     }
  126.     .uv-rtl .uv-mob-aside{
  127.         left: unset;
  128.     }
  129.     .uv-menubar.uv-language .uv-dropdown-list {
  130.         z-index: 19999;
  131.     }
  132.     .user-name {
  133.         font-weight: 800;
  134.         margin-top: 2px;
  135.         font-size: medium;
  136.     }
  137.     @media screen and (min-width: 901px) and (max-width: 1400px) {
  138.         .uv-sidebar.uv-sidebar-active ~ .uv-paper .uv-mob-aside{
  139.             left: 290px;
  140.         }
  141.         .uv-mob-aside.uv-mob-aside-collapsed{
  142.             left: 40px;
  143.         }
  144.         .uv-rtl .uv-sidebar.uv-sidebar-active ~ .uv-paper .uv-mob-aside{
  145.             right: 290px;
  146.         }
  147.         .uv-rtl  .uv-mob-aside.uv-mob-aside-collapsed{
  148.             right: 52px;
  149.         }
  150.     }
  151.     @media screen and (max-width: 1024px) {
  152.         .uv-mob-aside{
  153.             top: 48px;
  154.             left: 80px!important;
  155.         }
  156.         .uv-mob-aside-collapsed .uv-icon-aside-menu, .uv-mob-aside-collapsed .uv-icon-aside-menu:hover {
  157.             background-position: 1px -497px;
  158.         }
  159.         .uv-sidebar ul.uv-menubar li a {
  160.             max-width: 60px !important;
  161.         }
  162.         .uv-sidebar .uv-soft-top .uv-company-logo {
  163.             width: unset;
  164.         }
  165.         #google_translate_element .goog-te-gadget-simple {
  166.             width: 26px;
  167.             overflow: hidden;
  168.             font-size: 0px;
  169.             padding: 3px 2px 2px 2px;
  170.         }
  171.     }
  172.     @media screen and (max-width: 400px) {
  173.         #google_translate_element {
  174.             display: none;
  175.         }
  176.     }
  177.     .uv-rtl .uv-mob-aside{
  178.         right: 320px;
  179.     }
  180.     .uv-pop-up-body .uv-mob-aside {
  181.         display: none;
  182.         transition: none;
  183.     }
  184.     .uv-rtl .uv-view.uv-aside-view{
  185.         padding: 25px 25px 25px 0px;
  186.     }
  187.     .uv-rtl .uv-inner-section .uv-view.uv-aside-view .uv-ticket-scroll-region.uv-aside-view-tv{
  188.         left: 0px;
  189.         right: 20px;
  190.     }
  191.     .uv-filter-view .uv-filter-head .uv-filter-toggle span{
  192.         background-position: -21px -245px;
  193.     }
  194.     .uv-view.uv-aside-view{
  195.         padding: 25px 0px 25px 25px;
  196.     }
  197.     .uv-inner-section .uv-view.uv-aside-view .uv-ticket-scroll-region.uv-aside-view-tv{
  198.         left: 20px;
  199.     }
  200.     .uv-rtl .uv-view.uv-aside-view{
  201.         padding: 25px 25px 25px 0px;
  202.     }
  203.     .uv-rtl .uv-inner-section .uv-view.uv-aside-view .uv-ticket-scroll-region.uv-aside-view-tv{
  204.         left: 0px;
  205.         right: 20px;
  206.     }
  207.     .uv-filter-view .uv-filter-head .uv-filter-toggle span{
  208.         background-position: -21px -245px;
  209.     }
  210.     .uv-inner-section .uv-view.uv-aside-view .uv-ticket-fixed-region{
  211.         left: 20px;
  212.     }
  213.     .uv-rtl .uv-inner-section .uv-view.uv-aside-view .uv-ticket-fixed-region {
  214.         left: 0px;
  215.         right: 20px;
  216.     }
  217.     div.mce-edit-area {
  218.         margin-right: 1px!important;
  219.     }
  220.     .uv-whats-newlist li img {
  221.         width: 40px;
  222.     }
  223.     .uv-got-whats-new {
  224.         background-color: #7C70F4;
  225.         border-radius: 50%;
  226.         padding: 4px;
  227.         border: 2px solid white;
  228.         position: absolute;
  229.         top: -3px;
  230.         right: -3px;
  231.     }
  232.     .uv-feature-title {
  233.         vertical-align: top;
  234.         font-size: 18px;
  235.         margin: 5px 0 0 5px;
  236.         word-wrap: break-word;
  237.         display: inline-block;
  238.     }
  239.     .uv-feature-content {
  240.         margin: 2px 0 0 0;
  241.     }
  242.     .uv-dropdown-list ul .uv-feature-link, .uv-dropdown-list ul .uv-feature-link:link, .uv-dropdown-list ul .uv-feature-link:active, .uv-dropdown-list ul .uv-feature-link:visited, .uv-dropdown-list ul .uv-feature-link:focus {
  243.         color: #2750C4;
  244.         font-size: 15px;
  245.         margin-top: 10px;
  246.     }
  247.     .uv-dropdown-list ul.uv-search-list li.uv-whats-li {
  248.         border-top: none;
  249.         padding-top: 5px;
  250.     }
  251.     .uv-whats-newlist + .uv-notification-list {
  252.         margin-left: 15px;
  253.     }
  254.     .uv-search-result-wrapper a:focus > .uv-search-result-row {
  255.         background-color: #f0f0f0;
  256.     }
  257.     .uv-loader-view ~ .uv-notifications-wrapper {
  258.         z-index: 9999;
  259.     }
  260.     .mce-notification-error {
  261.         display: none;
  262.     }
  263.     ul.uv-flag-notice-list {
  264.         color: #333333;
  265.         border-top: solid 1px #D3D3D3;
  266.         border-bottom: solid 1px #D3D3D3;
  267.         padding: 15px 20px;
  268.         background: #FAFAFA;
  269.     }
  270.     .uv-dropdown-list ul.uv-search-list.flags-active li:first-child {
  271.         border-top: unset;
  272.     }
  273.     .dropdown-divider {
  274.         border-top: 1px solid #e1e4e8;
  275.         display: block;
  276.         height: 0;
  277.         margin: 10px 0 10px -19px;
  278.         width: 195px;
  279.     }
  280. </style>
  281. <!-- Navigation -->
  282. <div class="uv-navbar">
  283.     <!-- Banner -->
  284.     <div class="uv-mob-aside {% if app.request.cookies and app.request.cookies.get('uv-asideView') %}uv-mob-aside-collapsed{% endif %}">
  285.         <span class="uv-icon-aside-menu"></span>
  286.     </div>
  287.     <!-- Search Box -->
  288.     {{ uvdesk_extensibles.getRegisteredComponent('Webkul\\UVDesk\\CoreFrameworkBundle\\Dashboard\\SearchTemplate').render() | raw }}
  289.     <div class="uv-actions">
  290.         <!-- Google Translation -->
  291.         <div id="google_translate_element"></div>
  292.             <script type="text/javascript">
  293.                 function googleTranslateElementInit() {
  294.                     new google.translate.TranslateElement({layout: google.translate.TranslateElement.InlineLayout.SIMPLE, autoDisplay: false}, 'google_translate_element');
  295.                     $(document).click(function(e) {
  296.                         if($('.goog-te-menu-frame.skiptranslate').is(':visible') ) {
  297.                             $('.skiptranslate.goog-te-gadget').addClass('uv-no-pointer-events');
  298.                         } else {
  299.                             $('.skiptranslate.goog-te-gadget').removeClass('uv-no-pointer-events');
  300.                         }
  301.                     });
  302.                     $($('.goog-te-menu-frame.skiptranslate').contents()[0], window).find('body').bind("focusout", function(e) {
  303.                             $('.skiptranslate.goog-te-gadget').removeClass('uv-no-pointer-events');
  304.                     });
  305.                 }
  306.             </script>
  307.             <script type="text/javascript" src="https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit" async="async"></script>
  308.         <!-- Google Translation  -->
  309.         <!-- Profile Navigations -->
  310.         <span style="position: relative" class="">
  311.             <div class="uv-profile uv-dropdown-other">
  312.                 {% if currentUserDetails is defined and currentUserDetails.thumbnail is defined and currentUserDetails.thumbnail is not empty %}
  313.                     <img class='uv-avatar' src="{{ app.request.scheme ~'://' ~ app.request.httpHost ~ asset('') }}{{ currentUserDetails.thumbnail }}"/>
  314.                 {% else %}
  315.                     <img class='uv-avatar' src="{{ asset('bundles/uvdeskcoreframework/images/uv-avatar-batman.png') }}"/>
  316.                 {% endif %}
  317.             </div>
  318.             <div class="uv-dropdown-list uv-bottom-right uv-text-left">
  319.                 <div class="uv-dropdown-container">
  320.                     <label>{{ 'Signed in as'|trans }} </label>
  321.                         <p class="user-name">{{ currentUser.firstName }} {{ currentUser.lastName }}</p>
  322.                     <div role="none" class="dropdown-divider"></div>
  323.                     <ul>
  324.                         <li><a href="{{ path('edit_profile') }}" class='profiler'>{{ 'Your Profile'|trans }}</a></li>
  325.                     </ul>
  326.                     
  327.                     <ul>
  328.                         {% if user_service.isAccessAuthorized('ROLE_AGENT_CREATE_TICKET') %}
  329.                             <li data-action="create" class="uv-open-popup" data-target="create-ticket-modal">{{ 'Create Ticket'|trans }}</li>
  330.                         {% endif %}
  331.                         {% if user_service.isAccessAuthorized('ROLE_AGENT_MANAGE_AGENT') %}
  332.                             <li><a href="{{ path('helpdesk_member_create_account') }}">{{ 'Create Agent'|trans }}</a></li>
  333.                         {% endif %}
  334.                         {% if user_service.isAccessAuthorized('ROLE_AGENT_MANAGE_CUSTOMER') %}
  335.                             <li><a href="{{ path('helpdesk_member_create_customer_account') }}">{{ 'Create Customer'|trans }}</a></li>
  336.                         {% endif %}
  337.                         <div role="none" class="dropdown-divider"></div>
  338.                         <li><a class="uv-text-danger" href="{{ path('helpdesk_member_handle_logout') }}">{{ 'Sign Out'|trans }}</a></li>
  339.                     </ul>
  340.                 </div>
  341.             </div>
  342.         </span>
  343.     </div>
  344. </div>
  345. <script type="text/template" id="notification_flags_temp">
  346.     <% if (typeof undeliveredMessages != 'undefined') { %>
  347.         <li>
  348.             <span class="uv-notification-message">
  349.                 <%= undeliveredMessages %>
  350.             </span>
  351.         </li>
  352.         <span class="timeago">{{ 'Learn more about %deliveryStatus%.'|trans({'%deliveryStatus%': '<a href="https://support.uvdesk.com/en/blog/uvdesk-ticket-delivery-status" target="_blank">' ~ 'ticket delivery status'|trans ~ '</a>'})|raw }}</span>
  353.     <% } %>
  354. </script>
  355. <script type="text/javascript">
  356.     $(function () {
  357.         var FeatureSearch = Backbone.View.extend({
  358.             el: $('.uv-search-wrapper'),
  359.             events: {
  360.                 'keyup .uv-search-bar': 'searchFeature',
  361.                 'click .uv-search-bar': 'openFeatureSearch',
  362.             },
  363.             searchFeature: function(e) {
  364.                 var currentElement = Backbone.$(e.currentTarget);
  365.                 if(currentElement.val().trim() != '') {
  366.                     var flag = 0;
  367.                     $('.uv-search-wrapper').find('.uv-search-result-row').each(function() {
  368.                         if(!$(this).hasClass('uv-no-results')) {
  369.                             var text = $(this).text().trim().toLowerCase();
  370.                             var isTextContained = text.search(currentElement.val().trim().toLowerCase());
  371.                             if(isTextContained < 0) {
  372.                                 $(this).parent().hide();
  373.                                 $(this).parent().attr('tabIndex', -1);
  374.                             } else {
  375.                                 $(this).parent().show();
  376.                                 $(this).parent().removeAttr('tabIndex');
  377.                                 flag = 1;
  378.                             }
  379.                         }
  380.                     });
  381.                     if(flag == 0)
  382.                         $('.uv-search-wrapper').find(".uv-no-results").show();
  383.                     else
  384.                         $('.uv-search-wrapper').find(".uv-no-results").hide();
  385.                     this.$el.find('.uv-search-result-wrapper').addClass('uv-search-result-active').addClass('uv-search-flap-up')
  386.                 } else {
  387.                     this.$el.find('.uv-search-result-wrapper').removeClass('uv-search-result-active').removeClass('uv-search-flap-up')
  388.                 }
  389.             },
  390.             openFeatureSearch: function(e) {
  391.                 var currentElement = Backbone.$(e.currentTarget);
  392.                 if(currentElement.val().trim() != '') {
  393.                     this.$el.find('.uv-search-result-wrapper').addClass('uv-search-result-active').addClass('uv-search-flap-up')
  394.                 }
  395.             }
  396.         });
  397.         var SidePanelUV = Backbone.View.extend({
  398.             el: $('.uv-paper'),
  399.             events: {
  400.                 'click .uv-mob-aside span': 'toggleAsideBar'
  401.             },
  402.             initialize : function() {
  403.                 var ele = $('.uv-paper');
  404.                 if(ele.css('padding-left') == '60px'){
  405.                     $('.uv-mob-aside').removeClass('uv-mob-aside-left');
  406.                 }else{
  407.                     $('.uv-mob-aside').addClass('uv-mob-aside-left');
  408.                 }
  409.                 var asideView = '{{ app.request.cookies.get("uv-asideView") }}';
  410.                 if(asideView == 'true')
  411.                     this.toggleAsideBar();
  412.             },
  413.             toggleAsideBar: function(){
  414.                 var asideView = true;
  415.                 var ele = $('.uv-inner-section .uv-aside');
  416.                 var eleSidePanel = $('.uv-inner-section .uv-view');
  417.                 var eleTicketView = $('.uv-inner-section .uv-view .uv-ticket-scroll-region');
  418.                 var mobAside = $('.uv-mob-aside');
  419.                 if(ele.css('display') == 'none'){
  420.                     asideView = false;
  421.                     ele.css('display', 'block');
  422.                     eleSidePanel.removeClass('uv-aside-view');
  423.                     eleTicketView.removeClass('uv-aside-view-tv');
  424.                     mobAside.removeClass('uv-mob-aside-collapsed')
  425.                 }else{
  426.                     ele.css('display', 'none');
  427.                     eleSidePanel.addClass('uv-aside-view');
  428.                     eleTicketView.addClass('uv-aside-view-tv');
  429.                     mobAside.addClass('uv-mob-aside-collapsed')
  430.                 }
  431.                 if(asideView) {
  432.                     document.cookie = ("uv-asideView=1; expires=Wed, 01 Jan 2020 00:00:00 GMT;path=/");
  433.                 } else {
  434.                     document.cookie = ("uv-asideView=0; expires=Wed, 01 Jan 2020 00:00:00 GMT;path=/");
  435.                 }
  436.             }
  437.         });
  438.         var featureSearch =  new FeatureSearch();
  439.         var sidePanelUV =  new SidePanelUV();
  440.     });
  441. </script>
  442. {# Ticket Create Popup #}
  443. {% if user_service.isAccessAuthorized('ROLE_AGENT_CREATE_TICKET') %}
  444.     {{ ticket_service.appendTwigSnippet('createMemberTicket')|raw }}
  445.     {# {% include('UVDeskCoreFrameworkBundle:Snippets:createMemberTicketSnippet.html.twig') only %} #}
  446. {% endif %}