Files
deskhub/DeskHub-Webseite/staff/apps.php
T
2026-11-01 11:15:44 +00:00

92 lines
6.4 KiB
PHP

<?php
require_once __DIR__ . '/../includes/bootstrap.php';
require_once __DIR__ . '/_ui.php';
$staff = require_staff_login();
$isAdmin = ($staff['role'] ?? '') === 'admin';
$apps = [];
$visiblePlatforms = array_filter(app_platforms(), fn($k) => $k !== 'minecraft' || app_minecraft_enabled(), ARRAY_FILTER_USE_KEY);
foreach (array_keys($visiblePlatforms) as $key) $apps[$key] = app_publisher_info($key);
$serverUrl = base_url();
$pageTitle = 'Apps';
$activePage = 'apps';
require __DIR__ . '/_header.php';
?>
<h1 style="margin-top:0">Apps für Mitarbeiter</h1>
<p class="muted">Mit den Apps bearbeitet ihr Tickets am PC oder unterwegs. Beide haben ein helles und dunkles Design.</p>
<p class="muted">Außerdem: das Plugin für WordPress (Tickets von eurer Webseite aus anlegen) und die Erweiterung für den Chrome-Browser.</p>
<div class="card" style="margin-bottom:20px">
<strong>Serveradresse für die Anmeldung</strong>
<div style="display:flex;gap:8px;align-items:center;margin-top:6px;flex-wrap:wrap">
<input type="text" id="server-url" value="<?= e($serverUrl) ?>" readonly style="max-width:420px;margin:0">
<button type="button" class="btn secondary" onclick="navigator.clipboard.writeText(document.getElementById('server-url').value); this.textContent='Kopiert'">Kopieren</button>
</div>
<div class="muted" style="font-size:.82rem;margin-top:6px">Diese Adresse gebt ihr beim ersten Start der App ein, danach meldet ihr euch mit eurem Mitarbeiter-Konto an.</div>
</div>
<div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px">
<?php foreach ($visiblePlatforms as $key => $p): $a = $apps[$key]; $noun = ['minecraft' => 'Plugin', 'wordpress' => 'Plugin', 'chrome' => 'Erweiterung'][$key] ?? 'App'; ?>
<div class="card" style="margin:0">
<div style="font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px"><?= e($p['label']) ?></div>
<?php if ($a): ?>
<div style="font-size:1.3rem;font-weight:800"><?= e($p['label']) ?>-<?= $noun ?><?= !empty($a['version']) ? ' · ' . e($a['version']) : '' ?></div>
<div class="muted" style="font-size:.82rem;margin:4px 0 12px">
<?= e(app_format_size($a['size'])) ?> · Stand <?= e(ui_date($a['modified_at'])) ?>
</div>
<a class="btn" href="/staff/app_download.php?platform=<?= e($key) ?>">⬇ <?= e($p['label']) ?>-<?= $noun ?> herunterladen</a>
<div class="muted" style="font-size:.72rem;margin-top:10px;word-break:break-all">SHA-256: <?= e($a['sha256']) ?></div>
<?php if (!empty($a['notes'])): ?><div class="muted" style="font-size:.82rem;margin-top:8px"><?= nl2br(e($a['notes'])) ?></div><?php endif; ?>
<?php else: ?>
<div class="muted">Für <?= e($p['label']) ?> ist noch keine Version auf der Plugin-Website veröffentlicht.<?= $isAdmin ? '' : ' Bitte einen Administrator fragen.' ?></div>
<?php if ($isAdmin): ?>
<div style="font-size:.85rem;margin-top:8px">Veröffentliche die Version im Administrationsbereich der Plugin-Website.</div>
<?php endif; ?>
<?php endif; ?>
<div style="margin-top:14px;font-size:.85rem;border-top:1px solid var(--border);padding-top:12px">
<strong>Installation</strong>
<?php if ($key === 'windows'): ?>
<ol style="padding-left:18px;margin:6px 0 0;line-height:1.7">
<li>Datei herunterladen und starten.</li>
<li>Falls Windows warnt („Der Computer wurde geschützt“): <em>Weitere Informationen → Trotzdem ausführen</em>.</li>
<li>App öffnen, Serveradresse eingeben und anmelden.</li>
</ol>
<?php elseif ($key === 'wordpress'): ?>
<ol style="padding-left:18px;margin:6px 0 0;line-height:1.7">
<li>ZIP herunterladen. In WordPress unter <em>Plugins → Installieren → Plugin hochladen</em> hochladen und aktivieren.</li>
<li>In DeskHub unter Verwalten → API-Schlüssel einen Schlüssel mit dem Recht „Tickets anlegen“ erzeugen.</li>
<li>In WordPress unter <em>Einstellungen → DeskHub Tickets</em> Serveradresse (oben) und Schlüssel eintragen und „Speichern und Verbindung testen“ klicken.</li>
<li>Auf einer Seite den Shortcode <code>[deskhub_ticket]</code> einfügen. Die Statusabfrage für Kunden heißt <code>[deskhub_status]</code>.</li>
</ol>
<?php elseif ($key === 'chrome'): ?>
<ol style="padding-left:18px;margin:6px 0 0;line-height:1.7">
<li>ZIP herunterladen und in einen festen Ordner entpacken (der Ordner muss bleiben).</li>
<li>In Chrome <code>chrome://extensions</code> öffnen, oben rechts den <em>Entwicklermodus</em> einschalten und <em>Entpackte Erweiterung laden</em> wählen. Den Ordner auswählen.</li>
<li>Erweiterung öffnen, Serveradresse eingeben und anmelden.</li>
<li>Updates: neue ZIP in denselben Ordner entpacken und die Erweiterung auf <code>chrome://extensions</code> neu laden.</li>
</ol>
<?php elseif ($key === 'minecraft'): ?>
<ol style="padding-left:18px;margin:6px 0 0;line-height:1.7">
<li>Jar herunterladen und in den Ordner <code>plugins</code> deines Spigot-, Paper- oder BungeeCord-Servers legen.</li>
<li>Server einmal starten, dann <code>plugins/DeskHub-Minecraft/config.yml</code> ausfüllen: Serveradresse (oben), API-Schlüssel und Absender-E-Mail.</li>
<li>API-Schlüssel mit dem Recht „Tickets anlegen“ erzeugst du unter Verwalten → API-Schlüssel.</li>
<li>Mit <code>/deskhubmc test</code> ein Testticket anlegen. Bei einem Ausfall des Servers legt das Plugin selbst ein Ticket an.</li>
</ol>
<?php else: ?>
<ol style="padding-left:18px;margin:6px 0 0;line-height:1.7">
<li>Datei auf dem Handy herunterladen und öffnen.</li>
<li>Android fragt einmalig, ob der Browser Apps installieren darf. Das bitte erlauben.</li>
<li>App öffnen, Serveradresse eingeben und anmelden.</li>
<li>Updates: neue Datei laden und darüber installieren. Eure Anmeldung bleibt erhalten.</li>
</ol>
<?php endif; ?>
</div>
</div>
<?php endforeach; ?>
</div>
<?php if ($isAdmin): ?><p class="muted" style="font-size:.82rem;margin-top:18px">Neue App-Versionen veröffentlichst du in der Plugin-Website unter „DeskHub-Apps veröffentlichen“. Downloads hier bleiben auf angemeldete Mitarbeiter beschränkt.</p><?php endif; ?>
<?php require __DIR__ . '/_footer.php'; ?>