Skip to content

Commit

Permalink
Merge pull request #6276 from krauselukas/feature/staging/problems_co…
Browse files Browse the repository at this point in the history
…lumn

 List build problems in staging project page
  • Loading branch information
Ana06 committed Nov 16, 2018
2 parents a56f59d + ae102f9 commit fbadfa5
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 1 deletion.
12 changes: 12 additions & 0 deletions src/api/app/assets/stylesheets/webui2/staging-workflow.scss
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,15 @@
}
}

ul .table-list-group-item {
padding: 0.5rem 0.75rem;
background-color: transparent;
}

.collapse-link[aria-expanded="false"] .less{
display: none;
}

.collapse-link[aria-expanded="true"] .more{
display: none;
}
14 changes: 14 additions & 0 deletions src/api/app/models/staging/staging_project.rb
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,22 @@ def overall_state
@overall_state ||= state
end

def problems
@problems ||= cache_problems
end

private

def cache_problems
problems = {}
broken_packages.each do |package|
problems[package[:package]] ||= {}
problems[package[:package]][package[:state]] ||= []
problems[package[:package]][package[:state]] << { repository: package[:repository], arch: package[:arch] }
end
problems.sort
end

def state
return :empty unless staged_requests.exists?
return :unacceptable if untracked_requests.present? || staged_requests.obsolete.present?
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,22 @@
Placeholder for the content
:ruby
max_problems = 5
project_class = project.name.tr(':', '_')
item_project_class = 'hidden-item-' + project_class

- if project.problems.empty?
.text-center
%i.fas.fa-check-circle.fa-2x.text-success
- else
%ul.list-group.list-group-flush
= render partial: 'problems_item', locals: { project: project, index: 1..(max_problems - 1) }

%span.collapse{ 'id': item_project_class }
= render partial: 'problems_item', locals: { project: project, index: max_problems..-1 }

- length = project.problems.length
- if project.problems.length > max_problems
- number = length - max_problems
%li.list-group-item.table-list-group-item
%a.collapse-link{ 'data-toggle': 'collapse', href: "##{item_project_class}", 'aria-expanded': 'false' }
%span.more See #{number} more
%span.less See #{number} less
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
- project.problems[index].each do |name, states|
%li.list-group-item.table-list-group-item
= link_to("#{name}:", package_show_path(package: name, project: project))
- states.each do |state, values|
= state
= surround '(', ')' do
- values.each do |value|
- coma = ', ' unless values.last == value
= succeed coma do
- if state == 'unresolvable'
= value[:arch]
- else
= link_to(value[:arch], package_live_build_log_path(package: name,
repository: value[:repository],
project: project,
arch: value[:arch]))

0 comments on commit fbadfa5

Please sign in to comment.