2018-08-18 07:19:57 -04:00
# frozen_string_literal: true
2016-12-26 22:44:03 -05:00
module WikiHelper
2018-09-04 06:39:08 -04:00
include API :: Helpers :: RelatedResourcesHelpers
2016-12-26 22:44:03 -05:00
# Produces a pure text breadcrumb for a given page.
#
# page_slug - The slug of a WikiPage object.
#
# Returns a String composed of the capitalized name of each directory and the
# capitalized name of the page itself.
def breadcrumb ( page_slug )
2017-06-21 09:48:12 -04:00
page_slug . split ( '/' )
. map { | dir_or_page | WikiPage . unhyphenize ( dir_or_page ) . capitalize }
. join ( ' / ' )
2016-12-26 22:44:03 -05:00
end
2017-08-16 08:13:34 -04:00
def wiki_breadcrumb_dropdown_links ( page_slug )
page_slug_split = page_slug . split ( '/' )
page_slug_split . pop ( 1 )
current_slug = " "
page_slug_split
. map do | dir_or_page |
2017-09-06 06:55:23 -04:00
current_slug = " #{ current_slug } #{ dir_or_page } / "
2017-08-16 08:13:34 -04:00
add_to_breadcrumb_dropdown link_to ( WikiPage . unhyphenize ( dir_or_page ) . capitalize , project_wiki_path ( @project , current_slug ) ) , location : :after
end
end
2018-02-05 12:17:21 -05:00
def wiki_page_errors ( error )
return unless error
content_tag ( :div , class : 'alert alert-danger' ) do
case error
when WikiPage :: PageChangedError
page_link = link_to s_ ( " WikiPageConflictMessage|the page " ) , project_wiki_path ( @project , @page ) , target : " _blank "
concat (
( s_ ( " WikiPageConflictMessage|Someone edited the page the same time you did. Please check out %{page_link} and make sure your changes will not unintentionally remove theirs. " ) % { page_link : page_link } ) . html_safe
)
when WikiPage :: PageRenameError
s_ ( " WikiEdit|There is already a page with the same title in that path. " )
else
error . message
end
end
end
2018-09-04 06:39:08 -04:00
def wiki_attachment_upload_url
expose_url ( api_v4_projects_wikis_attachments_path ( id : @project . id ) )
end
2019-04-04 12:28:56 -04:00
2019-10-31 17:06:28 -04:00
def wiki_sort_controls ( project , sort , direction )
sort || = ProjectWiki :: TITLE_ORDER
link_class = 'btn btn-default has-tooltip reverse-sort-btn qa-reverse-sort rspec-reverse-sort'
reversed_direction = direction == 'desc' ? 'asc' : 'desc'
icon_class = direction == 'desc' ? 'highest' : 'lowest'
link_to ( project_wikis_pages_path ( project , sort : sort , direction : reversed_direction ) ,
type : 'button' , class : link_class , title : _ ( 'Sort direction' ) ) do
2019-04-04 12:28:56 -04:00
sprite_icon ( " sort- #{ icon_class } " , size : 16 )
end
end
def wiki_sort_title ( key )
if key == ProjectWiki :: CREATED_AT_ORDER
s_ ( " Wiki|Created date " )
else
s_ ( " Wiki|Title " )
end
end
2016-12-26 22:44:03 -05:00
end