| 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/terminals.tpl" */
/* @var Smarty_Internal_Template $_smarty_tpl */
if ($_smarty_tpl->_decodeProperties($_smarty_tpl, array (
'version' => '3.1.30',
'unifunc' => 'content_6a3f4a029dbe50_74188157',
'has_nocache_code' => false,
'file_dependency' =>
array (
'8580ec031687f73cba93141a8b9d6e0bd0f75fb6' =>
array (
0 => '/var/www/clients/client1/web17/web/includes/templates/templates/pacim/terminals.tpl',
1 => 1782529558,
2 => 'file',
),
),
'includes' =>
array (
),
),false)) {
function content_6a3f4a029dbe50_74188157 (Smarty_Internal_Template $_smarty_tpl) {
?>
<link rel="stylesheet" href="<?php echo @constant('SITE_URL');?>
/assets/css/cockpit.css?v=<?php echo filemtime((@constant('PATH_SYSTEM')).('/assets/css/cockpit.css'));?>
">
<div class="page-header">
<div class="page-header-row d-flex justify-content-between align-items-center flex-wrap gap-2">
<div>
<div class="stat-label">Einstellungen</div>
<h1 class="h3 mb-0">Terminals</h1>
</div>
<button type="button" class="btn btn-primary" id="tmNew"><i class="material-icons sm">add</i> Neues Terminal</button>
</div>
</div>
<p class="text-muted">Terminals sind dauerhafte, PIN-gesicherte Zugänge (fester Link) für Mitarbeiter und Externe. Ihnen werden mehrere Mobile-Ansichten zugeordnet; das Terminal zeigt eine Übersicht zur Auswahl. Beim Aufruf einer Mobile-Ansicht über das Terminal wird nur die <b>Terminal-PIN</b> abgefragt.</p>
<div class="card mb-3 d-none" id="tmEditor">
<div class="card-header fw-bold" id="tmEditorTitle">Neues Terminal</div>
<div class="card-body">
<input type="hidden" id="tmId" value="0">
<div class="row g-3">
<div class="col-md-6">
<label class="form-label small fw-semibold mb-1">Bezeichnung *</label>
<input type="text" class="form-control" id="tmLabel" maxlength="190" placeholder="z. B. Terminal Empfang / Schalter 1">
</div>
<div class="col-md-6">
<label class="form-label small fw-semibold mb-1">E-Mail (optional)</label>
<input type="email" class="form-control" id="tmEmail" maxlength="190" placeholder="z. B. extern@partner.de">
</div>
<div class="col-md-4">
<label class="form-label small fw-semibold mb-1">Master-PIN (optional)</label>
<button type="button" class="btn btn-outline-secondary w-100" id="tmPinBtn">PIN festlegen</button>
<input type="hidden" id="tmPin" value="">
<div class="form-text" id="tmPinHint">Optional – oder Login-Zugänge nutzen (siehe unten).</div>
</div>
<div class="col-md-8 d-flex align-items-end">
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" id="tmActive" checked>
<label class="form-check-label" for="tmActive">Aktiv (Link gültig)</label>
</div>
</div>
</div>
<hr>
<label class="form-label small fw-semibold mb-1">Mobile-Ansichten zuordnen</label>
<div class="form-text mb-2">Diese Einzelansichten erscheinen in der Übersicht des Terminals. Ohne Zuordnung ist dort nichts auswählbar.</div>
<input type="text" class="form-control mb-2" id="tmAccSearch" placeholder="Suchen (Bezeichnung, Datum) …">
<div id="tmAccList" class="tm-acc-list border rounded p-2"><div class="text-muted small p-2">Wird geladen …</div></div>
<div class="d-none mt-3" id="tmLoginSection">
<hr>
<label class="form-label small fw-semibold mb-1">Login-Zugänge</label>
<div class="form-text mb-2">Mehrere benannte Logins mit eigener PIN, E-Mail und Ablauf. Beim Aufruf wählt der Nutzer seinen Login und gibt die zugehörige PIN ein. (Erst nach dem Speichern des Terminals verfügbar.)</div>
<div id="tmLoginList" class="mb-2"></div>
<button type="button" class="btn btn-sm btn-outline-primary" id="tmLoginAdd"><i class="material-icons sm">person_add</i> Login hinzufügen</button>
<div class="border rounded p-2 mt-2 d-none" id="tmLoginForm">
<input type="hidden" id="tlId" value="0">
<div class="row g-2">
<div class="col-md-6"><label class="form-label small mb-1">Anzeigename *</label><input type="text" class="form-control form-control-sm" id="tlName" maxlength="120" placeholder="z. B. Daniel G."></div>
<div class="col-md-6"><label class="form-label small mb-1">E-Mail (optional)</label><input type="email" class="form-control form-control-sm" id="tlEmail" maxlength="190"></div>
<div class="col-md-6"><label class="form-label small mb-1">Läuft ab am (optional)</label><input type="datetime-local" class="form-control form-control-sm browser-default" id="tlExpires"></div>
<div class="col-md-6"><label class="form-label small mb-1">PIN</label><button type="button" class="btn btn-sm btn-outline-secondary w-100" id="tlPinBtn">PIN festlegen</button><input type="hidden" id="tlPin" value=""></div>
<div class="col-12"><div class="form-check form-switch"><input class="form-check-input" type="checkbox" id="tlActive" checked><label class="form-check-label" for="tlActive">Aktiv</label></div></div>
</div>
<div class="js-status small mt-1 text-danger d-none" id="tlErr"></div>
<div class="d-flex gap-2 mt-2"><button type="button" class="btn btn-sm btn-primary" id="tlSave">Login speichern</button><button type="button" class="btn btn-sm btn-light" id="tlCancel">Abbrechen</button></div>
</div>
</div>
<div class="js-status small mt-2 text-danger d-none" id="tmErr"></div>
<div class="d-none mt-3" id="tmResult">
<div class="alert alert-success d-flex flex-wrap align-items-center gap-3 mb-0">
<img id="tmResultQr" alt="QR" width="96" height="96" style="background:#fff;border-radius:8px;">
<div class="flex-grow-1 min-w-0">
<div class="fw-bold mb-1" id="tmResultLabel"></div>
<div class="input-group input-group-sm">
<input type="text" class="form-control" id="tmResultUrl" readonly>
<button type="button" class="btn btn-outline-secondary" id="tmCopy"><i class="material-icons sm">content_copy</i></button>
<a class="btn btn-outline-secondary" id="tmOpen" target="_blank" rel="noopener"><i class="material-icons sm">open_in_new</i></a>
</div>
</div>
</div>
</div>
<div class="d-flex gap-2 mt-3">
<button type="button" class="btn btn-primary" id="tmSave">Speichern</button>
<button type="button" class="btn btn-light" id="tmCancel">Schließen</button>
</div>
</div>
</div>
<div class="card">
<div class="card-header fw-bold">Angelegte Terminals <span class="badge bg-secondary rounded-pill ms-1" id="tmCount">0</span></div>
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead><tr><th>Bezeichnung</th><th>E-Mail</th><th>Ansichten</th><th>Status</th><th>Link</th><th class="text-end">Aktionen</th></tr></thead>
<tbody id="tmList"><tr><td colspan="6" class="text-muted small py-4 text-center">Wird geladen …</td></tr></tbody>
</table>
</div>
</div>
<style>
.tm-acc-list{max-height:280px;overflow:auto;}
.tm-acc-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:start;padding:7px 6px;border-bottom:1px solid var(--bs-border-color,#eef2f6);margin:0;cursor:pointer;}
.tm-acc-row:last-child{border-bottom:0;}
.tm-acc-row > input{margin-top:3px;}
.tm-acc-row > span{min-width:0;}
.tm-acc-meta{font-size:12px;color:var(--bs-secondary-color,#6c757d);}
.tm-acc-chip{display:inline-block;background:#eef3f9;color:#243447;border-radius:6px;padding:1px 7px;font-size:11px;margin:2px 3px 0 0;}
.tm-url{font-family:ui-monospace,monospace;font-size:12px;}
</style>
<?php echo '<script'; ?>
src="<?php echo @constant('SITE_URL');?>
/assets/js/pin-pad-modal.js?v=<?php echo filemtime((@constant('PATH_SYSTEM')).('/assets/js/pin-pad-modal.js'));?>
"><?php echo '</script'; ?>
>
<?php echo '<script'; ?>
src="<?php echo @constant('SITE_URL');?>
/assets/js/terminals.js?v=<?php echo filemtime((@constant('PATH_SYSTEM')).('/assets/js/terminals.js'));?>
"><?php echo '</script'; ?>
>
<?php }
}