diff --git a/surfsense_backend/app/routes/logs_routes.py b/surfsense_backend/app/routes/logs_routes.py
index e7e00280e..b82e02077 100644
--- a/surfsense_backend/app/routes/logs_routes.py
+++ b/surfsense_backend/app/routes/logs_routes.py
@@ -322,6 +322,9 @@ async def get_logs_summary(
document_id = (
log.log_metadata.get("document_id") if log.log_metadata else None
)
+ connector_id = (
+ log.log_metadata.get("connector_id") if log.log_metadata else None
+ )
summary["active_tasks"].append(
{
"id": log.id,
@@ -330,6 +333,7 @@ async def get_logs_summary(
"started_at": log.created_at,
"source": log.source,
"document_id": document_id,
+ "connector_id": connector_id,
}
)
diff --git a/surfsense_web/app/dashboard/[search_space_id]/documents/(manage)/page.tsx b/surfsense_web/app/dashboard/[search_space_id]/documents/(manage)/page.tsx
index c61fcfe78..019f5796a 100644
--- a/surfsense_web/app/dashboard/[search_space_id]/documents/(manage)/page.tsx
+++ b/surfsense_web/app/dashboard/[search_space_id]/documents/(manage)/page.tsx
@@ -125,14 +125,22 @@ export default function DocumentsTable() {
setColumnVisibility((prev) => ({ ...prev, [id]: checked }));
};
+ const [isRefreshing, setIsRefreshing] = useState(false);
+
const refreshCurrentView = useCallback(async () => {
- if (debouncedSearch.trim()) {
- await refetchSearch();
- } else {
- await refetchDocuments();
+ if (isRefreshing) return;
+ setIsRefreshing(true);
+ try {
+ if (debouncedSearch.trim()) {
+ await refetchSearch();
+ } else {
+ await refetchDocuments();
+ }
+ toast.success(t("refresh_success") || "Documents refreshed");
+ } finally {
+ setIsRefreshing(false);
}
- toast.success(t("refresh_success") || "Documents refreshed");
- }, [debouncedSearch, refetchSearch, refetchDocuments, t]);
+ }, [debouncedSearch, refetchSearch, refetchDocuments, t, isRefreshing]);
// Set up smart polling for active tasks - only polls when tasks are in progress
const { summary } = useLogsSummary(searchSpaceId, 24, {
@@ -230,8 +238,8 @@ export default function DocumentsTable() {
{t("title")}
{t("subtitle")}
-