Remove old Vuexy wrapper components (AppTextField, AppSelect, AppTextarea, FlashMessages, NotificationBell)

All pages now use native Vuetify components directly. Flash messages are handled
by the ToastStack component via Pinia store. Notifications use NotificationPanel.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Dev
2026-03-14 17:10:23 -04:00
parent dd1a5d7ffc
commit 40c1ecc6fe
90 changed files with 20113 additions and 457 deletions

View File

@@ -162,7 +162,45 @@ class AuditLogController extends Controller
return '-';
}
// If it has before/after structure
// Check for per-field old/new format: {"plan": {"old": "Basic", "new": "Pro"}, ...}
$hasPerFieldOldNew = false;
foreach ($changes as $value) {
if (is_array($value) && (array_key_exists('old', $value) || array_key_exists('new', $value))) {
$hasPerFieldOldNew = true;
break;
}
}
if ($hasPerFieldOldNew) {
$changedFields = [];
foreach ($changes as $field => $value) {
if (is_array($value) && array_key_exists('old', $value) && array_key_exists('new', $value)) {
if ($value['old'] !== $value['new']) {
$changedFields[] = $field;
}
}
}
return $changedFields ? 'Changed: '.implode(', ', $changedFields) : 'No changes';
}
// Top-level old/new structure: {"old": {...}, "new": {...}}
if (isset($changes['old']) || isset($changes['new'])) {
$fields = [];
if (isset($changes['new']) && is_array($changes['new'])) {
$fields = array_keys($changes['new']);
} elseif (isset($changes['old']) && is_array($changes['old'])) {
$fields = array_keys($changes['old']);
}
return 'Changed: '.implode(', ', $fields);
}
// Top-level before/after structure
if (isset($changes['before']) || isset($changes['after'])) {
$fields = [];
@@ -175,7 +213,7 @@ class AuditLogController extends Controller
return 'Changed: '.implode(', ', $fields);
}
// Otherwise list the top-level keys
// Flat key-value pairs
return 'Fields: '.implode(', ', array_keys($changes));
}