diff --git a/app/javascript/dashboard/api/campaigns.js b/app/javascript/dashboard/api/campaigns.js index 1c73a3360..b3d2ca3e0 100644 --- a/app/javascript/dashboard/api/campaigns.js +++ b/app/javascript/dashboard/api/campaigns.js @@ -1,9 +1,21 @@ +/* global axios */ + import ApiClient from './ApiClient'; class CampaignsAPI extends ApiClient { constructor() { super('campaigns', { accountScoped: true }); } + + analyticsMetrics(id) { + return axios.get(`${this.url}/${id}/analytics/metrics`); + } + + analyticsContacts(id, { status, page } = {}) { + return axios.get(`${this.url}/${id}/analytics/contacts`, { + params: { status, page }, + }); + } } export default new CampaignsAPI(); diff --git a/app/javascript/dashboard/components-next/Campaigns/CampaignCard/CampaignCard.vue b/app/javascript/dashboard/components-next/Campaigns/CampaignCard/CampaignCard.vue index 05507fc89..bd772dce9 100644 --- a/app/javascript/dashboard/components-next/Campaigns/CampaignCard/CampaignCard.vue +++ b/app/javascript/dashboard/components-next/Campaigns/CampaignCard/CampaignCard.vue @@ -42,9 +42,13 @@ const props = defineProps({ type: Number, default: 0, }, + showAnalytics: { + type: Boolean, + default: false, + }, }); -const emit = defineEmits(['edit', 'delete']); +const emit = defineEmits(['edit', 'delete', 'analytics']); const { t } = useI18n(); @@ -116,7 +120,17 @@ const inboxIcon = computed(() => { /> -
+
+