-
Notifications
You must be signed in to change notification settings - Fork 433
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #15257 from hellcp-work/patchinfo_summary
Add update information to the conversations tab
- Loading branch information
Showing
12 changed files
with
6,708 additions
and
5,090 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
.pb-1 | ||
%p.m-0 | ||
= @patchinfo['summary'] | ||
= category | ||
= rating | ||
= stopped | ||
= retracted | ||
= link_to("#patchinfo-collapse-#{@path.parameterize}", 'data-bs-toggle': 'collapse', 'aria-expanded': false ) do | ||
%span.collapser | ||
(see less) | ||
%span.expander | ||
(see more) | ||
.collapse{ id: "patchinfo-collapse-#{@path.parameterize}" } | ||
%p | ||
Patch created by | ||
- if (packager = User.find_by(login: patchinfo['packager']) || User.find_by(email: Mail::Address.new(patchinfo['packager']).address)) | ||
= render UserAvatarComponent.new(packager.login) | ||
- else | ||
= @patchinfo['packager'] | ||
- if @patchinfo.key?('incident') | ||
in the maintenance incident request | ||
- if (incident = BsRequest.find_by(number: @patchinfo['incident'])) | ||
= link_to(request_show_path(incident)) do | ||
\##{@patchinfo['incident']} | ||
- else | ||
\##{@patchinfo['incident']} | ||
|
||
- if @patchinfo['description'].present? | ||
%h6 Patch description | ||
%p= @patchinfo['description'] | ||
|
||
- if @patchinfo['message'].present? | ||
%h6 Pop-up message | ||
%p= @patchinfo['message'] | ||
|
||
- if @patchinfo['releasetarget'].present? | ||
%h6 Targeted for release in the following projects | ||
%ul | ||
- @patchinfo['releasetarget'].each do |releasetarget| | ||
%li | ||
- if (project = Project.find_by_name(releasetarget['project'])) | ||
= link_to(project_show_path(project)) do | ||
= releasetarget['project'] | ||
- else | ||
= releasetarget['project'] | ||
- if releasetarget.key?('repository') | ||
Repository: | ||
= releasetarget['repository'] | ||
|
||
- if @patchinfo['binary'].present? | ||
%h6 Affected binaries | ||
%ul | ||
- @patchinfo['binary'].each do |binary| | ||
%li= binary | ||
|
||
- if @patchinfo['package'].present? | ||
%h6 Affected packages | ||
%ul | ||
- @patchinfo['package'].each do |package| | ||
%li= package | ||
|
||
- if @patchinfo['issue'].present? | ||
%h6 Issues related to the patch | ||
%ul | ||
- @patchinfo['issue'].each do |issue_hash| | ||
- if (issue = Issue.find_or_create_by_name_and_tracker(issue_hash['id'], issue_hash['tracker'])) | ||
%li | ||
= link_to(issue.url) do | ||
#{issue.label}: | ||
= issue.state | ||
= issue.summary | ||
|
||
- properties.each do |property| | ||
%span.badge.text-bg-info= property | ||
%p.text-muted | ||
Based on | ||
= link_to(@path) do | ||
patchinfo | ||
present in this request |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# frozen_string_literal: true | ||
|
||
class PatchinfoComponent < ApplicationComponent | ||
attr_reader :patchinfo, :path | ||
|
||
CATEGORY_COLOR = { ptf: 'text-bg-danger', | ||
security: 'text-bg-warning', | ||
recommended: 'text-bg-info', | ||
optional: 'text-bg-secondary', | ||
feature: 'text-bg-success' }.freeze | ||
|
||
RATING_COLOR = { low: 'text-bg-secondary', | ||
moderate: 'text-bg-success', | ||
important: 'text-bg-warning', | ||
critical: 'text-bg-danger' }.freeze | ||
|
||
def initialize(patchinfo, path) | ||
super | ||
@patchinfo = Xmlhash.parse(patchinfo) | ||
@path = path | ||
end | ||
|
||
def category | ||
badge(patchinfo['category'], CATEGORY_COLOR[patchinfo['category'].to_sym]) | ||
end | ||
|
||
def rating | ||
badge("#{patchinfo['rating']} priority", RATING_COLOR[patchinfo['rating'].to_sym]) | ||
end | ||
|
||
def stopped | ||
return '' unless @patchinfo['stopped'] | ||
|
||
badge('stopped', 'text-bg-danger') | ||
end | ||
|
||
def retracted | ||
return '' unless @patchinfo['retracted'] | ||
|
||
badge('retracted', 'text-bg-danger') | ||
end | ||
|
||
def properties | ||
['reboot_needed', 'relogin_needed', 'zypp_restart_needed'].filter_map do |property| | ||
patchinfo.key?(property) ? property : nil | ||
end | ||
end | ||
|
||
def render? | ||
patchinfo.present? | ||
end | ||
|
||
private | ||
|
||
def badge(text, color = 'text-bg-secondary') | ||
tag.span(text.humanize, class: "badge #{color}") | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.