-
+
+
+
+
+
+
+
+
-
-
+
-
+
+
Page {{ page }}
+
{{ Math.min(limit, projectsInfo?.count || 0) }} of {{ projectsInfo?.count || 0
+ }}
+
-
-
Page {{ page }}
-
{{ Math.min(limit, projectsInfo?.count || 0) }} of {{ projectsInfo?.count || 0
- }}
-
+
+
+
-
-
+
+
+
+
+ {{ selected.start.toLocaleDateString() }} - {{ selected.end.toLocaleDateString() }}
+
+
+
+
+
+
diff --git a/dashboard/components/admin/OverviewOld.vue b/dashboard/components/admin/OverviewOld.vue
deleted file mode 100644
index bddf21b..0000000
--- a/dashboard/components/admin/OverviewOld.vue
+++ /dev/null
@@ -1,104 +0,0 @@
-
-
-
-
-
-
- {{ user.email }}
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dashboard/components/admin/backend/LineChart.vue b/dashboard/components/admin/backend/LineChart.vue
new file mode 100644
index 0000000..b520b0e
--- /dev/null
+++ b/dashboard/components/admin/backend/LineChart.vue
@@ -0,0 +1,132 @@
+
+
+
+
+
+
ERROR CREATING CHART
+
+
+
diff --git a/dashboard/components/admin/onboarding/PieChart.vue b/dashboard/components/admin/onboarding/PieChart.vue
new file mode 100644
index 0000000..d65c0f8
--- /dev/null
+++ b/dashboard/components/admin/onboarding/PieChart.vue
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
diff --git a/dashboard/components/dashboard/CountCard.vue b/dashboard/components/dashboard/CountCard.vue
index f435d06..ca74e5a 100644
--- a/dashboard/components/dashboard/CountCard.vue
+++ b/dashboard/components/dashboard/CountCard.vue
@@ -52,7 +52,7 @@ const { showDrawer } = useDrawer();
-
Can be very slow on large timeframes
+
diff --git a/dashboard/components/layout/TopNavigation.vue b/dashboard/components/layout/TopNavigation.vue
index f34d9e6..0e0cf32 100644
--- a/dashboard/components/layout/TopNavigation.vue
+++ b/dashboard/components/layout/TopNavigation.vue
@@ -16,6 +16,8 @@ const isDark = computed({
}
})
+const {safeSnapshotDates} = useSnapshot();
+
@@ -26,13 +28,23 @@ const isDark = computed({
+
+ Timeframe:
+ {{new Date(safeSnapshotDates.from).toLocaleDateString()}}
+ to
+ {{new Date(safeSnapshotDates.to).toLocaleDateString()}}
+
+
+
+
+ class="flex gap-2 items-center cursor-pointer outline-[1px] outline-lyx-widget-lighter p-1 px-3 rounded-md outline">
Feedback
+
Help
Docs
diff --git a/dashboard/components/selector/DomainSelector.vue b/dashboard/components/selector/DomainSelector.vue
index d97e441..529fd11 100644
--- a/dashboard/components/selector/DomainSelector.vue
+++ b/dashboard/components/selector/DomainSelector.vue
@@ -40,9 +40,12 @@ function onChange(e: string) {
-
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dashboard/components/selector/ProjectSelector.vue b/dashboard/components/selector/ProjectSelector.vue
index 93b4988..be72d4a 100644
--- a/dashboard/components/selector/ProjectSelector.vue
+++ b/dashboard/components/selector/ProjectSelector.vue
@@ -16,7 +16,7 @@ function isProjectMine(owner?: string) {
function onChange(e: TProject) {
actions.setActiveProject(e._id.toString());
- setActiveDomain('ALL DOMAINS');
+ setActiveDomain('All domains');
}
diff --git a/dashboard/composables/snapshots/BaseSnapshots.ts b/dashboard/composables/snapshots/BaseSnapshots.ts
index 939e2e2..c1efc02 100644
--- a/dashboard/composables/snapshots/BaseSnapshots.ts
+++ b/dashboard/composables/snapshots/BaseSnapshots.ts
@@ -76,8 +76,8 @@ export function getDefaultSnapshots(project_id: TProjectSnapshot['project_id'],
project_id,
_id: '___allTime' as any,
name: 'All Time',
- from: fns.addMinutes(fns.startOfMonth(new Date(project_created_at.toString())), 0),
- to: new Date(Date.now()),
+ from: fns.addMinutes(fns.startOfMonth(new Date(project_created_at.toString())), -new Date().getTimezoneOffset()),
+ to: fns.addMilliseconds(fns.endOfDay(Date.now()), 1),
color: '#9362FF',
default: true
}
diff --git a/dashboard/composables/useDomain.ts b/dashboard/composables/useDomain.ts
index 15e4fd1..fac7e26 100644
--- a/dashboard/composables/useDomain.ts
+++ b/dashboard/composables/useDomain.ts
@@ -21,7 +21,7 @@ const refreshingDomains = computed(() => domainsRequest.pending.value);
const domainList = computed(() => {
return [
{
- _id: 'ALL DOMAINS', visits: domainsRequest.data.value?.reduce((a, e) => a + e.visits, 0)
+ _id: 'All domains', visits: domainsRequest.data.value?.reduce((a, e) => a + e.visits, 0)
},
...(domainsRequest.data.value?.sort((a, b) => b.visits - a.visits) || [])
]
diff --git a/dashboard/pages/admin/index.vue b/dashboard/pages/admin/index.vue
index 8c2e1fc..8e9505e 100644
--- a/dashboard/pages/admin/index.vue
+++ b/dashboard/pages/admin/index.vue
@@ -186,6 +186,15 @@ const tabs: CItem[] = [
+
+
+
+
+
+
+
+
+
diff --git a/dashboard/pages/settings.vue b/dashboard/pages/settings.vue
index 7876aca..04d80c7 100644
--- a/dashboard/pages/settings.vue
+++ b/dashboard/pages/settings.vue
@@ -5,12 +5,12 @@ definePageMeta({ layout: 'dashboard' });
const selfhosted = useSelfhosted();
const items = [
- { label: 'General', slot: 'general' },
- { label: 'Data', slot: 'data' },
- { label: 'Members', slot: 'members' },
- { label: 'Billing', slot: 'billing' },
- { label: 'Codes', slot: 'codes' },
- { label: 'Account', slot: 'account' }
+ { label: 'General', slot: 'general', tab: 'general' },
+ { label: 'Domains', slot: 'domains', tab: 'domains' },
+ { label: 'Members', slot: 'members', tab: 'members' },
+ { label: 'Billing', slot: 'billing', tab: 'billing' },
+ { label: 'Codes', slot: 'codes', tab: 'codes' },
+ { label: 'Account', slot: 'account', tab: 'account' }
]
@@ -20,11 +20,11 @@ const items = [