From 96a129a8600a52be5b8ef8ef3df6ae17bf84446f Mon Sep 17 00:00:00 2001 From: Hayden Faulds Date: Wed, 27 Sep 2017 10:54:06 +0100 Subject: [PATCH 01/29] show user.name in history if available --- .../ide/history/controllers/HistoryListController.coffee | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/web/public/coffee/ide/history/controllers/HistoryListController.coffee b/services/web/public/coffee/ide/history/controllers/HistoryListController.coffee index d3ca0c50f2..f6e7c724c3 100644 --- a/services/web/public/coffee/ide/history/controllers/HistoryListController.coffee +++ b/services/web/public/coffee/ide/history/controllers/HistoryListController.coffee @@ -115,7 +115,10 @@ define [ $scope.resetHoverState() $scope.displayName = (user) -> - full_name = "#{user.first_name} #{user.last_name}" + if user.name? + full_name = user.name + else + full_name = "#{user.first_name} #{user.last_name}" fallback_name = "Unknown" if !user? fallback_name From afff8ddf29c524e80e9f4c6ceddd5824b6a42f6b Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Tue, 26 Sep 2017 14:50:45 +0100 Subject: [PATCH 02/29] Pass (dummy) autocompile onboarding --- .../app/coffee/Features/Project/ProjectController.coffee | 7 +++++-- services/web/app/views/project/editor.pug | 1 + services/web/public/coffee/ide.coffee | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/services/web/app/coffee/Features/Project/ProjectController.coffee b/services/web/app/coffee/Features/Project/ProjectController.coffee index 84fa89ea37..ef5df22f28 100644 --- a/services/web/app/coffee/Features/Project/ProjectController.coffee +++ b/services/web/app/coffee/Features/Project/ProjectController.coffee @@ -248,6 +248,8 @@ module.exports = ProjectController = return cb(null, false) else return cb(null, true) + showAutoCompileOnboarding: (cb) -> + return cb(null, true) }, (err, results)-> if err? logger.err err:err, "error getting details for project page" @@ -255,9 +257,9 @@ module.exports = ProjectController = project = results.project user = results.user subscription = results.subscription - { showTrackChangesOnboarding, showPerUserTCNotice } = results + { showTrackChangesOnboarding, showPerUserTCNotice, showAutoCompileOnboarding } = results - daysSinceLastUpdated = (new Date() - project.lastUpdated) /86400000 + daysSinceLastUpdated = (new Date() - project.lastUpdated) / 86400000 logger.log project_id:project_id, daysSinceLastUpdated:daysSinceLastUpdated, "got db results for loading editor" AuthorizationManager.getPrivilegeLevelForProject user_id, project_id, (error, privilegeLevel)-> @@ -300,6 +302,7 @@ module.exports = ProjectController = trackChangesState: project.track_changes showTrackChangesOnboarding: !!showTrackChangesOnboarding showPerUserTCNotice: !!showPerUserTCNotice + showAutoCompileOnboarding: !!showAutoCompileOnboarding privilegeLevel: privilegeLevel chatUrl: Settings.apis.chat.url anonymous: anonymous diff --git a/services/web/app/views/project/editor.pug b/services/web/app/views/project/editor.pug index fb92510917..1065941815 100644 --- a/services/web/app/views/project/editor.pug +++ b/services/web/app/views/project/editor.pug @@ -122,6 +122,7 @@ block requirejs window.trackChangesState = data.trackChangesState; window.showTrackChangesOnboarding = #{!!showTrackChangesOnboarding}; window.showPerUserTCNotice = #{!!showPerUserTCNotice}; + window.showAutoCompileOnboarding = #{!!showAutoCompileOnboarding} window.wikiEnabled = #{!!(settings.apis.wiki && settings.apis.wiki.url)}; window.requirejs = { "paths" : { diff --git a/services/web/public/coffee/ide.coffee b/services/web/public/coffee/ide.coffee index e317b355ef..af7e710561 100644 --- a/services/web/public/coffee/ide.coffee +++ b/services/web/public/coffee/ide.coffee @@ -73,7 +73,8 @@ define [ pdfLayout: 'sideBySide' pdfHidden: false, reviewPanelOpen: localStorage("ui.reviewPanelOpen.#{window.project_id}") - miniReviewPanelVisible: false + miniReviewPanelVisible: false, + showAutoCompileOnboarding: window.user.betaProgram and window.showAutoCompileOnboarding } $scope.user = window.user From 8d2a451b44529b9bb38ba6e989f5e4970f88e509 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Wed, 27 Sep 2017 12:12:20 +0100 Subject: [PATCH 03/29] First pass at autocompile onboarding popover --- .../web/app/views/project/editor/editor.pug | 11 ++++++++++- .../autocompile/setting-dropdown.png | Bin 0 -> 22577 bytes .../app/editor/feature-onboarding.less | 17 ++++++++++++++++- 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 services/web/public/img/onboarding/autocompile/setting-dropdown.png diff --git a/services/web/app/views/project/editor/editor.pug b/services/web/app/views/project/editor/editor.pug index 6007f2e0be..3c3efd63a5 100644 --- a/services/web/app/views/project/editor/editor.pug +++ b/services/web/app/views/project/editor/editor.pug @@ -94,4 +94,13 @@ div.full-size( ng-show="ui.view == 'pdf'" ) include ./pdf - + +.onboarding__autocompile.popover.right + .arrow + .popover-inner + h3.popover-title Auto Compile + .popover-content + p Try out the new auto compile setting! + img(src="/img/onboarding/autocompile/setting-dropdown.png" width="100%") + p When enabled, your project will be compiled after you finish your sentence. + button.btn.btn-default.btn-block Got it diff --git a/services/web/public/img/onboarding/autocompile/setting-dropdown.png b/services/web/public/img/onboarding/autocompile/setting-dropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..cc0da8f7a5820bf06f1ea94351152c26fdd3d11b GIT binary patch literal 22577 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 literal 0 HcmV?d00001 diff --git a/services/web/public/stylesheets/app/editor/feature-onboarding.less b/services/web/public/stylesheets/app/editor/feature-onboarding.less index 7289ed4fb7..f1098875aa 100644 --- a/services/web/public/stylesheets/app/editor/feature-onboarding.less +++ b/services/web/public/stylesheets/app/editor/feature-onboarding.less @@ -98,4 +98,19 @@ a.feat-onboard-dismiss { color: #FFF; opacity: 1; } -} \ No newline at end of file +} + +.onboarding__autocompile { + display: block; + top: 10px; + left: 694px; + + .arrow { + top: 17px !important; + left: -10px !important; + + &:after { + border-right-color: #f7f7f7 !important; + } + } +} From 316cf0722511f09a8f8a29b8f9b3c9e251ef59f4 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Wed, 27 Sep 2017 16:35:28 +0100 Subject: [PATCH 04/29] Add AutoCompileOnboardingController --- services/web/app/views/project/editor/editor.pug | 2 +- services/web/public/coffee/ide.coffee | 3 ++- .../coffee/ide/AutoCompileOnboardingController.coffee | 7 +++++++ 3 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 services/web/public/coffee/ide/AutoCompileOnboardingController.coffee diff --git a/services/web/app/views/project/editor/editor.pug b/services/web/app/views/project/editor/editor.pug index 3c3efd63a5..c68b889d6d 100644 --- a/services/web/app/views/project/editor/editor.pug +++ b/services/web/app/views/project/editor/editor.pug @@ -95,7 +95,7 @@ div.full-size( ) include ./pdf -.onboarding__autocompile.popover.right +.onboarding__autocompile.popover.right(ng-controller="AutoCompileOnboardingController") .arrow .popover-inner h3.popover-title Auto Compile diff --git a/services/web/public/coffee/ide.coffee b/services/web/public/coffee/ide.coffee index af7e710561..5fc208ce87 100644 --- a/services/web/public/coffee/ide.coffee +++ b/services/web/public/coffee/ide.coffee @@ -12,7 +12,8 @@ define [ "ide/labels/LabelsManager" "ide/review-panel/ReviewPanelManager" "ide/SafariScrollPatcher" - "ide/FeatureOnboardingController" + "ide/FeatureOnboardingController", + "ide/AutoCompileOnboardingController", "ide/settings/index" "ide/share/index" "ide/chat/index" diff --git a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee new file mode 100644 index 0000000000..67110d59c9 --- /dev/null +++ b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee @@ -0,0 +1,7 @@ +define [ + "base" +], (App) -> + App.controller "AutoCompileOnboardingController", ($scope) -> + unsub = $scope.$on "pdf.recompile", () -> + console.log('recompiling') + unsub() \ No newline at end of file From 9386ddf4a9a5f14f9c3147813f54ad70a77aa1f7 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Wed, 27 Sep 2017 17:08:58 +0100 Subject: [PATCH 05/29] Only show autocompile onboarding when first manual compile is run --- services/web/app/views/project/editor/editor.pug | 6 +++++- services/web/public/coffee/ide.coffee | 3 +++ .../public/coffee/ide/pdf/controllers/PdfController.coffee | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/services/web/app/views/project/editor/editor.pug b/services/web/app/views/project/editor/editor.pug index c68b889d6d..daac701f31 100644 --- a/services/web/app/views/project/editor/editor.pug +++ b/services/web/app/views/project/editor/editor.pug @@ -95,7 +95,11 @@ div.full-size( ) include ./pdf -.onboarding__autocompile.popover.right(ng-controller="AutoCompileOnboardingController") + +.popover.right.onboarding__autocompile( + ng-controller="AutoCompileOnboardingController" + ng-if="onboarding.autoCompile == 'show'" +) .arrow .popover-inner h3.popover-title Auto Compile diff --git a/services/web/public/coffee/ide.coffee b/services/web/public/coffee/ide.coffee index 5fc208ce87..6e4061081c 100644 --- a/services/web/public/coffee/ide.coffee +++ b/services/web/public/coffee/ide.coffee @@ -77,6 +77,9 @@ define [ miniReviewPanelVisible: false, showAutoCompileOnboarding: window.user.betaProgram and window.showAutoCompileOnboarding } + $scope.onboarding = { + autoCompile: 'unseen' + } $scope.user = window.user $scope.$watch "project.features.trackChangesVisible", (visible) -> diff --git a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee index 73ae9a4380..1e0403bb76 100644 --- a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee +++ b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee @@ -412,6 +412,9 @@ define [ $scope.recompile = (options = {}) -> return if $scope.pdf.compiling + if !options.isAutoCompile and $scope.onboarding.autoCompile == 'unseen' + $scope.onboarding.autoCompile = 'show' + event_tracking.sendMBSampled "editor-recompile-sampled", options $scope.pdf.compiling = true From 3259b871c0063cc6c489897ad537fef4ea36c1f8 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Wed, 27 Sep 2017 17:20:06 +0100 Subject: [PATCH 06/29] Dismiss autocompile onboarding --- services/web/app/views/project/editor/editor.pug | 3 ++- .../public/coffee/ide/AutoCompileOnboardingController.coffee | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/services/web/app/views/project/editor/editor.pug b/services/web/app/views/project/editor/editor.pug index daac701f31..68230e018e 100644 --- a/services/web/app/views/project/editor/editor.pug +++ b/services/web/app/views/project/editor/editor.pug @@ -107,4 +107,5 @@ div.full-size( p Try out the new auto compile setting! img(src="/img/onboarding/autocompile/setting-dropdown.png" width="100%") p When enabled, your project will be compiled after you finish your sentence. - button.btn.btn-default.btn-block Got it + button.btn.btn-default.btn-block(ng-click="dismiss()") + | Got it diff --git a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee index 67110d59c9..815825e750 100644 --- a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee +++ b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee @@ -2,6 +2,5 @@ define [ "base" ], (App) -> App.controller "AutoCompileOnboardingController", ($scope) -> - unsub = $scope.$on "pdf.recompile", () -> - console.log('recompiling') - unsub() \ No newline at end of file + $scope.dismiss = () -> + $scope.onboarding.autoCompile = 'dismissed' \ No newline at end of file From 7e407621e9ac094d0c7e9fa779597db792ae0df3 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Wed, 27 Sep 2017 17:45:28 +0100 Subject: [PATCH 07/29] Position onboarding popover after measuring position --- services/web/app/views/project/editor/pdf.pug | 2 +- .../coffee/ide/AutoCompileOnboardingController.coffee | 7 +++++++ .../public/stylesheets/app/editor/feature-onboarding.less | 1 - 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/services/web/app/views/project/editor/pdf.pug b/services/web/app/views/project/editor/pdf.pug index 065dd0cec0..536eefeb5b 100644 --- a/services/web/app/views/project/editor/pdf.pug +++ b/services/web/app/views/project/editor/pdf.pug @@ -1,6 +1,6 @@ div.full-size.pdf(ng-controller="PdfController") .toolbar.toolbar-tall - .btn-group( + .btn-group#recompile( dropdown, tooltip-html="'"+translate('recompile_pdf')+" ({{modifierKey}} + Enter)'" tooltip-class="keyboard-tooltip" diff --git a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee index 815825e750..08d7674dcd 100644 --- a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee +++ b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee @@ -2,5 +2,12 @@ define [ "base" ], (App) -> App.controller "AutoCompileOnboardingController", ($scope) -> + recompileBtn = angular.element('#recompile') + { top, left } = recompileBtn.offset() + angular.element('.onboarding__autocompile').offset({ + top: top, + left: left + 170 + }) + $scope.dismiss = () -> $scope.onboarding.autoCompile = 'dismissed' \ No newline at end of file diff --git a/services/web/public/stylesheets/app/editor/feature-onboarding.less b/services/web/public/stylesheets/app/editor/feature-onboarding.less index f1098875aa..cd4b6f3b3a 100644 --- a/services/web/public/stylesheets/app/editor/feature-onboarding.less +++ b/services/web/public/stylesheets/app/editor/feature-onboarding.less @@ -103,7 +103,6 @@ a.feat-onboard-dismiss { .onboarding__autocompile { display: block; top: 10px; - left: 694px; .arrow { top: 17px !important; From fcc2db9ea7c3dc6723632e3839fbfed46231f3f0 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Thu, 28 Sep 2017 11:03:54 +0100 Subject: [PATCH 08/29] Use width of button instead of hardcoded --- services/web/app/views/project/editor/editor.pug | 1 - .../public/coffee/ide/AutoCompileOnboardingController.coffee | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/services/web/app/views/project/editor/editor.pug b/services/web/app/views/project/editor/editor.pug index 68230e018e..26602de1b1 100644 --- a/services/web/app/views/project/editor/editor.pug +++ b/services/web/app/views/project/editor/editor.pug @@ -95,7 +95,6 @@ div.full-size( ) include ./pdf - .popover.right.onboarding__autocompile( ng-controller="AutoCompileOnboardingController" ng-if="onboarding.autoCompile == 'show'" diff --git a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee index 08d7674dcd..184ac05e51 100644 --- a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee +++ b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee @@ -6,7 +6,7 @@ define [ { top, left } = recompileBtn.offset() angular.element('.onboarding__autocompile').offset({ top: top, - left: left + 170 + left: left + recompileBtn.width() + 11 # Width of arrow }) $scope.dismiss = () -> From 464c7c79d8bfa0903c1b17fb99894673e2eca0f7 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Thu, 28 Sep 2017 11:31:55 +0100 Subject: [PATCH 09/29] Keep track of pdf panel width --- services/web/public/coffee/ide.coffee | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/web/public/coffee/ide.coffee b/services/web/public/coffee/ide.coffee index 6e4061081c..b082ed0413 100644 --- a/services/web/public/coffee/ide.coffee +++ b/services/web/public/coffee/ide.coffee @@ -73,6 +73,7 @@ define [ chatOpen: false pdfLayout: 'sideBySide' pdfHidden: false, + pdfWidth: 0, reviewPanelOpen: localStorage("ui.reviewPanelOpen.#{window.project_id}") miniReviewPanelVisible: false, showAutoCompileOnboarding: window.user.betaProgram and window.showAutoCompileOnboarding @@ -107,6 +108,7 @@ define [ $scope.$on "layout:pdf:resize", (_, layoutState) -> $scope.ui.pdfHidden = layoutState.east.initClosed + $scope.ui.pdfWidth = layoutState.east.size # Tracking code. $scope.$watch "ui.view", (newView, oldView) -> From 2d5a61f5b6d7facc5c1ce422e567376c5a850d7c Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Thu, 28 Sep 2017 11:32:38 +0100 Subject: [PATCH 10/29] Determine placement of popover based on width of pdf panel --- .../web/app/views/project/editor/editor.pug | 21 ++++++++++--------- .../AutoCompileOnboardingController.coffee | 19 +++++++++++++---- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/services/web/app/views/project/editor/editor.pug b/services/web/app/views/project/editor/editor.pug index 26602de1b1..ccda61229d 100644 --- a/services/web/app/views/project/editor/editor.pug +++ b/services/web/app/views/project/editor/editor.pug @@ -95,16 +95,17 @@ div.full-size( ) include ./pdf -.popover.right.onboarding__autocompile( +div( ng-controller="AutoCompileOnboardingController" ng-if="onboarding.autoCompile == 'show'" ) - .arrow - .popover-inner - h3.popover-title Auto Compile - .popover-content - p Try out the new auto compile setting! - img(src="/img/onboarding/autocompile/setting-dropdown.png" width="100%") - p When enabled, your project will be compiled after you finish your sentence. - button.btn.btn-default.btn-block(ng-click="dismiss()") - | Got it + .onboarding__autocompile.popover(ng-class="placement") + .arrow + .popover-inner + h3.popover-title Auto Compile + .popover-content + p Try out the new auto compile setting! + img(src="/img/onboarding/autocompile/setting-dropdown.png" width="100%") + p When enabled, your project will be compiled after you finish your sentence. + button.btn.btn-default.btn-block(ng-click="dismiss()") + | Got it diff --git a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee index 184ac05e51..3131661315 100644 --- a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee +++ b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee @@ -3,11 +3,22 @@ define [ ], (App) -> App.controller "AutoCompileOnboardingController", ($scope) -> recompileBtn = angular.element('#recompile') + popover = angular.element('.onboarding__autocompile') { top, left } = recompileBtn.offset() - angular.element('.onboarding__autocompile').offset({ - top: top, - left: left + recompileBtn.width() + 11 # Width of arrow - }) + + if $scope.ui.pdfWidth < 475 + $scope.placement = 'left' + popover.offset({ + top: top, + left: left - popover.width() - 11 # Width of arrow + }) + else + $scope.placement = 'right' + angular.element('.onboarding__autocompile').offset({ + top: top, + left: left + recompileBtn.width() + 11 # Width of arrow + }) + $scope.dismiss = () -> $scope.onboarding.autoCompile = 'dismissed' \ No newline at end of file From e78ee69c04cb37535fc21bf25bf175b7fa29c3f4 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Thu, 28 Sep 2017 11:55:20 +0100 Subject: [PATCH 11/29] Fix positioning & styling of arrows --- .../coffee/ide/AutoCompileOnboardingController.coffee | 5 ++--- .../stylesheets/app/editor/feature-onboarding.less | 11 +++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee index 3131661315..50852d8093 100644 --- a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee +++ b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee @@ -10,15 +10,14 @@ define [ $scope.placement = 'left' popover.offset({ top: top, - left: left - popover.width() - 11 # Width of arrow + left: left - popover.width() }) else $scope.placement = 'right' angular.element('.onboarding__autocompile').offset({ top: top, - left: left + recompileBtn.width() + 11 # Width of arrow + left: left + recompileBtn.width() }) - $scope.dismiss = () -> $scope.onboarding.autoCompile = 'dismissed' \ No newline at end of file diff --git a/services/web/public/stylesheets/app/editor/feature-onboarding.less b/services/web/public/stylesheets/app/editor/feature-onboarding.less index cd4b6f3b3a..134001b212 100644 --- a/services/web/public/stylesheets/app/editor/feature-onboarding.less +++ b/services/web/public/stylesheets/app/editor/feature-onboarding.less @@ -106,10 +106,21 @@ a.feat-onboard-dismiss { .arrow { top: 17px !important; + } + + &.right > .arrow { left: -10px !important; &:after { border-right-color: #f7f7f7 !important; } } + + &.left > .arrow { + right: -10px !important; + + &:after { + border-left-color: #f7f7f7 !important; + } + } } From d9af9e723b83b1c7709842167749095026a9ac55 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Thu, 28 Sep 2017 12:12:48 +0100 Subject: [PATCH 12/29] Clean up popover wrapper --- .../web/app/views/project/editor/editor.pug | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/services/web/app/views/project/editor/editor.pug b/services/web/app/views/project/editor/editor.pug index ccda61229d..f9621987b8 100644 --- a/services/web/app/views/project/editor/editor.pug +++ b/services/web/app/views/project/editor/editor.pug @@ -95,17 +95,17 @@ div.full-size( ) include ./pdf -div( +.onboarding__autocompile.popover( ng-controller="AutoCompileOnboardingController" ng-if="onboarding.autoCompile == 'show'" + ng-class="placement" ) - .onboarding__autocompile.popover(ng-class="placement") - .arrow - .popover-inner - h3.popover-title Auto Compile - .popover-content - p Try out the new auto compile setting! - img(src="/img/onboarding/autocompile/setting-dropdown.png" width="100%") - p When enabled, your project will be compiled after you finish your sentence. - button.btn.btn-default.btn-block(ng-click="dismiss()") - | Got it + .arrow + .popover-inner + h3.popover-title Auto Compile + .popover-content + p Try out the new auto compile setting! + img(src="/img/onboarding/autocompile/setting-dropdown.png" width="100%") + p When enabled, your project will be compiled after you finish your sentence. + button.btn.btn-default.btn-block(ng-click="dismiss()") + | Got it From 199e85e4a98ff181588b0c17e9def1678bedb879 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Thu, 28 Sep 2017 12:16:02 +0100 Subject: [PATCH 13/29] Comment --- .../public/coffee/ide/AutoCompileOnboardingController.coffee | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee index 50852d8093..37b52c754f 100644 --- a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee +++ b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee @@ -6,6 +6,8 @@ define [ popover = angular.element('.onboarding__autocompile') { top, left } = recompileBtn.offset() + # If pdf panel smaller than recompile button + popover, show to left. + # Otherwise show to right if $scope.ui.pdfWidth < 475 $scope.placement = 'left' popover.offset({ From 39c8a6a1939d2b2da75a1fb61c35df382331a552 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Thu, 28 Sep 2017 12:27:29 +0100 Subject: [PATCH 14/29] Send analytics data when onboarding dismissed --- .../public/coffee/ide/AutoCompileOnboardingController.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee index 37b52c754f..5dd11d2230 100644 --- a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee +++ b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee @@ -22,4 +22,5 @@ define [ }) $scope.dismiss = () -> - $scope.onboarding.autoCompile = 'dismissed' \ No newline at end of file + $scope.onboarding.autoCompile = 'dismissed' + event_tracking.sendMB "shown-autocompile-onboarding" From e95778c703f656ee8d0183004809be229d7017e7 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Thu, 28 Sep 2017 13:02:16 +0100 Subject: [PATCH 15/29] Fix event tracking not being injecting --- .../public/coffee/ide/AutoCompileOnboardingController.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee index 5dd11d2230..aecfcb395a 100644 --- a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee +++ b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee @@ -1,7 +1,7 @@ define [ "base" ], (App) -> - App.controller "AutoCompileOnboardingController", ($scope) -> + App.controller "AutoCompileOnboardingController", ($scope, event_tracking) -> recompileBtn = angular.element('#recompile') popover = angular.element('.onboarding__autocompile') { top, left } = recompileBtn.offset() From f2c0bf55156c02a0444b277e661a6352306bc658 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Thu, 28 Sep 2017 13:04:18 +0100 Subject: [PATCH 16/29] First pass at getting onboarding shown event from analytics --- .../coffee/Features/Project/ProjectController.coffee | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/services/web/app/coffee/Features/Project/ProjectController.coffee b/services/web/app/coffee/Features/Project/ProjectController.coffee index ef5df22f28..479a57a00c 100644 --- a/services/web/app/coffee/Features/Project/ProjectController.coffee +++ b/services/web/app/coffee/Features/Project/ProjectController.coffee @@ -249,7 +249,16 @@ module.exports = ProjectController = else return cb(null, true) showAutoCompileOnboarding: (cb) -> - return cb(null, true) + cb = underscore.once(cb) + if (!user_id?) + return cb() + AnalyticsManager.getLastOccurance user_id, "shown-autocompile-onboarding", (error, event) -> + if error? + return cb(null, false) + else if event? + return cb(null, false) + else + return cb(null, true) }, (err, results)-> if err? logger.err err:err, "error getting details for project page" From 3e2388a7dee5b975fc528b7f03448d98c5687fe7 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Thu, 28 Sep 2017 13:57:15 +0100 Subject: [PATCH 17/29] Don't show autocompile for users signed up after release date --- .../app/coffee/Features/Project/ProjectController.coffee | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/services/web/app/coffee/Features/Project/ProjectController.coffee b/services/web/app/coffee/Features/Project/ProjectController.coffee index 479a57a00c..7c0328fe17 100644 --- a/services/web/app/coffee/Features/Project/ProjectController.coffee +++ b/services/web/app/coffee/Features/Project/ProjectController.coffee @@ -250,9 +250,16 @@ module.exports = ProjectController = return cb(null, true) showAutoCompileOnboarding: (cb) -> cb = underscore.once(cb) - if (!user_id?) + if !user_id? return cb() + timestamp = user_id.toString().substring(0,8) + userSignupDate = new Date( parseInt( timestamp, 16 ) * 1000 ) + if userSignupDate > new Date("2017-10-05") + # Don't show for users who registered after it was released + return cb(null, false) + timeout = setTimeout cb, 500 AnalyticsManager.getLastOccurance user_id, "shown-autocompile-onboarding", (error, event) -> + clearTimeout timeout if error? return cb(null, false) else if event? From e41a48de7253ee277b73f43a6918dba6575bfa3e Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Thu, 28 Sep 2017 14:01:03 +0100 Subject: [PATCH 18/29] Conditionally disable text-shadow on chrome v61 and v62. --- services/web/public/coffee/ide.coffee | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/services/web/public/coffee/ide.coffee b/services/web/public/coffee/ide.coffee index e317b355ef..357b45224e 100644 --- a/services/web/public/coffee/ide.coffee +++ b/services/web/public/coffee/ide.coffee @@ -185,6 +185,21 @@ define [ if ide.browserIsSafari ide.safariScrollPatcher = new SafariScrollPatcher($scope) + # Fix Chrome 61 and 62 text-shadow rendering + browserIsChrome61or62 = false + try + chromeVersion = parseFloat(navigator.userAgent.split(" Chrome/")[1]) || null; + browserIsChrome61or62 = ( + chromeVersion? && + (chromeVersion == 61 || chromeVersion == 62) + ) + console.log chromeVersion, browserIsChrome61or62 + if browserIsChrome61or62 + document.styleSheets[0].insertRule(".ace_editor.ace_autocomplete .ace_completion-highlight { text-shadow: none !important; }", 1) + catch err + console.error err + + # User can append ?ft=somefeature to url to activate a feature toggle ide.featureToggle = location?.search?.match(/^\?ft=(\w+)$/)?[1] From 65d38aa7f7b2df09529613abc74b49d7add4cd00 Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Thu, 28 Sep 2017 14:09:37 +0100 Subject: [PATCH 19/29] Remove debug line. --- services/web/public/coffee/ide.coffee | 1 - 1 file changed, 1 deletion(-) diff --git a/services/web/public/coffee/ide.coffee b/services/web/public/coffee/ide.coffee index 357b45224e..06201bd0b1 100644 --- a/services/web/public/coffee/ide.coffee +++ b/services/web/public/coffee/ide.coffee @@ -193,7 +193,6 @@ define [ chromeVersion? && (chromeVersion == 61 || chromeVersion == 62) ) - console.log chromeVersion, browserIsChrome61or62 if browserIsChrome61or62 document.styleSheets[0].insertRule(".ace_editor.ace_autocomplete .ace_completion-highlight { text-shadow: none !important; }", 1) catch err From 8cd1f8c7ac595421e02d935c91c29382bc4da57e Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Thu, 28 Sep 2017 14:13:51 +0100 Subject: [PATCH 20/29] Simplify logic for showing autocompile onboarding --- services/web/public/coffee/ide.coffee | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/services/web/public/coffee/ide.coffee b/services/web/public/coffee/ide.coffee index b082ed0413..b3d83e7ee5 100644 --- a/services/web/public/coffee/ide.coffee +++ b/services/web/public/coffee/ide.coffee @@ -74,12 +74,11 @@ define [ pdfLayout: 'sideBySide' pdfHidden: false, pdfWidth: 0, - reviewPanelOpen: localStorage("ui.reviewPanelOpen.#{window.project_id}") + reviewPanelOpen: localStorage("ui.reviewPanelOpen.#{window.project_id}"), miniReviewPanelVisible: false, - showAutoCompileOnboarding: window.user.betaProgram and window.showAutoCompileOnboarding } $scope.onboarding = { - autoCompile: 'unseen' + autoCompile: if window.user.betaProgram and window.showAutoCompileOnboarding then 'unseen' else 'dismissed' } $scope.user = window.user From 3c9c94f3c20c7376110eab43f8a3f171db150df5 Mon Sep 17 00:00:00 2001 From: Joe Green Date: Fri, 29 Sep 2017 10:37:39 +0100 Subject: [PATCH 21/29] release number (#32) Replace release number in pug template for sentry --- services/web/Jenkinsfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/web/Jenkinsfile b/services/web/Jenkinsfile index 93f0a31008..6421174e68 100644 --- a/services/web/Jenkinsfile +++ b/services/web/Jenkinsfile @@ -74,6 +74,8 @@ pipeline { } steps { sh 'node_modules/.bin/grunt compile --verbose' + // replace the build number placeholder for sentry + sh 'node_modules/.bin/grunt version' } } From dd7e6f0612a8de51fc795918490ccf63b926d45b Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Fri, 29 Sep 2017 10:49:45 +0100 Subject: [PATCH 22/29] Make class names more consistent & switch to JS targeting through id --- services/web/app/views/project/editor/editor.pug | 2 +- .../public/coffee/ide/AutoCompileOnboardingController.coffee | 2 +- .../web/public/stylesheets/app/editor/feature-onboarding.less | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/services/web/app/views/project/editor/editor.pug b/services/web/app/views/project/editor/editor.pug index f9621987b8..40734e8632 100644 --- a/services/web/app/views/project/editor/editor.pug +++ b/services/web/app/views/project/editor/editor.pug @@ -95,7 +95,7 @@ div.full-size( ) include ./pdf -.onboarding__autocompile.popover( +#onboarding-autocompile.onboarding-autocompile.popover( ng-controller="AutoCompileOnboardingController" ng-if="onboarding.autoCompile == 'show'" ng-class="placement" diff --git a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee index aecfcb395a..80ba7de814 100644 --- a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee +++ b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee @@ -3,7 +3,7 @@ define [ ], (App) -> App.controller "AutoCompileOnboardingController", ($scope, event_tracking) -> recompileBtn = angular.element('#recompile') - popover = angular.element('.onboarding__autocompile') + popover = angular.element('#onboarding-autocompile') { top, left } = recompileBtn.offset() # If pdf panel smaller than recompile button + popover, show to left. diff --git a/services/web/public/stylesheets/app/editor/feature-onboarding.less b/services/web/public/stylesheets/app/editor/feature-onboarding.less index 134001b212..80c21e26c3 100644 --- a/services/web/public/stylesheets/app/editor/feature-onboarding.less +++ b/services/web/public/stylesheets/app/editor/feature-onboarding.less @@ -100,7 +100,7 @@ a.feat-onboard-dismiss { } } -.onboarding__autocompile { +.onboarding-autocompile { display: block; top: 10px; From ba6a0b44a996e74afbde7f5b989c95c75dcd3db2 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Fri, 29 Sep 2017 10:53:06 +0100 Subject: [PATCH 23/29] Fix incorrect selector --- .../public/coffee/ide/AutoCompileOnboardingController.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee index 80ba7de814..a57575fb94 100644 --- a/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee +++ b/services/web/public/coffee/ide/AutoCompileOnboardingController.coffee @@ -16,7 +16,7 @@ define [ }) else $scope.placement = 'right' - angular.element('.onboarding__autocompile').offset({ + popover.offset({ top: top, left: left + recompileBtn.width() }) From ab7d83b1c5616d6c7196e5b5e772efb1d69957da Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Fri, 29 Sep 2017 10:59:01 +0100 Subject: [PATCH 24/29] Switch to translations --- services/web/app/views/project/editor/editor.pug | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/services/web/app/views/project/editor/editor.pug b/services/web/app/views/project/editor/editor.pug index 40734e8632..37a103c6ce 100644 --- a/services/web/app/views/project/editor/editor.pug +++ b/services/web/app/views/project/editor/editor.pug @@ -102,10 +102,10 @@ div.full-size( ) .arrow .popover-inner - h3.popover-title Auto Compile + h3.popover-title #{translate("auto_compile")} .popover-content - p Try out the new auto compile setting! + p #{translate("try_out_auto_compile_setting")} img(src="/img/onboarding/autocompile/setting-dropdown.png" width="100%") - p When enabled, your project will be compiled after you finish your sentence. + p #{tranlate("auto_compile_onboarding_description")} button.btn.btn-default.btn-block(ng-click="dismiss()") - | Got it + | #{translate("got_it")} From a4fa713f38dd9347e6ddfc60df46fa87c68fec7f Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Fri, 29 Sep 2017 11:18:44 +0100 Subject: [PATCH 25/29] Fix typo --- services/web/app/views/project/editor/editor.pug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/web/app/views/project/editor/editor.pug b/services/web/app/views/project/editor/editor.pug index 37a103c6ce..66bff761a1 100644 --- a/services/web/app/views/project/editor/editor.pug +++ b/services/web/app/views/project/editor/editor.pug @@ -106,6 +106,6 @@ div.full-size( .popover-content p #{translate("try_out_auto_compile_setting")} img(src="/img/onboarding/autocompile/setting-dropdown.png" width="100%") - p #{tranlate("auto_compile_onboarding_description")} + p #{translate("auto_compile_onboarding_description")} button.btn.btn-default.btn-block(ng-click="dismiss()") | #{translate("got_it")} From 738acefac745339bf2d907f77dd3a53177366c26 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Fri, 29 Sep 2017 11:38:56 +0100 Subject: [PATCH 26/29] Style onboarding image with more space & light border --- .../public/stylesheets/app/editor/feature-onboarding.less | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/services/web/public/stylesheets/app/editor/feature-onboarding.less b/services/web/public/stylesheets/app/editor/feature-onboarding.less index 80c21e26c3..ef89a93df4 100644 --- a/services/web/public/stylesheets/app/editor/feature-onboarding.less +++ b/services/web/public/stylesheets/app/editor/feature-onboarding.less @@ -108,6 +108,11 @@ a.feat-onboard-dismiss { top: 17px !important; } + img { + margin-bottom: 10px; + border: 1px solid @gray-lighter; + } + &.right > .arrow { left: -10px !important; From a69afae03dd54ce331ec23f9bbf7592cc05992d1 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Mon, 2 Oct 2017 13:49:28 +0100 Subject: [PATCH 27/29] Remove unnecessary arrow elem --- .../web/app/views/project/editor/editor.pug | 1 - .../app/editor/feature-onboarding.less | 44 ++++++++++++------- 2 files changed, 29 insertions(+), 16 deletions(-) diff --git a/services/web/app/views/project/editor/editor.pug b/services/web/app/views/project/editor/editor.pug index 66bff761a1..86cc63a5e5 100644 --- a/services/web/app/views/project/editor/editor.pug +++ b/services/web/app/views/project/editor/editor.pug @@ -100,7 +100,6 @@ div.full-size( ng-if="onboarding.autoCompile == 'show'" ng-class="placement" ) - .arrow .popover-inner h3.popover-title #{translate("auto_compile")} .popover-content diff --git a/services/web/public/stylesheets/app/editor/feature-onboarding.less b/services/web/public/stylesheets/app/editor/feature-onboarding.less index ef89a93df4..475658f885 100644 --- a/services/web/public/stylesheets/app/editor/feature-onboarding.less +++ b/services/web/public/stylesheets/app/editor/feature-onboarding.less @@ -104,28 +104,42 @@ a.feat-onboard-dismiss { display: block; top: 10px; - .arrow { - top: 17px !important; - } - img { margin-bottom: 10px; border: 1px solid @gray-lighter; } - &.right > .arrow { - left: -10px !important; - - &:after { - border-right-color: #f7f7f7 !important; - } + &::before, &::after { + content: ''; + border-width: 11px; + border-style: solid; + border-color: transparent; + top: 7px; + display: block; + position: absolute; } - &.left > .arrow { - right: -10px !important; + &.right::before { + border-left-width: 0; + border-right-color: rgba(0, 0, 0, .3); + left: -11px; + } - &:after { - border-left-color: #f7f7f7 !important; - } + &.right::after { + border-left-width: 0; + border-right-color: #f7f7f7; + left: -9.5px; + } + + &.left::before { + border-right-width: 0; + border-left-color: rgba(0, 0, 0, .3); + right: -11px + } + + &.left::after { + border-right-width: 0; + border-left-color: #f7f7f7; + right: -9.5px; } } From a3800a321be6d6a5a93d972d208f706e81b4ee55 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Mon, 2 Oct 2017 14:12:18 +0100 Subject: [PATCH 28/29] Add beta program badge on autocompile popover & setting --- services/web/app/views/project/editor/editor.pug | 4 +++- services/web/app/views/project/editor/pdf.pug | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/services/web/app/views/project/editor/editor.pug b/services/web/app/views/project/editor/editor.pug index 86cc63a5e5..89ec5c7828 100644 --- a/services/web/app/views/project/editor/editor.pug +++ b/services/web/app/views/project/editor/editor.pug @@ -101,7 +101,9 @@ div.full-size( ng-class="placement" ) .popover-inner - h3.popover-title #{translate("auto_compile")} + h3.popover-title + | #{translate("auto_compile")} + span.beta-feature-badge .popover-content p #{translate("try_out_auto_compile_setting")} img(src="/img/onboarding/autocompile/setting-dropdown.png" width="100%") diff --git a/services/web/app/views/project/editor/pdf.pug b/services/web/app/views/project/editor/pdf.pug index 536eefeb5b..99369eb4c5 100644 --- a/services/web/app/views/project/editor/pdf.pug +++ b/services/web/app/views/project/editor/pdf.pug @@ -28,7 +28,9 @@ div.full-size.pdf(ng-controller="PdfController") ul.dropdown-menu.dropdown-menu-left // Only show on beta program? if user.betaProgram - li.dropdown-header #{translate("auto_compile")} + li.dropdown-header + | #{translate("auto_compile")} + span.beta-feature-badge li a(href, ng-click="autocompile_enabled = true") i.fa.fa-fw(ng-class="{'fa-check': autocompile_enabled}") From 91e0397bf54b7f88c0c29ecee79f13789b42ba86 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Tue, 3 Oct 2017 10:48:59 +0100 Subject: [PATCH 29/29] Update signup date check to today --- .../web/app/coffee/Features/Project/ProjectController.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/web/app/coffee/Features/Project/ProjectController.coffee b/services/web/app/coffee/Features/Project/ProjectController.coffee index 7c0328fe17..17adeae4c1 100644 --- a/services/web/app/coffee/Features/Project/ProjectController.coffee +++ b/services/web/app/coffee/Features/Project/ProjectController.coffee @@ -254,7 +254,7 @@ module.exports = ProjectController = return cb() timestamp = user_id.toString().substring(0,8) userSignupDate = new Date( parseInt( timestamp, 16 ) * 1000 ) - if userSignupDate > new Date("2017-10-05") + if userSignupDate > new Date("2017-10-03") # Don't show for users who registered after it was released return cb(null, false) timeout = setTimeout cb, 500