87 lines
3.4 KiB
PHP
87 lines
3.4 KiB
PHP
<?php
|
|
$assets = app()->assets();
|
|
$assets->addStyle('/module/pihole/asset?file=pihole.css');
|
|
$assets->addScript('/module/pihole/asset?file=pihole.js', 'footer', true);
|
|
|
|
$instances = module_fn('pihole', 'instances');
|
|
$hasConfig = !empty($instances);
|
|
?>
|
|
<div class="card pihole-page" data-pihole-page="lists">
|
|
<div class="pill">Pi-hole</div>
|
|
<h1 style="margin-top:.75rem;">Listen & Domains</h1>
|
|
<p class="muted">Top-Domains, Listen-Updates und neue Eintraege (Primaer-Instanz).</p>
|
|
|
|
<?php if (!$hasConfig): ?>
|
|
<div class="card" style="margin-top:1rem; border-color:var(--accent);">
|
|
<strong>Keine Instanzen konfiguriert</strong>
|
|
<div class="muted" style="margin-top:.35rem;">Bitte zuerst eine Pi-hole Instanz hinzufuegen.</div>
|
|
<div style="margin-top:.75rem;"><a class="nav-link" href="/module/pihole/instances">Instanzen verwalten</a></div>
|
|
</div>
|
|
<?php else: ?>
|
|
<div class="card" style="margin-top:1rem;">
|
|
<div class="pihole-section-header">
|
|
<strong>Listen-Updates</strong>
|
|
<span class="muted">Gravity / Blocklisten neu laden</span>
|
|
</div>
|
|
<div class="pihole-actions" data-list-actions>
|
|
<button class="cta-button" data-action="gravity" data-instance="primary">Listen aktualisieren (Primaer)</button>
|
|
</div>
|
|
<div class="pihole-update" data-list-update-status></div>
|
|
</div>
|
|
|
|
<div class="pihole-split" style="margin-top:1.25rem;">
|
|
<div class="card">
|
|
<div class="pihole-section-header">
|
|
<strong>Top geblockte Domains (Aggregiert)</strong>
|
|
<span class="muted">Letzte Statistiken</span>
|
|
</div>
|
|
<div class="pihole-list" data-top-ads></div>
|
|
</div>
|
|
<div class="card">
|
|
<div class="pihole-section-header">
|
|
<strong>Top erlaubte Domains (Aggregiert)</strong>
|
|
<span class="muted">Letzte Statistiken</span>
|
|
</div>
|
|
<div class="pihole-list" data-top-queries></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card" style="margin-top:1.25rem;">
|
|
<div class="pihole-section-header">
|
|
<strong>Domainlisten erweitern</strong>
|
|
<span class="muted">Eintraege werden auf der Primaer-Instanz gesetzt</span>
|
|
</div>
|
|
<form class="pihole-form" data-domain-form>
|
|
<label>
|
|
<span class="muted">Typ</span>
|
|
<select name="type">
|
|
<option value="block">Blacklist (Blocken)</option>
|
|
<option value="allow">Whitelist (Erlauben)</option>
|
|
</select>
|
|
</label>
|
|
<label>
|
|
<span class="muted">Domain</span>
|
|
<input type="text" name="domain" placeholder="example.com" required>
|
|
</label>
|
|
<button class="cta-button" type="submit">Hinzufuegen</button>
|
|
</form>
|
|
<div class="pihole-update" data-domain-status></div>
|
|
</div>
|
|
|
|
<div class="card" style="margin-top:1.25rem;">
|
|
<div class="pihole-section-header">
|
|
<strong>Adlist-URL hinzufuegen</strong>
|
|
<span class="muted">Optional: unterstuetzt nur wenn die API den Endpunkt anbietet.</span>
|
|
</div>
|
|
<form class="pihole-form" data-adlist-form>
|
|
<label>
|
|
<span class="muted">Adlist URL</span>
|
|
<input type="text" name="url" placeholder="https://example.com/list.txt" required>
|
|
</label>
|
|
<button class="nav-link" type="submit">Adlist hinzufuegen</button>
|
|
</form>
|
|
<div class="pihole-update" data-adlist-status></div>
|
|
</div>
|
|
<?php endif; ?>
|
|
</div>
|