Modyfikacje w panelu admina

This commit is contained in:
Flatlogic Bot 2026-04-11 20:32:44 +00:00
parent 12a4fd9735
commit 6d2aaeabe8

View File

@ -25,51 +25,51 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if ($action === 'save-notification-email') {
if (!diagnostic_admin_is_authenticated()) {
diagnostic_flash_set('warning', 'Zaloguj się jako administrator, aby zmienić adres powiadomień.');
header('Location: /admin.php');
header('Location: /admin.php?tab=settings');
exit;
}
$notificationEmail = trim((string)($_POST['notification_email'] ?? ''));
if (!filter_var($notificationEmail, FILTER_VALIDATE_EMAIL)) {
diagnostic_flash_set('danger', 'Podaj poprawny adres e-mail administratora do powiadomień o nowych prośbach o kontakt.');
header('Location: /admin.php');
header('Location: /admin.php?tab=settings');
exit;
}
diagnostic_admin_setting_set('admin_notification_email', $notificationEmail);
diagnostic_flash_set('success', 'Adres e-mail administratora do powiadomień został zapisany.');
header('Location: /admin.php');
header('Location: /admin.php?tab=settings');
exit;
}
if ($action === 'save-openai-api-key') {
if (!diagnostic_admin_is_authenticated()) {
diagnostic_flash_set('warning', 'Zaloguj się jako administrator, aby zapisać klucz OpenAI.');
header('Location: /admin.php');
header('Location: /admin.php?tab=settings');
exit;
}
$openAiApiKey = preg_replace('/\s+/', '', (string)($_POST['openai_api_key'] ?? '')) ?? '';
if (!diagnostic_openai_api_key_is_valid($openAiApiKey)) {
diagnostic_flash_set('danger', 'Podaj poprawny klucz API OpenAI. Klucz powinien być kompletny i bez spacji.');
header('Location: /admin.php');
header('Location: /admin.php?tab=settings');
exit;
}
diagnostic_admin_setting_set('openai_api_key', $openAiApiKey);
diagnostic_flash_set('success', 'Własny klucz API OpenAI został zapisany. Nowe zapytania AI będą używały tego klucza.');
header('Location: /admin.php');
header('Location: /admin.php?tab=settings');
exit;
}
if ($action === 'remove-openai-api-key') {
if (!diagnostic_admin_is_authenticated()) {
diagnostic_flash_set('warning', 'Zaloguj się jako administrator, aby usunąć klucz OpenAI.');
header('Location: /admin.php');
header('Location: /admin.php?tab=settings');
exit;
}
diagnostic_admin_setting_set('openai_api_key', null);
diagnostic_flash_set('info', 'Zapisany klucz API OpenAI został usunięty. System wrócił do domyślnej konfiguracji proxy.');
header('Location: /admin.php');
header('Location: /admin.php?tab=settings');
exit;
}
if ($action === 'resend-report') {
@ -123,6 +123,11 @@ $questionMap = diagnostic_question_map();
$credentials = diagnostic_admin_credentials();
$notificationConfig = diagnostic_admin_is_authenticated() ? diagnostic_admin_notification_config() : ['configured_email' => '', 'fallback_email' => '', 'effective_email' => '', 'source' => 'none'];
$openAiConfig = diagnostic_admin_is_authenticated() ? diagnostic_admin_openai_key_config() : ['configured' => false, 'masked_key' => ''];
$currentTab = 'overview';
if (diagnostic_admin_is_authenticated()) {
$requestedTab = (string)($_GET['tab'] ?? 'overview');
$currentTab = in_array($requestedTab, ['overview', 'settings'], true) ? $requestedTab : 'overview';
}
?>
<!doctype html>
<html lang="pl">
@ -215,6 +220,21 @@ $openAiConfig = diagnostic_admin_is_authenticated() ? diagnostic_admin_openai_ke
<div class="col-sm-6 col-lg-3"><div class="metric-card"><strong><?= (int)$stats['average_score'] ?>%</strong><span>Średni wynik</span></div></div>
</section>
<section class="surface-card p-3 p-lg-4 mb-4">
<div class="d-flex flex-column flex-lg-row justify-content-between align-items-lg-center gap-3">
<div>
<div class="eyebrow mb-2">Nawigacja panelu</div>
<h2 class="h5 mb-1">Wybierz obszar pracy</h2>
<p class="text-secondary mb-0">Ustawienia wrażliwe zostały przeniesione do osobnej zakładki, aby nie były widoczne od razu po wejściu do panelu.</p>
</div>
<div class="d-flex flex-wrap gap-2">
<a class="btn <?= $currentTab === 'overview' ? 'btn-dark' : 'btn-outline-dark' ?>" href="/admin.php">Wyniki i zgłoszenia</a>
<a class="btn <?= $currentTab === 'settings' ? 'btn-dark' : 'btn-outline-dark' ?>" href="/admin.php?tab=settings">Ustawienia</a>
</div>
</div>
</section>
<?php if ($currentTab === 'settings'): ?>
<section class="row g-4 mb-4">
<div class="col-xl-6">
<div class="surface-card p-4 h-100">
@ -294,7 +314,7 @@ $openAiConfig = diagnostic_admin_is_authenticated() ? diagnostic_admin_openai_ke
</div>
</div>
</section>
<?php else: ?>
<section class="row g-4">
<div class="col-xl-8 col-xxl-9">
<div class="surface-card p-4 h-100">
@ -447,6 +467,7 @@ $openAiConfig = diagnostic_admin_is_authenticated() ? diagnostic_admin_openai_ke
<?php endforeach; ?>
</div>
</section>
<?php endif; ?>
<?php endif; ?>
</div>
</main>