diff --git a/services/web/app/views/project/editor/header.jade b/services/web/app/views/project/editor/header.jade index 06ac949c04..8fef09c9c2 100644 --- a/services/web/app/views/project/editor/header.jade +++ b/services/web/app/views/project/editor/header.jade @@ -91,12 +91,14 @@ header.toolbar.toolbar-header(ng-cloak, ng-hide="state.loading") ng-if="permissions.admin", tooltip="#{translate('share')}", tooltip-placement="bottom", + ng-mouseenter="trackHover('share')" ng-click="openShareProjectModal()", ng-controller="ShareController" ) i.fa.fa-fw.fa-group a.btn.btn-full-height( href, + ng-mouseenter="trackHover('track-changes')" ng-click="toggleTrackChanges()", ng-class="{ active: (ui.view == 'track-changes') }" tooltip="#{translate('recent_changes')}", @@ -108,6 +110,7 @@ header.toolbar.toolbar-header(ng-cloak, ng-hide="state.loading") tooltip="#{translate('chat')}", tooltip-placement="bottom", ng-class="{ active: ui.chatOpen }", + ng-mouseenter="trackHover('chat')" ng-click="toggleChat()", ng-controller="ChatButtonController", ng-show="!anonymous" diff --git a/services/web/app/views/project/editor/track-changes.jade b/services/web/app/views/project/editor/track-changes.jade index dc7ce38708..de3c0e1730 100644 --- a/services/web/app/views/project/editor/track-changes.jade +++ b/services/web/app/views/project/editor/track-changes.jade @@ -143,15 +143,27 @@ div#trackChanges(ng-show="ui.view == 'track-changes'") navigate-highlights="true" ) .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 a.btn.btn-primary.btn-lg( href, - ng-click="restoreDeletedDoc()" + ng-click="restoreDeletedDoc()", + ng-disabled="trackChanges.diff.restoreInProgress" ) #{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") i.fa.fa-spin.fa-refresh |   #{translate("loading")}... diff --git a/services/web/public/coffee/ide.coffee b/services/web/public/coffee/ide.coffee index e62227c9be..f18260d7d4 100644 --- a/services/web/public/coffee/ide.coffee +++ b/services/web/public/coffee/ide.coffee @@ -81,6 +81,9 @@ define [ $scope.$watch "ui.leftMenuShown", (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. window._ide = ide diff --git a/services/web/public/coffee/ide/track-changes/TrackChangesManager.coffee b/services/web/public/coffee/ide/track-changes/TrackChangesManager.coffee index 5270754db7..ecd3b5a7f8 100644 --- a/services/web/public/coffee/ide/track-changes/TrackChangesManager.coffee +++ b/services/web/public/coffee/ide/track-changes/TrackChangesManager.coffee @@ -117,6 +117,9 @@ define [ diff.error = true else diff.deleted = true + diff.restoreInProgress = false + diff.restoreDeletedSuccess = false + diff.restoredDocNewId = null restoreDeletedDoc: (doc) -> url = "/project/#{@$scope.project_id}/doc/#{doc.id}/restore" diff --git a/services/web/public/coffee/ide/track-changes/controllers/TrackChangesDiffController.coffee b/services/web/public/coffee/ide/track-changes/controllers/TrackChangesDiffController.coffee index 16547a491a..77c2720a4f 100644 --- a/services/web/public/coffee/ide/track-changes/controllers/TrackChangesDiffController.coffee +++ b/services/web/public/coffee/ide/track-changes/controllers/TrackChangesDiffController.coffee @@ -1,13 +1,21 @@ define [ "base" ], (App) -> - App.controller "TrackChangesDiffController", ($scope, $modal, ide) -> + App.controller "TrackChangesDiffController", ($scope, $modal, ide, event_tracking) -> $scope.restoreDeletedDoc = () -> - ide.trackChangesManager.restoreDeletedDoc( - $scope.trackChanges.diff.doc - ) + event_tracking.sendCountly "track-changes-restore-deleted" + $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 = () -> + event_tracking.sendCountly "track-changes-restore-modal" $modal.open { templateUrl: "trackChangesRestoreDiffModalTemplate" controller: "TrackChangesRestoreDiffModalController" @@ -15,13 +23,17 @@ define [ 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 = inflight: false $scope.diff = diff $scope.restore = () -> + event_tracking.sendCountly "track-changes-restored" $scope.state.inflight = true ide.trackChangesManager .restoreDiff(diff) diff --git a/services/web/public/coffee/ide/track-changes/controllers/TrackChangesListController.coffee b/services/web/public/coffee/ide/track-changes/controllers/TrackChangesListController.coffee index 8172b00727..e0beb3ef4f 100644 --- a/services/web/public/coffee/ide/track-changes/controllers/TrackChangesListController.coffee +++ b/services/web/public/coffee/ide/track-changes/controllers/TrackChangesListController.coffee @@ -78,7 +78,7 @@ define [ $scope.recalculateSelectedUpdates() ] - App.controller "TrackChangesListItemController", ["$scope", ($scope) -> + App.controller "TrackChangesListItemController", ["$scope", "event_tracking", ($scope, event_tracking) -> $scope.$watch "update.selectedFrom", (selectedFrom, oldSelectedFrom) -> if selectedFrom for update in $scope.trackChanges.updates @@ -92,6 +92,7 @@ define [ $scope.recalculateSelectedUpdates() $scope.select = () -> + event_tracking.sendCountly "track-changes-view-change" $scope.update.selectedTo = true $scope.update.selectedFrom = true diff --git a/services/web/public/stylesheets/app/editor/track-changes.less b/services/web/public/stylesheets/app/editor/track-changes.less index b57e71ede0..6cf98e53eb 100644 --- a/services/web/public/stylesheets/app/editor/track-changes.less +++ b/services/web/public/stylesheets/app/editor/track-changes.less @@ -267,6 +267,10 @@ } } +.diff-deleted { + padding-top: 15px; +} + .editor-dark { #trackChanges { aside.change-list {