From 59cce6b52e8b660d59ce117205ccf8f04da5b54b Mon Sep 17 00:00:00 2001 From: Jessica Lawshe Date: Tue, 14 May 2019 08:02:04 -0500 Subject: [PATCH] Merge pull request #1752 from overleaf/jel-trial-impression-events Send event on mendeley/zotero trial impression GitOrigin-RevId: a308afd063e11308297be48933ad308d9120c327 --- .../controllers/FileTreeController.js | 49 ++++++++++++++++++- .../controllers/FileTreeFolderController.js | 6 +++ 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/services/web/public/src/ide/file-tree/controllers/FileTreeController.js b/services/web/public/src/ide/file-tree/controllers/FileTreeController.js index 07008714e6..4e41614ed0 100644 --- a/services/web/public/src/ide/file-tree/controllers/FileTreeController.js +++ b/services/web/public/src/ide/file-tree/controllers/FileTreeController.js @@ -31,8 +31,14 @@ define(['base'], function(App) { parent_folder() { return ide.fileTreeManager.getCurrentFolder() }, + projectFeatures() { + return ide.$scope.project.features + }, type() { return 'doc' + }, + userFeatures() { + return ide.$scope.user.features } } }) @@ -120,7 +126,19 @@ define(['base'], function(App) { 'type', 'parent_folder', '$modalInstance', - function($scope, ide, type, parent_folder, $modalInstance) { + 'event_tracking', + 'projectFeatures', + 'userFeatures', + function( + $scope, + ide, + type, + parent_folder, + $modalInstance, + event_tracking, + projectFeatures, + userFeatures + ) { $scope.type = type $scope.parent_folder = parent_folder $scope.state = { @@ -129,6 +147,35 @@ define(['base'], function(App) { } $scope.cancel = () => $modalInstance.dismiss('cancel') $scope.create = () => $scope.$broadcast('create') + + const hasMendeleyFeature = + (projectFeatures && projectFeatures.references) || + (projectFeatures && projectFeatures.mendeley) || + (userFeatures && userFeatures.references) || + (userFeatures && userFeatures.mendeley) + + const hasZoteroFeature = + (projectFeatures && projectFeatures.references) || + (projectFeatures && projectFeatures.zotero) || + (userFeatures && userFeatures.references) || + (userFeatures && userFeatures.zotero) + + $scope.$watch('type', function() { + if ($scope.type === 'mendeley' && !hasMendeleyFeature) { + event_tracking.send( + 'subscription-funnel', + 'editor-click-feature', + $scope.type + ) + } + if ($scope.type === 'zotero' && !hasZoteroFeature) { + event_tracking.send( + 'subscription-funnel', + 'editor-click-feature', + $scope.type + ) + } + }) return $scope.$on('done', (e, opts = {}) => { isBibFile = opts.name && /^.*\.bib$/.test(opts.name) if (opts.shouldReindexReferences || isBibFile) { diff --git a/services/web/public/src/ide/file-tree/controllers/FileTreeFolderController.js b/services/web/public/src/ide/file-tree/controllers/FileTreeFolderController.js index 301a4b9cfd..3c2ccf0e06 100644 --- a/services/web/public/src/ide/file-tree/controllers/FileTreeFolderController.js +++ b/services/web/public/src/ide/file-tree/controllers/FileTreeFolderController.js @@ -67,8 +67,14 @@ define(['base'], App => parent_folder() { return $scope.entity }, + projectFeatures() { + return ide.$scope.project.features + }, type() { return 'doc' + }, + userFeatures() { + return ide.$scope.user.features } } })