From 6e9567cb2599190a168fb3ef51c304d81c26cadb Mon Sep 17 00:00:00 2001 From: prerna-parashar <78053555+prerna-parashar@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:25:41 +0530 Subject: [PATCH] satellite/analytics: Track Project Details Updates (#5451) --- satellite/analytics/service.go | 127 +++++++++--------- .../components/project/EditProjectDetails.vue | 9 +- .../utils/constants/analyticsEventNames.ts | 4 + 3 files changed, 78 insertions(+), 62 deletions(-) diff --git a/satellite/analytics/service.go b/satellite/analytics/service.go index 65a16edb4..96d17cb91 100644 --- a/satellite/analytics/service.go +++ b/satellite/analytics/service.go @@ -15,66 +15,70 @@ import ( ) const ( - eventAccountCreated = "Account Created" - eventSignedIn = "Signed In" - eventProjectCreated = "Project Created" - eventAccessGrantCreated = "Access Grant Created" - eventAccountVerified = "Account Verified" - eventGatewayCredentialsCreated = "Credentials Created" - eventPassphraseCreated = "Passphrase Created" - eventExternalLinkClicked = "External Link Clicked" - eventPathSelected = "Path Selected" - eventLinkShared = "Link Shared" - eventObjectUploaded = "Object Uploaded" - eventAPIKeyGenerated = "API Key Generated" - eventCreditCardAdded = "Credit Card Added" - eventUpgradeBannerClicked = "Upgrade Banner Clicked" - eventModalAddCard = "Credit Card Added In Modal" - eventModalAddTokens = "Storj Token Added In Modal" - eventSearchBuckets = "Search Buckets" - eventNavigateProjects = "Navigate Projects" - eventManageProjectsClicked = "Manage Projects Clicked" - eventCreateNewClicked = "Create New Clicked" - eventViewDocsClicked = "View Docs Clicked" - eventViewForumClicked = "View Forum Clicked" - eventViewSupportClicked = "View Support Clicked" - eventCreateAnAccessGrantClicked = "Create an Access Grant Clicked" - eventUploadUsingCliClicked = "Upload Using CLI Clicked" - eventUploadInWebClicked = "Upload In Web Clicked" - eventNewProjectClicked = "New Project Clicked" - eventLogoutClicked = "Logout Clicked" - eventProfileUpdated = "Profile Updated" - eventPasswordChanged = "Password Changed" - eventMfaEnabled = "MFA Enabled" - eventBucketCreated = "Bucket Created" - eventBucketDeleted = "Bucket Deleted" - eventProjectLimitError = "Project Limit Error" - eventAPIAccessCreated = "API Access Created" - eventUploadFileClicked = "Upload File Clicked" - eventUploadFolderClicked = "Upload Folder Clicked" - eventStorjTokenAdded = "Storj Token Added" - eventCreateKeysClicked = "Create Keys Clicked" - eventDownloadTxtClicked = "Download txt clicked" - eventEncryptMyAccessClicked = "Encrypt My Access Clicked" - eventCopyToClipboardClicked = "Copy to Clipboard Clicked" - eventCreateAccessGrantClicked = "Create Access Grant Clicked" - eventCreateS3CredentialsClicked = "Create S3 Credentials Clicked" - eventKeysForCLIClicked = "Create Keys For CLI Clicked" - eventSeePaymentsClicked = "See Payments Clicked" - eventEditPaymentMethodClicked = "Edit Payment Method Clicked" - eventUsageDetailedInfoClicked = "Usage Detailed Info Clicked" - eventAddNewPaymentMethodClicked = "Add New Payment Method Clicked" - eventApplyNewCouponClicked = "Apply New Coupon Clicked" - eventCreditCardRemoved = "Credit Card Removed" - eventCouponCodeApplied = "Coupon Code Applied" - eventInvoiceDownloaded = "Invoice Downloaded" - eventCreditCardAddedFromBilling = "Credit Card Added From Billing" - eventStorjTokenAddedFromBilling = "Storj Token Added From Billing" - eventAddFundsClicked = "Add Funds Clicked" - eventProjectMembersInviteSent = "Project Members Invite Sent" - eventProjectMemberAdded = "Project Member Added" - eventProjectMemberDeleted = "Project Member Deleted" - eventError = "UI error occurred" + eventAccountCreated = "Account Created" + eventSignedIn = "Signed In" + eventProjectCreated = "Project Created" + eventAccessGrantCreated = "Access Grant Created" + eventAccountVerified = "Account Verified" + eventGatewayCredentialsCreated = "Credentials Created" + eventPassphraseCreated = "Passphrase Created" + eventExternalLinkClicked = "External Link Clicked" + eventPathSelected = "Path Selected" + eventLinkShared = "Link Shared" + eventObjectUploaded = "Object Uploaded" + eventAPIKeyGenerated = "API Key Generated" + eventCreditCardAdded = "Credit Card Added" + eventUpgradeBannerClicked = "Upgrade Banner Clicked" + eventModalAddCard = "Credit Card Added In Modal" + eventModalAddTokens = "Storj Token Added In Modal" + eventSearchBuckets = "Search Buckets" + eventNavigateProjects = "Navigate Projects" + eventManageProjectsClicked = "Manage Projects Clicked" + eventCreateNewClicked = "Create New Clicked" + eventViewDocsClicked = "View Docs Clicked" + eventViewForumClicked = "View Forum Clicked" + eventViewSupportClicked = "View Support Clicked" + eventCreateAnAccessGrantClicked = "Create an Access Grant Clicked" + eventUploadUsingCliClicked = "Upload Using CLI Clicked" + eventUploadInWebClicked = "Upload In Web Clicked" + eventNewProjectClicked = "New Project Clicked" + eventLogoutClicked = "Logout Clicked" + eventProfileUpdated = "Profile Updated" + eventPasswordChanged = "Password Changed" + eventMfaEnabled = "MFA Enabled" + eventBucketCreated = "Bucket Created" + eventBucketDeleted = "Bucket Deleted" + eventProjectLimitError = "Project Limit Error" + eventAPIAccessCreated = "API Access Created" + eventUploadFileClicked = "Upload File Clicked" + eventUploadFolderClicked = "Upload Folder Clicked" + eventStorjTokenAdded = "Storj Token Added" + eventCreateKeysClicked = "Create Keys Clicked" + eventDownloadTxtClicked = "Download txt clicked" + eventEncryptMyAccessClicked = "Encrypt My Access Clicked" + eventCopyToClipboardClicked = "Copy to Clipboard Clicked" + eventCreateAccessGrantClicked = "Create Access Grant Clicked" + eventCreateS3CredentialsClicked = "Create S3 Credentials Clicked" + eventKeysForCLIClicked = "Create Keys For CLI Clicked" + eventSeePaymentsClicked = "See Payments Clicked" + eventEditPaymentMethodClicked = "Edit Payment Method Clicked" + eventUsageDetailedInfoClicked = "Usage Detailed Info Clicked" + eventAddNewPaymentMethodClicked = "Add New Payment Method Clicked" + eventApplyNewCouponClicked = "Apply New Coupon Clicked" + eventCreditCardRemoved = "Credit Card Removed" + eventCouponCodeApplied = "Coupon Code Applied" + eventInvoiceDownloaded = "Invoice Downloaded" + eventCreditCardAddedFromBilling = "Credit Card Added From Billing" + eventStorjTokenAddedFromBilling = "Storj Token Added From Billing" + eventAddFundsClicked = "Add Funds Clicked" + eventProjectMembersInviteSent = "Project Members Invite Sent" + eventProjectMemberAdded = "Project Member Added" + eventProjectMemberDeleted = "Project Member Deleted" + eventError = "UI error occurred" + eventProjectNameUpdated = "Project Name Updated" + eventProjectDescriptionUpdated = "Project Description Updated" + eventProjectStorageLimitUpdated = "Project Storage Limit Updated" + eventProjectBandwidthLimitUpdated = "Project Bandwidth Limit Updated" ) var ( @@ -124,7 +128,8 @@ func NewService(log *zap.Logger, config Config, satelliteName string) *Service { eventCopyToClipboardClicked, eventCreateAccessGrantClicked, eventCreateS3CredentialsClicked, eventKeysForCLIClicked, eventSeePaymentsClicked, eventEditPaymentMethodClicked, eventUsageDetailedInfoClicked, eventAddNewPaymentMethodClicked, eventApplyNewCouponClicked, eventCreditCardRemoved, eventCouponCodeApplied, eventInvoiceDownloaded, eventCreditCardAddedFromBilling, - eventStorjTokenAddedFromBilling, eventAddFundsClicked, eventProjectMembersInviteSent, eventError} { + eventStorjTokenAddedFromBilling, eventAddFundsClicked, eventProjectMembersInviteSent, eventError, eventProjectNameUpdated, eventProjectDescriptionUpdated, + eventProjectStorageLimitUpdated, eventProjectBandwidthLimitUpdated} { service.clientEvents[name] = true } diff --git a/web/satellite/src/components/project/EditProjectDetails.vue b/web/satellite/src/components/project/EditProjectDetails.vue index 247e77afd..d260e0f35 100644 --- a/web/satellite/src/components/project/EditProjectDetails.vue +++ b/web/satellite/src/components/project/EditProjectDetails.vue @@ -210,7 +210,8 @@ import { ProjectFields, ProjectLimits, } from '@/types/projects'; import { MetaUtils } from '@/utils/meta'; -import { AnalyticsErrorEventSource } from '@/utils/constants/analyticsEventNames'; +import { AnalyticsErrorEventSource, AnalyticsEvent } from '@/utils/constants/analyticsEventNames'; +import { AnalyticsHttpApi } from '@/api/analytics'; import VButton from '@/components/common/VButton.vue'; @@ -238,6 +239,8 @@ export default class EditProjectDetails extends Vue { public storageLimitValue = 0; public bandwidthLimitValue = 0; + private readonly analytics: AnalyticsHttpApi = new AnalyticsHttpApi(); + /** * Returns selected project from store. */ @@ -512,6 +515,7 @@ export default class EditProjectDetails extends Vue { } this.toggleNameEditing(); + this.analytics.eventTriggered(AnalyticsEvent.PROJECT_NAME_UPDATED); await this.$notify.success('Project name updated successfully!'); } @@ -528,6 +532,7 @@ export default class EditProjectDetails extends Vue { } this.toggleDescriptionEditing(); + this.analytics.eventTriggered(AnalyticsEvent.PROJECT_DESCRIPTION_UPDATED); await this.$notify.success('Project description updated successfully!'); } @@ -552,6 +557,7 @@ export default class EditProjectDetails extends Vue { } this.toggleStorageLimitEditing(); + this.analytics.eventTriggered(AnalyticsEvent.PROJECT_STORAGE_LIMIT_UPDATED); await this.$notify.success('Project storage limit updated successfully!'); } @@ -576,6 +582,7 @@ export default class EditProjectDetails extends Vue { } this.toggleBandwidthLimitEditing(); + this.analytics.eventTriggered(AnalyticsEvent.PROJECT_BANDWIDTH_LIMIT_UPDATED); await this.$notify.success('Project bandwidth limit updated successfully!'); } diff --git a/web/satellite/src/utils/constants/analyticsEventNames.ts b/web/satellite/src/utils/constants/analyticsEventNames.ts index 6305a86df..354eb7c99 100644 --- a/web/satellite/src/utils/constants/analyticsEventNames.ts +++ b/web/satellite/src/utils/constants/analyticsEventNames.ts @@ -54,6 +54,10 @@ export enum AnalyticsEvent { ADD_FUNDS_CLICKED = 'Add Funds Clicked', PROJECT_MEMBERS_INVITE_SENT = 'Project Members Invite Sent', UI_ERROR = 'UI error occurred', + PROJECT_NAME_UPDATED = 'Project Name Updated', + PROJECT_DESCRIPTION_UPDATED = 'Project Description Updated', + PROJECT_STORAGE_LIMIT_UPDATED = 'Project Storage Limit Updated', + PROJECT_BANDWIDTH_LIMIT_UPDATED = 'Project Bandwidth Limit Updated', } export enum AnalyticsErrorEventSource {