diff --git a/services/web/app/src/Features/Project/ProjectController.js b/services/web/app/src/Features/Project/ProjectController.js index 731ec08a22..af55e2d0c9 100644 --- a/services/web/app/src/Features/Project/ProjectController.js +++ b/services/web/app/src/Features/Project/ProjectController.js @@ -727,7 +727,7 @@ const ProjectController = { projectId, anonRequestToken, (error, privilegeLevel) => { - let allowedFreeTrial + let allowedFreeTrial = true if (error != null) { return next(error) } @@ -738,12 +738,8 @@ const ProjectController = { return res.sendStatus(401) } - if ( - subscription != null && - subscription.freeTrial != null && - subscription.freeTrial.expiresAt != null - ) { - allowedFreeTrial = !!subscription.freeTrial.allowed || true + if (subscription != null) { + allowedFreeTrial = false } let wsUrl = Settings.wsUrl @@ -794,9 +790,7 @@ const ProjectController = { last_name: user.last_name, referal_id: user.referal_id, signUpDate: user.signUpDate, - subscription: { - freeTrial: { allowed: allowedFreeTrial } - }, + allowedFreeTrial: allowedFreeTrial, featureSwitches: user.featureSwitches, features: user.features, refProviders: user.refProviders, diff --git a/services/web/app/views/project/editor/review-panel.pug b/services/web/app/views/project/editor/review-panel.pug index 8ba044305f..d665bfabc3 100644 --- a/services/web/app/views/project/editor/review-panel.pug +++ b/services/web/app/views/project/editor/review-panel.pug @@ -579,13 +579,19 @@ script(type="text/ng-template", id="trackChangesUpgradeModalTemplate") i.fa.fa-check   | #{translate("accept_or_reject_each_changes_individually")} - - .row.text-center(ng-controller="FreeTrialModalController") - a.btn.btn-success( - href - ng-click="startFreeTrial('real-time-track-changes')" - ng-show="project.owner._id == user.id" - ) #{translate("try_it_for_free")} + .row.text-center + div(ng-show="user.allowedFreeTrial" ng-controller="FreeTrialModalController") + a.btn.btn-success( + href + ng-click="startFreeTrial('real-time-track-changes')" + ng-show="project.owner._id == user.id" + ) #{translate("try_it_for_free")} + div(ng-show="!user.allowedFreeTrial" ng-controller="UpgradeModalController") + a.btn.btn-success( + href + ng-click="upgradePlan('projectMembers')" + ng-show="project.owner._id == user.id" + ) #{translate("upgrade")} p(ng-show="project.owner._id != user.id"): strong #{translate("please_ask_the_project_owner_to_upgrade_to_track_changes")} .modal-footer() diff --git a/services/web/app/views/project/editor/share.pug b/services/web/app/views/project/editor/share.pug index 1c748fc153..f27282bdb0 100644 --- a/services/web/app/views/project/editor/share.pug +++ b/services/web/app/views/project/editor/share.pug @@ -203,14 +203,20 @@ script(type='text/ng-template', id='shareProjectModalTemplate') li i.fa.fa-check   |#{translate("compile_larger_projects")} - - p.text-center.row-spaced-thin(ng-controller="FreeTrialModalController") + p.text-center.row-spaced-thin(ng-show="user.allowedFreeTrial" ng-controller="FreeTrialModalController") a.btn.btn-success( href ng-class="buttonClass" ng-click="startFreeTrial('projectMembers')" ) #{translate("start_free_trial")} + p.text-center.row-spaced-thin(ng-show="!user.allowedFreeTrial" ng-controller="UpgradeModalController") + a.btn.btn-success( + href + ng-class="buttonClass" + ng-click="upgradePlan('projectMembers')" + ) #{translate("upgrade")} + p.small(ng-show="startedFreeTrial") | #{translate("refresh_page_after_starting_free_trial")} .row.public-access-level.public-access-level--notice(ng-show="!isAdmin") diff --git a/services/web/frontend/js/main/account-upgrade.js b/services/web/frontend/js/main/account-upgrade.js index e865187b96..4a7d81e87b 100644 --- a/services/web/frontend/js/main/account-upgrade.js +++ b/services/web/frontend/js/main/account-upgrade.js @@ -37,3 +37,23 @@ export default App.controller('FreeTrialModalController', function( go() } }) + +App.controller('UpgradeModalController', function($scope, eventTracking) { + $scope.buttonClass = 'btn-primary' + + $scope.upgradePlan = function(source) { + const w = window.open() + const go = function() { + let url + if (typeof ga === 'function') { + ga('send', 'event', 'subscription-funnel', 'upgraded-plan', source) + } + url = '/user/subscription' + $scope.startedFreeTrial = true + + w.location = url + } + + go() + } +})