Add component to show the full path of a wiki page when viewing its content
This commit is contained in:
parent
294acf1c5c
commit
5bbe655991
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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…
Reference in New Issue