templates/visao/gps/avaliado/base.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block javascripts %}
  3.     {{ parent() }}
  4.     
  5.     {% if app.session.has('periodo') != false and app.session.has("avaliado") != false %}
  6.     <script src="{{ asset('js/componentes/avaliado-gps/graficoInformativo.js') }}"></script>
  7.     <script src="{{ asset('js/componentes/avaliado-gps/graficoPerformanceDominio.js') }}"></script>
  8.     <script src="{{ asset('js/confetti.browser.min.js') }}"></script>
  9.     <script>
  10.         //callback do upload de arquivos
  11.         function updateButton($this){
  12.             $this.find(".button").removeClass("transparent pointer").addClass("green no-hover tooltip").attr("title", "Arquivo enviado com sucesso!").find(".progress").remove();
  13.             $this.find("input[type='file']").remove();
  14.             $this.find(".fa-upload").removeClass("fa-upload").addClass("fa-check");
  15.             let text = $this.find("span[data-placeholder]").attr("data-placeholder");
  16.             $this.find("span[data-placeholder]").html(text);
  17.             if($this.closest(".notification").find(".inputfile").length <= 0){
  18.                 $(".text-upload").addClass("d-none");
  19.                 $(".text-completed").removeClass("d-none");
  20.                 confetti({
  21.                     particleCount: 100,
  22.                     spread: 70,
  23.                     origin: {
  24.                         y: 0.5,
  25.                         x: 0.5
  26.                     }
  27.                 });
  28.             }
  29.         }
  30.     </script>
  31.     {% endif %}
  32. {% endblock %}
  33. {% block body %}
  34.     <div id="wrapper" class="right no-content {{ app.session.has('periodo') == false or app.session.has('avaliado') == false ? 'blur' : '' }}">
  35.         <div id="header">
  36.             <a href="{{ path('visoes') }}"><h3><img src="{{ asset('images/favicon.png') }}"/></h3></a>
  37.             <div id="menu" class="menu">
  38.                 <ul>
  39.                     <li class="active"><a class="tooltip" title="Dashboard" href="{{ path('gps_visao_avaliado_dashboard') }}"><i class="fal fa-home"></i><span>Dashboard</span></a></li>
  40.                     <li><a class="tooltip" title="Dashboard Anual" href="{{ path('gps_visao_avaliado_dashboard_anual') }}"><i class="fal fa-chart-line"></i><span>Dashboard Anual</span></a></li>
  41.                     <li><a class="tooltip" title="Consentimento" href="{{ path('consenso') }}"><i class="fal fa-user-check"></i><span>Termo de Consentimento</span></a></li>
  42.                     <li id="botao-comunicacao" data-url="{{ path('span_botao_contar_mensagens') }}">
  43.                         {% include 'modulos/comunicacao/botao-comunicacao-notificacao.html.twig' %}
  44.                     </li>
  45.                     {% if app.session.get('cliente').dbname == 'analytics_unimed_sjrp' %}
  46.                         <li><a class="tooltip" target="_blank" title="Manual" href="https://2im-temp.s3.sa-east-1.amazonaws.com/manual/analytics/Manual_Plataforma_UnimedSJRP.pdf"><i class="fal fa-book"></i><span>Manual</span></a></li>
  47.                     {% endif %}
  48.                 </ul>
  49.             </div>
  50.             {% include 'btn-sair-language.html.twig' %}
  51.         </div>
  52.         {% if app.session.has('periodo') != false %}
  53.             {{ render(controller('App\\Controller\\DefaultController::rightMenu')) }}
  54.         {% endif %}
  55.         <div id="content">
  56.             {% if app.session.has('periodo') == false or app.session.has("avaliado") == false %}
  57.                 <div class="hide">
  58.                     {% if (is_granted('ROLE_GESTOR') or is_granted('ROLE_2IM')) %}
  59.                         {{ render(controller('App\\Controller\\Componentes\\FiltroAvaliadoController::index')) }}
  60.                     {% endif %}
  61.                     {{ render(controller('App\\Controller\\Componentes\\ProgramaController::index')) }}
  62.                     {% if app.session.has("modelagem") != false %}
  63.                         {{ render(controller('App\\Controller\\Componentes\\PeriodoController::index',{
  64.                             'select_multiple' : false
  65.                             ,'request_referer': app.session.get('avaliado').http_referer is not defined ? 'avaliado' : 'gestor'
  66.                             ,'modelo': 'gps'
  67.                         })) }}
  68.                     {% endif %}
  69.                 </div>
  70.             {% endif %}
  71.             <div class="largura">
  72.             {% if app.session.has('periodo') != false and app.session.has("avaliado") != false %}
  73.                 <div class="padding-menu-right">
  74.                     <div class="row justify-content-between pb-5">
  75.                         <div class="col col-auto pb-3">
  76.                             {% if is_granted('ROLE_GESTOR') %}
  77.                                 <h2 class="text-40 medium">Avaliação</h2>
  78.                             {% else %}
  79.                                 <h2 class="text-40 medium">Minha Avaliação</h2>
  80.                             {% endif %}
  81.                         </div>
  82.                         <div class="col-12 col-lg-auto text-lg-right">
  83.                             <div class="row gx-2 pt-2">
  84.                                 {% if (is_granted('ROLE_GESTOR') or is_granted('ROLE_2IM')) and app.session.get('avaliado').http_referer is not defined %}
  85.                                     <div class="col col-auto pb-3">
  86.                                         {{ render(controller('App\\Controller\\Componentes\\FiltroAvaliadoController::index')) }}
  87.                                     </div>
  88.                                 {% endif %}
  89.                                 <div class="col col-auto pb-3">
  90.                                     {{ render(controller('App\\Controller\\Componentes\\PeriodoController::index',{
  91.                                         'select_multiple' : false
  92.                                         ,'request_referer': app.session.get('avaliado').http_referer is not defined ? 'avaliado' : 'gestor'
  93.                                         ,'modelo': 'gps'
  94.                                     })) }}
  95.                                 </div>
  96.                             </div>
  97.                         </div>
  98.                     </div>
  99.                 </div>
  100.                 <div class="row">
  101.                     <div class="col-12 pb-3">
  102.                         {{ render(controller('App\\Controller\\Visao\\GPS\\Avaliado\\Componentes\\EvsAvaliadoController::index', {} )) }}
  103.                         {% if solicitacoes is not empty %}
  104.                         <div class="largura text-center">
  105.                             <div class="bg-dark notification alert border-x border-bottom border-radius-bottom p-3">
  106.                                 <div class="row">
  107.                                     <div class="col text-format text-14 text-left">
  108.                                         <div class="text-upload">
  109.                                             <p><b>{{ app.session.get('avaliado').nome_avaliado }}</b>, para melhorar seu EVS, você precisa fazer upload de alguns arquivos que comprovem alguns indicadores!<br/>
  110.                                                 Você pode fazer o upload por aqui, precisamos do{{solicitacoes|length != 1 ? 's' : ''}} documento{{solicitacoes|length != 1 ? 's' : ''}} abaixo:</p>
  111.                                             <div class="row g-2 pb-2">
  112.                                                 {% for documento in solicitacoes %}
  113.                                                 {% set extensoes = '' %}
  114.                                                 {% for ext in documento.extensao|json_decode|keys %}
  115.                                                     {% set extensoes = extensoes ~ "." ~ ext %}
  116.                                                     {% if ext != loop.last %}
  117.                                                         {% set extensoes = extensoes ~ ", "%}
  118.                                                     {% endif %}
  119.                                                 {% endfor %}
  120.                                                 <div class="col col-auto">
  121.                                                     <form action="{{ path('visao_admin_documentos_adicionar', {'id_solicitacao': documento.id_solicitacao }) }}" class="uploadfile" data-callback="updateButton($this)">
  122.                                                         <input type="file" name="arquivo[{{ documento.id_solicitacao }}]" id="arquivo[{{ documento.id_solicitacao }}]" class="inputfile" multiple accept="{{ extensoes }}" />
  123.                                                         <label for="arquivo[{{ documento.id_solicitacao }}]" class="button transparent pointer tooltip" title="Clique para selecionar o arquivo<br/>({{ extensoes }}).">
  124.                                                             <i class="fal fa-fw fa-upload"></i>
  125.                                                             <span>{{ documento.nome_documento|ucwords }}</span>
  126.                                                         </label>
  127.                                                     </form>
  128.                                                 </div>
  129.                                                 {% endfor %}
  130.                                             </div>
  131.                                         </div>
  132.                                         <div class="text-completed text-center d-none">
  133.                                             <p><i class="fal fa-check-circle text-40"></i></p>
  134.                                             <h3 class="text-24 medium mb-2">Muito bem!</h3>
  135.                                             <p>Você realizou o upload de todos os arquivos!</p>
  136.                                         </div>
  137.                                     </div>
  138.                                     <div class="col col-auto">
  139.                                         <a href="#" class="button sm transparent close-notification tooltip" title="Fechar">
  140.                                             <i class="fal fa-times"></i>
  141.                                         </a>
  142.                                     </div>
  143.                                 </div>
  144.                             </div>
  145.                         </div>
  146.                         {% endif %}
  147.                     </div>
  148.                 </div>
  149.                 <div class="row pt-lg-5">
  150.                     <div class="col-12 col-xxl-6 order-1 order-xxl-0">
  151.                         <div style="position:absolute; right: 70px; z-index: 1;">
  152.                             <div class="buttons">
  153.                                 <label class="button sm active tooltip" title="Do Avaliado e do Grupo">
  154.                                     <i class="fa fa-user-md"></i><span class="d-none d-lg-inline ml-2">Avaliado e Grupo</span>
  155.                                     <input type="radio" name="toogle-list" class="d-none toggle-content" checked data-show=".js-show-performance">
  156.                                 </label>
  157.                                 <label class="button sm transparent tooltip" title="Por Domínio">
  158.                                     <i class="fa fa-server"></i><span class="d-none d-lg-inline ml-2">Domínio</span>
  159.                                     <input type="radio" name="toogle-list" class="d-none toggle-content" data-show=".js-show-performance-dominio">
  160.                                 </label>
  161.                             </div>
  162.                         </div>
  163.                         <div class="js-show-performance">
  164.                             {{ render(controller('App\\Controller\\Visao\\GPS\\Avaliado\\Componentes\\PerformanceAvaliadoController::abrirGrafico', {}, {'relacionamento': true} )) }}
  165.                             {% if solicitacoes is not empty %}
  166.                             <div class="largura text-center">
  167.                                 <div class="bg-dark notification alert border-x border-bottom border-radius-bottom p-3">
  168.                                     <div class="row">
  169.                                         <div class="col text-format text-14 text-left">
  170.                                             <div class="text-upload">
  171.                                                 <p><b>{{ app.session.get('avaliado').nome_avaliado }}</b>, para melhorar seu EVS, você precisa fazer upload de alguns arquivos que comprovem alguns indicadores!<br/>
  172.                                                     Você pode fazer o upload por aqui, precisamos do{{solicitacoes|length != 1 ? 's' : ''}} documento{{solicitacoes|length != 1 ? 's' : ''}} abaixo:</p>
  173.                                                 <div class="row g-2 pb-2">
  174.                                                     {% for documento in solicitacoes %}
  175.                                                     {% set extensoes = '' %}
  176.                                                     {% for ext in documento.extensao|json_decode|keys %}
  177.                                                         {% set extensoes = extensoes ~ "." ~ ext %}
  178.                                                         {% if ext != loop.last %}
  179.                                                             {% set extensoes = extensoes ~ ", "%}
  180.                                                         {% endif %}
  181.                                                     {% endfor %}
  182.                                                     <div class="col col-auto">
  183.                                                         <form action="{{ path('visao_admin_documentos_adicionar', {'id_solicitacao': documento.id_solicitacao }) }}" class="uploadfile" data-callback="updateButton($this)">
  184.                                                             <input type="file" name="arquivo[{{ documento.id_solicitacao }}]" id="arquivo[{{ documento.id_solicitacao }}]" class="inputfile" multiple accept="{{ extensoes }}" />
  185.                                                             <label for="arquivo[{{ documento.id_solicitacao }}]" class="button transparent pointer tooltip" title="Clique para selecionar o arquivo<br/>({{ extensoes }}).">
  186.                                                                 <i class="fal fa-fw fa-upload"></i>
  187.                                                                 <span>{{ documento.nome_documento|ucwords }}</span>
  188.                                                             </label>
  189.                                                         </form>
  190.                                                     </div>
  191.                                                     {% endfor %}
  192.                                                 </div>
  193.                                             </div>
  194.                                             <div class="text-completed text-center d-none">
  195.                                                 <p><i class="fal fa-check-circle text-40"></i></p>
  196.                                                 <h3 class="text-24 medium mb-2">Muito bem!</h3>
  197.                                                 <p>Você realizou o upload de todos os arquivos!</p>
  198.                                             </div>
  199.                                         </div>
  200.                                         <div class="col col-auto">
  201.                                             <a href="#" class="button sm transparent close-notification tooltip" title="Fechar">
  202.                                                 <i class="fal fa-times"></i>
  203.                                             </a>
  204.                                         </div>
  205.                                     </div>
  206.                                 </div>
  207.                             </div>
  208.                             {% endif %}
  209.                         </div>
  210.                         <div class="js-show-performance-dominio hide">
  211.                             {{ render(controller('App\\Controller\\Visao\\GPS\\Avaliado\\Componentes\\PerformanceAvaliadoController::evolucaoDominio')) }}
  212.                         </div>
  213.                     </div>
  214.                     <div class="col-12 col-xxl-6 order-0 order-xxl-1">
  215.                         <div class="row">
  216.                             <div class="col-12 pb-5">
  217.                                 {{ render(controller('App\\Controller\\Visao\\GPS\\Avaliado\\Componentes\\EvsGrupoController::index', {}, {'relacionamento': true} )) }}
  218.                             </div>
  219.                             <div class="col-12 pb-5 d-none d-xxl-block">        
  220.                                 <div class="row align-items-center mb-3">
  221.                                     <div class="col">
  222.                                         <h3 class="text-24 text-darker medium">Índice Por Domínio</h3>
  223.                                     </div>
  224.                                 </div>
  225.                                 <div class="box box-table px-4">
  226.                                     {% for dominio in dominios %}
  227.                                     <div class="row align-items-center py-3 border-bottom border-transparent">
  228.                                         <div class="col medium">{{ dominio.nome_dominio }}</div>
  229.                                         <div class="col col-auto col-lg">
  230.                                             <p class="bold text-darker text-right"><b class="text-{{dominio.performances|json_decode[0]['performance']|decil_range}}">{{ dominio.valor }}</b> / {{ dominio.peso }}</p>
  231.                                         </div>
  232.                                         <div class="col-12 col-lg pt-3 pt-lg-0">
  233.                                             <div class="row flex-nowrap justify-content-between pb-2 text-gray">
  234.                                                 <div class="col col-auto">0</div>
  235.                                                 <div class="col col-auto"><b>{{ dominio.performances|json_decode[0]['performance']|number_format(2, ',', '.') }}%</b></div>
  236.                                                 <div class="col col-auto">{{ dominio.peso }}</div>
  237.                                             </div>
  238.                                             <div class="progress-bar bg-{{dominio.performances|json_decode[0]['performance']|decil_range}}">
  239.                                                 <div class="progress" style="width: {{ dominio.performances|json_decode[0]['performance'] }}%;"></div>
  240.                                             </div>
  241.                                         </div>
  242.                                     </div>
  243.                                     {% endfor %}
  244.                                 </div>
  245.                             </div>
  246.                         </div>
  247.                     </div>
  248.                     <div class="col-12 d-xxl-none order-2 pb-5">
  249.                         <div class="row align-items-center mb-3">
  250.                             <div class="col">
  251.                                 <h3 class="text-24 text-darker medium">Índice Por Domínio</h3>
  252.                             </div>
  253.                         </div>
  254.                         <div class="box box-table px-4">
  255.                             {% for dominio in dominios %}
  256.                             <div class="row align-items-center py-3 border-bottom border-transparent">
  257.                                 <div class="col medium">{{ dominio.nome_dominio }}</div>
  258.                                 <div class="col col-auto col-lg">
  259.                                     <p class="bold text-darker text-right"><b class="text-{{dominio.performances|json_decode[0]['performance']|decil_range}}">{{ dominio.valor }}</b> / {{ dominio.peso }}</p>
  260.                                 </div>
  261.                                 <div class="col-12 col-lg pt-3 pt-lg-0">
  262.                                     <div class="row flex-nowrap justify-content-between pb-2 text-gray">
  263.                                         <div class="col col-auto">0</div>
  264.                                         <div class="col col-auto"><b>{{ dominio.performances|json_decode[0]['performance']|number_format(2, ',', '.') }}%</b></div>
  265.                                         <div class="col col-auto">{{ dominio.peso }}</div>
  266.                                     </div>
  267.                                     <div class="progress-bar bg-{{dominio.performances|json_decode[0]['performance']|decil_range}}">
  268.                                         <div class="progress" style="width: {{ dominio.performances|json_decode[0]['performance'] }}%;"></div>
  269.                                     </div>
  270.                                 </div>
  271.                             </div>
  272.                             {% endfor %}
  273.                         </div>
  274.                     </div>
  275.                 </div>
  276.                 <div class="row">
  277.                     {{ render(controller('App\\Controller\\Visao\\GPS\\Avaliado\\Componentes\\DesempenhoIndicadoresController::index', {}, {
  278.                         'relacionamento': true
  279.                     } )) }}
  280.                 </div>
  281.             {% endif %}            
  282.             </div>
  283.         </div>
  284.     </div> 
  285. {% endblock %}