From e6898d64c953ae10f15e0ca552af42dfd5d6c54d Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Wed, 3 Aug 2016 12:17:19 +0100 Subject: [PATCH 1/4] Track hovering of header features. --- services/web/app/views/project/editor/header.jade | 3 +++ services/web/public/coffee/ide.coffee | 3 +++ .../public/coffee/ide/track-changes/TrackChangesManager.coffee | 1 + .../controllers/TrackChangesDiffController.coffee | 2 ++ .../controllers/TrackChangesListController.coffee | 1 + 5 files changed, 10 insertions(+) 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/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..270c69bc6a 100644 --- a/services/web/public/coffee/ide/track-changes/TrackChangesManager.coffee +++ b/services/web/public/coffee/ide/track-changes/TrackChangesManager.coffee @@ -119,6 +119,7 @@ define [ diff.deleted = true restoreDeletedDoc: (doc) -> + console.log("track-changes-restore-deleted") url = "/project/#{@$scope.project_id}/doc/#{doc.id}/restore" @ide.$http.post(url, name: doc.name, _csrf: window.csrfToken) 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..7e9354b887 100644 --- a/services/web/public/coffee/ide/track-changes/controllers/TrackChangesDiffController.coffee +++ b/services/web/public/coffee/ide/track-changes/controllers/TrackChangesDiffController.coffee @@ -8,6 +8,7 @@ define [ ) $scope.openRestoreDiffModal = () -> + console.log("track-changes-restore-modal") $modal.open { templateUrl: "trackChangesRestoreDiffModalTemplate" controller: "TrackChangesRestoreDiffModalController" @@ -22,6 +23,7 @@ define [ $scope.diff = diff $scope.restore = () -> + console.log("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..1b85035b28 100644 --- a/services/web/public/coffee/ide/track-changes/controllers/TrackChangesListController.coffee +++ b/services/web/public/coffee/ide/track-changes/controllers/TrackChangesListController.coffee @@ -92,6 +92,7 @@ define [ $scope.recalculateSelectedUpdates() $scope.select = () -> + console.log("track-changes-view") $scope.update.selectedTo = true $scope.update.selectedFrom = true From 216779fafe141977b9f621055bfed73b71b37eec Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Wed, 3 Aug 2016 12:36:42 +0100 Subject: [PATCH 2/4] Track-changes usage. --- .../coffee/ide/track-changes/TrackChangesManager.coffee | 1 - .../controllers/TrackChangesDiffController.coffee | 9 +++++---- .../controllers/TrackChangesListController.coffee | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/services/web/public/coffee/ide/track-changes/TrackChangesManager.coffee b/services/web/public/coffee/ide/track-changes/TrackChangesManager.coffee index 270c69bc6a..5270754db7 100644 --- a/services/web/public/coffee/ide/track-changes/TrackChangesManager.coffee +++ b/services/web/public/coffee/ide/track-changes/TrackChangesManager.coffee @@ -119,7 +119,6 @@ define [ diff.deleted = true restoreDeletedDoc: (doc) -> - console.log("track-changes-restore-deleted") url = "/project/#{@$scope.project_id}/doc/#{doc.id}/restore" @ide.$http.post(url, name: doc.name, _csrf: window.csrfToken) 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 7e9354b887..94044f8956 100644 --- a/services/web/public/coffee/ide/track-changes/controllers/TrackChangesDiffController.coffee +++ b/services/web/public/coffee/ide/track-changes/controllers/TrackChangesDiffController.coffee @@ -1,14 +1,15 @@ define [ "base" ], (App) -> - App.controller "TrackChangesDiffController", ($scope, $modal, ide) -> + App.controller "TrackChangesDiffController", ($scope, $modal, ide, event_tracking) -> $scope.restoreDeletedDoc = () -> + event_tracking.sendCountly "track-changes-restore-deleted" ide.trackChangesManager.restoreDeletedDoc( $scope.trackChanges.diff.doc ) $scope.openRestoreDiffModal = () -> - console.log("track-changes-restore-modal") + event_tracking.sendCountly "track-changes-restore-modal" $modal.open { templateUrl: "trackChangesRestoreDiffModalTemplate" controller: "TrackChangesRestoreDiffModalController" @@ -16,14 +17,14 @@ define [ diff: () -> $scope.trackChanges.diff } - App.controller "TrackChangesRestoreDiffModalController", ($scope, $modalInstance, diff, ide) -> + App.controller "TrackChangesRestoreDiffModalController", ($scope, $modalInstance, diff, ide, event_tracking) -> $scope.state = inflight: false $scope.diff = diff $scope.restore = () -> - console.log("track-changes-restored") + 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 1b85035b28..88ab0053ed 100644 --- a/services/web/public/coffee/ide/track-changes/controllers/TrackChangesListController.coffee +++ b/services/web/public/coffee/ide/track-changes/controllers/TrackChangesListController.coffee @@ -2,7 +2,7 @@ define [ "base" ], (App) -> - App.controller "TrackChangesPremiumPopup", ($scope, ide, sixpack)-> + App.controller "TrackChangesPremiumPopup", ($scope, ide, sixpack, event_tracking)-> $scope.$watch "ui.view", -> if $scope.ui.view == "track-changes" if $scope.project?.features?.versioning @@ -92,7 +92,7 @@ define [ $scope.recalculateSelectedUpdates() $scope.select = () -> - console.log("track-changes-view") + event_tracking.sendCountly "track-changes-view-change" $scope.update.selectedTo = true $scope.update.selectedFrom = true From cf5c8e27e1627da080d33b57ea017da766151719 Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Wed, 3 Aug 2016 16:05:19 +0100 Subject: [PATCH 3/4] UI fix - do not allow multiple clicks to restore a deleted file. --- .../views/project/editor/track-changes.jade | 18 +++++++++++++++--- .../track-changes/TrackChangesManager.coffee | 3 +++ .../TrackChangesDiffController.coffee | 15 ++++++++++++--- .../TrackChangesListController.coffee | 4 ++-- .../stylesheets/app/editor/track-changes.less | 4 ++++ 5 files changed, 36 insertions(+), 8 deletions(-) diff --git a/services/web/app/views/project/editor/track-changes.jade b/services/web/app/views/project/editor/track-changes.jade index dc7ce38708..684b89e814 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 Your file ({{ trackChanges.diff.doc.name }}) has been recovered. + p.text-serif You can go back to the editor and work on it again. + p + a.btn.btn-default( + href, + ng-click="backToEditorAfterRestore()", + ) Back to editor + .loading-panel(ng-show="trackChanges.diff.loading") i.fa.fa-spin.fa-refresh |   #{translate("loading")}... 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 94044f8956..77c2720a4f 100644 --- a/services/web/public/coffee/ide/track-changes/controllers/TrackChangesDiffController.coffee +++ b/services/web/public/coffee/ide/track-changes/controllers/TrackChangesDiffController.coffee @@ -4,9 +4,15 @@ define [ App.controller "TrackChangesDiffController", ($scope, $modal, ide, event_tracking) -> $scope.restoreDeletedDoc = () -> event_tracking.sendCountly "track-changes-restore-deleted" - ide.trackChangesManager.restoreDeletedDoc( - $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 = () -> event_tracking.sendCountly "track-changes-restore-modal" @@ -17,6 +23,9 @@ define [ diff: () -> $scope.trackChanges.diff } + $scope.backToEditorAfterRestore = () -> + ide.editorManager.openDoc({ id: $scope.trackChanges.diff.restoredDocNewId }) + App.controller "TrackChangesRestoreDiffModalController", ($scope, $modalInstance, diff, ide, event_tracking) -> $scope.state = inflight: false 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 88ab0053ed..e0beb3ef4f 100644 --- a/services/web/public/coffee/ide/track-changes/controllers/TrackChangesListController.coffee +++ b/services/web/public/coffee/ide/track-changes/controllers/TrackChangesListController.coffee @@ -2,7 +2,7 @@ define [ "base" ], (App) -> - App.controller "TrackChangesPremiumPopup", ($scope, ide, sixpack, event_tracking)-> + App.controller "TrackChangesPremiumPopup", ($scope, ide, sixpack)-> $scope.$watch "ui.view", -> if $scope.ui.view == "track-changes" if $scope.project?.features?.versioning @@ -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 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 { From 73f115fc5781e041871a6556b07098c134bf0b21 Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Wed, 3 Aug 2016 16:09:45 +0100 Subject: [PATCH 4/4] Add i18n keys. --- services/web/app/views/project/editor/track-changes.jade | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/services/web/app/views/project/editor/track-changes.jade b/services/web/app/views/project/editor/track-changes.jade index 684b89e814..de3c0e1730 100644 --- a/services/web/app/views/project/editor/track-changes.jade +++ b/services/web/app/views/project/editor/track-changes.jade @@ -156,13 +156,13 @@ div#trackChanges(ng-show="ui.view == 'track-changes'") .diff-deleted.text-centered( ng-show="trackChanges.diff.deleted && trackChanges.diff.restoreDeletedSuccess" ) - p.text-serif Your file ({{ trackChanges.diff.doc.name }}) has been recovered. - p.text-serif You can go back to the editor and work on it again. + 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()", - ) Back to editor + ) #{translate("file_restored_back_to_editor_btn")} .loading-panel(ng-show="trackChanges.diff.loading") i.fa.fa-spin.fa-refresh