vendor/symfony/web-profiler-bundle/Resources/views/Profiler/layout.html.twig line 131

  1. {% extends '@WebProfiler/Profiler/base.html.twig' %}
  2. {% block body %}
  3.     <div class="container">
  4.         {{ include('@WebProfiler/Profiler/header.html.twig', with_context = false) }}
  5.         <div id="summary">
  6.         {% block summary %}
  7.             {% if profile is defined %}
  8.                 {% set request_collector = profile.collectors.request|default(false) %}
  9.                 {% set status_code = request_collector ? request_collector.statuscode|default(0) : 0 %}
  10.                 {% set css_class = status_code > 399 ? 'status-error' : status_code > 299 ? 'status-warning' : 'status-success' %}
  11.                 {% if request_collector and request_collector.redirect %}
  12.                     {% set redirect = request_collector.redirect %}
  13.                     {% set link_to_source_code = redirect.controller.class is defined ? redirect.controller.file|file_link(redirect.controller.line) %}
  14.                     {% set redirect_route_name = '@' ~ redirect.route %}
  15.                     <div class="status status-compact status-warning">
  16.                         <span class="icon icon-redirect">{{ source('@WebProfiler/Icon/redirect.svg') }}</span>
  17.                         <span class="status-response-status-code">{{ redirect.status_code }}</span> redirect from
  18.                         <span class="status-request-method">{{ redirect.method }}</span>
  19.                         {% if link_to_source_code %}
  20.                             <a href="{{ link_to_source_code }}" title="{{ redirect.controller.file }}">{{ redirect_route_name }}</a>
  21.                         {% else %}
  22.                             {{ redirect_route_name }}
  23.                         {% endif %}
  24.                         (<a href="{{ path('_profiler', { token: redirect.token, panel: request.query.get('panel', 'request') }) }}">{{ redirect.token }}</a>)
  25.                     </div>
  26.                 {% endif %}
  27.                 <div class="status {{ css_class }}">
  28.                     {% if status_code > 399 %}
  29.                         <p class="status-error-details">
  30.                             <span class="icon">{{ source('@WebProfiler/Icon/alert-circle.svg') }}</span>
  31.                             <span class="status-response-status-code">Error {{ status_code }}</span>
  32.                             <span class="status-response-status-text">{{ request_collector.statusText }}</span>
  33.                         </p>
  34.                     {% endif %}
  35.                     <h2>
  36.                         <span class="status-request-method">
  37.                             {{ profile.method|upper }}
  38.                         </span>
  39.                         {% set profile_title = profile.url|length < 160 ? profile.url : profile.url[:160] ~ '…' %}
  40.                         {% if profile.method|upper in ['GET', 'HEAD'] %}
  41.                             <a href="{{ profile.url }}">{{ profile_title }}</a>
  42.                         {% else %}
  43.                             {{ profile_title }}
  44.                         {% endif %}
  45.                     </h2>
  46.                     <dl class="metadata">
  47.                         {% if status_code < 400 %}
  48.                             <dt>Response</dt>
  49.                             <dd>
  50.                                 <span class="status-response-status-code">{{ status_code }}</span>
  51.                                 <span class="status-response-status-text">{{ request_collector.statusText }}</span>
  52.                             </dd>
  53.                         {% endif %}
  54.                         {% set referer = request_collector ? request_collector.requestheaders.get('referer') : null %}
  55.                         {% if referer %}
  56.                             <dt></dt>
  57.                             <dd>
  58.                                 <span class="icon icon-referer">{{ source('@WebProfiler/Icon/referrer.svg') }}</span>
  59.                                 <a href="{{ referer }}" class="referer">Browse referrer URL</a>
  60.                             </dd>
  61.                         {% endif %}
  62.                         <dt>IP</dt>
  63.                         <dd>
  64.                             <a href="{{ path('_profiler_search_results', { token: token, limit: 10, ip: profile.ip }) }}">{{ profile.ip }}</a>
  65.                         </dd>
  66.                         <dt>Profiled on</dt>
  67.                         <dd><time datetime="{{ profile.time|date('c') }}">{{ profile.time|date('r') }}</time></dd>
  68.                         <dt>Token</dt>
  69.                         <dd>{{ profile.token }}</dd>
  70.                     </dl>
  71.                 </div>
  72.                 {% if request_collector and request_collector.forwardtoken -%}
  73.                     {% set forward_profile = profile.childByToken(request_collector.forwardtoken) %}
  74.                     {% set controller = forward_profile ? forward_profile.collector('request').controller : 'n/a' %}
  75.                     <div class="status status-compact status-compact-forward">
  76.                         <span class="icon icon-forward">{{ source('@WebProfiler/Icon/forward.svg') }}</span>
  77.                         Forwarded to
  78.                             {% set link = controller.file is defined ? controller.file|file_link(controller.line) : null -%}
  79.                             {%- if link %}<a href="{{ link }}" title="{{ controller.file }}">{% endif -%}
  80.                                 {% if controller.class is defined %}
  81.                                     {{- controller.class|abbr_class|striptags -}}
  82.                                     {{- controller.method ? ' :: ' ~ controller.method -}}
  83.                                 {% else %}
  84.                                     {{- controller -}}
  85.                                 {% endif %}
  86.                                 {%- if link %}</a>{% endif %}
  87.                             (<a href="{{ path('_profiler', { token: request_collector.forwardtoken }) }}">{{ request_collector.forwardtoken }}</a>)
  88.                     </div>
  89.                 {%- endif %}
  90.             {% endif %}
  91.         {% endblock %}
  92.     </div>
  93.         <div id="content">
  94.             <div id="main">
  95.                 <div id="sidebar">
  96.                     {% block sidebar %}
  97.                         <div id="sidebar-contents">
  98.                             <div id="sidebar-shortcuts">
  99.                                 {% block sidebar_shortcuts_links %}
  100.                                     <div class="shortcuts">
  101.                                         <a class="btn btn-link" href="{{ path('_profiler_search', { limit: 10 }) }}">Last 10</a>
  102.                                         <a class="btn btn-link" href="{{ path('_profiler', { token: 'latest' }|merge(request.query.all)) }}">Latest</a>
  103.                                         <a class="sf-toggle btn btn-link" data-toggle-selector="#sidebar-search" {% if tokens is defined or about is defined %}data-toggle-initial="display"{% endif %}>
  104.                                             {{ source('@WebProfiler/Icon/search.svg') }} <span class="hidden-small">Search</span>
  105.                                         </a>
  106.                                     </div>
  107.                                 {% endblock sidebar_shortcuts_links %}
  108.                                 {{ render(controller('web_profiler.controller.profiler::searchBarAction', query=request.query.all)) }}
  109.                             </div>
  110.                             {% if templates is defined %}
  111.                                 <ul id="menu-profiler">
  112.                                     {% for name, template in templates %}
  113.                                         {% set menu -%}
  114.                                             {%- if block('menu', template) is defined -%}
  115.                                                 {% with { collector: profile.getcollector(name), profiler_markup_version: profiler_markup_version } %}
  116.                                                     {{- block('menu', template) -}}
  117.                                                 {% endwith %}
  118.                                             {%- endif -%}
  119.                                         {%- endset %}
  120.                                         {% if menu is not empty %}
  121.                                             <li class="{{ name }} {{ name == panel ? 'selected' }}">
  122.                                                 <a href="{{ path('_profiler', { token: token, panel: name }) }}">{{ menu|raw }}</a>
  123.                                             </li>
  124.                                         {% endif %}
  125.                                     {% endfor %}
  126.                                 </ul>
  127.                             {% endif %}
  128.                         </div>
  129.                         {{ include('@WebProfiler/Profiler/settings.html.twig') }}
  130.                     {% endblock sidebar %}
  131.                 </div>
  132.                 <div id="collector-wrapper">
  133.                     <div id="collector-content">
  134.                         {{ include('@WebProfiler/Profiler/base_js.html.twig') }}
  135.                         {% block panel '' %}
  136.                     </div>
  137.                 </div>
  138.             </div>
  139.         </div>
  140.     </div>
  141. {% endblock %}