| Server IP : 202.61.199.114 / Your IP : 216.73.217.139 Web Server : nginx/1.22.1 System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web20 ( 1018) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /tmp/sc/ |
Upload File : |
<?php
/* Smarty version 3.1.30, created on 2026-06-27 05:56:50
from "/var/www/clients/client1/web17/web/includes/templates/templates/pacim/_debug.tpl" */
/* @var Smarty_Internal_Template $_smarty_tpl */
if ($_smarty_tpl->_decodeProperties($_smarty_tpl, array (
'version' => '3.1.30',
'unifunc' => 'content_6a3f4a029ddb21_80305159',
'has_nocache_code' => false,
'file_dependency' =>
array (
'78d255dd9b2a39399bf71c9bbc00838cc5fc7132' =>
array (
0 => '/var/www/clients/client1/web17/web/includes/templates/templates/pacim/_debug.tpl',
1 => 1782389348,
2 => 'file',
),
),
'includes' =>
array (
),
),false)) {
function content_6a3f4a029ddb21_80305159 (Smarty_Internal_Template $_smarty_tpl) {
?>
<div class="alert alert-info small">
<strong>Performance-Messung.</strong> Hier wird nur <em>gemessen</em> – es werden keine Buchungsabläufe verändert.
Messpunkte schreiben gepuffert am Request-Ende (ein INSERT), fallen bei Fehlern still aus und speichern keine personenbezogenen Daten.
</div>
<div class="row g-3">
<div class="col-12 col-xl-5">
<form id="dbgForm" autocomplete="off">
<div class="card mb-3">
<div class="card-header d-flex justify-content-between align-items-center">
<span class="fw-bold">Performance-Logging</span>
<button type="submit" class="btn btn-sm btn-primary"><i class="material-icons sm">save</i> Speichern</button>
</div>
<div class="card-body">
<label class="form-check d-flex align-items-center gap-2 mb-3">
<input class="form-check-input" type="checkbox" id="dbgEnabled"> <span><strong>Logging aktivieren</strong></span>
</label>
<div class="row g-2">
<div class="col-6"><label class="form-label">Mindestdauer (ms)</label><input class="form-control form-control-sm" type="number" min="0" id="dbgMinMs" value="100"></div>
<div class="col-6"><label class="form-label">Max. Logs</label><input class="form-control form-control-sm" type="number" min="1000" id="dbgMaxRows" value="50000"></div>
</div>
<div class="form-text mt-2">Nur Aktionen ab Mindestdauer werden gespeichert. Ältere Einträge über dem Limit werden vom Agent/Cron entfernt.</div>
<div class="d-flex align-items-center gap-3 mt-2 small text-muted">
<span>Gespeicherte Logs: <strong id="dbgLogCount">–</strong></span>
<span>Pushover: <strong id="dbgPushReady">–</strong></span>
</div>
<div id="dbgMsg" class="small mt-2"></div>
</div>
</div>
<div class="card">
<div class="card-header fw-bold">Debug-Agent (Pushover)</div>
<div class="card-body">
<label class="form-check d-flex align-items-center gap-2 mb-3">
<input class="form-check-input" type="checkbox" id="dbgAgentEnabled"> <span><strong>Agent aktivieren</strong> – meldet Auffälligkeiten</span>
</label>
<div class="row g-2">
<div class="col-6"><label class="form-label">Langsam ab (ms)</label><input class="form-control form-control-sm" type="number" id="dbgSlowMs" value="2000"></div>
<div class="col-6"><label class="form-label">Ø-Warnung ab (ms)</label><input class="form-control form-control-sm" type="number" id="dbgAvgMs" value="1500"></div>
<div class="col-6"><label class="form-label">Speicher ab (MB)</label><input class="form-control form-control-sm" type="number" id="dbgMemMb" value="192"></div>
<div class="col-6"><label class="form-label">Prüf-Intervall (Min)</label><input class="form-control form-control-sm" type="number" id="dbgIntervalMin" value="15"></div>
<div class="col-6"><label class="form-label">Cooldown (Min)</label><input class="form-control form-control-sm" type="number" id="dbgCooldownMin" value="360"></div>
</div>
<label class="form-label mt-2">Pushover-Key (optional)</label>
<input class="form-control form-control-sm" id="dbgAgentKey" placeholder="leer = alle Mitarbeiter mit hinterlegtem Key">
<div class="form-text mt-1">Nutzt die bestehende Pushover-Queue. Meldungen frühestens alle „Cooldown" Minuten je Signatur (kein Spam).</div>
<button type="button" class="btn btn-sm btn-light border mt-2" id="dbgAgentRun"><i class="material-icons sm">play_arrow</i> Agent jetzt prüfen</button>
<span id="dbgAgentMsg" class="small ms-2"></span>
</div>
</div>
</form>
</div>
<div class="col-12 col-xl-7">
<div class="card mb-3">
<div class="card-header d-flex justify-content-between align-items-center">
<span class="fw-bold">Auswertung</span>
<div class="d-flex gap-2">
<select class="form-select form-select-sm" id="dbgHours" style="width:auto;">
<option value="1">letzte 1 h</option>
<option value="6">letzte 6 h</option>
<option value="24" selected>letzte 24 h</option>
<option value="168">letzte 7 Tage</option>
</select>
<button type="button" class="btn btn-sm btn-light border" id="dbgRefresh"><i class="material-icons sm">refresh</i></button>
<a class="btn btn-sm btn-light border" id="dbgExport" href="#"><i class="material-icons sm">file_download</i> CSV</a>
<button type="button" class="btn btn-sm btn-outline-danger" id="dbgClear"><i class="material-icons sm">delete</i> Leeren</button>
</div>
</div>
<div class="card-body">
<ul class="nav nav-pills nav-sm mb-3" role="tablist">
<li class="nav-item"><button class="nav-link active" data-bs-toggle="pill" data-bs-target="#dbg-slow" type="button">Langsamste Aktionen</button></li>
<li class="nav-item"><button class="nav-link" data-bs-toggle="pill" data-bs-target="#dbg-mod" type="button">Pro Modul</button></li>
<li class="nav-item"><button class="nav-link" data-bs-toggle="pill" data-bs-target="#dbg-cat" type="button">Kategorien</button></li>
<li class="nav-item"><button class="nav-link" data-bs-toggle="pill" data-bs-target="#dbg-time" type="button">Verlauf 24h</button></li>
</ul>
<div class="tab-content">
<div class="tab-pane fade show active" id="dbg-slow"><div class="table-responsive"><table class="table table-sm table-hover align-middle mb-0"><thead><tr><th>Zeit</th><th>Modul · Aktion</th><th>Kategorie</th><th class="text-end">ms</th><th class="text-end">Zeilen</th></tr></thead><tbody id="dbgSlowBody"></tbody></table></div></div>
<div class="tab-pane fade" id="dbg-mod"><div class="table-responsive"><table class="table table-sm table-hover align-middle mb-0"><thead><tr><th>Modul</th><th class="text-end">Aufrufe</th><th class="text-end">Ø ms</th><th class="text-end">max ms</th><th class="text-end">max MB</th></tr></thead><tbody id="dbgModBody"></tbody></table></div></div>
<div class="tab-pane fade" id="dbg-cat"><div class="table-responsive"><table class="table table-sm table-hover align-middle mb-0"><thead><tr><th>Kategorie</th><th>Modul</th><th class="text-end">Aufrufe</th><th class="text-end">Ø ms</th><th class="text-end">max ms</th></tr></thead><tbody id="dbgCatBody"></tbody></table></div></div>
<div class="tab-pane fade" id="dbg-time"><div id="dbgTimeline" class="small"></div></div>
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="dbgDetailModal" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header"><h5 class="modal-title">Messung – Detail</h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div>
<div class="modal-body"><table class="table table-sm mb-0" id="dbgDetailBody"></table></div>
</div>
</div>
</div>
<style>
#set-debug .nav-pills .nav-link{ padding:4px 12px; font-size:.85rem; }
#set-debug .table td, #set-debug .table th{ font-size:.83rem; }
#set-debug .dbg-bar{ display:inline-block; height:9px; background:var(--primary,#0b4677); border-radius:3px; vertical-align:middle; }
/* Checkboxen framework-unabhängig (materialize/bootstrap-Konflikt umgehen) */
#set-debug .form-check{ display:flex; align-items:center; gap:9px; padding:0; }
#set-debug .form-check-input{ -webkit-appearance:none !important; appearance:none !important; -moz-appearance:none !important;
width:18px !important; height:18px !important; min-width:18px; flex:0 0 18px; margin:0 !important; padding:0 !important;
position:static !important; opacity:1 !important; float:none !important; box-sizing:border-box;
border:1.5px solid var(--border-color,#bcc3cf); border-radius:5px; background:#fff; cursor:pointer; vertical-align:middle; transition:background .12s,border-color .12s; }
#set-debug .form-check-input:checked{ background:var(--primary,#0b4677); border-color:var(--primary,#0b4677);
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.2 3.2L13 5'/%3E%3C/svg%3E");
background-repeat:no-repeat; background-position:center; background-size:13px; }
</style>
<?php }
}