Blame view

vendor/yiisoft/yii2-debug/views/default/index.php 4.18 KB
3cf42f5c   Mihail   init commit - bas...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
  <?php
  /* @var $this \yii\web\View */
  /* @var $manifest array */
  /* @var $searchModel \yii\debug\models\search\Debug */
  /* @var $dataProvider ArrayDataProvider */
  /* @var $panels \yii\debug\Panel[] */
  
  use yii\helpers\Html;
  use yii\grid\GridView;
  use yii\data\ArrayDataProvider;
  
  $this->title = 'Yii Debugger';
  ?>
  <div class="default-index">
  
      <div id="yii-debug-toolbar" class="yii-debug-toolbar-top">
          <div class="yii-debug-toolbar-block title">
              <a href="#">
                  <img width="29" height="30" alt="" src="<?= \yii\debug\Module::getYiiLogo() ?>">
                  Yii Debugger
              </a>
          </div>
          <?php foreach ($panels as $panel): ?>
              <?= $panel->getSummary() ?>
          <?php endforeach; ?>
      </div>
  
      <div class="container">
          <div class="row">
  <?php
  
  if (isset($this->context->module->panels['db']) && isset($this->context->module->panels['request'])) {
  
      echo "			<h1>Available Debug Data</h1>";
  
      $codes = [];
      foreach ($manifest as $tag => $vals) {
          if (!empty($vals['statusCode'])) {
              $codes[] = $vals['statusCode'];
          }
      }
      $codes = array_unique($codes, SORT_NUMERIC);
      $statusCodes = !empty($codes) ? array_combine($codes, $codes) : null;
  
      echo GridView::widget([
          'dataProvider' => $dataProvider,
          'filterModel' => $searchModel,
          'rowOptions' => function ($model, $key, $index, $grid) use ($searchModel) {
              $dbPanel = $this->context->module->panels['db'];
  
              if ($searchModel->isCodeCritical($model['statusCode']) || $dbPanel->isQueryCountCritical($model['sqlCount'])) {
                  return ['class'=>'danger'];
              } else {
                  return [];
              }
          },
          'columns' => [
              ['class' => 'yii\grid\SerialColumn'],
              [
                  'attribute' => 'tag',
                  'value' => function ($data) {
                      return Html::a($data['tag'], ['view', 'tag' => $data['tag']]);
                  },
                  'format' => 'html',
              ],
              [
                  'attribute' => 'time',
                  'value' => function ($data) {
                      return '<span class="nowrap">' . Yii::$app->formatter->asDatetime($data['time'], 'short') . '</span>';
                  },
                  'format' => 'html',
              ],
              'ip',
              [
                  'attribute' => 'sqlCount',
                  'label' => 'Query Count',
                  'value' => function ($data) {
                      $dbPanel = $this->context->module->panels['db'];
  
                      if ($dbPanel->isQueryCountCritical($data['sqlCount'])) {
  
                          $content = Html::tag('b', $data['sqlCount']) . ' ' . Html::tag('span', '', ['class' => 'glyphicon glyphicon-exclamation-sign']);
  
                          return Html::a($content, ['view', 'panel' => 'db', 'tag' => $data['tag']], [
                              'title' => 'Too many queries. Allowed count is ' . $dbPanel->criticalQueryThreshold,
                          ]);
  
                      } else {
                          return $data['sqlCount'];
                      }
                  },
                  'format' => 'html',
              ],
              [
                  'attribute' => 'mailCount',
                  'visible' => isset($this->context->module->panels['mail']),
              ],
              [
                  'attribute' => 'method',
                  'filter' => ['get' => 'GET', 'post' => 'POST', 'delete' => 'DELETE', 'put' => 'PUT', 'head' => 'HEAD']
              ],
              [
                  'attribute'=>'ajax',
                  'value' => function ($data) {
                      return $data['ajax'] ? 'Yes' : 'No';
                  },
                  'filter' => ['No', 'Yes'],
              ],
              [
                  'attribute' => 'url',
                  'label' => 'URL',
              ],
              [
                  'attribute' => 'statusCode',
                  'filter' => $statusCodes,
                  'label' => 'Status code'
              ],
          ],
      ]);
  
  } else {
      echo "<div class='alert alert-warning'>No data available. Panel <code>db</code> or <code>request</code> not found.</div>";
  }
  
  ?>
          </div>
      </div>
  </div>