Skip to content

Commit

Permalink
[webui] Show if request is a new package submission
Browse files Browse the repository at this point in the history
in the request table on the user and group overview.
  • Loading branch information
ChrisBr committed Oct 9, 2017
1 parent 7d24036 commit 989854f
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 1 deletion.
1 change: 1 addition & 0 deletions .rubocop_todo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -609,6 +609,7 @@ Rails/OutputSafety:
- 'src/api/app/helpers/webui/package_helper.rb'
- 'src/api/app/helpers/webui/project_helper.rb'
- 'src/api/app/helpers/webui/webui_helper.rb'
- 'src/api/app/helpers/webui/request_helper.rb'

# Offense count: 136
# Cop supports --auto-correct.
Expand Down
9 changes: 9 additions & 0 deletions src/api/app/helpers/webui/request_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@ def request_state_color(state)
STATE_COLORS[state.to_s] || ''
end

def new_or_update_request(row)
if row.target_package_id
row.request_type
else
"#{row.request_type} <small>(new package)</small>".html_safe
end
end

def merge_opt(res, opt, value)
res[opt] ||= value
res[opt] = :multiple if value != res[opt]
Expand All @@ -29,6 +37,7 @@ def common_parts(req)
merge_opt(res, :target_package, ae.target_package)
merge_opt(res, :target_project, ae.target_project)
merge_opt(res, :request_type, ae.action_type)
res[:target_package_id] ||= ae.target_package_id
end

res[:request_type] = map_request_type(res[:request_type])
Expand Down
4 changes: 4 additions & 0 deletions src/api/app/models/bs_request/data_table/row.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ def request_type
cache[:request_type]
end

def target_package_id
cache[:target_package_id]
end

def target_project
cache[:target_project]
end
Expand Down
2 changes: 1 addition & 1 deletion src/api/app/views/webui/shared/bs_requests/index.json.erb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"<%= escape_javascript(project_or_package_link(project: row.source_project, package: row.source_package, creator: row.creator, trim_to: 40, short: true)) %>",
"<%= escape_javascript(target_project_link(row)) %>",
"<%= escape_javascript(user_with_realname_and_icon(row.creator, short: true)) %>",
"<%= escape_javascript(row.request_type) %>",
"<%= escape_javascript(new_or_update_request(row)) %>",
"<%= escape_javascript(row.priority) %>",
"<%= escape_javascript(link_to(sprite_tag('req-showdiff', title: "Show request ##{row.number}"), request_show_path(row.number), { class: :request_link })) %>"
<% end %>
Expand Down
32 changes: 32 additions & 0 deletions src/api/spec/helpers/webui/request_helper_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
require 'rails_helper'

RSpec.describe Webui::RequestHelper do

describe '#new_or_update' do
context 'for a new package' do
let(:request) { create(:bs_request) }
let(:row) { BsRequest::DataTable::Row .new(request) }

it { expect(new_or_update_request(row)).to eq("BsRequestAction <small>(new package)</small>") }
it { expect(new_or_update_request(row)).to be_a(ActiveSupport::SafeBuffer) }
end

context 'for an existing package' do
let(:target_package) { create(:package) }
let(:target_project) { target_package.project }
let(:source_package) { create(:package) }
let(:source_project) { source_package.project }
let(:bs_request_with_submit_action) do
create(:bs_request_with_submit_action,
target_project: target_project,
target_package: target_package,
source_project: source_project,
source_package: source_package
)
end
let(:row) { BsRequest::DataTable::Row .new(bs_request_with_submit_action) }

it { expect(new_or_update_request(row)).to eq("submit") }
end
end
end

0 comments on commit 989854f

Please sign in to comment.