Merge pull request #294 from sharelatex/pr-track-feature-discovery

Track feature discovery
This commit is contained in:
Paulo Jorge Reis 2016-08-03 16:32:31 +01:00 committed by GitHub
commit cfe87a4388
7 changed files with 47 additions and 9 deletions

View file

@ -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"

View file

@ -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")}...

View file

@ -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

View file

@ -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"

View file

@ -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)

View file

@ -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

View file

@ -267,6 +267,10 @@
} }
} }
.diff-deleted {
padding-top: 15px;
}
.editor-dark { .editor-dark {
#trackChanges { #trackChanges {
aside.change-list { aside.change-list {