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
No related merge requests found
Loading
Loading
@@ -14,7 +14,8 @@
font-size: 22px;
}
 
.wiki-last-edit-by {
.wiki-last-edit-by, .wiki-page-full-path {
display: block;
color: $gl-gray-light;
 
strong {
Loading
Loading
Loading
Loading
@@ -88,6 +88,12 @@ class WikiPage
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.
def formatted_content
@attributes[:formatted_content] ||= if @page
Loading
Loading
@@ -100,6 +106,11 @@ class WikiPage
@attributes[:format] || :markdown
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.
def message
version.try(:message)
Loading
Loading
Loading
Loading
@@ -8,7 +8,7 @@
 
.nav-text
%h2.wiki-page-title= @page.title.capitalize
%span.wiki-page-full-path= "(#{@page.full_path})"
%span.wiki-last-edit-by
Last edited by
%strong
Loading
Loading
Loading
Loading
@@ -224,6 +224,46 @@ describe WikiPage, models: true do
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
before do
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