ソースを参照

Merge remote branch 'vicb/profiler_template'

* vicb/profiler_template:
  [WebProfilerBundle] Remove dead code
  [WebProfilerBundle] Better handling of queries with an empty result
  [WebProfilerBundle] Improve the "token not found" page
  [WebProfilerBundle] Always remember the query including the token
  [WebProfilerBundle] Apply missing styles
Fabien Potencier 14 年 前
コミット
bfe09d45fa

+ 11 - 11
src/Symfony/Bundle/WebProfilerBundle/Controller/ProfilerController.php

@@ -162,7 +162,7 @@ class ProfilerController extends ContainerAware
      *
      * @return Response A Response instance
      */
-    public function searchBarAction($token)
+    public function searchBarAction()
     {
         $profiler = $this->container->get('profiler');
         $profiler->disable();
@@ -171,11 +171,10 @@ class ProfilerController extends ContainerAware
         $ip = $session->get('_profiler_search_ip');
         $url = $session->get('_profiler_search_url');
         $limit = $session->get('_profiler_search_limit');
+        $token = $session->get('_profiler_search_token');
 
         return $this->container->get('templating')->renderResponse('WebProfilerBundle:Profiler:search.html.twig', array(
             'token'    => $token,
-            'profiler' => $profiler,
-            'tokens'   => $profiler->find($ip, $url, $limit),
             'ip'       => $ip,
             'url'      => $url,
             'limit'    => $limit,
@@ -192,6 +191,8 @@ class ProfilerController extends ContainerAware
         $profiler = $this->container->get('profiler');
         $profiler->disable();
 
+        $pofiler = $profiler->loadFromToken($token);
+
         $session = $this->container->get('request')->getSession();
         $ip = $session->get('_profiler_search_ip');
         $url = $session->get('_profiler_search_url');
@@ -199,7 +200,7 @@ class ProfilerController extends ContainerAware
 
         return $this->container->get('templating')->renderResponse('WebProfilerBundle:Profiler:results.html.twig', array(
             'token'    => $token,
-            'profiler' => $this->container->get('profiler')->loadFromToken($token),
+            'profiler' => $profiler,
             'tokens'   => $profiler->find($ip, $url, $limit),
             'ip'       => $ip,
             'url'      => $url,
@@ -220,20 +221,19 @@ class ProfilerController extends ContainerAware
 
         $request = $this->container->get('request');
 
-        if ($token = $request->query->get('token')) {
-            return new RedirectResponse($this->container->get('router')->generate('_profiler', array('token' => $token)));
-        }
-
         $session = $request->getSession();
         $session->set('_profiler_search_ip', $ip = preg_replace('/[^\d\.]/', '', $request->query->get('ip')));
         $session->set('_profiler_search_url', $url = $request->query->get('url'));
         $session->set('_profiler_search_limit', $limit = $request->query->get('limit'));
+        $session->set('_profiler_search_token', $token = $request->query->get('token'));
+
+        if (!empty($token)) {
+            return new RedirectResponse($this->container->get('router')->generate('_profiler', array('token' => $token)));
+        }
 
-        $profiler = $this->container->get('profiler');
-        $profiler->disable();
         $tokens = $profiler->find($ip, $url, $limit);
 
-        return new RedirectResponse($this->container->get('router')->generate('_profiler_search_results', array('token' => $tokens ? $tokens[0]['token'] : '')));
+        return new RedirectResponse($this->container->get('router')->generate('_profiler_search_results', array('token' => $tokens ? $tokens[0]['token'] : 'empty')));
     }
 
     protected function getTemplateNames($profiler)

+ 4 - 2
src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/exception.html.twig

@@ -11,7 +11,7 @@
     <strong>Exception</strong>
     <span class="count">
         {% if collector.hasexception %}
-            <span>1</span>
+            <span class="error">1</span>
         {% endif %}
     </span>
 </span>
@@ -21,7 +21,9 @@
     <h2>Exception</h2>
 
     {% if not collector.hasexception %}
-        <em>No exception was thrown and uncaught during the request.</em>
+        <p>
+            <em>No exception was thrown and uncaught during the request.</em>
+        </p>
     {% else %}
         {% render 'WebProfilerBundle:Exception:show' with { 'exception': collector.exception, 'format': 'html' } %}
     {% endif %}

+ 3 - 1
src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/logger.html.twig

@@ -30,6 +30,8 @@
             {% endfor %}
         </ul>
     {% else %}
-        <em>No logs available.</em>
+        <p>
+            <em>No logs available.</em>
+        </p>
     {% endif %}
 {% endblock %}

+ 3 - 1
src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/request.html.twig

@@ -90,6 +90,8 @@
             {% endfor %}
         </table>
     {% else %}
-        <em>No request session attributes</em>
+        <p>
+            <em>No request session attributes</em>
+        </p>
     {% endif %}
 {% endblock %}

+ 12 - 10
src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/layout.html.twig

@@ -7,14 +7,16 @@
     <div id="content">
         {% include 'WebProfilerBundle:Profiler:header.html.twig' only %}
 
-        <div class="resume">
-            <p>
-                <strong><a href="{{ profiler.url }}">{{ profiler.url }}</a></strong>
-                <span class="date">
-                    <strong>by {{ profiler.ip }}</strong> at <strong>{{ profiler.time|date('r') }}</strong>
-                </span>
-            </p>
-        </div>
+        {% if not profiler.isempty %}
+            <div class="resume">
+                <p>
+                    <strong><a href="{{ profiler.url }}">{{ profiler.url }}</a></strong>
+                    <span class="date">
+                        <strong>by {{ profiler.ip }}</strong> at <strong>{{ profiler.time|date('r') }}</strong>
+                    </span>
+                </p>
+            </div>
+        {% endif %}
 
         <div class="main">
     
@@ -35,8 +37,8 @@
                         </ul>
                     {% endif %}
 
-                    {% render 'WebProfilerBundle:Profiler:searchBar' with { 'token': token } %}
-                    
+                    {% render 'WebProfilerBundle:Profiler:searchBar' %}
+
                     {% include 'WebProfilerBundle:Profiler:admin.html.twig' with { 'token': token } only %}
 
                 </div>

+ 7 - 2
src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/notfound.html.twig

@@ -6,7 +6,7 @@
        
         <div class="resume">
             <p>
-                <strong>Token "{{ token }}" does not exist.</strong>
+                <strong>No request matching the token "{{ token }}".</strong>
             </p>
         </div>
 
@@ -17,7 +17,12 @@
                     {% include 'WebProfilerBundle:Profiler:admin.html.twig' with { 'token': token } only %}
                 </div>
                 <div class="collector_content">
-                    {% block panel '' %}
+                    {% block panel%}
+                        <h2>Token not found</h2>
+                        <p>
+                            <em>No request matching the token "{{ token }}".</em>
+                        </p>
+                    {% endblock %}
                 </div>
             </div>
         </div>

+ 21 - 14
src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/results.html.twig

@@ -3,20 +3,27 @@
 {% block panel %}
     <h2>Search Results</h2>
 
-    <table>
-        <tr>
-            <th>Token</th>
-            <th>IP</th>
-            <th>URL</th>
-            <th>Time</th>
-        </tr>
-        {% for elements in tokens %}
+    {% if tokens %}
+        <table>
             <tr>
-                <td><a href="{{ path('_profiler', { 'token': elements.token }) }}">{{ elements.token }}</a></td>
-                <td>{{ elements.ip }}</td>
-                <td>{{ elements.url }}</td>
-                <td>{{ elements.time|date('r') }}</td>
+                <th>Token</th>
+                <th>IP</th>
+                <th>URL</th>
+                <th>Time</th>
             </tr>
-        {% endfor %}
-    </table>
+            {% for elements in tokens %}
+                <tr>
+                    <td><a href="{{ path('_profiler', { 'token': elements.token }) }}">{{ elements.token }}</a></td>
+                    <td>{{ elements.ip }}</td>
+                    <td>{{ elements.url }}</td>
+                    <td>{{ elements.time|date('r') }}</td>
+                </tr>
+            {% endfor %}
+        </table>
+    {% else %}
+        <p>
+            <em>The query returned no result.</em>
+        </p>
+    {% endif %}
+
 {% endblock %}

+ 1 - 1
src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/search.html.twig

@@ -11,7 +11,7 @@
         <input type="text" name="url" id="url" value="{{ url }}" />
         <div class="clear_fix"></div>
         <label for="token">Token</label>
-        <input type="text" name="token" id="token" />
+        <input type="text" name="token" id="token" value="{{ token }}" />
         <div class="clear_fix"></div>
         <label for="limit">Limit</label>
         <select name="limit" id="limit">