mirror of
https://github.com/overleaf/overleaf.git
synced 2024-09-16 02:52:31 -04:00
Merge pull request #294 from sharelatex/pr-track-feature-discovery
Track feature discovery
This commit is contained in:
commit
cfe87a4388
7 changed files with 47 additions and 9 deletions
|
@ -91,12 +91,14 @@ header.toolbar.toolbar-header(ng-cloak, ng-hide="state.loading")
|
||||||
ng-if="permissions.admin",
|
ng-if="permissions.admin",
|
||||||
tooltip="#{translate('share')}",
|
tooltip="#{translate('share')}",
|
||||||
tooltip-placement="bottom",
|
tooltip-placement="bottom",
|
||||||
|
ng-mouseenter="trackHover('share')"
|
||||||
ng-click="openShareProjectModal()",
|
ng-click="openShareProjectModal()",
|
||||||
ng-controller="ShareController"
|
ng-controller="ShareController"
|
||||||
)
|
)
|
||||||
i.fa.fa-fw.fa-group
|
i.fa.fa-fw.fa-group
|
||||||
a.btn.btn-full-height(
|
a.btn.btn-full-height(
|
||||||
href,
|
href,
|
||||||
|
ng-mouseenter="trackHover('track-changes')"
|
||||||
ng-click="toggleTrackChanges()",
|
ng-click="toggleTrackChanges()",
|
||||||
ng-class="{ active: (ui.view == 'track-changes') }"
|
ng-class="{ active: (ui.view == 'track-changes') }"
|
||||||
tooltip="#{translate('recent_changes')}",
|
tooltip="#{translate('recent_changes')}",
|
||||||
|
@ -108,6 +110,7 @@ header.toolbar.toolbar-header(ng-cloak, ng-hide="state.loading")
|
||||||
tooltip="#{translate('chat')}",
|
tooltip="#{translate('chat')}",
|
||||||
tooltip-placement="bottom",
|
tooltip-placement="bottom",
|
||||||
ng-class="{ active: ui.chatOpen }",
|
ng-class="{ active: ui.chatOpen }",
|
||||||
|
ng-mouseenter="trackHover('chat')"
|
||||||
ng-click="toggleChat()",
|
ng-click="toggleChat()",
|
||||||
ng-controller="ChatButtonController",
|
ng-controller="ChatButtonController",
|
||||||
ng-show="!anonymous"
|
ng-show="!anonymous"
|
||||||
|
|
|
@ -143,15 +143,27 @@ div#trackChanges(ng-show="ui.view == 'track-changes'")
|
||||||
navigate-highlights="true"
|
navigate-highlights="true"
|
||||||
)
|
)
|
||||||
.diff-deleted.text-centered(
|
.diff-deleted.text-centered(
|
||||||
ng-show="trackChanges.diff.deleted"
|
ng-show="trackChanges.diff.deleted && !trackChanges.diff.restoreDeletedSuccess"
|
||||||
)
|
)
|
||||||
p.text-serif #{translate("file_has_been_deleted", {filename:"{{ trackChanges.diff.doc.name }} "})}
|
p.text-serif #{translate("file_has_been_deleted", {filename:"{{ trackChanges.diff.doc.name }} "})}
|
||||||
|
|
||||||
p
|
p
|
||||||
a.btn.btn-primary.btn-lg(
|
a.btn.btn-primary.btn-lg(
|
||||||
href,
|
href,
|
||||||
ng-click="restoreDeletedDoc()"
|
ng-click="restoreDeletedDoc()",
|
||||||
|
ng-disabled="trackChanges.diff.restoreInProgress"
|
||||||
) #{translate("restore")}
|
) #{translate("restore")}
|
||||||
|
|
||||||
|
.diff-deleted.text-centered(
|
||||||
|
ng-show="trackChanges.diff.deleted && trackChanges.diff.restoreDeletedSuccess"
|
||||||
|
)
|
||||||
|
p.text-serif #{translate("file_restored", {filename:"{{ trackChanges.diff.doc.name }} "})}
|
||||||
|
p.text-serif #{translate("file_restored_back_to_editor")}
|
||||||
|
p
|
||||||
|
a.btn.btn-default(
|
||||||
|
href,
|
||||||
|
ng-click="backToEditorAfterRestore()",
|
||||||
|
) #{translate("file_restored_back_to_editor_btn")}
|
||||||
|
|
||||||
.loading-panel(ng-show="trackChanges.diff.loading")
|
.loading-panel(ng-show="trackChanges.diff.loading")
|
||||||
i.fa.fa-spin.fa-refresh
|
i.fa.fa-spin.fa-refresh
|
||||||
| #{translate("loading")}...
|
| #{translate("loading")}...
|
||||||
|
|
|
@ -81,6 +81,9 @@ define [
|
||||||
|
|
||||||
$scope.$watch "ui.leftMenuShown", (isOpen) ->
|
$scope.$watch "ui.leftMenuShown", (isOpen) ->
|
||||||
event_tracking.sendCountlyOnce "ide-open-left-menu-once" if isOpen
|
event_tracking.sendCountlyOnce "ide-open-left-menu-once" if isOpen
|
||||||
|
|
||||||
|
$scope.trackHover = (feature) ->
|
||||||
|
event_tracking.sendCountlyOnce "ide-hover-#{feature}-once"
|
||||||
# End of tracking code.
|
# End of tracking code.
|
||||||
|
|
||||||
window._ide = ide
|
window._ide = ide
|
||||||
|
|
|
@ -117,6 +117,9 @@ define [
|
||||||
diff.error = true
|
diff.error = true
|
||||||
else
|
else
|
||||||
diff.deleted = true
|
diff.deleted = true
|
||||||
|
diff.restoreInProgress = false
|
||||||
|
diff.restoreDeletedSuccess = false
|
||||||
|
diff.restoredDocNewId = null
|
||||||
|
|
||||||
restoreDeletedDoc: (doc) ->
|
restoreDeletedDoc: (doc) ->
|
||||||
url = "/project/#{@$scope.project_id}/doc/#{doc.id}/restore"
|
url = "/project/#{@$scope.project_id}/doc/#{doc.id}/restore"
|
||||||
|
|
|
@ -1,13 +1,21 @@
|
||||||
define [
|
define [
|
||||||
"base"
|
"base"
|
||||||
], (App) ->
|
], (App) ->
|
||||||
App.controller "TrackChangesDiffController", ($scope, $modal, ide) ->
|
App.controller "TrackChangesDiffController", ($scope, $modal, ide, event_tracking) ->
|
||||||
$scope.restoreDeletedDoc = () ->
|
$scope.restoreDeletedDoc = () ->
|
||||||
ide.trackChangesManager.restoreDeletedDoc(
|
event_tracking.sendCountly "track-changes-restore-deleted"
|
||||||
$scope.trackChanges.diff.doc
|
$scope.trackChanges.diff.restoreInProgress = true
|
||||||
)
|
ide.trackChangesManager
|
||||||
|
.restoreDeletedDoc(
|
||||||
|
$scope.trackChanges.diff.doc
|
||||||
|
)
|
||||||
|
.success (response) ->
|
||||||
|
$scope.trackChanges.diff.restoredDocNewId = response.doc_id
|
||||||
|
$scope.trackChanges.diff.restoreInProgress = false
|
||||||
|
$scope.trackChanges.diff.restoreDeletedSuccess = true
|
||||||
|
|
||||||
$scope.openRestoreDiffModal = () ->
|
$scope.openRestoreDiffModal = () ->
|
||||||
|
event_tracking.sendCountly "track-changes-restore-modal"
|
||||||
$modal.open {
|
$modal.open {
|
||||||
templateUrl: "trackChangesRestoreDiffModalTemplate"
|
templateUrl: "trackChangesRestoreDiffModalTemplate"
|
||||||
controller: "TrackChangesRestoreDiffModalController"
|
controller: "TrackChangesRestoreDiffModalController"
|
||||||
|
@ -15,13 +23,17 @@ define [
|
||||||
diff: () -> $scope.trackChanges.diff
|
diff: () -> $scope.trackChanges.diff
|
||||||
}
|
}
|
||||||
|
|
||||||
App.controller "TrackChangesRestoreDiffModalController", ($scope, $modalInstance, diff, ide) ->
|
$scope.backToEditorAfterRestore = () ->
|
||||||
|
ide.editorManager.openDoc({ id: $scope.trackChanges.diff.restoredDocNewId })
|
||||||
|
|
||||||
|
App.controller "TrackChangesRestoreDiffModalController", ($scope, $modalInstance, diff, ide, event_tracking) ->
|
||||||
$scope.state =
|
$scope.state =
|
||||||
inflight: false
|
inflight: false
|
||||||
|
|
||||||
$scope.diff = diff
|
$scope.diff = diff
|
||||||
|
|
||||||
$scope.restore = () ->
|
$scope.restore = () ->
|
||||||
|
event_tracking.sendCountly "track-changes-restored"
|
||||||
$scope.state.inflight = true
|
$scope.state.inflight = true
|
||||||
ide.trackChangesManager
|
ide.trackChangesManager
|
||||||
.restoreDiff(diff)
|
.restoreDiff(diff)
|
||||||
|
|
|
@ -78,7 +78,7 @@ define [
|
||||||
$scope.recalculateSelectedUpdates()
|
$scope.recalculateSelectedUpdates()
|
||||||
]
|
]
|
||||||
|
|
||||||
App.controller "TrackChangesListItemController", ["$scope", ($scope) ->
|
App.controller "TrackChangesListItemController", ["$scope", "event_tracking", ($scope, event_tracking) ->
|
||||||
$scope.$watch "update.selectedFrom", (selectedFrom, oldSelectedFrom) ->
|
$scope.$watch "update.selectedFrom", (selectedFrom, oldSelectedFrom) ->
|
||||||
if selectedFrom
|
if selectedFrom
|
||||||
for update in $scope.trackChanges.updates
|
for update in $scope.trackChanges.updates
|
||||||
|
@ -92,6 +92,7 @@ define [
|
||||||
$scope.recalculateSelectedUpdates()
|
$scope.recalculateSelectedUpdates()
|
||||||
|
|
||||||
$scope.select = () ->
|
$scope.select = () ->
|
||||||
|
event_tracking.sendCountly "track-changes-view-change"
|
||||||
$scope.update.selectedTo = true
|
$scope.update.selectedTo = true
|
||||||
$scope.update.selectedFrom = true
|
$scope.update.selectedFrom = true
|
||||||
|
|
||||||
|
|
|
@ -267,6 +267,10 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.diff-deleted {
|
||||||
|
padding-top: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
.editor-dark {
|
.editor-dark {
|
||||||
#trackChanges {
|
#trackChanges {
|
||||||
aside.change-list {
|
aside.change-list {
|
||||||
|
|
Loading…
Reference in a new issue