New user onboarding (Guided Tour)
What does this MR do?
Part 2 of the user onboarding (guided tour) for https://gitlab.com/gitlab-org/gitlab-ce/issues/60093
This MR adds the following:
- Added: Adds identifiers for onboarding popovers to template (based on the definition in https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/app/assets/javascripts/onboarding/tour_parts.js)
- Added: Renders action popovers for the matched identifiers
- Added: Add
goldenTanukiSvgPath
prop - Fixed: Allow users to dismiss onboarding on every page (even if not related to onboarding)
- Fixed: Prevent component from being rendered if onboarding is dismissed
It wires together changes from the following MRs:
- https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/13345
- https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/13346
- https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/13363
- https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/13369
- https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/13370
- https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/13922
- https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/13953
- https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/13390
- https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/14114
- https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/14110
- https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/14117
- https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/14133
- https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/14144
- https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/14175
By this, users can start the guided tour on GitLab.com
for GitLab CE
from the help menu Learn GitLab
. In addition, new users (who don't have any projects yet) will be redirected to the welcome page when they visit the dashboard.
This feature is behind the :user_onboarding
feature flag and needs to be enabled first.
Local Setup
Since this feature is behind a feature flag and uses Gitlab CE
as the demo project in production, there are a few steps required in order to get this working locally.
- Enable feature flag via
rails console
:
Feature.enable(:user_onboarding)
- Make sure to change
get_onboarding_demo_project
inonboarding_controller.rb
to the following:
def get_onboarding_demo_project
Project.find_by_full_path("gitlab-org/gitlab-test")
end
Also, change user_onboarding_enabled?
in ee/app/helpers/ee/application_helper.rb
to the following:
def user_onboarding_enabled?
::Feature.enabled?(:user_onboarding)
end
For local testing, if you want the onboarding to automatically appear for new users (that have no projects and have not previously dismissed the onboarding), the following patch needs to be made:
ee/app/controllers/ee/dashboard/projects_controller.rb
def show_onboarding_welcome_page?
- return false unless ::Gitlab.com?
return false if cookies['onboarding_dismissed'] == 'true'
::Feature.enabled?(:user_onboarding) && !show_projects?(projects, params)
end
CE Port: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/29927
What are the relevant issue numbers?
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/60093
Does this MR meet the acceptance criteria?
Conformity
-
Changelog entry -
Documentation created/updated or follow-up review issue created -
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides -
Separation of EE specific content
Performance and testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Tested in all supported browsers
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
-
Label as security and @ mention @gitlab-com/gl-security/appsec
-
The MR includes necessary changes to maintain consistency between UI, API, email, or other methods -
Security reports checked/validated by a reviewer from the AppSec team