Skip to content
Open
36 changes: 35 additions & 1 deletion client/src/screens/conductor/Projects/Analytics/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,28 @@ const ProjectAnalytics = () => {
},
});

const hasNoData = useMemo(
() =>
!pageViewsLoading &&
!aggMetricsByPageLoading &&
!uniqueVisitorsLoading &&
!visitorCountriesLoading &&
!(pageViewsData ?? []).length &&
!(aggMetricsByPageData ?? []).length &&
!(uniqueVisitorsData ?? []).length &&
!(visitorCountriesData ?? []).length,
[
pageViewsLoading,
aggMetricsByPageLoading,
uniqueVisitorsLoading,
visitorCountriesLoading,
pageViewsData,
aggMetricsByPageData,
uniqueVisitorsData,
visitorCountriesData,
]
);

return (
<Grid className="component-container">
<Grid.Column>
Expand Down Expand Up @@ -371,7 +393,19 @@ const ProjectAnalytics = () => {
</p>
</SegmentInline>
</Segment>
) : (
) : hasNoData ? (
<Segment placeholder>
<Header icon>
<Icon name="exclamation circle" />
No traffic analytics data found.
</Header>
<SegmentInline>
<p>
We may not have data available for this textbook yet or our systems may still be initializing data collection. Please check back soon or contact support.
</p>
</SegmentInline>
</Segment>
) : (
<Segment>
<Segment className="flex flex-col justify-center">
<div
Expand Down
5 changes: 5 additions & 0 deletions server/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ import kbAPI from "./api/kb.js";
import supportAPI from "./api/support.js";
import supportQueuesAPI from "./api/supportqueues.js";
import projectInvitationsAPI from "./api/projectinvitations.js";
import * as trafficAnalyticsAPI from "./api/traffic-analytics.js";

import * as storeValidators from "./api/validators/store.js";
import * as centralIdentityValidators from "./api/validators/central-identity.js";
Expand Down Expand Up @@ -2970,5 +2971,9 @@ router
kbAPI.agentQueryLangGraph
);

router.route("/traffic-analytics/sync-segments").post(
middleware.checkLibreAPIKey,
trafficAnalyticsAPI.bulkSyncSegmentsForAllLibraries,
Comment thread
jakeaturner marked this conversation as resolved.
);

export default router;
2 changes: 1 addition & 1 deletion server/api/projects.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ import { getSubdomainFromLibrary } from '../util/librariesclient.js';
import projectFilesAPI from './projectfiles.js';
import ProjectFile from "../models/projectfile.js";
import { getLibraryNameKeys } from './libraries.js';
import TrafficAnalyticsService from "./services/traffic-analytics-service.js";
import TrafficAnalyticsService from "./services/traffic-analytics/traffic-analytics-service.js";
import ProjectInvitation from '../models/projectinvitation.js';
import SearchService from './services/search-service.js';

Expand Down
215 changes: 0 additions & 215 deletions server/api/services/traffic-analytics-service.ts

This file was deleted.

Loading
Loading