Commit Graph

92 Commits (31f486c75392d0125472d2eb85e3b37ec6634f80)

Author SHA1 Message Date
boban 01e7db589a Fix: Installer + Wizard Step 5 robuster gegen IPv6/SSL-Fehler
- installer.sh: mailwolt-apply-domains mit 3-Phasen certbot (HTTP → LE → SSL),
  IPv6-Check vor certbot, Zertifikat-Ablauf-Check (10 Tage), Version-Datei schreiben
- WizardDomains: noipv6-Status aus Helper-Output erkennen
- Wizard: retryDomains()-Methode für Wiederholung ohne neuen Wizard-Durchlauf
- Step 5 Blade: Hints pro Fehlerstatus, Retry-Button, "Trotzdem zum Login"
- UpdatePage: Version aus Datei, Fallback auf git describe (kein "dev" mehr)
- UpdatePage: refreshLowLevelState behandelt fehlende State-Datei als idle

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 13:16:42 +02:00
boban 38d22c85ed Feature: API-Key/Webhook responsive div-grid, Sandbox-Icon in Domains, Search-fix
- API-Key-Tabelle: unified CSS-Grid div-layout (kein separates mobile/desktop HTML mehr),
  Scopes auf max. 2 Badges + +N Modal, Lösch-Bestätigung via Livewire-Modal
- Webhook-Tabelle: selbes div-grid Pattern, Status/HTTP inline auf Mobile
- Globale Suche: go()-Methode fixed (forceClose + setTimeout 350ms gegen resetState-Race)
- Domains: Sandbox-Icon ersetzt Globus durch gelbes Warndreieck wenn Sandbox aktiv
- Sandbox: SandboxRoute-Model, SandboxService, Migration, Routen-Verwaltung
- CSS: mw-kl-*/mw-whl-* Grid-Klassen, minmax(0,1fr) Fix für Text-Truncation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 19:48:06 +02:00
boban c1d5ca1988 Refactor: app-webmail.js als eigener Vite-Entry ohne Admin-Websocket
Webmail-Layouts laden jetzt app-webmail.js statt app.js.
websocket.js, ui/command.js und sidebar.js werden im Webmail nicht
mehr geladen — kein /ui/tasks/active Aufruf mehr möglich.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 06:11:50 +02:00
boban 79548c5aa0 Fix: meta-Tag statt window-Variable für Webmail-Context-Erkennung
type=module Scripts haben kein garantiertes Timing mit inline Scripts.
<meta name="mw-context" content="webmail"> im <head> ist vor Modulausführung
garantiert im DOM verfügbar.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 06:01:45 +02:00
boban 52887e2dd5 Fix: MW_CONTEXT vor app.js setzen damit bootstrapToasts() es liest
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 05:56:42 +02:00
boban 3064c0b186 Fix: /ui/tasks/active wird auf Webmail-Seiten nicht mehr aufgerufen
window.MW_CONTEXT='webmail' in beiden Webmail-Layouts gesetzt.
bootstrapToasts() prüft diesen Context und bricht früh ab um
den 401-Fehler auf der Webmail-Domain zu vermeiden.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 05:54:42 +02:00
boban 5158d7b3b3 Fix: SVG-Pfade (fehlendes M) + Vite-HMR-Proxy in nginx UI-Vhost
SVG paths in domain-list und installer-page hatten kein führendes 'M' im
d-Attribut — Browser-Fehler behoben. Nginx UI-Vhost bekommt Proxy-Locations
für /@vite/, /node_modules/, /resources/ und WebSocket /vite-hmr (Port 5173)
damit npm run dev durch nginx funktioniert.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 03:12:08 +02:00
boban 627ef668e5 Feature: Domain Auto-fill, SSL-Skip, Dashboard SSL-Banner
- Wizard Schritt 2: leere Domain-Felder werden beim Tippen auto-gefüllt
  (wer nur eine Domain nutzt muss sie nur einmal eingeben)
- Wizard Schritt 4: Checkbox "SSL jetzt überspringen" mit Hinweistext
- Wizard Schritt 5: skip-Status wird pro Domain angezeigt
- WizardDomains schreibt ssl_configured=0/1 in Settings
- SettingsForm: setzt ssl_configured=1 nach erfolgreichem applyDomains
- Dashboard: gelber Banner wenn ssl_configured != 1, Link zu Einstellungen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 02:36:11 +02:00
boban 077a029ff4 Feature: Wizard Schritt 5 — Domain-Setup mit Fortschrittsanzeige
- Neuer Schritt 5: SSL-Registrierung läuft im Hintergrund pro Domain
- Artisan-Command mailwolt:wizard-domains schreibt per-Domain Status-Dateien
- Wizard pollt alle 2s: pending → running → done/nodns/error
- "Zum Login" Button erscheint wenn alle Domains abgeschlossen
- Mail-Domain erhält ebenfalls SSL-Zertifikat (für STARTTLS/IMAPS)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 02:29:52 +02:00
boban 35fe7c2c6f Feature: perPage als URL-Parameter + kompaktes Pagination-Fenster
- perPage (#[Url as:'limit']) bleibt nach Reload erhalten (25/50/100)
- Pagination zeigt max 5 Seiten (±2 um aktuelle) + 1/letzte mit ...
- Per-Seite-Select in Quarantäne und Queue eingefügt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 02:16:17 +02:00
boban ff53344a67 Fix: Livewire pagination tailwind.blade mit mq-pagination Design überschrieben
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 02:12:17 +02:00
boban 8699b9d991 Refactor: Pagination mit Livewire WithPagination + LengthAwarePaginator
- WithPagination Trait + LengthAwarePaginator für Array-Daten
- $messages->links() statt manueller Pagination-Blöcke
- Livewire tailwind.blade.php überschrieben mit mq-pagination/mq-pag-btn Klassen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 02:09:58 +02:00
boban bc66870681 Feature: Pagination für Quarantäne und Mail-Queue (25 pro Seite)
- Quarantäne und Queue zeigen je 25 Einträge pro Seite
- Pagination-Bar mit Seitenanzeige (X-Y von Z) und Blätter-Buttons
- Seite wird bei Filter- oder Suchwechsel auf 1 zurückgesetzt
- Quarantäne: rows-Select entfernt (API holt intern 500, UI paginiert)
- CSS-Klassen mq-pagination, mq-pag-btn passend zum Dark-Design

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 02:06:14 +02:00
boban ad60bd61fe Fix: Update-Prüfung als www-data (git safe.directory), Toggle-Switch statt Checkbox
- CheckUpdates: git safe.directory vor fetch setzen damit www-data-Ausführung funktioniert
- Auto-Scroll: nativen Checkbox durch CSS Toggle-Switch ersetzt (passt zum Dark-Design)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 02:00:35 +02:00
boban 291f13c034 Fix: Updates-Seite — Prüfung synchron, Log-Abstände, Checkbox-Stil
- checkForUpdates() läuft jetzt synchron (nicht im Hintergrund), damit
  das Ergebnis sofort angezeigt wird ohne Seite neu laden zu müssen
- Log-Viewer: white-space:pre-wrap + <br> entfernt durch display:block
  pro Span — kein doppelter Zeilenabstand mehr
- Auto-Scroll Checkbox nutzt jetzt mw-modal-check Klassen (passend zum Design)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 01:55:41 +02:00
boban 2049057f7f Feature: Setup-Wizard neu — 4-Schritte-Einrichtung mit Dark-Design
- Wizard komplett überarbeitet: System / Domains / Admin / Zusammenfassung
- Eigenes Layout (layouts/setup.blade.php), zentriert, kein Sidebar
- Schritt-Indikator mit Checkmarks für abgeschlossene Schritte
- Per-Schritt Validierung, live Fehleranzeige
- Weiter/Zurück-Buttons mit korrekter Ausrichtung (margin-left:auto)
- Livewire wire:loading-Spinner auf SVG-Icons (behebt JS-Fehler in core.js)
- finish() schreibt Settings, .env und legt Admin-User an

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 01:49:13 +02:00
boban 7bb922191f Feature: Update-System, Backup-Cron, SSL-Workflow, UI-Verbesserungen
- Update-Seite (/system/update) mit Log-Viewer, Fortschrittsbalken und goldenem Nav-Badge
- /usr/local/sbin/mailwolt-update Wrapper + backup:scheduled Cron-Command
- SSL: Checkbox entfernt, immer automatisch in Prod; local-Modus überspringt certbot mit manuellem Erzwingen-Modal
- Domain-Felder: live Validierung via updatedUiDomain/updatedMailDomain/updatedWebmailDomain
- DNS-Check in applyDomains() wiederhergestellt
- Backup-Cron: BackupScheduled Command + Laravel-Scheduler Eintrag in console.php
- /etc/cron.d/mailwolt-scheduler angelegt für schedule:run
- mailwolt-installer als regulärer Ordner (kein Submodule)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 01:23:43 +02:00
boban af369acbf6 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-11-08 12:57:05 +01:00
boban 8e68051fde Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-11-04 18:40:39 +01:00
boban afb8d09db3 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-11-01 23:20:53 +01:00
boban fc04ef44d0 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-11-01 23:17:06 +01:00
boban e3dc81ef73 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-11-01 22:53:37 +01:00
boban 9acea7b89b Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-11-01 22:20:53 +01:00
boban 77f22518c8 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-11-01 22:05:14 +01:00
boban d3783e1717 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-31 16:41:54 +01:00
boban 46591669d6 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-31 01:38:00 +01:00
boban d9867db546 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-31 00:43:16 +01:00
boban ee44ff3def Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-31 00:23:48 +01:00
boban 4d1fd64158 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-31 00:15:55 +01:00
boban 6b0dd7d176 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-31 00:05:18 +01:00
boban 67b6e1fa02 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-30 23:55:07 +01:00
boban e3c7e8de33 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-29 19:24:36 +01:00
boban 251f2d9c8f Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-29 18:34:08 +01:00
boban aaae226c8d Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-29 04:23:41 +01:00
boban 3c1093311c Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-29 04:10:49 +01:00
boban ab13bab984 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-29 03:44:49 +01:00
boban 47bca4c8de Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-29 03:26:32 +01:00
boban 9074904683 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-29 03:10:11 +01:00
boban 659f3cb7ae Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-29 02:45:40 +01:00
boban c8cae445c5 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-28 22:53:41 +01:00
boban d200e3e73f Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-28 22:22:23 +01:00
boban e23713a5c6 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-28 22:11:12 +01:00
boban 10b4872a04 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-28 21:28:43 +01:00
boban a5d3ac08c6 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-28 19:27:52 +01:00
boban dd645aed68 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-28 18:53:11 +01:00
boban 703843a9c2 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-28 18:18:22 +01:00
boban 3108d521a5 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-28 18:07:37 +01:00
boban dd3f413e6a Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-28 17:25:02 +01:00
boban 09117fe1e9 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-27 19:57:15 +01:00
boban ddd96eb9f2 Fix: Mailbox Stats über Dovecot mit config/mailpool.php 2025-10-27 19:37:30 +01:00