Example #1
0
    /**
     * @param Response $response
     * @param string $filepath
     * @param bool $use_textarea
     * @return string
     */
    protected function show_log_file(Response $response, $filepath, $use_textarea = false)
    {
        $response->append_header("<script type='text/javascript' src='jquery-2.1.1.min.js'></script>");
        $file_content = [];
        foreach (file($filepath) as $line) {
            if (strpos($line, "Profiler: ") === 0) {
                $line = substr($line, 10);
                // remove Profiler-Prefix
            }
            $file_content[] = htmlspecialchars($line, ENT_COMPAT, 'UTF-8');
        }
        $file_content = json_encode($file_content);
        if ($use_textarea) {
            $tag = "<textarea id='raw_logdata' rows='25' style='width: 100%;'></textarea>";
        } else {
            $tag = "<pre id='raw_logdata' style='clear: both; width: 100%;'></pre>";
        }
        $ob_log = <<<EOB
    <div style='clear: both;'>
    <label for='filter' style='float: left;'>Filter: </label><input id='filter' style='float: left;'><div id='lines' style='float: left;'></div>
    {$tag}</div>
    <script type='text/javascript'>
      var profiler_log = {$file_content};

      function filter_log( pattern ) {
          var arr = \$.grep(profiler_log, function ( line ) {
              return line.indexOf(pattern)>-1;
          });
          \$("#raw_logdata").text( arr.join("") );
          \$("#raw_logdata").scrollTop(\$("#raw_logdata")[0].scrollHeight);
          \$("#lines").text( " found in " + arr.length + " / " + profiler_log.length + " lines");
      }

      function set_filter( pattern ) {
          \$("#filter").val(pattern);
          filter_log(pattern);
      }

      filter_log("");

      \$("#filter").keyup(function() {
          filter_log(\$("#filter").val());
      });
    </script>
EOB;
        $response->append_body($ob_log);
    }
    /**
     * @param Response $response
     */
    public static function init_canvasJS_header(Response $response)
    {
        // LICENSE: CC BY-NC 3.0 - http://creativecommons.org/licenses/by-nc/3.0/deed.en_US
        // SCRIPT-URL: http://canvasjs.com/assets/script/canvasjs.min.js
        $canvasJS_header = <<<EOB
<script type='text/javascript' src='canvasjs.min.js'></script>
<script type='text/javascript'>
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}</script>
EOB;
        $response->append_header($canvasJS_header);
    }