Skip to content
Snippets Groups Projects
Commit 5bbe6559 authored by Alex Braha Stoll's avatar Alex Braha Stoll
Browse files

Add component to show the full path of a wiki page when viewing its content

parent 294acf1c
No related branches found
No related tags found
1 merge request!8133Show directory hierarchy when listing wiki pages
Loading
@@ -14,7 +14,8 @@
Loading
@@ -14,7 +14,8 @@
font-size: 22px; font-size: 22px;
} }
   
.wiki-last-edit-by { .wiki-last-edit-by, .wiki-page-full-path {
display: block;
color: $gl-gray-light; color: $gl-gray-light;
   
strong { strong {
Loading
Loading
Loading
@@ -88,6 +88,12 @@ class WikiPage
Loading
@@ -88,6 +88,12 @@ class WikiPage
end end
end end
   
# The hierarchy of the directory this page is contained in.
def directory
dir = wiki.page_title_and_dir(slug).last
dir.present? ? dir : '/'
end
# The processed/formatted content of this page. # The processed/formatted content of this page.
def formatted_content def formatted_content
@attributes[:formatted_content] ||= if @page @attributes[:formatted_content] ||= if @page
Loading
@@ -100,6 +106,11 @@ class WikiPage
Loading
@@ -100,6 +106,11 @@ class WikiPage
@attributes[:format] || :markdown @attributes[:format] || :markdown
end end
   
# The full path for this page, including its filename and extension.
def full_path
"/#{directory}/#{page.filename}".gsub(/\/+/, '/')
end
# The commit message for this page version. # The commit message for this page version.
def message def message
version.try(:message) version.try(:message)
Loading
Loading
Loading
@@ -8,7 +8,7 @@
Loading
@@ -8,7 +8,7 @@
   
.nav-text .nav-text
%h2.wiki-page-title= @page.title.capitalize %h2.wiki-page-title= @page.title.capitalize
%span.wiki-page-full-path= "(#{@page.full_path})"
%span.wiki-last-edit-by %span.wiki-last-edit-by
Last edited by Last edited by
%strong %strong
Loading
Loading
Loading
@@ -224,6 +224,46 @@ describe WikiPage, models: true do
Loading
@@ -224,6 +224,46 @@ describe WikiPage, models: true do
end end
end end
   
describe '#directory' do
context 'when the page is at the root directory' do
it 'returns /' do
create_page('file', 'content')
page = wiki.find_page('file')
expect(page.directory).to eq('/')
end
end
context 'when the page is inside an actual directory' do
it 'returns the full directory hierarchy' do
create_page('dir_1/dir_1_1/file', 'content')
page = wiki.find_page('dir_1/dir_1_1/file')
expect(page.directory).to eq('dir_1/dir_1_1')
end
end
end
describe '#full_path' do
context 'when the page is at the root directory' do
it 'returns /filename.fileextension' do
create_page('file', 'content')
page = wiki.find_page('file')
expect(page.full_path).to eq('/file.md')
end
end
context 'when the page is inside an actual directory' do
it 'returns /directory/filename.fileextension' do
create_page('dir/file', 'content')
page = wiki.find_page('dir/file')
expect(page.full_path).to eq('/dir/file.md')
end
end
end
describe '#historical?' do describe '#historical?' do
before do before do
create_page('Update', 'content') create_page('Update', 'content')
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment