oc-server3/htdocs/templates2/ocstyle/sys_sqldebugger.tpl
2012-05-09 20:05:43 +02:00

359 lines
9.6 KiB
Smarty

{***************************************************************************
* You can find the license in the docs directory
*
* Unicode Reminder メモ
***************************************************************************}
{* no - OCSTYLE *}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>
{t}SQL Debugger{/t} -
{if ($opt.template.title=="")}
{$opt.page.name|escape}
{else}
{$opt.template.title|escape} - {$opt.page.name|escape}
{/if}
</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Language" content="{$opt.template.locale}" />
<meta http-equiv="gallerimg" content="no" />
<link rel="SHORTCUT ICON" href="favicon.ico">
<style type="text/css">
<!--
{literal}
.sqlno
{
font-size:medium;
}
.sqlcommand
{
}
.selrows
{
margin-bottom:15px;
}
.firstresultrow
{
}
.result
{
display:none;
}
.explain
{
}
.runtime
{
}
.affectedrows
{
}
.allruntime
{
font-size:medium;
}
.comments
{
color:gray;
}
.white
{
color:white;
}
.error
{
color:red;
font-size:medium;
}
.errormsg
{
}
table
{
margin-bottom:15px;
}
td
{
color:gray;
font-size:x-small;
white-space:nowrap;
padding:1px 5px 1px 5px;
}
.allruntime td
{
color:black;
font-size:medium;
white-space:nowrap;
}
th
{
color:gray;
}
.framework
{
display:none;
}
.businesslayer
{
display:none;
}
.slave_title
{
font-style:italic;
color:blue;
}
.slave_sql
{
color:blue;
}
{/literal}
-->
</style>
<script type="text/javascript">
<!--
{literal}
function switchOpt(id)
{
var cssRules = "";
if (document.all)
cssRules = "rules";
else
cssRules = "cssRules";
var value = document.getElementById(id).checked ? "block" : "none";
for (var i = 0; i < document.styleSheets.length; i++)
for (var j = 0; j < document.styleSheets[i][cssRules].length; j++)
if (document.styleSheets[i][cssRules][j].selectorText == "." + id)
document.styleSheets[i][cssRules][j].style["display"] = value;
}
{/literal}
//-->
</script>
</head>
<body>
<div class="white">/*</div>
<table class="table">
<tr>
<td><input checked="checked" onclick="switchOpt('sqlno')" id="sqlno" type="checkbox" /><label for="sqlno">Command number</label></td>
<td><input checked="checked" onclick="switchOpt('sqlcommand')" id="sqlcommand" type="checkbox" /><label for="sqlcommand">Sql command</label></td>
<td><input checked="checked" onclick="switchOpt('selrows')" id="selrows" type="checkbox" /><label for="selrows">Selected rows</label></td>
<td><input checked="checked" onclick="switchOpt('firstresultrow')" id="firstresultrow" type="checkbox" /><label for="firstresultrow">First result row</label></td>
</tr>
<tr>
<td><input onclick="switchOpt('result')" id="result" type="checkbox" /><label for="result">Result rows</label></td>
<td><input checked="checked" onclick="switchOpt('explain')" id="explain" type="checkbox" /><label for="explain">Explain query</label></td>
<td><input checked="checked" onclick="switchOpt('runtime')" id="runtime" type="checkbox" /><label for="runtime">Runtime</label></td>
<td><input checked="checked" onclick="switchOpt('affectedrows')" id="affectedrows" type="checkbox" /><label for="affectedrows">Affected rows</label></td>
</tr>
<tr>
<td><input checked="checked" onclick="switchOpt('allruntime')" id="allruntime" type="checkbox" /><label for="allruntime">Runtime sum</label></td>
<td><input checked="checked" onclick="switchOpt('comments')" id="comments" type="checkbox" /><label for="comments">Comments</label></td>
<td><input onclick="switchOpt('framework')" id="framework" type="checkbox" /><label for="framework">Framework</label></td>
<td><input onclick="switchOpt('businesslayer')" id="businesslayer" type="checkbox" /><label for="businesslayer">Business layer</label></td>
</tr>
</table>
<div class="white">*/</div>
{assign var=framwork_count value=0}
{assign var=businesslayer_count value=0}
{assign var=user_count value=0}
{assign var=total_count value=0}
{if $cancel}
<div class="error">SQL Debugger canceled analyzing after 1000 sql commands</div>
{/if}
{foreach from=$commands item=command}
{if $command.mode==DB_MODE_FRAMEWORK}
<div class="framework">
{elseif $command.mode==DB_MODE_BUSINESSLAYER}
<div class="businesslayer">
{else}
<div>
{/if}
<p class="sqlno">
<span class="white">/*</span>
SQL command {counter}
{if $command.slave}
<span class="slave_title">(slave query executed on {$command.server|escape}, {$command.dblink|escape})
{/if}
{if $command.mode==DB_MODE_FRAMEWORK}
(framework)
{elseif $command.mode==DB_MODE_BUSINESSLAYER}
(business layer)
{/if}
{if $command.slave}
</span>
{/if}
<span class="white">*/</span>
</p>
<p class="sqlcommand">
{if $command.slave}
<span class="slave_sql">
{/if}
{$command.sql|replace:'*/':'* /'|escape} ;
{if $command.slave}
</span>
{/if}
</p>
<div class="comments">
<div class="white">/*</div>
<br />
{if $command.count!=-1}
<div class="selrows">Number of selected rows: {$command.count}</div>
{/if}
{* output result
*}
{foreach from=$command.result item=row name=result}
{if $smarty.foreach.result.first}
<table class="firstresultrow" border="1">
<tr>
{foreach from=$row key=column item=value}
<th>{$column}</th>
{/foreach}
</tr>
{/if}
{if $smarty.foreach.result.first}
<tr>
{else}
<tr class="result">
{/if}
{foreach from=$row key=column item=value}
<td>
{if $value==null}
NULL
{else}
{$value|escape}
{/if}
</td>
{/foreach}
</tr>
{if $smarty.foreach.result.last}
</table>
{/if}
{/foreach}
{* output explain
*}
{foreach from=$command.explain item=row name=explain}
{if $smarty.foreach.explain.first}
<table class="explain" border="1">
<tr>
{foreach from=$row key=column item=value}
<th>{$column}</th>
{/foreach}
</tr>
{/if}
<tr>
{foreach from=$row key=column item=value}
<td>
{if $value==null}
NULL
{else}
{$value|escape}
{/if}
</td>
{/foreach}
</tr>
{if $smarty.foreach.explain.last}
</table>
{/if}
{/foreach}
{* output warnings
*}
{foreach from=$command.warnings item=row name=warnings}
{if $smarty.foreach.warnings.first}
<div class="error">Error while executing SQL command!</div>
<div class="errormsg">
<table class="table">
{/if}
<tr><td>{$row|escape}</td></tr>
{if $smarty.foreach.warnings.last}
</table>
</div>
{/if}
{/foreach}
{if $command.mode==DB_MODE_FRAMEWORK}
{assign var=framwork_runtime value=`$framwork_runtime+$command.runtime`}
{assign var=framwork_count value=`$framwork_count+1`}
{elseif $command.mode==DB_MODE_BUSINESSLAYER}
{assign var=businesslayer_runtime value=`$businesslayer_runtime+$command.runtime`}
{assign var=businesslayer_count value=`$businesslayer_count+1`}
{else}
{assign var=user_runtime value=`$user_runtime+$command.runtime`}
{assign var=user_count value=`$user_count+1`}
{/if}
{assign var=total_runtime value=`$total_runtime+$command.runtime`}
{assign var=total_count value=`$total_count+1`}
<div class="runtime">Runtime: {$command.runtime|sprintf:"%1.5f"} sek.</div>
<div class="affectedrows">Number of affected rows: {$command.affected}</div>
<div class="white">*/</div>
</div>
</div>
{/foreach}
<span class="white">/*</span>
<div class="allruntime">
<hr />
<table class="table">
<tr>
<td>{t}User runtime:{/t}</td>
<td>{$user_runtime|sprintf:"%1.5f"} {t}sec{/t} ({t 1=$user_count}%1 commands{/t})</td>
</tr>
<tr>
<td>{t}Framework runtime:{/t}</td>
<td>{$framwork_runtime|sprintf:"%1.5f"} {t}sec{/t} ({t 1=$framwork_count}%1 commands{/t})</td>
</tr>
<tr>
<td style="border-bottom:1px black solid">{t}Business layer runtime:{/t}</td>
<td style="border-bottom:1px black solid">{$businesslayer_runtime|sprintf:"%1.5f"} {t}sec{/t} ({t 1=$businesslayer_count}%1 commands{/t})</td>
</tr>
<tr>
<td>{t}Total runtime:{/t}</td>
<td>{$total_runtime|sprintf:"%1.5f"} {t}sec{/t} ({t 1=$total_count}%1 commands{/t})</td>
</tr>
<tr>
<td>{t}Created at:{/t}</td>
<td>{"0"|date_format:$opt.format.datetimesec}</td>
</tr>
</table>
</div>
<span class="white">*/</span>
</body>
</html>