mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-19 09:36:47 +10:00
Merge branch 'cache-commits-render' into 'master'
Performance improvements after caching html fragments * re-use event cache with other users * cache commit fragment * cache issue fragment in list * cache comment parsed with markdown See merge request !911
This commit is contained in:
@@ -3,14 +3,15 @@
|
||||
.event-item-timestamp
|
||||
#{time_ago_with_tooltip(event.created_at)}
|
||||
|
||||
= cache [event, current_user] do
|
||||
= image_tag avatar_icon(event.author_email, 24), class: "avatar s24", alt:''
|
||||
|
||||
- if event.push?
|
||||
= render "events/event/push", event: event
|
||||
- elsif event.commented?
|
||||
= render "events/event/note", event: event
|
||||
- elsif event.created_project?
|
||||
- if event.created_project?
|
||||
= cache [event, current_user] do
|
||||
= render "events/event/created_project", event: event
|
||||
- else
|
||||
= render "events/event/common", event: event
|
||||
- else
|
||||
= cache event do
|
||||
= image_tag avatar_icon(event.author_email, 24), class: "avatar s24", alt:''
|
||||
- if event.push?
|
||||
= render "events/event/push", event: event
|
||||
- elsif event.commented?
|
||||
= render "events/event/note", event: event
|
||||
- else
|
||||
= render "events/event/common", event: event
|
||||
|
||||
@@ -1,33 +1,34 @@
|
||||
%li.commit.js-toggle-container
|
||||
.commit-row-title
|
||||
%strong.str-truncated
|
||||
= link_to_gfm commit.title, namespace_project_commit_path(project.namespace, project, commit.id), class: "commit-row-message"
|
||||
- if commit.description?
|
||||
%a.text-expander.js-toggle-button ...
|
||||
- if @note_counts
|
||||
- note_count = @note_counts.fetch(commit.id, 0)
|
||||
- else
|
||||
- notes = commit.notes
|
||||
- note_count = notes.user.count
|
||||
|
||||
.pull-right
|
||||
= link_to commit.short_id, namespace_project_commit_path(project.namespace, project, commit), class: "commit_short_id"
|
||||
= cache [project.id, commit.id, note_count] do
|
||||
%li.commit.js-toggle-container
|
||||
.commit-row-title
|
||||
%strong.str-truncated
|
||||
= link_to_gfm commit.title, namespace_project_commit_path(project.namespace, project, commit.id), class: "commit-row-message"
|
||||
- if commit.description?
|
||||
%a.text-expander.js-toggle-button ...
|
||||
|
||||
.notes_count
|
||||
- if @note_counts
|
||||
- note_count = @note_counts.fetch(commit.id, 0)
|
||||
- else
|
||||
- notes = commit.notes
|
||||
- note_count = notes.user.count
|
||||
.pull-right
|
||||
= link_to commit.short_id, namespace_project_commit_path(project.namespace, project, commit), class: "commit_short_id"
|
||||
|
||||
- if note_count > 0
|
||||
%span.light
|
||||
%i.fa.fa-comments
|
||||
= note_count
|
||||
.notes_count
|
||||
- if note_count > 0
|
||||
%span.light
|
||||
%i.fa.fa-comments
|
||||
= note_count
|
||||
|
||||
- if commit.description?
|
||||
.commit-row-description.js-toggle-content
|
||||
%pre
|
||||
= preserve(gfm(escape_once(commit.description)))
|
||||
- if commit.description?
|
||||
.commit-row-description.js-toggle-content
|
||||
%pre
|
||||
= preserve(gfm(escape_once(commit.description)))
|
||||
|
||||
.commit-row-info
|
||||
= commit_author_link(commit, avatar: true, size: 24)
|
||||
authored
|
||||
.committed_ago
|
||||
#{time_ago_with_tooltip(commit.committed_date, skip_js: true)}
|
||||
= link_to_browse_code(project, commit)
|
||||
.commit-row-info
|
||||
= commit_author_link(commit, avatar: true, size: 24)
|
||||
authored
|
||||
.committed_ago
|
||||
#{time_ago_with_tooltip(commit.committed_date, skip_js: true)}
|
||||
= link_to_browse_code(project, commit)
|
||||
|
||||
@@ -3,42 +3,43 @@
|
||||
.issue-check
|
||||
= check_box_tag dom_id(issue,"selected"), nil, false, 'data-id' => issue.id, class: "selected_issue"
|
||||
|
||||
.issue-title
|
||||
%span.issue-title-text
|
||||
= link_to_gfm issue.title, issue_path(issue), class: "row_title"
|
||||
.issue-labels
|
||||
- issue.labels.each do |label|
|
||||
= link_to_label(label, project: issue.project)
|
||||
.pull-right.light
|
||||
- if issue.closed?
|
||||
%span
|
||||
CLOSED
|
||||
- if issue.assignee
|
||||
= link_to_member(@project, issue.assignee, name: false)
|
||||
- note_count = issue.notes.user.count
|
||||
- if note_count > 0
|
||||
= cache issue do
|
||||
.issue-title
|
||||
%span.issue-title-text
|
||||
= link_to_gfm issue.title, issue_path(issue), class: "row_title"
|
||||
.issue-labels
|
||||
- issue.labels.each do |label|
|
||||
= link_to_label(label, project: issue.project)
|
||||
.pull-right.light
|
||||
- if issue.closed?
|
||||
%span
|
||||
CLOSED
|
||||
- if issue.assignee
|
||||
= link_to_member(@project, issue.assignee, name: false)
|
||||
- note_count = issue.notes.user.count
|
||||
- if note_count > 0
|
||||
|
||||
%span
|
||||
%i.fa.fa-comments
|
||||
= note_count
|
||||
- else
|
||||
|
||||
%span.issue-no-comments
|
||||
%i.fa.fa-comments
|
||||
= 0
|
||||
|
||||
.issue-info
|
||||
= "#{issue.to_reference} opened #{time_ago_with_tooltip(issue.created_at, placement: 'bottom')} by #{link_to_member(@project, issue.author, avatar: false)}".html_safe
|
||||
- if issue.votes_count > 0
|
||||
= render 'votes/votes_inline', votable: issue
|
||||
- if issue.milestone
|
||||
|
||||
%span
|
||||
%i.fa.fa-comments
|
||||
= note_count
|
||||
- else
|
||||
|
||||
%span.issue-no-comments
|
||||
%i.fa.fa-comments
|
||||
= 0
|
||||
%i.fa.fa-clock-o
|
||||
= issue.milestone.title
|
||||
- if issue.tasks?
|
||||
%span.task-status
|
||||
= issue.task_status
|
||||
|
||||
.issue-info
|
||||
= "##{issue.iid} opened #{time_ago_with_tooltip(issue.created_at, placement: 'bottom')} by #{link_to_member(@project, issue.author, avatar: false)}".html_safe
|
||||
- if issue.votes_count > 0
|
||||
= render 'votes/votes_inline', votable: issue
|
||||
- if issue.milestone
|
||||
|
||||
%span
|
||||
%i.fa.fa-clock-o
|
||||
= issue.milestone.title
|
||||
- if issue.tasks?
|
||||
%span.task-status
|
||||
= issue.task_status
|
||||
|
||||
.pull-right.issue-updated-at
|
||||
%small updated #{time_ago_with_tooltip(issue.updated_at, placement: 'bottom', html_class: 'issue_update_ago')}
|
||||
.pull-right.issue-updated-at
|
||||
%small updated #{time_ago_with_tooltip(issue.updated_at, placement: 'bottom', html_class: 'issue_update_ago')}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
- if member
|
||||
%span.note-role.label
|
||||
= member.human_access
|
||||
|
||||
|
||||
- if note.system
|
||||
= link_to user_path(note.author) do
|
||||
= image_tag avatar_icon(note.author_email), class: 'avatar s16', alt: ''
|
||||
@@ -56,9 +56,10 @@
|
||||
|
||||
|
||||
.note-body{class: note_editable?(note) ? 'js-task-list-container' : ''}
|
||||
.note-text
|
||||
= preserve do
|
||||
= markdown(note.note, {no_header_anchors: true})
|
||||
= cache [note, 'markdown'] do
|
||||
.note-text
|
||||
= preserve do
|
||||
= markdown(note.note, {no_header_anchors: true})
|
||||
= render 'projects/notes/edit_form', note: note
|
||||
|
||||
- if note.attachment.url
|
||||
|
||||
Reference in New Issue
Block a user