Update the help_page_path route to accept paths directly instead of using parameters.
This commit is contained in:
parent
61f0e89484
commit
3358afa758
36 changed files with 52 additions and 54 deletions
|
@ -12,13 +12,12 @@ class HelpController < ApplicationController
|
|||
end
|
||||
|
||||
def show
|
||||
@category = clean_path_info(path_params[:category])
|
||||
@file = path_params[:file]
|
||||
@path = path_params[:path]
|
||||
|
||||
respond_to do |format|
|
||||
format.any(:markdown, :md, :html) do
|
||||
# Note: We are purposefully NOT using `Rails.root.join`
|
||||
path = File.join(Rails.root, 'doc', @category, "#{@file}.md")
|
||||
path = File.join(Rails.root, 'doc', "#{@path}.md")
|
||||
|
||||
if File.exist?(path)
|
||||
@markdown = File.read(path)
|
||||
|
@ -33,7 +32,7 @@ class HelpController < ApplicationController
|
|||
# Allow access to images in the doc folder
|
||||
format.any(:png, :gif, :jpeg) do
|
||||
# Note: We are purposefully NOT using `Rails.root.join`
|
||||
path = File.join(Rails.root, 'doc', @category, "#{@file}.#{params[:format]}")
|
||||
path = File.join(Rails.root, 'doc', "#{@path}.#{params[:format]}")
|
||||
|
||||
if File.exist?(path)
|
||||
send_file(path, disposition: 'inline')
|
||||
|
@ -57,8 +56,7 @@ class HelpController < ApplicationController
|
|||
private
|
||||
|
||||
def path_params
|
||||
params.require(:category)
|
||||
params.require(:file)
|
||||
params.require(:path)
|
||||
|
||||
params
|
||||
end
|
||||
|
|
|
@ -43,15 +43,15 @@ module SearchHelper
|
|||
# Autocomplete results for internal help pages
|
||||
def help_autocomplete
|
||||
[
|
||||
{ category: "Help", label: "API Help", url: help_page_path("api", "README") },
|
||||
{ category: "Help", label: "Markdown Help", url: help_page_path("markdown", "markdown") },
|
||||
{ category: "Help", label: "Permissions Help", url: help_page_path("permissions", "permissions") },
|
||||
{ category: "Help", label: "Public Access Help", url: help_page_path("public_access", "public_access") },
|
||||
{ category: "Help", label: "Rake Tasks Help", url: help_page_path("raketasks", "README") },
|
||||
{ category: "Help", label: "SSH Keys Help", url: help_page_path("ssh", "README") },
|
||||
{ category: "Help", label: "System Hooks Help", url: help_page_path("system_hooks", "system_hooks") },
|
||||
{ category: "Help", label: "Webhooks Help", url: help_page_path("web_hooks", "web_hooks") },
|
||||
{ category: "Help", label: "Workflow Help", url: help_page_path("workflow", "README") },
|
||||
{ category: "Help", label: "API Help", url: help_page_path("api/README") },
|
||||
{ category: "Help", label: "Markdown Help", url: help_page_path("markdown/markdown") },
|
||||
{ category: "Help", label: "Permissions Help", url: help_page_path("permissions/permissions") },
|
||||
{ category: "Help", label: "Public Access Help", url: help_page_path("public_access/public_access") },
|
||||
{ category: "Help", label: "Rake Tasks Help", url: help_page_path("raketasks/README") },
|
||||
{ category: "Help", label: "SSH Keys Help", url: help_page_path("ssh/README") },
|
||||
{ category: "Help", label: "System Hooks Help", url: help_page_path("system_hooks/system_hooks") },
|
||||
{ category: "Help", label: "Webhooks Help", url: help_page_path("web_hooks/web_hooks") },
|
||||
{ category: "Help", label: "Workflow Help", url: help_page_path("workflow/README") },
|
||||
]
|
||||
end
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
.col-sm-10
|
||||
= f.text_area :description, class: "form-control", rows: 10
|
||||
.hint
|
||||
Description parsed with #{link_to "GitLab Flavored Markdown", help_page_path('markdown', 'markdown'), target: '_blank'}.
|
||||
Description parsed with #{link_to "GitLab Flavored Markdown", help_page_path('markdown/markdown'), target: '_blank'}.
|
||||
.form-group
|
||||
= f.label :logo, class: 'control-label'
|
||||
.col-sm-10
|
||||
|
|
|
@ -38,11 +38,11 @@
|
|||
= source
|
||||
%span.help-block#import-sources-help
|
||||
Enabled sources for code import during project creation. OmniAuth must be configured for GitHub
|
||||
= link_to "(?)", help_page_path("integration", "github")
|
||||
= link_to "(?)", help_page_path("integration/github")
|
||||
, Bitbucket
|
||||
= link_to "(?)", help_page_path("integration", "bitbucket")
|
||||
= link_to "(?)", help_page_path("integration/bitbucket")
|
||||
and GitLab.com
|
||||
= link_to "(?)", help_page_path("integration", "gitlab")
|
||||
= link_to "(?)", help_page_path("integration/gitlab")
|
||||
.form-group
|
||||
%label.control-label.col-sm-2 Enabled Git access protocols
|
||||
.col-sm-10
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
.col-sm-10
|
||||
%p.light
|
||||
Paste a machine public key here. Read more about how to generate it
|
||||
= link_to "here", help_page_path("ssh", "README")
|
||||
= link_to "here", help_page_path("ssh/README")
|
||||
= f.text_area :key, class: "form-control thin_area", rows: 5
|
||||
|
||||
.form-actions
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
.panel-body.form-holder
|
||||
%p.light
|
||||
Read more about project permissions
|
||||
%strong= link_to "here", help_page_path("permissions", "permissions"), class: "vlink"
|
||||
%strong= link_to "here", help_page_path("permissions/permissions"), class: "vlink"
|
||||
|
||||
= form_tag members_update_admin_group_path(@group), id: "new_project_member", class: "bulk_import", method: :put do
|
||||
%div
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
System hooks
|
||||
|
||||
%p.light
|
||||
#{link_to "System hooks ", help_page_path("system_hooks", "system_hooks"), class: "vlink"} can be
|
||||
#{link_to "System hooks ", help_page_path("system_hooks/system_hooks"), class: "vlink"} can be
|
||||
used for binding events when GitLab creates a User or Project.
|
||||
|
||||
%hr
|
||||
|
|
|
@ -132,7 +132,7 @@
|
|||
- else
|
||||
passed.
|
||||
|
||||
= link_to icon('question-circle'), help_page_path('administration', 'repository_checks')
|
||||
= link_to icon('question-circle'), help_page_path('administration/repository_checks')
|
||||
|
||||
.form-group
|
||||
= f.submit 'Trigger repository check', class: 'btn btn-primary'
|
||||
|
|
|
@ -3,4 +3,4 @@
|
|||
%h3 Access Denied
|
||||
%hr
|
||||
%p You are not allowed to access this page.
|
||||
%p Read more about project permissions #{link_to "here", help_page_path("permissions", "permissions"), class: "vlink"}
|
||||
%p Read more about project permissions #{link_to "here", help_page_path("permissions/permissions"), class: "vlink"}
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
= select_tag :access_level, options_for_select(GroupMember.access_level_roles, @group_member.access_level), class: "project-access-select select2"
|
||||
.help-block
|
||||
Read more about role permissions
|
||||
%strong= link_to "here", help_page_path("permissions", "permissions"), class: "vlink"
|
||||
%strong= link_to "here", help_page_path("permissions/permissions"), class: "vlink"
|
||||
|
||||
.form-actions
|
||||
= f.submit 'Add users to group', class: "btn btn-create"
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
- page_title @file.humanize, *@category.split("/").reverse.map(&:humanize)
|
||||
- page_title @path.split("/").reverse.map(&:humanize)
|
||||
.documentation.wiki
|
||||
= markdown @markdown.gsub('$your_email', current_user.try(:email) || "email@example.com")
|
||||
|
|
|
@ -549,4 +549,4 @@
|
|||
%li wiki page
|
||||
%li help page
|
||||
|
||||
You can check how markdown rendered at #{link_to 'Markdown help page', help_page_path("markdown", "markdown")}.
|
||||
You can check how markdown rendered at #{link_to 'Markdown help page', help_page_path("markdown/markdown")}.
|
||||
|
|
|
@ -38,6 +38,6 @@
|
|||
As an administrator you may like to configure
|
||||
- else
|
||||
Consider asking your GitLab administrator to configure
|
||||
= link_to 'GitHub integration', help_page_path("integration", "github")
|
||||
= link_to 'GitHub integration', help_page_path("integration/github")
|
||||
which will allow login via GitHub and allow importing projects without
|
||||
generating a Personal Access Token.
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
Add an SSH key
|
||||
%p.profile-settings-content
|
||||
Before you can add an SSH key you need to
|
||||
= link_to "generate it.", help_page_path("ssh", "README")
|
||||
= link_to "generate it.", help_page_path("ssh/README")
|
||||
= render 'form'
|
||||
%hr
|
||||
%h5
|
||||
|
|
|
@ -43,12 +43,12 @@
|
|||
.form-group
|
||||
= f.label :dashboard, class: 'label-light' do
|
||||
Default Dashboard
|
||||
= link_to('(?)', help_page_path('profile', 'preferences') + '#default-dashboard', target: '_blank')
|
||||
= link_to('(?)', help_page_path('profile/preferences') + '#default-dashboard', target: '_blank')
|
||||
= f.select :dashboard, dashboard_choices, {}, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :project_view, class: 'label-light' do
|
||||
Project view
|
||||
= link_to('(?)', help_page_path('profile', 'preferences') + '#default-project-view', target: '_blank')
|
||||
= link_to('(?)', help_page_path('profile/preferences') + '#default-project-view', target: '_blank')
|
||||
= f.select :project_view, project_view_choices, {}, class: 'form-control'
|
||||
.help-block
|
||||
Choose what content you want to see on a project's home page.
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
- else
|
||||
%p
|
||||
Download the Google Authenticator application from App Store or Google Play Store and scan this code.
|
||||
More information is available in the #{link_to('documentation', help_page_path('profile', 'two_factor_authentication'))}.
|
||||
More information is available in the #{link_to('documentation', help_page_path('profile/two_factor_authentication'))}.
|
||||
.row.append-bottom-10
|
||||
.col-md-3
|
||||
= raw @qr_code
|
||||
|
|
|
@ -10,4 +10,4 @@
|
|||
as administrator you need to configure
|
||||
- else
|
||||
ask your GitLab administrator to configure
|
||||
== #{link_to 'OAuth integration', help_page_path("integration", "bitbucket")}.
|
||||
== #{link_to 'OAuth integration', help_page_path("integration/bitbucket")}.
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
- unless @repository.gitlab_ci_yml
|
||||
.form-group
|
||||
%p Builds need to be configured before you can begin using Continuous Integration.
|
||||
= link_to 'Get started with Builds', help_page_path('ci', 'quick_start', 'README'), class: 'btn btn-info'
|
||||
= link_to 'Get started with Builds', help_page_path('ci/quick_start/README'), class: 'btn btn-info'
|
||||
.form-group
|
||||
%p Get recent application code using the following command:
|
||||
.radio
|
||||
|
|
|
@ -10,4 +10,4 @@
|
|||
as administrator you need to configure
|
||||
- else
|
||||
ask your GitLab administrator to configure
|
||||
== #{link_to 'OAuth integration', help_page_path("integration", "gitlab")}.
|
||||
== #{link_to 'OAuth integration', help_page_path("integration/gitlab")}.
|
||||
|
|
|
@ -8,4 +8,4 @@
|
|||
%strong Only allow merge requests to be merged if the build succeeds
|
||||
.help-block
|
||||
Builds need to be configured to enable this feature.
|
||||
= link_to icon('question-circle'), help_page_path('workflow', 'merge_requests', anchor: 'only-allow-merge-requests-to-be-merged-if-the-build-succeeds')
|
||||
= link_to icon('question-circle'), help_page_path('workflow/merge_requests', anchor: 'only-allow-merge-requests-to-be-merged-if-the-build-succeeds')
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
data: { confirm: 'Are you sure?' }, class: 'btn btn-danger', method: :post
|
||||
|
||||
- unless @repository.gitlab_ci_yml
|
||||
= link_to 'Get started with Builds', help_page_path('ci/quick_start', 'README'), class: 'btn btn-info'
|
||||
= link_to 'Get started with Builds', help_page_path('ci/quick_start/README'), class: 'btn btn-info'
|
||||
|
||||
= link_to ci_lint_path, class: 'btn btn-default' do
|
||||
%span CI Lint
|
||||
|
|
|
@ -9,5 +9,5 @@
|
|||
.form-group
|
||||
%p.light.append-bottom-0
|
||||
Paste a machine public key here. Read more about how to generate it
|
||||
= link_to "here", help_page_path("ssh", "README")
|
||||
= link_to "here", help_page_path("ssh/README")
|
||||
= f.submit "Add key", class: "btn-create btn"
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
.form-group.project-visibility-level-holder
|
||||
= f.label :visibility_level, class: 'label-light' do
|
||||
Visibility Level
|
||||
= link_to "(?)", help_page_path("public_access", "public_access")
|
||||
= link_to "(?)", help_page_path("public_access/public_access")
|
||||
- if can_change_visibility_level?(@project, current_user)
|
||||
= render('shared/visibility_radios', model_method: :visibility_level, form: f, selected_level: @project.visibility_level, form_model: @project)
|
||||
- else
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
Environments are places where code gets deployed, such as staging or production.
|
||||
%br
|
||||
= succeed "." do
|
||||
= link_to "Read more about environments", help_page_path("ci", "environments")
|
||||
= link_to "Read more about environments", help_page_path("ci/environments")
|
||||
- if can?(current_user, :create_environment, @project)
|
||||
= link_to new_namespace_project_environment_path(@project.namespace, @project), class: 'btn btn-create' do
|
||||
New environment
|
||||
|
|
|
@ -7,6 +7,6 @@
|
|||
%p
|
||||
Environments allow you to track deployments of your application
|
||||
= succeed "." do
|
||||
= link_to "Read more about environments", help_page_path("ci", "environments")
|
||||
= link_to "Read more about environments", help_page_path("ci/environments")
|
||||
|
||||
= render 'form'
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
Define environments in the deploy stage(s) in
|
||||
%code .gitlab-ci.yml
|
||||
to track deployments here.
|
||||
= link_to "Read more", help_page_path("ci", "environments"), class: "btn btn-success"
|
||||
= link_to "Read more", help_page_path("ci/environments"), class: "btn btn-success"
|
||||
- else
|
||||
.table-holder
|
||||
%table.table.environments
|
||||
|
|
|
@ -107,7 +107,7 @@
|
|||
.form-group.project-visibility-level-holder
|
||||
= f.label :visibility_level, class: 'label-light' do
|
||||
Visibility Level
|
||||
= link_to "(?)", help_page_path("public_access", "public_access")
|
||||
= link_to "(?)", help_page_path("public_access/public_access")
|
||||
= render('shared/visibility_radios', model_method: :visibility_level, form: f, selected_level: @project.visibility_level, form_model: @project)
|
||||
|
||||
= f.submit 'Create project', class: "btn btn-create project-submit", tabindex: 4
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.comment-toolbar.clearfix
|
||||
.toolbar-text
|
||||
Styling with
|
||||
= link_to 'Markdown', help_page_path('markdown', 'markdown'), target: '_blank', tabindex: -1
|
||||
= link_to 'Markdown', help_page_path('markdown/markdown'), target: '_blank', tabindex: -1
|
||||
is supported
|
||||
%button.toolbar-button.markdown-selector{ type: 'button', tabindex: '-1' }
|
||||
= icon('file-image-o', class: 'toolbar-button-icon')
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
New pipeline
|
||||
|
||||
- unless @repository.gitlab_ci_yml
|
||||
= link_to 'Get started with Pipelines', help_page_path('ci/quick_start', 'README'), class: 'btn btn-info'
|
||||
= link_to 'Get started with Pipelines', help_page_path('ci/quick_start/README'), class: 'btn btn-info'
|
||||
|
||||
= link_to ci_lint_path, class: 'btn btn-default' do
|
||||
%span CI Lint
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
= select_tag :access_level, options_for_select(ProjectMember.access_level_roles, @project_member.access_level), class: "project-access-select select2"
|
||||
.help-block
|
||||
Read more about role permissions
|
||||
%strong= link_to "here", help_page_path("permissions", "permissions"), class: "vlink"
|
||||
%strong= link_to "here", help_page_path("permissions/permissions"), class: "vlink"
|
||||
|
||||
.form-actions
|
||||
= f.submit 'Add users to project', class: "btn btn-create"
|
||||
|
|
|
@ -8,10 +8,10 @@
|
|||
%p.prepend-top-20
|
||||
Protected branches are designed to:
|
||||
%ul
|
||||
%li prevent pushes from everybody except #{link_to "masters", help_page_path("permissions", "permissions"), class: "vlink"}
|
||||
%li prevent pushes from everybody except #{link_to "masters", help_page_path("permissions/permissions"), class: "vlink"}
|
||||
%li prevent anyone from force pushing to the branch
|
||||
%li prevent anyone from deleting the branch
|
||||
%p.append-bottom-0 Read more about #{link_to "project permissions", help_page_path("permissions", "permissions"), class: "underlined-link"}
|
||||
%p.append-bottom-0 Read more about #{link_to "project permissions", help_page_path("permissions/permissions"), class: "underlined-link"}
|
||||
.col-lg-9
|
||||
%h5.prepend-top-0
|
||||
Protect a branch
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.form-group.project-visibility-level-holder
|
||||
= f.label :visibility_level, class: 'control-label' do
|
||||
Visibility Level
|
||||
= link_to "(?)", help_page_path("public_access", "public_access")
|
||||
= link_to "(?)", help_page_path("public_access/public_access")
|
||||
.col-sm-10
|
||||
- if can_change_visibility_level
|
||||
= render('shared/visibility_radios', model_method: :visibility_level, form: f, selected_level: visibility_level, form_model: form_model)
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
%h4.prepend-top-0
|
||||
= page_title
|
||||
%p
|
||||
#{link_to "Webhooks", help_page_path("web_hooks", "web_hooks")} can be
|
||||
#{link_to "Webhooks", help_page_path("web_hooks/web_hooks")} can be
|
||||
used for binding events when something is happening within the project.
|
||||
.col-lg-9.append-bottom-default
|
||||
= form_for hook, as: :hook, url: polymorphic_path(url_components + [:hooks]) do |f|
|
||||
|
|
|
@ -89,9 +89,9 @@ Rails.application.routes.draw do
|
|||
mount Grack::AuthSpawner, at: '/', constraints: lambda { |request| /[-\/\w\.]+\.git\/(info\/lfs|gitlab-lfs)/.match(request.path_info) }, via: [:get, :post, :put]
|
||||
|
||||
# Help
|
||||
|
||||
get 'help' => 'help#index'
|
||||
get 'help/:category/:file' => 'help#show', as: :help_page, constraints: { category: /.*/, file: /[^\/\.]+/ }
|
||||
get 'help/:category/:subcategory/:file' => 'help#show', as: :deep_help_page, constraints: { category: /.*/, subcategory: /.*/, file: /[^\/\.]+/ }
|
||||
get 'help/*path' => 'help#show', as: :help_page
|
||||
get 'help/shortcuts'
|
||||
get 'help/ui' => 'help#ui'
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ class Spinach::Features::DashboardHelp < Spinach::FeatureSteps
|
|||
end
|
||||
|
||||
step 'I visit the "Rake Tasks" help page' do
|
||||
visit help_page_path("raketasks", "maintenance")
|
||||
visit help_page_path("raketasks/maintenance")
|
||||
end
|
||||
|
||||
step 'I should see "Rake Tasks" page markdown rendered' do
|
||||
|
|
|
@ -6,7 +6,7 @@ describe 'Help Pages', feature: true do
|
|||
login_as :user
|
||||
end
|
||||
it 'replace the variable $your_email with the email of the user' do
|
||||
visit help_page_path('ssh', 'README')
|
||||
visit help_page_path('ssh/README')
|
||||
expect(page).to have_content("ssh-keygen -t rsa -C \"#{@user.email}\"")
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue