Skip to content

Commit

Permalink
Fixes #37794 - Align deb-package details with rpm-package details
Browse files Browse the repository at this point in the history
- Add "Section", "Maintainer", "Homepage" and "Installed size" to deb details
- Add "Dependencies" tab to deb details
  • Loading branch information
Thorben-D authored and sbernhard committed Sep 10, 2024
1 parent cb67ea5 commit ade7b9a
Show file tree
Hide file tree
Showing 10 changed files with 156 additions and 3 deletions.
9 changes: 9 additions & 0 deletions app/lib/katello/util/deb.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module Katello
module Util
module Deb
def self.parse_dependencies(deps)
deps&.split(',')&.collect { |d| d.strip }
end
end
end
end
36 changes: 35 additions & 1 deletion app/services/katello/pulp3/deb.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ class Deb < PulpContentUnit
CONTENT_TYPE = "deb".freeze
PULPCORE_CONTENT_TYPE = "deb.package".freeze

lazy_accessor :initializer => :backend_data

def self.content_api
PulpDebClient::ContentPackagesApi.new(Katello::Pulp3::Api::Apt.new(SmartProxy.pulp_primary!).api_client)
end
Expand Down Expand Up @@ -34,9 +36,41 @@ def self.generate_model_row(unit)
name: unit[:package],
version: unit[:version],
description: unit[:description]&.truncate(255),
architecture: unit[:architecture]
architecture: unit[:architecture],
section: unit[:section],
maintainer: unit[:maintainer],
homepage: unit[:homepage],
installed_size: unit[:installed_size]
}
end

def depends
Util::Deb.parse_dependencies(backend_data['depends'])
end

def pre_depends
Util::Deb.parse_dependencies(backend_data['pre_depends'])
end

def recommends
Util::Deb.parse_dependencies(backend_data['recommends'])
end

def suggests
Util::Deb.parse_dependencies(backend_data['suggests'])
end

def enhances
Util::Deb.parse_dependencies(backend_data['enhances'])
end

def breaks
Util::Deb.parse_dependencies(backend_data['breaks'])
end

def conflicts
Util::Deb.parse_dependencies(backend_data['conflicts'])
end
end
end
end
7 changes: 7 additions & 0 deletions app/views/katello/api/v2/debs/backend.json.rabl
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
attributes :depends
attributes :pre_depends
attributes :recommends
attributes :suggests
attributes :enhances
attributes :breaks
attributes :conflicts
4 changes: 4 additions & 0 deletions app/views/katello/api/v2/debs/base.json.rabl
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ attributes :nav
attributes :nva
attributes :pulp_id
attributes :pulp_id => :uuid
attributes :section
attributes :maintainer
attributes :homepage
attributes :installed_size

node(:hosts_available_count) { |m| m.hosts_available(params[:organization_id]).count }
node(:hosts_applicable_count) { |m| m.hosts_applicable(params[:organization_id]).count }
2 changes: 2 additions & 0 deletions app/views/katello/api/v2/debs/show.json.rabl
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
object @resource

extends "katello/api/v2/debs/base"
extends "katello/api/v2/debs/backend",
:object => SmartProxy.pulp_primary!.content_service("deb").new(@resource.pulp_id)
15 changes: 15 additions & 0 deletions db/migrate/20240806130902_add_more_deb_fields.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
class AddMoreDebFields < ActiveRecord::Migration[6.1]
def up
add_column :katello_debs, :section, :string, :limit => 255
add_column :katello_debs, :maintainer, :string, :limit => 255
add_column :katello_debs, :homepage, :string, :limit => 255
add_column :katello_debs, :installed_size, :string, :limit => 255
end

def down
remove_column :katello_debs, :section
remove_column :katello_debs, :maintainer
remove_column :katello_debs, :homepage
remove_column :katello_debs, :installed_size
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,15 @@
parent: 'debs'
}
})
.state('deb.dependencies', {
url: '/dependencies',
permission: ['view_products', 'view_content_views'],
templateUrl: 'debs/details/views/deb-dependencies.html',
ncyBreadcrumb: {
label: "{{ 'Dependencies' | translate }}",
parent: 'deb.info'
}
})
.state('deb.repositories', {
url: '/repositories',
permission: ['view_products'],
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<span page-title ng-model="deb">{{ 'Deb: ' | translate }} {{ deb.nva }}</span>

<section>

<div ng-if="deb.depends.length > 0" class="details fl">
<h4 translate><b>Depends</b></h4>
<div ng-repeat="item in deb.depends | orderBy:'toString()'">
{{ item }}
</div>
</div>

<div ng-if="deb.pre_depends.length > 0" class="details fl">
<h4 translate><b>Pre-Depends</b></h4>
<div ng-repeat="item in deb.pre_depends | orderBy:'toString()'">
{{ item }}
</div>
</div>

<div ng-if="deb.recommends.length > 0" class="details fl">
<h4 translate><b>Recommends</b></h4>
<div ng-repeat="item in deb.recommends | orderBy:'toString()'">
{{ item }}
</div>
</div>

<div ng-if="deb.suggests.length > 0" class="details fl">
<h4 translate><b>Suggests</b></h4>
<div ng-repeat="item in deb.suggests | orderBy:'toString()'">
{{ item }}
</div>
</div>

<div ng-if="deb.enhances.length > 0" class="details fl">
<h4 translate><b>Enhances</b></h4>
<div ng-repeat="item in deb.enhances | orderBy:'toString()'">
{{ item }}
</div>
</div>

<div ng-if="deb.breaks.length > 0" class="details fl">
<h4 translate><b>Breaks</b></h4>
<div ng-repeat="item in deb.breaks | orderBy:'toString()'">
{{ item }}
</div>
</div>

<div ng-if="deb.conflicts.length > 0" class="details fl">
<h4 translate><b>Conflicts</b></h4>
<div ng-repeat="item in deb.conflicts | orderBy:'toString()'">
{{ item }}
</div>
</div>

</section>
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<div data-extend-template="layouts/full-page-details.html">
<div data-block="content">
<h4 translate>Basic Information</h4>
<h4 translate>Package Information</h4>

<dl class="dl-horizontal dl-horizontal-left">
<dt translate>Installed On</dt>
Expand Down Expand Up @@ -46,6 +46,18 @@ <h4 translate>Basic Information</h4>

<dt translate>Description</dt>
<dd>{{ deb.description }}</dd>

<dt translate>Section</dt>
<dd>{{ deb.section }}</dd>

<dt translate>Maintainer</dt>
<dd>{{ deb.maintainer }}</dd>

<dt translate>Homepage</dt>
<dd>{{ deb.homepage }}</dd>

<dt translate>Installed size</dt>
<dd>{{ deb.installed_size }} kB</dd>
</dl>
<div class="divider"></div>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,13 @@ <h2>{{ deb.nva }}</h2>
</span>
</a>
</li>
<li ng-class="{active: isState('deb.dependencies')}">
<a ui-sref="deb.dependencies">
<span translate>
Dependencies
</span>
</a>
</li>
<li ng-show="permitted('view_products')" ng-class="{active: isState('deb.repositories')}">
<a ui-sref="deb.repositories">
<span translate>
Expand All @@ -34,4 +41,4 @@ <h2>{{ deb.nva }}</h2>
<div data-block="content">
<section ui-view></section>
</div>
</div>
</div>

0 comments on commit ade7b9a

Please sign in to comment.