32 lines
1.0 KiB
Ruby
32 lines
1.0 KiB
Ruby
module WikiPageVersionsHelper
|
|
def wiki_page_versions_listing_type
|
|
params.dig(:search, :wiki_page_id).present? ? :page : :global
|
|
end
|
|
|
|
def wiki_page_version_status_diff(wiki_page_version)
|
|
cur = wiki_page_version
|
|
prev = wiki_page_version.previous
|
|
|
|
return "New" if prev.blank?
|
|
|
|
status = []
|
|
status += ["Renamed"] if cur.title != prev.title
|
|
status += ["Deleted"] if cur.is_deleted? && !prev.is_deleted?
|
|
status += ["Undeleted"] if !cur.is_deleted? && prev.is_deleted?
|
|
status.join(" ")
|
|
end
|
|
|
|
def wiki_other_names_diff(new_version, old_version)
|
|
new_names = new_version.other_names
|
|
old_names = old_version.other_names
|
|
latest_names = new_version.wiki_page.other_names
|
|
|
|
diff_list_html(new_names, old_names, latest_names, ul_class: ["wiki-other-names-diff-list list-inline"], li_class: ["wiki-other-name"])
|
|
end
|
|
|
|
def wiki_body_diff(thispage, otherpage)
|
|
pattern = Regexp.new('(?:<.+?>)|(?:\w+)|(?:[ \t]+)|(?:\r?\n)|(?:.+?)')
|
|
DiffBuilder.new(thispage.body, otherpage.body, pattern).build
|
|
end
|
|
end
|