|
|
@@ -3,10 +3,11 @@ define [
|
|
|
"track-changes/models/Diff"
|
|
|
"track-changes/ChangeListView"
|
|
|
"track-changes/DiffView"
|
|
|
+ "account/AccountManager"
|
|
|
"utils/Modal"
|
|
|
"models/Doc"
|
|
|
"moment"
|
|
|
-], (ChangeList, Diff, ChangeListView, DiffView, Modal, Doc, moment) ->
|
|
|
+], (ChangeList, Diff, ChangeListView, DiffView, AccountManager, Modal, Doc, moment) ->
|
|
|
class TrackChangesManager
|
|
|
template: $("#trackChangesPanelTemplate").html()
|
|
|
|
|
|
@@ -43,12 +44,15 @@ define [
|
|
|
@doc_id = doc_id
|
|
|
@updateDiff()
|
|
|
|
|
|
+ AB_BUCKETS: ["control", "one-week", "pop-up"]
|
|
|
show: () ->
|
|
|
@changes = new ChangeList([], project_id: @project_id, ide: @ide)
|
|
|
|
|
|
+ if @changeListView?
|
|
|
+ @changeListView.remove()
|
|
|
@changeListView = new ChangeListView(
|
|
|
- collection : @changes,
|
|
|
- el : @$el.find(".change-list-area")
|
|
|
+ el: @$el.find(".change-list-area")
|
|
|
+ collection: @changes
|
|
|
)
|
|
|
@changeListView.render()
|
|
|
@changeListView.loadUntilFull (error) =>
|
|
|
@@ -57,6 +61,8 @@ define [
|
|
|
@changeListView.on "change_diff", (fromIndex, toIndex) =>
|
|
|
@selectDocAndUpdateDiff(fromIndex, toIndex)
|
|
|
|
|
|
+ @showUpgradeView()
|
|
|
+
|
|
|
if @diffView?
|
|
|
@diffView.remove()
|
|
|
|
|
|
@@ -65,6 +71,26 @@ define [
|
|
|
@ide.fileViewManager.disable()
|
|
|
@enable()
|
|
|
|
|
|
+ showUpgradeView: () ->
|
|
|
+ @upgradeType ||= @ide.analyticsManager.startABTest('track-changes-upgrade', @AB_BUCKETS)
|
|
|
+ @$el.find("button.upgrade").off "click.track-changes"
|
|
|
+ @$el.find("button.start-free-trial").off "click.track-changes"
|
|
|
+ @$el.find("button.upgrade").on "click.track-changes", () => @askToUpgrade()
|
|
|
+ @$el.find("button.start-free-trial").on "click.track-changes", () => @gotoFreeTrial()
|
|
|
+
|
|
|
+ if !@ide.project.get("features").versioning
|
|
|
+ if @upgradeType == "pop-up"
|
|
|
+ @$el.find(".track-changes-upgrade-popup").show()
|
|
|
+ else if @upgradeType == "control"
|
|
|
+ @$el.find(".track-changes-upgrade-control").show()
|
|
|
+ else if @upgradeType == "one-week"
|
|
|
+ @$el.find(".track-changes-upgrade-oneweek").show()
|
|
|
+
|
|
|
+ if @ide.project.get("owner") == @ide.user
|
|
|
+ @$el.find(".show-when-not-owner").hide()
|
|
|
+ else
|
|
|
+ @$el.find(".show-when-owner").hide()
|
|
|
+
|
|
|
hide: () ->
|
|
|
@ide.editor.enable()
|
|
|
@ide.fileViewManager.enable()
|
|
|
@@ -191,4 +217,17 @@ define [
|
|
|
disable: () ->
|
|
|
@enabled = false
|
|
|
|
|
|
+ askToUpgrade: () ->
|
|
|
+ ga('send', 'event', 'subscription-funnel', 'askToUpgrade', "trackchanges")
|
|
|
+ ga('send', 'event', 'ab_tests', 'track-changes-upgrade', "prompted-to-upgrade-#{@upgradeType}")
|
|
|
+ AccountManager.askToUpgrade @ide,
|
|
|
+ onUpgrade: () =>
|
|
|
+ @ide.analyticsManager.endABTest('track-changes-upgrade', @AB_BUCKETS)
|
|
|
+ ga('send', 'event', 'subscription-funnel', 'upgraded-free-trial', "trackchanges")
|
|
|
+
|
|
|
+ gotoFreeTrial: () ->
|
|
|
+ AccountManager.gotoSubscriptionsPage()
|
|
|
+ @ide.analyticsManager.endABTest('track-changes-upgrade', @AB_BUCKETS)
|
|
|
+ ga('send', 'event', 'subscription-funnel', 'upgraded-free-trial', "trackchanges")
|
|
|
+
|
|
|
return TrackChangesManager
|