Edited timeago text on comments
Unified the 'edited text' to be the same in descriptions and comments Closes #5538
This commit is contained in:
parent
491ac7ce4b
commit
3d99ffc862
|
@ -328,6 +328,7 @@ class @Notes
|
||||||
updateNote: (_xhr, note, _status) =>
|
updateNote: (_xhr, note, _status) =>
|
||||||
# Convert returned HTML to a jQuery object so we can modify it further
|
# Convert returned HTML to a jQuery object so we can modify it further
|
||||||
$html = $(note.html)
|
$html = $(note.html)
|
||||||
|
$('.js-timeago', $html).timeago()
|
||||||
$html.syntaxHighlight()
|
$html.syntaxHighlight()
|
||||||
$html.find('.js-task-list-container').taskList('enable')
|
$html.find('.js-task-list-container').taskList('enable')
|
||||||
|
|
||||||
|
|
|
@ -262,3 +262,11 @@
|
||||||
color: $gray-darkest;
|
color: $gray-darkest;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.edited-text {
|
||||||
|
color: $gray-darkest;
|
||||||
|
|
||||||
|
.author_link {
|
||||||
|
color: $gray-darkest;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -182,20 +182,36 @@ module ApplicationHelper
|
||||||
# Returns an HTML-safe String
|
# Returns an HTML-safe String
|
||||||
def time_ago_with_tooltip(time, placement: 'top', html_class: 'time_ago', skip_js: false)
|
def time_ago_with_tooltip(time, placement: 'top', html_class: 'time_ago', skip_js: false)
|
||||||
element = content_tag :time, time.to_s,
|
element = content_tag :time, time.to_s,
|
||||||
class: "#{html_class} js-timeago js-timeago-pending",
|
class: "#{html_class} js-timeago",
|
||||||
datetime: time.to_time.getutc.iso8601,
|
datetime: time.to_time.getutc.iso8601,
|
||||||
title: time.in_time_zone.to_s(:medium),
|
title: time.in_time_zone.to_s(:medium),
|
||||||
data: { toggle: 'tooltip', placement: placement, container: 'body' }
|
data: { toggle: 'tooltip', placement: placement, container: 'body' }
|
||||||
|
|
||||||
unless skip_js
|
|
||||||
element << javascript_tag(
|
|
||||||
"$('.js-timeago-pending').removeClass('js-timeago-pending').timeago()"
|
|
||||||
)
|
|
||||||
end
|
|
||||||
|
|
||||||
element
|
element
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def edited_time_ago_with_tooltip(object, placement: 'top', html_class: 'time_ago', skip_js: false, include_author: false)
|
||||||
|
return nil if object.updated_at == object.created_at
|
||||||
|
|
||||||
|
content_tag :small, class: "edited-text" do
|
||||||
|
output = content_tag :span do
|
||||||
|
"Edited "
|
||||||
|
end
|
||||||
|
output += time_ago_with_tooltip(object.updated_at)
|
||||||
|
|
||||||
|
if include_author
|
||||||
|
if object.updated_by && object.updated_by != object.author
|
||||||
|
output += content_tag :span do
|
||||||
|
" by "
|
||||||
|
end
|
||||||
|
output += link_to_member(object.project, object.updated_by, avatar: false, author_class: nil)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
output
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def render_markup(file_name, file_content)
|
def render_markup(file_name, file_content)
|
||||||
if gitlab_markdown?(file_name)
|
if gitlab_markdown?(file_name)
|
||||||
Haml::Helpers.preserve(markdown(file_content))
|
Haml::Helpers.preserve(markdown(file_content))
|
||||||
|
|
|
@ -63,10 +63,7 @@
|
||||||
= markdown(@issue.description, cache_key: [@issue, "description"])
|
= markdown(@issue.description, cache_key: [@issue, "description"])
|
||||||
%textarea.hidden.js-task-list-field
|
%textarea.hidden.js-task-list-field
|
||||||
= @issue.description
|
= @issue.description
|
||||||
- if @issue.updated_at != @issue.created_at
|
= edited_time_ago_with_tooltip(@issue, placement: 'bottom', html_class: 'issue_edited_ago')
|
||||||
%small
|
|
||||||
Edited
|
|
||||||
= time_ago_with_tooltip(@issue.updated_at, placement: 'bottom', html_class: 'issue_edited_ago')
|
|
||||||
|
|
||||||
.merge-requests
|
.merge-requests
|
||||||
= render 'merge_requests'
|
= render 'merge_requests'
|
||||||
|
|
|
@ -11,7 +11,4 @@
|
||||||
%textarea.hidden.js-task-list-field
|
%textarea.hidden.js-task-list-field
|
||||||
= @merge_request.description
|
= @merge_request.description
|
||||||
|
|
||||||
- if @merge_request.updated_at != @merge_request.created_at
|
= edited_time_ago_with_tooltip(@merge_request, placement: 'bottom')
|
||||||
%small
|
|
||||||
Edited
|
|
||||||
= time_ago_with_tooltip(@merge_request.updated_at, placement: 'bottom')
|
|
||||||
|
|
|
@ -27,20 +27,13 @@
|
||||||
%span.note-last-update
|
%span.note-last-update
|
||||||
%a{name: dom_id(note), href: "##{dom_id(note)}", title: 'Link here'}
|
%a{name: dom_id(note), href: "##{dom_id(note)}", title: 'Link here'}
|
||||||
= time_ago_with_tooltip(note.created_at, placement: 'bottom', html_class: 'note_created_ago')
|
= time_ago_with_tooltip(note.created_at, placement: 'bottom', html_class: 'note_created_ago')
|
||||||
- if note.updated_at != note.created_at
|
|
||||||
%span.note-updated-at
|
|
||||||
·
|
|
||||||
= icon('edit', title: 'edited')
|
|
||||||
= time_ago_with_tooltip(note.updated_at, placement: 'bottom', html_class: 'note_edited_ago')
|
|
||||||
- if note.updated_by && note.updated_by != note.author
|
|
||||||
by #{link_to_member(note.project, note.updated_by, avatar: false, author_class: nil)}
|
|
||||||
|
|
||||||
.note-body{class: note_editable?(note) ? 'js-task-list-container' : ''}
|
.note-body{class: note_editable?(note) ? 'js-task-list-container' : ''}
|
||||||
.note-text
|
.note-text
|
||||||
= preserve do
|
= preserve do
|
||||||
= markdown(note.note, pipeline: :note, cache_key: [note, "note"])
|
= markdown(note.note, pipeline: :note, cache_key: [note, "note"])
|
||||||
- if note_editable?(note)
|
- if note_editable?(note)
|
||||||
= render 'projects/notes/edit_form', note: note
|
= render 'projects/notes/edit_form', note: note
|
||||||
|
= edited_time_ago_with_tooltip(note, placement: 'bottom', html_class: 'note_edited_ago', include_author: true)
|
||||||
|
|
||||||
- if note.attachment.url
|
- if note.attachment.url
|
||||||
.note-attachment
|
.note-attachment
|
||||||
|
@ -54,4 +47,3 @@
|
||||||
= link_to delete_attachment_namespace_project_note_path(note.project.namespace, note.project, note),
|
= link_to delete_attachment_namespace_project_note_path(note.project.namespace, note.project, note),
|
||||||
title: 'Delete this attachment', method: :delete, remote: true, data: { confirm: 'Are you sure you want to remove the attachment?' }, class: 'danger js-note-attachment-delete' do
|
title: 'Delete this attachment', method: :delete, remote: true, data: { confirm: 'Are you sure you want to remove the attachment?' }, class: 'danger js-note-attachment-delete' do
|
||||||
= icon('trash-o', class: 'cred')
|
= icon('trash-o', class: 'cred')
|
||||||
.clear
|
|
||||||
|
|
Loading…
Reference in New Issue