Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
6ed3e02
feat: Umfassende Verbesserungen des Maintenance AddOns
skerbis Oct 29, 2025
e7a5669
Apply php-cs-fixer changes
skerbis Oct 29, 2025
d58efb8
Update fragments/maintenance/frontend.php
skerbis Oct 29, 2025
583f037
Update boot.php
skerbis Oct 29, 2025
1acf059
Update fragments/maintenance/frontend_old.php
skerbis Oct 29, 2025
2cc1e88
Fix: Add existence check for yrewrite addon to prevent exceptions
skerbis Oct 29, 2025
0813f0e
Apply php-cs-fixer changes
skerbis Oct 29, 2025
18669f2
Fix review comments from PR #156
skerbis Oct 29, 2025
ef11382
Fix: Complete authentication spelling correction
skerbis Oct 29, 2025
20d851c
Update README and extend console commands
skerbis Oct 29, 2025
133c1cc
Apply php-cs-fixer changes
skerbis Oct 29, 2025
d0b4b07
Fix: Critical edge-case in multilanguage logic
skerbis Oct 29, 2025
0e2192e
Fix: Password input field not showing in password mode
skerbis Oct 29, 2025
2c330d6
Fix: Improve login form rendering
skerbis Oct 29, 2025
9cbc56f
feat: Add Silent Mode for staging/development environments
skerbis Oct 29, 2025
f1c3fdb
Update fragments/maintenance/frontend.php
skerbis Oct 29, 2025
1a6ea5c
Update fragments/maintenance/frontend.php
skerbis Oct 29, 2025
95dd080
fix: Korrigiere Mehrsprachigkeits-Logik in frontend_old.php
skerbis Oct 29, 2025
47383e8
fix: Korrigiere Mehrsprachigkeits-Logik auch in frontend.php
skerbis Oct 29, 2025
d1ebd74
fix: Frontend-Sperre wird wieder ausgelöst
skerbis Oct 29, 2025
906354d
chore: Entferne frontend_old.php Backup-Datei
skerbis Oct 29, 2025
b46cbb8
perf: Code-Optimierungen für bessere Performance und Sicherheit
skerbis Oct 29, 2025
e8537d2
feat: Zeitgesteuerte Wartung (Scheduled Maintenance)
skerbis Oct 29, 2025
5c4c049
Apply php-cs-fixer changes
skerbis Oct 29, 2025
adf1f62
fix: IP-Adressen per Klick hinzufügen repariert
skerbis Oct 29, 2025
f00c098
Apply php-cs-fixer changes
skerbis Oct 29, 2025
70f99af
fix: Entferne rex_i18n aus Frontend-Fragment
skerbis Oct 29, 2025
6671017
fix: Undefined variable $currentPage und IP-Button verbessert
skerbis Oct 29, 2025
1a598c7
fix: IP click-to-add mit exakter Upkeep-Implementierung
skerbis Oct 29, 2025
4119339
fix: Cronjob-Registrierung korrigiert & Tokenfield-Assets entfernt
skerbis Oct 29, 2025
1a240f8
refactor: Cronjob-Datei verschoben & Inline JS/CSS ausgelagert
skerbis Oct 29, 2025
f2ebd2a
feat: Überschrift wechselt mit Sprachwahl & Domain-Anzeige
skerbis Oct 29, 2025
8fe0bbd
fix: Layout-Anpassungen für Language-Switcher
skerbis Oct 29, 2025
ad351a7
fix: Initial Anzeige der Überschrift (DE als Standard)
skerbis Oct 29, 2025
4a856cb
fix: DE als Standard-Sprache korrekt setzen
skerbis Oct 29, 2025
02b1019
fix: Language-Button zeigt korrekte aktuelle Sprache
skerbis Oct 29, 2025
cabede0
fix: Cronjob Type-Hints entfernt für Kompatibilität
skerbis Oct 29, 2025
0381dcb
fix: IP-Whitelist Click-to-Add korrigiert
skerbis Oct 29, 2025
1cf70d7
refactor: Cronjob nach PHPMailer-Vorbild neu implementiert
skerbis Oct 29, 2025
9beaad8
fix: Cronjob-Registrierung in boot.php hinzugefügt
skerbis Oct 29, 2025
3f8ea20
docs: Cronjob-Einrichtung in README dokumentiert
skerbis Oct 29, 2025
66ee1b6
refactor: Zeitgesteuerte Wartung nur noch per Cronjob
skerbis Oct 29, 2025
1ed1686
feat: Zeitgesteuerte Wartung und Ankündigung auf Planungs-Seite kombi…
skerbis Oct 29, 2025
489aa77
fix: Editor-Hinweis-Text korrigiert (kein 'obiges' Feld mehr)
skerbis Oct 29, 2025
6a33aa2
Apply php-cs-fixer changes
skerbis Oct 29, 2025
cc1ea4d
Update package.yml
skerbis Oct 29, 2025
e136c30
docs: RELEASE.md für Version 3.5.0 erstellt
skerbis Oct 29, 2025
b476bea
fix: Config-Key 'secret' konsistent zu 'maintenance_secret' korrigiert
skerbis Oct 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 97 additions & 0 deletions assets/css/maintenance-icons.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
/**
* Maintenance AddOn - Icon Styles
* Font Awesome Icons als Ersatz für Emojis
*/

/* Select-Optionen mit Icons */
.rex-page-maintenance select option[value="1"] {
font-weight: bold;
}

/* Status-Indikatoren für aktivierte/deaktivierte Zustände */
.maintenance-status-active::before {
font-family: 'FontAwesome';
content: '\f06d'; /* fa-fire */
color: #d9534f;
margin-right: 5px;
}

.maintenance-status-inactive::before {
font-family: 'FontAwesome';
content: '\f058'; /* fa-check-circle */
color: #5cb85c;
margin-right: 5px;
}

.maintenance-status-ok::before {
font-family: 'FontAwesome';
content: '\f00c'; /* fa-check */
color: #5cb85c;
margin-right: 5px;
}

.maintenance-status-blocked::before {
font-family: 'FontAwesome';
content: '\f05e'; /* fa-ban */
color: #d9534f;
margin-right: 5px;
}

/* Icon für Passwort-Authentifizierung */
.maintenance-auth-password::before {
font-family: 'FontAwesome';
content: '\f084'; /* fa-key */
margin-right: 5px;
}

/* Icon für URL-Authentifizierung */
.maintenance-auth-url::before {
font-family: 'FontAwesome';
content: '\f0c1'; /* fa-link */
margin-right: 5px;
}

/* Wartungsmodus Backend Labels mit Icons versehen */
.rex-page-maintenance .form-group label[for*="block_backend"] + .rex-select-style option:first-child::before,
.rex-page-maintenance .form-group label[for*="block_frontend"] + .rex-select-style option:first-child::before {
font-family: 'FontAwesome';
content: '\f058 '; /* fa-check-circle (grün) */
}

.rex-page-maintenance .form-group label[for*="block_backend"] + .rex-select-style option:last-child::before,
.rex-page-maintenance .form-group label[for*="block_frontend"] + .rex-select-style option:last-child::before {
font-family: 'FontAwesome';
content: '\f06d '; /* fa-fire (rot) */
}

/* Bootstrap Select Pills für bessere Übersichtlichkeit */
.maintenance-select-pill {
display: inline-block;
padding: 0.25em 0.6em;
font-size: 85%;
font-weight: 700;
line-height: 1;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: 0.25rem;
}

.maintenance-select-pill.active {
background-color: #d9534f;
color: white;
}

.maintenance-select-pill.inactive {
background-color: #5cb85c;
color: white;
}

/* Domain-Tabelle Styling */
.rex-page-maintenance table.table td {
vertical-align: middle;
}

.rex-page-maintenance table.table .text-muted {
font-size: 0.9em;
}
13 changes: 11 additions & 2 deletions boot.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,13 @@
rex_extension::register('PACKAGES_INCLUDED', static function () {
$addon = rex_addon::get('maintenance');

if (rex::isFrontend() && (bool) $addon->getConfig('block_frontend')) {
// Check domain-based maintenance or global frontend maintenance
$domainInMaintenance = false;
if (rex::isFrontend() && rex_addon::get('yrewrite')->isAvailable()) {
$domainInMaintenance = Maintenance::isDomainInMaintenance();
}

if (rex::isFrontend() && ((bool) $addon->getConfig('block_frontend') || $domainInMaintenance)) {
Maintenance::checkFrontend();
}
if (rex::isBackend() && (bool) $addon->getConfig('block_backend')) {
Expand All @@ -32,8 +38,11 @@
rex_view::addCssFile($addon->getAssetsUrl('dist/css/bootstrap-tokenfield.css'));

rex_view::addCssFile($addon->getAssetsUrl('css/maintenance.css'));
rex_view::addCssFile($addon->getAssetsUrl('css/maintenance-icons.css'));

if ('maintenance/frontend' === rex_be_controller::getCurrentPage()) {
if ('maintenance/frontend' === rex_be_controller::getCurrentPage()
|| 'maintenance/frontend/index' === rex_be_controller::getCurrentPage()
|| 'maintenance/frontend/announcement' === rex_be_controller::getCurrentPage()) {
rex_extension::register('OUTPUT_FILTER', static function (rex_extension_point $ep) {
$suchmuster = 'class="###maintenance-settings-editor###"';
$ersetzen = (string) rex_config::get('maintenance', 'editor'); // @phpstan-ignore-line
Expand Down
Loading