1 {include file='header' pageTitle='wcf.acp.exceptionLog'}
2 <script data-relocate="true">
4 {if $exceptionID}window.location.hash = '{$exceptionID|encodeJS}';{/if}
6 $('#exceptionID').on('keyup keydown keypress', function () {
7 if ($.trim($(this).val()) == '') {
8 $('#logFile').enable().parents('dl').removeClass('disabled');
11 $('#logFile').disable().parents('dl').addClass('disabled');
13 }).trigger('keypress');
15 $('.jsCopyException').click(function () {
21 <header class="contentHeader">
22 <div class="contentHeaderTitle">
23 <h1 class="contentTitle">{lang}wcf.acp.exceptionLog{/lang}</h1>
27 <nav class="contentHeaderNavigation">
29 {content}{event name='contentHeaderNavigation'}{/content}
35 {include file='shared_formError'}
38 <form method="post" action="{link controller='ExceptionLogView'}{/link}">
39 <section class="section">
40 <h2 class="sectionTitle">{lang}wcf.acp.exceptionLog.search{/lang}</h2>
42 <div class="row rowColGap formGrid">
43 <dl class="col-xs-12 col-md-4">
46 <input type="text" id="exceptionID" name="exceptionID" value="{$exceptionID}" placeholder="{lang}wcf.acp.exceptionLog.search.exceptionID{/lang}" autofocus class="long">
50 <dl class="col-xs-12 col-md-4">
53 <select id="logFile" name="logFile">
54 <option value="">{lang}wcf.acp.exceptionLog.search.logFile{/lang}</option>
55 {htmlOptions options=$logFiles selected=$logFile}
62 <div class="formSubmit">
63 <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s">
69 <div class="paginationTop">
70 {content}{pages print=true assign=pagesLinks controller="ExceptionLogView" link="pageNo=%d&logFile=$logFile"}{/content}
76 {foreach from=$exceptions item='exception' key='exceptionKey'}
77 <details id="{$exceptionKey}" class="section exceptionContainer"{if $exception[collapsed]|empty} open{/if}>
78 <summary class="sectionTitle">
82 <div class="exceptionDetails">
84 <dt>{lang}wcf.acp.exceptionLog.exception.date{/lang}</dt>
85 <dd>{$exception[date]|plainTime}</dd>
89 <dt>{lang}wcf.acp.exceptionLog.exception.requestURI{/lang}</dt>
90 <dd>{$exception[requestURI]}</dd>
93 <dt>{lang}wcf.acp.exceptionLog.exception.referrer{/lang}</dt>
94 <dd>{$exception[referrer]}</dd>
97 <dt>{lang}wcf.acp.exceptionLog.exception.userAgent{/lang}</dt>
98 <dd>{$exception[userAgent]}</dd>
101 <dt>{lang}wcf.acp.exceptionLog.exception.memory{/lang}</dt>
102 <dd>{$exception[peakMemory]|filesizeBinary} / {if $exception[maxMemory] == -1}∞{else}{$exception[maxMemory]|filesizeBinary}{/if}</dd>
104 {foreach from=$exception[chain] item=chain}
106 <dt>{lang}wcf.acp.exceptionLog.exception.message{/lang}</dt>
107 <dd>{$chain[message]}</dd>
110 <dt>{lang}wcf.acp.exceptionLog.exception.class{/lang}</dt>
111 <dd>{$chain[class]}</dd>
114 <dt>{lang}wcf.acp.exceptionLog.exception.file{/lang}</dt>
115 <dd>{$chain[file]} ({$chain[line]})</dd>
117 {if !$chain[information]|empty}
118 {foreach from=$chain[information] item=extraInformation}
120 <dt>{$extraInformation[0]}</dt>
121 <dd style="white-space: pre-wrap;">{$extraInformation[1]}</dd>
126 <dt>{lang}wcf.acp.exceptionLog.exception.stacktrace{/lang}</dt>
128 <ol start="0" class="nativeList">
129 {foreach from=$chain[stack] item=stack}
130 <li>{$stack[file]} ({$stack[line]}): {$stack[class]}{$stack[type]}{$stack[function]}(…)</li>
137 <dt><label for="copyException{$exceptionKey}">{lang}wcf.acp.exceptionLog.exception.copy{/lang}</label></dt>
138 <dd><textarea id="copyException{$exceptionKey}" rows="5" cols="40" class="jsCopyException" readonly>{$exception[0]}</textarea></dd>
144 <footer class="contentFooter">
146 <div class="paginationBottom">
147 {content}{@$pagesLinks}{/content}
151 {elseif $exceptionID}
152 <woltlab-core-notice type="error">{lang}wcf.acp.exceptionLog.exceptionNotFound{/lang}</woltlab-core-notice>
155 <woltlab-core-notice type="info">{lang}wcf.global.noItems{/lang}</woltlab-core-notice>
158 {include file='footer'}