summaryrefslogtreecommitdiff
path: root/app/helpers/learn_gitlab_helper.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/helpers/learn_gitlab_helper.rb')
-rw-r--r--app/helpers/learn_gitlab_helper.rb44
1 files changed, 36 insertions, 8 deletions
diff --git a/app/helpers/learn_gitlab_helper.rb b/app/helpers/learn_gitlab_helper.rb
index 4fb7a05a0e9..08a30c4d53b 100644
--- a/app/helpers/learn_gitlab_helper.rb
+++ b/app/helpers/learn_gitlab_helper.rb
@@ -7,10 +7,32 @@ module LearnGitlabHelper
learn_gitlab_onboarding_available?(project)
end
+ def learn_gitlab_data(project)
+ {
+ actions: onboarding_actions_data(project).to_json,
+ sections: onboarding_sections_data.to_json
+ }
+ end
+
+ def learn_gitlab_onboarding_available?(project)
+ OnboardingProgress.onboarding?(project.namespace) &&
+ LearnGitlab::Project.new(current_user).available?
+ end
+
+ private
+
def onboarding_actions_data(project)
attributes = onboarding_progress(project).attributes.symbolize_keys
- action_urls.to_h do |action, url|
+ urls_to_use = nil
+
+ experiment(:change_continuous_onboarding_link_urls) do |e|
+ e.namespace = project.namespace
+ e.use { urls_to_use = action_urls }
+ e.try { urls_to_use = new_action_urls(project) }
+ end
+
+ urls_to_use.to_h do |action, url|
[
action,
url: url,
@@ -34,18 +56,22 @@ module LearnGitlabHelper
}
end
- def learn_gitlab_onboarding_available?(project)
- OnboardingProgress.onboarding?(project.namespace) &&
- LearnGitlab::Project.new(current_user).available?
- end
-
- private
-
def action_urls
LearnGitlab::Onboarding::ACTION_ISSUE_IDS.transform_values { |id| project_issue_url(learn_gitlab_project, id) }
.merge(LearnGitlab::Onboarding::ACTION_DOC_URLS)
end
+ def new_action_urls(project)
+ action_urls.merge(
+ issue_created: project_issues_path(project),
+ git_write: project_path(project),
+ pipeline_created: project_pipelines_path(project),
+ merge_request_created: project_merge_requests_path(project),
+ user_added: project_members_url(project),
+ security_scan_enabled: project_security_configuration_path(project)
+ )
+ end
+
def learn_gitlab_project
@learn_gitlab_project ||= LearnGitlab::Project.new(current_user).project
end
@@ -54,3 +80,5 @@ module LearnGitlabHelper
OnboardingProgress.find_by(namespace: project.namespace) # rubocop: disable CodeReuse/ActiveRecord
end
end
+
+LearnGitlabHelper.prepend_mod_with('LearnGitlabHelper')