0) { $newStatus = trim($_POST['new_status'] ?? ''); try { $dataSourceManager->updateDataSourceStatus($datasourceId, $newStatus, (int) $_SESSION['user_id']); set_message('Data source status updated successfully.', 'success'); } catch (Exception $e) { set_message('Failed to update status: ' . $e->getMessage(), 'danger'); } } elseif ($action === 'delete' && $datasourceId > 0) { try { if ($dataSourceManager->deleteDataSource($datasourceId)) { set_message('Data source deleted.', 'success'); } else { set_message('Unable to delete data source.', 'danger'); } } catch (Exception $e) { set_message('Deletion failed: ' . $e->getMessage(), 'danger'); } } $redirectUrl = 'manage_datasources.php'; $params = []; if ($search_query !== '') { $params['search'] = urlencode($search_query); } if ($status_filter !== '') { $params['status_filter'] = urlencode($status_filter); } if (!empty($params)) { $redirectUrl .= '?' . http_build_query($params); } header('Location: ' . $redirectUrl); exit(); } $dataSources = $dataSourceManager->getAllDataSourcesDetailed( $search_query !== '' ? $search_query : null, $status_filter !== '' ? $status_filter : null ); $statuses = ['Active', 'Inactive', 'Pending Review', 'Published']; $uploadsWebPath = '../uploads/datasources/'; ?>