templates/layout.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block title -%}
  3. {%- if wo_breadcrumbs() -%}
  4. {{ wo_breadcrumbs()|reverse[0].text }}
  5. {%- else -%}
  6. Consentz
  7. {%- endif -%}
  8. {%- endblock %}
  9. {% block logo %}
  10. {% set userLogo = app.user|logo %}
  11. {% if userLogo %}
  12. {{- userLogo -}}
  13. {% elseif clinic is defined and clinic != null and clinic.logo %}
  14. {{- clinic.logo.url -}}
  15. {% else %}
  16. {{- asset('images/app-logo.jpg') -}}
  17. {% endif %}
  18. {% endblock %}
  19. {% block header %}
  20.  {% set clinic = {} %}
  21. {% set clinic = clinic|merge({'id': app.session.get('clinicstatic_id'),'logo':{'url':asset('images/app-logo.jpg')},'subDomain':app.session.get('clinicstatic_subDomain')}) %}  
  22. {% if clinic is defined and clinic != null and clinic.id == 688 %}
  23. <nav class="navbar-inverse site-navbar navbar navbar-default navbar-fixed-top navbar-mega bg-consentz-main"
  24.     role="navigation" style="background:#3E1E44 !important">
  25.     {% else %}
  26.     <nav class="navbar-inverse site-navbar navbar navbar-default navbar-fixed-top navbar-mega bg-consentz-main"
  27.         role="navigation">
  28.         {% endif %}
  29.         <div class="navbar-header">
  30.             <div class="navbar-brand navbar-brand-center site-gridmenu-toggle" data-toggle="gridmenu">
  31.                 <img width="38px" height="38px" src="{{- block('logo') -}}" alt="consentz">
  32.                 <span class="navbar-brand-text hidden-xs-down"></span>
  33.             </div>
  34.             <div class="navbar-openers-holder">
  35.                <a id="nav-opener" href="javascript:void(0);" class="btn-ico">
  36.                     <svg  xmlns="http://www.w3.org/2000/svg"  width="24"  height="24"  viewBox="0 0 24 24"  fill="none"  stroke="#000000"  stroke-width="1.5"  stroke-linecap="round"  stroke-linejoin="round"  class="icon icon-tabler icons-tabler-outline icon-tabler-menu-2"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M4 6l16 0" /><path d="M4 12l16 0" /><path d="M4 18l16 0" /></svg>
  37.                 </a>
  38.                 <a href="javascript:void(0);" class="btn-ico sm-profile-drop">
  39.                     <svg  xmlns="http://www.w3.org/2000/svg"  width="24"  height="24"  viewBox="0 0 24 24"  fill="none"  stroke="#000000"  stroke-width="1.5"  stroke-linecap="round"  stroke-linejoin="round"  class="icon icon-tabler icons-tabler-outline icon-tabler-user-circle"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" /><path d="M12 10m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" /><path d="M6.168 18.849a4 4 0 0 1 3.832 -2.849h4a4 4 0 0 1 3.834 2.855" /></svg>
  40.                 </a>
  41.             </div>
  42.         </div>
  43.        
  44.         {% if clinic is defined and clinic != null and clinic.id == 688 %}
  45.         <div class="navbar-container container-fluid bg-consentz-main" style="background:#3E1E44 !important">
  46.             {% else %}
  47.             <div class="navbar-container container-fluid">
  48.                 {% endif %}
  49.                 <!-- Navbar Collapse -->
  50.                 <div class="collapse navbar-collapse navbar-collapse-toolbar" id="site-navbar-collapse">
  51.                     <!-- Navbar Toolbar -->
  52.                     <ul class="nav navbar-toolbar clinics-drop-area">
  53.              
  54.                             {% if app.user %}
  55.                             {% if is_granted('ROLE_SUPER_CLINIC_ADMIN') %}
  56.                             {% set clinics = getClinicsList(app.user) %}
  57.                             {% if clinics|length > 0 %}
  58.                             <a class="nav-link" data-toggle="dropdown" href="javascript:void(0)"
  59.                                 data-animation="scale-up" aria-expanded="false" role="button">
  60.                                 {% set displayed = false %}
  61.                                 {% for clinicItem in clinics %}
  62.                                     {% if not displayed %}
  63.                                         {% if clinic is defined and clinic is not null and clinic.id == clinicItem.id %}
  64.                                         {% do app.session.set('clinicstatic_subDomain', clinicItem.subDomain) %}
  65.                                             {{ clinicItem.name }}
  66.                                             {% set displayed = true %}
  67.                                             {% elseif loop.first and not clinic is defined %}
  68.                                             {% set clinic = clinicItem %}
  69.                                             {{ clinicItem.name }}
  70.                                             {% set displayed = true %}
  71.                                         {% endif %}
  72.                                     {% endif %}
  73.                                 {% endfor %}
  74.                                 {% if not displayed %}
  75.                                 {% set clinic = clinics|first %}
  76.                                 {{ clinic.name }}
  77.                                 {% endif %}
  78.                             </a>
  79.                             <div class="dropdown-menu" role="menu">
  80.                                 {% for clinicItem in clinics %}
  81.                                 <a class="dropdown-item"
  82.                                     href="/admin/clinics/{{ clinicItem.id }}/dashboard"
  83.                                     role="menuitem">
  84.                                     {{ clinicItem.name }}
  85.                                 </a>
  86.                                 {% endfor %}
  87.                             </div>
  88.                             {% endif %}
  89.                             {% elseif clinic.name is defined and clinic.name != null %}
  90.                             <div class="top-clinic-select-wrapper">
  91.                                 <div class="container-1">
  92.                                     <div class="top-clinic-select">
  93.                                         <div class="clinic-name-top">
  94.                                             <a class="nav-link" href="javascript:void(0)" style="cursor: default;">
  95.                                                 {{ clinic.name }}
  96.                                             </a>
  97.                                         </div>
  98.                                     </div>
  99.                                 </div>
  100.                             </div>
  101.                             {% endif %}
  102.                             {% endif %}
  103.                         </li>
  104.                      {% if app.request.session.get('_admin_id') is defined  and app.request.session.get('_admin_id') != null %}
  105.                         <li class="nav-item no-dropdown demo-clinic-drop">
  106.                     <a href="{{ path('admin_autologin') }}" class=" nav-link"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-logout"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 8v-2a2 2 0 0 0 -2 -2h-7a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h7a2 2 0 0 0 2 -2v-2"></path><path d="M9 12h12l-3 -3"></path><path d="M18 15l3 -3"></path></svg> Back to Admin</a>
  107.                         </li>
  108.                          {%  endif %}
  109.                     </ul>
  110.                     
  111.                     <!-- End Navbar Toolbar -->
  112.                     
  113.                     <!-- Navbar Toolbar Right -->
  114.                     {% set appUri = app.request.server.get('APP_URl') %}
  115.                     {% set domainName = app.request.server.get('WEBSITE_DOMAIN') %}
  116.                     <ul class="nav navbar-toolbar navbar-right navbar-toolbar-right">
  117.                         {% if false %}
  118.                         <div class="user-new copy-container">
  119.                             <a href="#" class="copied" style="display: none;">Copied</a>
  120.                             {% if app.user %}
  121.                             {% if is_granted('ROLE_SUPER_CLINIC_ADMIN') %}
  122.                             {% for clinicItem in clinics %}
  123.                             {% if clinic is defined and clinic != null and clinic.id == clinicItem.id %}
  124.                             
  125.                             <a class="user_url" title="{{clinic.subDomain~'.'~domainName}}"
  126.                                 href="http://{{clinic.subDomain}}.{{domainName}}">
  127.                                 <b>My Profile Link</b> :
  128.                                 <span class="copy-target"
  129.                                     data-base-url="{{clinic.subDomain~'.'~domainName}}">{{clinic.subDomain~'.'~domainName}}</span>
  130.                             </a>
  131.                             {% elseif loop.first %}
  132.                             {% set clinic = clinicItem %}
  133.                             <a class="user_url" title="{{clinic.subDomain~'.'~domainName}}"
  134.                                 href="http://{{clinic.subDomain}}.{{domainName}}">
  135.                                 <b>My Profile Link</b> :
  136.                                 <span class="copy-target"
  137.                                     data-base-url="{{clinic.subDomain~'.'~domainName}}">{{clinic.subDomain~'.'~domainName}}</span>
  138.                             </a>
  139.                             {% endif %}
  140.                             {% endfor %}
  141.                             {% elseif clinic is defined %}
  142.                             <a class="user_url" title="{{clinic.subDomain~'.'~domainName}}"
  143.                                 href="http://{{clinic.subDomain}}.{{domainName}}">
  144.                                 <b>My Profile Link</b> :
  145.                                 <span class="copy-target"
  146.                                     data-base-url="{{clinic.subDomain~'.'~domainName}}">{{clinic.subDomain~'.'~domainName}}</span>
  147.                             </a>
  148.                             {% endif %}
  149.                             {% endif %}
  150.                             <button onclick="copyToClipboard()">
  151.                                 <i value="Copy Url" title="Copy Url" class="fa fa-clone"></i>
  152.                             </button>
  153.                         </div>
  154.                         {% endif %}
  155.                         {% if app.user %}
  156.                 
  157.                         {% endif %}
  158.                         {% if not is_granted('ROLE_CONSENTZ_ADMIN') and 'onboarding' not in
  159.                         app.request.attributes.get('_route') %}
  160.                         {% if clinic is defined and clinic != null %}
  161.                         <li class="nav-item ">
  162.                             <a class="nav-link waves-effect waves-light waves-round"
  163.                                 href="{{ path('appointments_calendar', {'clinicId': clinic.id}) }}" title="Calendar">
  164.                                 <svg  xmlns="http://www.w3.org/2000/svg"  width="24"  height="24"  viewBox="0 0 24 24"  fill="none"  stroke="#000000"  stroke-width="1.5"  stroke-linecap="round"  stroke-linejoin="round"  class="icon icon-tabler icons-tabler-outline icon-tabler-calendar-due"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M4 5m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z" /><path d="M16 3v4" /><path d="M8 3v4" /><path d="M4 11h16" /><path d="M12 16m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /></svg>
  165.                             </a>
  166.                         </li>
  167.                         <li class="nav-item">
  168.                             <a class="nav-link waves-effect waves-light waves-round"
  169.                                 href="{{ path('patients_index', {'clinicId': clinic.id}) }}" title="Patients">
  170.                                 <svg  xmlns="http://www.w3.org/2000/svg"  width="24"  height="24"  viewBox="0 0 24 24"  fill="none"  stroke="#000000"  stroke-width="1.5"  stroke-linecap="round"  stroke-linejoin="round"  class="icon icon-tabler icons-tabler-outline icon-tabler-stethoscope"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M6 4h-1a2 2 0 0 0 -2 2v3.5h0a5.5 5.5 0 0 0 11 0v-3.5a2 2 0 0 0 -2 -2h-1" /><path d="M8 15a6 6 0 1 0 12 0v-3" /><path d="M11 3v2" /><path d="M6 3v2" /><path d="M20 10m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" /></svg>
  171.                             </a>
  172.                         </li>
  173.                         <li class="nav-item">
  174.                             <a class="nav-link waves-effect waves-light waves-round"
  175.                                 href="{{ path('lead_capture_list', {'clinicId': clinic.id}) }}" title="Prospects">
  176.                                 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-presentation-analytics">
  177.                                     <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
  178.                                     <path d="M9 12v-4"></path>
  179.                                     <path d="M15 12v-2"></path>
  180.                                     <path d="M12 12v-1"></path>
  181.                                     <path d="M3 4h18"></path>
  182.                                     <path d="M4 4v10a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-10"></path>
  183.                                     <path d="M12 16v4"></path>
  184.                                     <path d="M9 20h6"></path>
  185.                                 </svg>
  186.                             </a>
  187.                         </li>
  188.                         {# <li class="nav-item">
  189.                             <a class="nav-link waves-effect waves-light waves-round"
  190.                                 href="{{ path('day_sheet_list', {'clinicId': clinic.id}) }}" title="Day sheet">
  191.                                 <i class="icon md-receipt" aria-hidden="true"></i>
  192.                             </a>
  193.                         </li>
  194.                         <li class="nav-item">
  195.                             <a class="nav-link waves-effect waves-light waves-round"
  196.                                 href="{{ path('clinics_stock', {'clinicId': clinic.id}) }}" title="Stock">
  197.                                 <i class="icon md-shopping-basket" aria-hidden="true"></i>
  198.                             </a>
  199.                         </li> #}
  200.                         <li class="nav-item">
  201.                             <a class="nav-link waves-effect waves-light waves-round"
  202.                                 href="{{ path('clinics_report_index', {'clinicId': clinic.id}) }}" title="Reports">
  203.                                 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-checkup-list">
  204.                                     <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
  205.                                     <path d="M9 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2h-2"></path>
  206.                                     <path d="M9 3m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v0a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z"></path>
  207.                                     <path d="M9 14h.01"></path>
  208.                                     <path d="M9 17h.01"></path>
  209.                                     <path d="M12 16l1 1l3 -3"></path>
  210.                                 </svg>
  211.                             </a>
  212.                         </li>
  213.                         {% endif %}
  214.                         
  215.                         {% endif %}
  216.                         {% if not is_granted('ROLE_CONSENTZ_ADMIN') and 'onboarding' not in
  217.                         app.request.attributes.get('_route') and clinic is defined and clinic != null %}
  218.                         <li class="nav-item">
  219.                             <a href="{{path('clinic_message_index',{'clinicId': clinic.id})}}" class="nav-link waves-effect waves-light waves-round  ">
  220.                             <span class="totalmsgcount "></span>
  221.                                 <svg  xmlns="http://www.w3.org/2000/svg"  width="24"  height="24"  viewBox="0 0 24 24"  fill="none"  stroke="#000000"  stroke-width="1.5"  stroke-linecap="round"  stroke-linejoin="round"  class="icon icon-tabler icons-tabler-outline icon-tabler-message"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M8 9h8" /><path d="M8 13h6" /><path d="M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12z" /></svg>
  222.                             </a>
  223.                         </li>
  224.                         {% else %}
  225.                          <li class="nav-item ">
  226.                             <a href="/admin/message/index" class="nav-link waves-effect waves-light waves-round  ">
  227.                             <span class="totalmsgcount "></span>
  228.                                 <svg  xmlns="http://www.w3.org/2000/svg"  width="24"  height="24"  viewBox="0 0 24 24"  fill="none"  stroke="#000000"  stroke-width="1.5"  stroke-linecap="round"  stroke-linejoin="round"  class="icon icon-tabler icons-tabler-outline icon-tabler-message"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M8 9h8" /><path d="M8 13h6" /><path d="M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12z" /></svg>
  229.                             </a>
  230.                         </li>
  231.                         {% endif %}
  232.                             
  233.                         <li class="nav-item dropdown">
  234.                             <a class="nav-link navbar-avatar" data-toggle="dropdown" href="#" aria-expanded="false"
  235.                                 data-animation="scale-up" role="button">
  236.                                 <span class="avatar  avatar-online">
  237.                                     {% if app.user.profileImg != '' %}
  238.                                     <img src="{{ app.user.profileImg }}" alt=" {{ app.user.name }} ">
  239.                                     {% else %}
  240.                                     <img src="{{ asset('/images/Clinic/solid_gray.png') }}" alt=" {{ app.user.name }} ">
  241.                                     {% endif %}
  242.                                     <i></i>
  243.                                 </span>
  244.                             </a>
  245.                             <div class="dropdown-menu" role="menu">
  246.                                 <a class="dropdown-item user-drop-hold" href="{{ path('profile') }}" role="menuitem">
  247.                                     <svg  xmlns="http://www.w3.org/2000/svg"  width="24"  height="24"  viewBox="0 0 24 24"  fill="none"  stroke="#000000"  stroke-width="1.5"  stroke-linecap="round"  stroke-linejoin="round"  class="icon icon-tabler icons-tabler-outline icon-tabler-user"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0" /><path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2" /></svg>
  248.                                     <div class="user-text-hold">
  249.                                         {{ app.user.name }}
  250.                                         <div class="role-user">
  251.                                             {% if (app.user.role != 'ROLE_SUPER_CLINIC_ADMIN') %}
  252.                                             {{ app.user.role|split('_')|slice(1)|join(' ') }}
  253.                                             {% else %}
  254.                                             Super User
  255.                                             {% endif %}
  256.                                         </div>
  257.                                     </div>
  258.                                 </a>
  259.                                 <div class="dropdown-divider"></div>
  260.                                 
  261.                                 {% if app.user %}
  262.                                 {% if is_granted('ROLE_SUPER_CLINIC_ADMIN') %}
  263.                                 {% for clinicItem in clinics %}
  264.                                 {% if clinic is defined and clinic != null and clinic.id == clinicItem.id %}
  265.                                 {% if clinic.subDomain is defined and clinic.subDomain is not null %}
  266.                                 <a class="dropdown-item 1"
  267.                                     href="{{ path('open_profile', {'subDomain': clinic.subDomain}) }}"
  268.                                     role="menuitem">
  269.                                         <svg  xmlns="http://www.w3.org/2000/svg"  width="24"  height="24"  viewBox="0 0 24 24"  fill="none"  stroke="#000000"  stroke-width="1.5"  stroke-linecap="round"  stroke-linejoin="round"  class="icon icon-tabler icons-tabler-outline icon-tabler-user-circle"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" /><path d="M12 10m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" /><path d="M6.168 18.849a4 4 0 0 1 3.832 -2.849h4a4 4 0 0 1 3.834 2.855" /></svg>
  270.                                         View Website
  271.                                         </a>
  272.                                 {% endif %}
  273.                                 {% elseif loop.first %}
  274.                                 {% set clinic = clinicItem %}
  275.                                 {% if clinic.subDomain is defined and clinic.subDomain is not null %}
  276.                             
  277.                                 <a class="dropdown-item 2"
  278.                                     href="{{ path('open_profile', {'subDomain': clinic.subDomain}) }}"
  279.                                     role="menuitem">
  280.                                         <svg  xmlns="http://www.w3.org/2000/svg"  width="24"  height="24"  viewBox="0 0 24 24"  fill="none"  stroke="#000000"  stroke-width="1.5"  stroke-linecap="round"  stroke-linejoin="round"  class="icon icon-tabler icons-tabler-outline icon-tabler-user-circle"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" /><path d="M12 10m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" /><path d="M6.168 18.849a4 4 0 0 1 3.832 -2.849h4a4 4 0 0 1 3.834 2.855" /></svg>
  281.                                         View Website
  282.                                     </a>
  283.                                 {% endif %}
  284.                                 {% endif %}
  285.                                 {% endfor %}
  286.                                 {% elseif clinic is defined %}
  287.                                 {% if clinic.subDomain is defined and clinic.subDomain is not null %}
  288.                                 <a class="dropdown-item 3"
  289.                                     href="{{ path('open_profile', {'subDomain': clinic.subDomain}) }}"
  290.                                     role="menuitem">
  291.                                         <svg  xmlns="http://www.w3.org/2000/svg"  width="24"  height="24"  viewBox="0 0 24 24"  fill="none"  stroke="#000000"  stroke-width="1.5"  stroke-linecap="round"  stroke-linejoin="round"  class="icon icon-tabler icons-tabler-outline icon-tabler-user-circle"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" /><path d="M12 10m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" /><path d="M6.168 18.849a4 4 0 0 1 3.832 -2.849h4a4 4 0 0 1 3.834 2.855" /></svg>
  292.                                         View Website
  293.                                     </a>
  294.                                 {% endif %}
  295.                                 {% endif %}
  296.                                 {% endif %}
  297.                                 {% if is_granted('ROLE_CONSENTZ_ADMIN') %}
  298.                                    <a class="dropdown-item"
  299.                                     href="{{ path('admin_settings_index') }}"
  300.                                     role="menuitem">
  301.                                         <svg  xmlns="http://www.w3.org/2000/svg"  width="24"  height="24"  viewBox="0 0 24 24"  fill="none"  stroke="#000000"  stroke-width="1.5"  stroke-linecap="round"  stroke-linejoin="round"  class="icon icon-tabler icons-tabler-outline icon-tabler-lock"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M5 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-6z" /><path d="M11 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0" /><path d="M8 11v-4a4 4 0 1 1 8 0v4" /></svg>
  302.                                         Admin Settings
  303.                                     </a>
  304.                                    <a class="dropdown-item"
  305.                                     href="{{ path('smsplan_index') }}"
  306.                                     role="menuitem">
  307.                                         <svg  xmlns="http://www.w3.org/2000/svg"  width="24"  height="24"  viewBox="0 0 24 24"  fill="none"  stroke="#000000"  stroke-width="1.5"  stroke-linecap="round"  stroke-linejoin="round"  class="icon icon-tabler icons-tabler-outline icon-tabler-lock"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M5 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-6z" /><path d="M11 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0" /><path d="M8 11v-4a4 4 0 1 1 8 0v4" /></svg>
  308.                                         Sms Plans
  309.                                     </a>  
  310.                                 {% endif %}
  311.                                 
  312.                                      <a class="dropdown-item"
  313.                                     href="{{ path('changePassword') }}"
  314.                                     role="menuitem">
  315.                                         <svg  xmlns="http://www.w3.org/2000/svg"  width="24"  height="24"  viewBox="0 0 24 24"  fill="none"  stroke="#000000"  stroke-width="1.5"  stroke-linecap="round"  stroke-linejoin="round"  class="icon icon-tabler icons-tabler-outline icon-tabler-lock"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M5 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-6z" /><path d="M11 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0" /><path d="M8 11v-4a4 4 0 1 1 8 0v4" /></svg>
  316.                                         Change Password
  317.                                     </a>
  318.                                     {% if clinic is defined %}
  319.                                      {% if not is_granted('ROLE_CONSENTZ_ADMIN')  %}
  320.      
  321.                                         {#  <a class="dropdown-item" href="{{ path('practitioner_zoom_page', {'practitionerId': app.user.id,'clinicId': clinic.id}) }}" role="menuitem">
  322.                                               <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-video">
  323.                                                   <path stroke="none" d="M0 0h24v24H0z" fill="none" />
  324.                                                   <path d="M15 10l4.553 -2.276a1 1 0 0 1 1.447 .894v6.764a1 1 0 0 1 -1.447 .894l-4.553 -2.276v-4z" />
  325.                                                   <path d="M3 6m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z" />
  326.                                               </svg>
  327.                                               <span class="link_name">Link Zoom Acount</span>
  328.                                           </a> #}
  329.    
  330.                                     {% endif %}
  331.                                     {% endif %}
  332.                                 <a class="dropdown-item" href="javascript:void(0);" id="profileimgBtn" role="menuitem">
  333.                                         <svg  xmlns="http://www.w3.org/2000/svg"  width="24"  height="24"  viewBox="0 0 24 24"  fill="none"  stroke="#000000"  stroke-width="1.5"  stroke-linecap="round"  stroke-linejoin="round"  class="icon icon-tabler icons-tabler-outline icon-tabler-user-circle"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" /><path d="M12 10m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" /><path d="M6.168 18.849a4 4 0 0 1 3.832 -2.849h4a4 4 0 0 1 3.834 2.855" /></svg>
  334.                                         Change Picture
  335.                                     </a>
  336.                                 <div class="dropdown-divider"></div>
  337.                                 <a class="dropdown-item" href="{{ path('logout') }}" role="menuitem">
  338.                                     <svg  xmlns="http://www.w3.org/2000/svg"  width="24"  height="24"  viewBox="0 0 24 24"  fill="none"  stroke="#000000"  stroke-width="1.5"  stroke-linecap="round"  stroke-linejoin="round"  class="icon icon-tabler icons-tabler-outline icon-tabler-logout"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M14 8v-2a2 2 0 0 0 -2 -2h-7a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h7a2 2 0 0 0 2 -2v-2" /><path d="M9 12h12l-3 -3" /><path d="M18 15l3 -3" /></svg>
  339.                                     Sign Out
  340.                                 </a>
  341.                             </div>
  342.                         </li>
  343.                     </ul>
  344.                     <!-- End Navbar Toolbar Right -->
  345.                 </div>
  346.                 <!-- End Navbar Collapse -->
  347.             </div>
  348.     </nav>
  349.     {% if not is_granted('ROLE_CONSENTZ_ADMIN') and 'onboarding' not in app.request.attributes.get('_route') %}
  350.     {{ render(controller('App\\Controller\\Admin\\Message\\DefaultController::list')) }}
  351.     {% endif %}
  352.     {% endblock %}
  353.     {% block breadcrumbs %}
  354.     {% endblock %}
  355.     {% block flash %}
  356.     {% if app.session.flashBag.keys is defined and app.session.flashBag.keys|length > 0 %}
  357.     <div class="flash-block" style="padding: 15px;">
  358.         {% for flashType in app.session.flashbag.keys %}
  359.         {% for flash in app.session.flashbag.get(flashType) %}
  360.         <div class="alert alert-{{ flashType }} alert-dismissible">
  361.             <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  362.                 <span aria-hidden="true">×</span>
  363.             </button>
  364.             {{ flash|raw }}
  365.         </div>
  366.         {% endfor %}
  367.         {% endfor %}
  368.     </div>
  369.     {% endif %}
  370.     {% endblock %}
  371.     {% block flashLogin %}
  372.     {% if app.session.flashBag.keys is defined and app.session.flashBag.keys|length > 0 %}
  373.     <div class="flash-block">
  374.         {% for flashType in app.session.flashbag.keys %}
  375.         {% for flash in app.session.flashbag.get(flashType) %}
  376.         <div class="alert alert-{{ flashType }} alert-dismissible">
  377.             <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  378.                 <span aria-hidden="true">×</span>
  379.             </button>
  380.             {{ flash|raw }}
  381.         </div>
  382.         {% endfor %}
  383.         {% endfor %}
  384.     </div>
  385.     {% endif %}
  386.     {% endblock %}
  387.     {% block mainMenu %}
  388.     {% endblock %}
  389.     {% block top %}
  390.     {{ block('mainMenu') }}
  391.     {% endblock %}
  392.     {% block body %}
  393. <div class="main-site-wrapper">
  394.     {{ block('top') }}
  395.     <main class="page">
  396. {{ block('header') }}
  397.         {{ block('flash') }}
  398.         {% block content %}
  399.         {% endblock %}
  400.     </main>
  401. </div>
  402.     <style>
  403.     @media (min-width:0px){*{box-sizing:border-box}.modal-body-audio{margin:0;padding:0;background-color:#e0ffff;color:#414142;position:relative;font-family:monospace}.title{font-size:30px;margin-bottom:55px;text-align:center}.cancel-recording-button,.start-recording-button,.stop-recording-button{font-size:70px;cursor:pointer}.audio-recording-container{width:100%;height:100vh;display:-webkit-flex;display:-ms-flex;display:flex;flex-direction:column;justify-content:center;align-items:center}.start-recording-button{color:#435f7a;opacity:.5;margin-bottom:30px}.start-recording-button:hover{opacity:1}.recording-contorl-buttons-container{display:-webkit-flex;display:-ms-flex;display:flex;justify-content:space-evenly;align-items:center;width:334px;margin-bottom:30px}.cancel-recording-button{color:red;opacity:.7}.cancel-recording-button:hover{color:#ce0404}.stop-recording-button{color:#3c3;opacity:.7}.stop-recording-button:hover{color:#27a527}.recording-elapsed-time{display:-webkit-flex;display:-ms-flex;display:flex;justify-content:center;align-items:center}.red-recording-dot{font-size:25px;color:red;margin-right:12px;animation-name:flashing-recording-dot;-webkit-animation-name:flashing-recording-dot;-moz-animation-name:flashing-recording-dot;-o-animation-name:flashing-recording-dot;animation-duration:2s;-webkit-animation-duration:2s;-moz-animation-duration:2s;-o-animation-duration:2s;animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;-o-animation-iteration-count:infinite}@keyframes flashing-recording-dot{0%,100%{opacity:1}50%{opacity:0}}@-webkit-keyframes flashing-recording-dot{0%,100%{opacity:1}50%{opacity:0}}@-moz-keyframes flashing-recording-dot{0%,100%{opacity:1}50%{opacity:0}}@-o-keyframes flashing-recording-dot{0%,100%{opacity:1}50%{opacity:0}}.elapsed-time{font-size:32px}.audio-element.hide,.overlay-modal.hide,.recording-contorl-buttons-container.hide,.text-indication-of-audio-playing.hide{display:none}.overlay-modal{position:absolute;top:0;height:100vh;width:100%;background-color:rgba(82,76,76,.35);display:-webkit-flex;display:-ms-flex;display:flex;justify-content:center;align-items:center}.browser-not-supporting-audio-recording-box{display:-webkit-flex;display:-ms-flex;display:flex;flex-direction:column;justify-content:space-between;align-items:center;width:317px;height:119px;background-color:#fff;border-radius:10px;padding:15px;font-size:16px}.close-browser-not-supported-box{cursor:pointer;background-color:#abc1c05c;border-radius:10px;font-size:16px;border:none}.close-browser-not-supported-box:hover{background-color:#92a5a45c}.close-browser-not-supported-box:focus{outline:0;border:none}.text-indication-of-audio-playing-container{height:20px}.text-indication-of-audio-playing{font-size:20px}.text-indication-of-audio-playing span{animation-name:blinking-dot;-webkit-animation-name:blinking-dot;-moz-animation-name:blinking-dot;-o-animation-name:blinking-dot;animation-duration:2s;-webkit-animation-duration:2s;-moz-animation-duration:2s;-o-animation-duration:2s;animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;-o-animation-iteration-count:infinite}.text-indication-of-audio-playing span:nth-child(2){animation-delay:.4s;-webkit-animation-delay:.4s;-moz-animation-delay:.4s;-o-animation-delay:.4s}.text-indication-of-audio-playing span:nth-child(3){animation-delay:.8s;-webkit-animation-delay:.8s;-moz-animation-delay:.8s;-o-animation-delay:.8s}@keyframes blinking-dot{0%,100%{opacity:0}50%{opacity:1}}@-webkit-keyframes blinking-dot{0%,100%{opacity:0}50%{opacity:1}}@-moz-keyframes blinking-dot{0%,100%{opacity:0}50%{opacity:1}}@-o-keyframes blinking-dot{0%,100%{opacity:0}50%{opacity:1}}}
  404. </style>
  405.     
  406.     {% endblock %}
  407.     {% block javascripts %}
  408.     {{ parent() }}
  409.     <script>
  410.         var CSRF_NAME = '_token';
  411.         var CSRF_TOKEN = '{{csrf_token('token_id')}}';
  412.         var BASE_URL = '/';
  413.         var APP_URL = '/';
  414.         var SOCKET_SERVER = '{{app.request.server.get('SOCKET_URL')}}';
  415.         var SOCKET_PUBLIC_KEY = '{{app.request.server.get('SOCKET_PUBLIC_KEY')}}';
  416.         var convId = 0;
  417.     </script>
  418.     {% if app.user %}
  419. <script src="https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.18/summernote.min.js"></script>
  420.     <script src="/assets/chat/ion.sound.min.js"></script>
  421.     <script src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.2.3/howler.min.js"></script>
  422.     <script src="/assets/chat/chat.js"></script>
  423.     <script type="module" src="/assets/chat/ckeditor.js"></script>
  424.     <script src="https://{{app.request.server.get('SOCKET_URL')}}/socket.io/socket.io.min.js"></script>
  425.     <script src="https://cdn.jsdelivr.net/npm/@joeattardi/emoji-button@3.0.3/dist/index.min.js"></script>
  426.     <script id="common-modal-template" type="text/html">
  427.     <div class="modal-header">
  428.         <h5 class="modal-title">__title__</h5>
  429.         <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  430.             <span aria-hidden="true">&times;</span>
  431.         </button>
  432.     </div>
  433.     <div class="modal-body">__text__</div>
  434.     <div class="modal-footer">
  435.         <button type="button" class="btn btn-secondary" id="common-modal-cancel">__cancelButtonText__</button>
  436.         <button type="button" class="btn btn-primary" id="common-modal-submit">__confirmButtonText__</button>
  437.     </div>
  438. </script>
  439.     <script>
  440.         chatApp.user = {
  441.             user_id: '{{app.user.id}}',
  442.             name: '{{app.user.name}}',
  443.             image: '{{(app.user.profileImg != '')?app.user.profileImg:'/images/Clinic/solid_gray.png'}}',
  444.             clinic: {{clinic is defined and clinic != null ? clinic.id : 0}}
  445.     };
  446.         chatApp.connectSocket(chatApp.user.user_id);
  447.         chatApp.getTotalUnreadMessage(chatApp.user.clinic);
  448.         chatApp.checkPopupUnread();
  449.         function setModalContent(html) {
  450.             $('#common-modal-content').html(html);
  451.         }
  452.         function showModalView(url, cb) {
  453.             showLoader();
  454.             $.ajax({
  455.                 url: url,
  456.                 method: 'get',
  457.                 success: function (response) {
  458.                     hideLoader();
  459.                     setModalContent(response);
  460.                     showModal();
  461.                     cb && cb();
  462.                 },
  463.                 error: function () {
  464.                     hideLoader();
  465.                     hideModal();
  466.                     Swal.fire('Warning', 'Something went wrong.', 'warning');
  467.                 }
  468.             })
  469.         }
  470.         function showModal() {
  471.             if (!$('#common-modal').is(':visible')) {
  472.                 $('#common-modal').modal('show');
  473.             }
  474.         }
  475.         function hideModal() {
  476.             $('#common-modal').modal('hide');
  477.         }  
  478.         function setModalContentLg(html) {
  479.             $('#common-modal-new-lg-content').html(html);
  480.         }
  481.         function showModalViewLg(url, cb) {
  482.             showLoader();
  483.             $.ajax({
  484.                 url: url,
  485.                 method: 'get',
  486.                 success: function (response) {
  487.                     hideLoader();
  488.                     setModalContentLg(response);
  489.                     showModalLg();
  490.                     cb && cb();
  491.                 },
  492.                 error: function () {
  493.                     hideLoader();
  494.                     hideModalLg();
  495.                     Swal.fire('Warning', 'Something went wrong.', 'warning');
  496.                 }
  497.             })
  498.         }
  499.         function showModalLg() {
  500.             if (!$('#common-modal-new-lg').is(':visible')) {
  501.                 $('#common-modal-new-lg').modal('show');
  502.             }
  503.         }
  504.         function hideModalLg() {
  505.             $('#common-modal-new-lg').modal('hide');
  506.         }
  507.     </script>
  508.     {% endif %}
  509.     <script>
  510.         $('form').submit(function () {
  511.             $("*[type='submit']", this).attr('disabled', 'disabled');
  512.         });
  513.         var colorpicker = $('.bootstrap-colorpicker');
  514.         if (colorpicker.length) {
  515.             colorpicker.colorpicker();
  516.         }
  517.         $('#select_clinic').on('change', function () {
  518.             window.location = $(this).find('option[value="' + $(this).val() + '"]').attr('data-url');
  519.         })
  520.     </script>
  521.     <script src="{{ asset('js/chat.js') }}"></script>
  522.     <script src="{{ asset('js/global.js') }}"></script>
  523.     <script src="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/0.8.1/cropper.min.js"></script>
  524.     
  525.     <script>
  526. if(performance.navigation.type == 2){
  527.               location.reload(true);
  528.            }
  529.         function copyToClipboard() {
  530.             var urlElement = document.querySelector('.user_url');
  531.             var url = urlElement.getAttribute('href');
  532.             var tempInput = document.createElement('input');
  533.             document.body.appendChild(tempInput);
  534.             tempInput.value = url;
  535.             tempInput.select();
  536.             document.execCommand('copy');
  537.             document.body.removeChild(tempInput);
  538.             urlElement.style.display = 'none';
  539.             var copiedSpan = document.querySelector('.copied');
  540.             copiedSpan.textContent = 'Copied: ';
  541.             copiedSpan.style.display = 'inline';
  542.             setTimeout(function () {
  543.                 copiedSpan.style.display = 'none';
  544.                 urlElement.style.display = 'block';
  545.                 myclass.style.display = 'block';
  546.             }, 2000);
  547.         }
  548.         function iniFrame() {
  549.             // Check if the current window is within an iframe
  550.             if (window.location !== window.parent.location) {
  551.                 // If within an iframe, log it and set a cookie indicating it
  552.                 //console.log('iframe');
  553.                 common.setCookie('inIframes', true, 1);
  554.             } else {
  555.                 // If not within an iframe, log it and set a cookie indicating it
  556.                 //console.log('notiframe');
  557.                 common.setCookie('inIframes', false, 1);
  558.             }
  559.         }
  560.         $(document).ready(function () {
  561.             common.setCookie('cookieConsent', true, 1);
  562.             $('#loader-container').hide();
  563.             $('#master-container').show();
  564.             iniFrame();
  565.             $('#common-modal').on('hidden.bs.modal', function (e) {
  566.                $('#common-modal-content').html('');
  567.             });
  568.     setTimeout(clearFlash, 8000);
  569.         });
  570. function clearFlash() {
  571.                     $('.flash-block').remove();
  572.         }
  573.         var common = {
  574.             setCookie: function (cname, cvalue, exdays) {
  575.                 var d = new Date();
  576.                 d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
  577.                 var expires = "expires=" + d.toUTCString();
  578.                 document.cookie = cname + "=" + cvalue + "; " + expires + ";path=/;Secure=true;SameSite=none";
  579.             },
  580.             getCookie: function getCookie(cname) {
  581.                 console.log('getcookie');
  582.                 var name = cname + "=";
  583.                 var ca = document.cookie.split(';');
  584.                 for (var i = 0; i < ca.length; i++) {
  585.                     var c = ca[i];
  586.                     while (c.charAt(0) == ' ') {
  587.                         c = c.substring(1);
  588.                     }
  589.                     if (c.indexOf(name) == 0) {
  590.                         return c.substring(name.length, c.length);
  591.                     }
  592.                 }
  593.                 return "";
  594.             },
  595.             init: function () {
  596.                 //console.log('initcookie');
  597.                 var tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
  598.                 if (this.getCookie('tz') != tz) {
  599.                     this.setCookie('tz', tz, 30);
  600.                     console.log('timezone cookie is set.');
  601.                 }
  602.             }
  603.         };
  604.         (function () {
  605.             //console.log("new common");
  606.             common.init();
  607.             if($('.sidebar').length == 0 && $('.main-site-wrapper').length == 1) {
  608.                 $('.main-site-wrapper').addClass('main-wrapper-custom');
  609.             }
  610.         })();
  611.     </script>
  612.     <style>
  613.     .mock-block {
  614.        display: none;
  615.     }
  616.     </style>
  617.     {% endblock %}