summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-02-18 17:16:39 -0200
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-02-20 12:12:05 -0200
commit72009896758dfcf73f94146b67e7758190ce7039 (patch)
tree1a6068f166e35bbff87c96c3dc8e4e827ef74cf0
parent8673a70f500ae5b0e93336f9213947f0aba67033 (diff)
downloadgitlab-ce-72009896758dfcf73f94146b67e7758190ce7039.tar.gz
Refactoring task queue partials
-rw-r--r--app/helpers/tasks_helper.rb12
-rw-r--r--app/models/task.rb12
-rw-r--r--app/views/dashboard/tasks/_common.html.haml17
-rw-r--r--app/views/dashboard/tasks/_note.html.haml26
-rw-r--r--app/views/dashboard/tasks/_task.html.haml25
-rw-r--r--spec/models/task_spec.rb24
6 files changed, 37 insertions, 79 deletions
diff --git a/app/helpers/tasks_helper.rb b/app/helpers/tasks_helper.rb
index a99f2b48a26..d8e0780e4c1 100644
--- a/app/helpers/tasks_helper.rb
+++ b/app/helpers/tasks_helper.rb
@@ -23,18 +23,20 @@ module TasksHelper
[task.action_name, target].join(" ")
end
- def task_note_link_html(task)
- link_to task_note_target_path(task) do
+ def task_target_link_html(task)
+ link_to task_target_path(task) do
"##{task.target_iid}"
end
end
- def task_note_target_path(task)
+ def task_target_path(task)
+ anchor = dom_id(task.note) if task.note.present?
+
polymorphic_path([task.project.namespace.becomes(Namespace),
- task.project, task.target], anchor: dom_id(task.note))
+ task.project, task.target], anchor: anchor)
end
- def task_note(text, options = {})
+ def task_body(text, options = {})
text = first_line_in_markdown(text, 150, options)
sanitize(text, tags: %w(a img b pre code p span))
end
diff --git a/app/models/task.rb b/app/models/task.rb
index 9b11698221d..0872743097c 100644
--- a/app/models/task.rb
+++ b/app/models/task.rb
@@ -50,12 +50,12 @@ class Task < ActiveRecord::Base
end
end
- def body?
- target.respond_to? :title
- end
-
- def note_text
- note.try(:note)
+ def body
+ if note.present?
+ note.note
+ else
+ target.title
+ end
end
def target_iid
diff --git a/app/views/dashboard/tasks/_common.html.haml b/app/views/dashboard/tasks/_common.html.haml
deleted file mode 100644
index b6d0c3c03ac..00000000000
--- a/app/views/dashboard/tasks/_common.html.haml
+++ /dev/null
@@ -1,17 +0,0 @@
-.task-title
- %span.author_name= link_to_author task
- %span.task_label{class: task.action_name}
- = task_action_name(task)
-
- %strong= link_to "##{task.target_iid}", [task.project.namespace.becomes(Namespace), task.project, task.target]
-
- &middot; #{time_ago_with_tooltip(task.created_at)}
-
-- if task.pending?
- .task-actions.pull-right
- = link_to 'Done', [:dashboard, task], method: :delete, class: 'btn'
-
-- if task.body?
- .task-body
- .task-note
- = task.target.title
diff --git a/app/views/dashboard/tasks/_note.html.haml b/app/views/dashboard/tasks/_note.html.haml
deleted file mode 100644
index 2cfd55afccb..00000000000
--- a/app/views/dashboard/tasks/_note.html.haml
+++ /dev/null
@@ -1,26 +0,0 @@
-.task-title
- %span.author_name
- = link_to_author task
- %span.task_label{class: task.action_name}
- = task_action_name(task)
- = task_note_link_html(task)
-
- &middot; #{time_ago_with_tooltip(task.created_at)}
-
-- if task.pending?
- .task-actions.pull-right
- = link_to 'Done', [:dashboard, task], method: :delete, class: 'btn'
-
-.task-body
- .task-note
- .md
- = task_note(task.note_text, project: task.project)
- - note = task.note
- - if note.attachment.url
- - if note.attachment.image?
- = link_to note.attachment.url, target: '_blank' do
- = image_tag note.attachment.url, class: 'note-image-attach'
- - else
- = link_to note.attachment.url, target: "_blank", class: 'note-file-attach' do
- %i.fa.fa-paperclip
- = note.attachment_identifier
diff --git a/app/views/dashboard/tasks/_task.html.haml b/app/views/dashboard/tasks/_task.html.haml
index 2ca8f0dad63..d08b021f53b 100644
--- a/app/views/dashboard/tasks/_task.html.haml
+++ b/app/views/dashboard/tasks/_task.html.haml
@@ -1,8 +1,21 @@
%li{class: "task task-#{task.done? ? 'done' : 'pending'}", id: dom_id(task) }
- .task-item{class: "#{task.body? ? 'task-block' : 'task-inline' }"}
- = image_tag avatar_icon(task.author_email, 40), class: "avatar s40", alt:''
+ .task-item{class: 'task-block'}
+ = image_tag avatar_icon(task.author_email, 40), class: 'avatar s40', alt:''
- - if task.note.present?
- = render 'note', task: task
- - else
- = render 'common', task: task
+ .task-title
+ %span.author_name
+ = link_to_author task
+ %span.task_label
+ = task_action_name(task)
+ = task_target_link_html(task)
+
+ &middot; #{time_ago_with_tooltip(task.created_at)}
+
+ - if task.pending?
+ .task-actions.pull-right
+ = link_to 'Done', [:dashboard, task], method: :delete, class: 'btn'
+
+ .task-body
+ .task-note
+ .md
+ = task_body(task.body, project: task.project)
diff --git a/spec/models/task_spec.rb b/spec/models/task_spec.rb
index 2d00c7dbc8c..2bbd47c5e8a 100644
--- a/spec/models/task_spec.rb
+++ b/spec/models/task_spec.rb
@@ -51,35 +51,21 @@ describe Task, models: true do
end
end
- describe '#body?' do
- let(:issue) { build(:issue) }
-
+ describe '#body' do
before do
- subject.target = issue
- end
-
- it 'returns true when target respond to title' do
- expect(subject.body?).to eq true
+ subject.target = build(:issue, title: 'Bugfix')
end
- it 'returns false when target does not respond to title' do
- allow(issue).to receive(:respond_to?).with(:title).and_return(false)
-
- expect(subject.body?).to eq false
- end
- end
-
- describe '#note_text' do
- it 'returns nil when note is blank' do
+ it 'returns target title when note is blank' do
subject.note = nil
- expect(subject.note_text).to be_nil
+ expect(subject.body).to eq 'Bugfix'
end
it 'returns note when note is present' do
subject.note = build(:note, note: 'quick fix')
- expect(subject.note_text).to eq 'quick fix'
+ expect(subject.body).to eq 'quick fix'
end
end