Commit 1c2eefef authored by Douwe Maan's avatar Douwe Maan

Backend tweaks

parent 6d9715d8
...@@ -11,7 +11,7 @@ class Projects::DiscussionsController < Projects::ApplicationController ...@@ -11,7 +11,7 @@ class Projects::DiscussionsController < Projects::ApplicationController
render json: { render json: {
resolved_by: discussion.resolved_by.try(:name), resolved_by: discussion.resolved_by.try(:name),
updated_html: view_to_html_string('discussions/_headline', discussion: discussion) discussion_headline_html: view_to_html_string('discussions/_headline', discussion: discussion)
} }
end end
...@@ -21,7 +21,7 @@ class Projects::DiscussionsController < Projects::ApplicationController ...@@ -21,7 +21,7 @@ class Projects::DiscussionsController < Projects::ApplicationController
discussion.unresolve! discussion.unresolve!
render json: { render json: {
updated_html: view_to_html_string('discussions/_headline', discussion: discussion) discussion_headline_html: view_to_html_string('discussions/_headline', discussion: discussion)
} }
end end
......
...@@ -72,11 +72,11 @@ class Projects::NotesController < Projects::ApplicationController ...@@ -72,11 +72,11 @@ class Projects::NotesController < Projects::ApplicationController
note.resolve!(current_user) note.resolve!(current_user)
discussion = note.noteable.discussions.find { |d| d.id == note.discussion_id } || render_404 discussion = note.discussion
render json: { render json: {
resolved_by: note.resolved_by.try(:name), resolved_by: note.resolved_by.try(:name),
updated_html: view_to_html_string('discussions/_headline', discussion: discussion) discussion_headline_html: (view_to_html_string('discussions/_headline', discussion: discussion) if discussion)
} }
end end
...@@ -85,10 +85,10 @@ class Projects::NotesController < Projects::ApplicationController ...@@ -85,10 +85,10 @@ class Projects::NotesController < Projects::ApplicationController
note.unresolve! note.unresolve!
discussion = note.noteable.discussions.find { |d| d.id == note.discussion_id } || render_404 discussion = note.discussion
render json: { render json: {
updated_html: view_to_html_string('discussions/_headline', discussion: discussion) discussion_headline_html: (view_to_html_string('discussions/_headline', discussion: discussion) if discussion)
} }
end end
...@@ -164,7 +164,7 @@ class Projects::NotesController < Projects::ApplicationController ...@@ -164,7 +164,7 @@ class Projects::NotesController < Projects::ApplicationController
} }
if note.diff_note? if note.diff_note?
discussion = Discussion.new([note]) discussion = note.as_discussion
attrs.merge!( attrs.merge!(
diff_discussion_html: diff_discussion_html(discussion), diff_discussion_html: diff_discussion_html(discussion),
......
...@@ -76,7 +76,7 @@ class DiffNote < Note ...@@ -76,7 +76,7 @@ class DiffNote < Note
end end
def resolvable? def resolvable?
!system? && !for_commit? !system? && for_merge_request?
end end
def resolved? def resolved?
...@@ -103,10 +103,21 @@ class DiffNote < Note ...@@ -103,10 +103,21 @@ class DiffNote < Note
save! save!
end end
def discussion
return unless resolvable?
discussion_notes = self.noteable.notes.fresh.select { |n| n.discussion_id == self.discussion_id }
Discussion.new(discussion_notes)
end
def as_discussion
Discussion.new([self])
end
private private
def supported? def supported?
!self.for_merge_request? || self.noteable.support_new_diff_notes? for_commit? || self.noteable.support_new_diff_notes?
end end
def set_original_position def set_original_position
......
- discussion = local_assigns.fetch(:discussion, false) - discussion = local_assigns.fetch(:discussion, nil)
%jump-to-discussion{ "inline-template" => true, ":discussion-id" => "'#{discussion.try(:id)}'" } %jump-to-discussion{ "inline-template" => true, ":discussion-id" => "'#{discussion.try(:id)}'" }
.btn-group{ role: "group", .btn-group{ role: "group",
"v-show" => "!allResolved" } "v-show" => "!allResolved" }
......
- if discussion.can_resolve?(current_user) && discussion.resolvable? - if discussion.can_resolve?(current_user)
%resolve-all-btn{ ":namespace-path" => "'#{discussion.project.namespace.path}'", %resolve-all-btn{ ":namespace-path" => "'#{discussion.project.namespace.path}'",
":project-path" => "'#{discussion.project.path}'", ":project-path" => "'#{discussion.project.path}'",
":discussion-id" => "'#{discussion.id}'", ":discussion-id" => "'#{discussion.id}'",
":merge-request-id" => "#{discussion.first_note.noteable.try(:iid)}", ":merge-request-id" => "#{discussion.noteable.iid}",
"inline-template" => true, "inline-template" => true,
"v-cloak" => true } "v-cloak" => true }
%button.btn.btn-default{ type: "button", "@click" => "resolve", ":disabled" => "loading" } %button.btn.btn-default{ type: "button", "@click" => "resolve", ":disabled" => "loading" }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment