Commit 03d19bdc authored by Dietmar Maurer's avatar Dietmar Maurer

apt: group by Origin

code cleanups
parent 9aac6297
...@@ -67,25 +67,32 @@ __PACKAGE__->register_method({ ...@@ -67,25 +67,32 @@ __PACKAGE__->register_method({
return $res; return $res;
}}); }});
my $get_changelug_url = sub { my $get_pkgfile = sub {
my ($pkgname, $info, $candidate_ver) = @_; my ($veriter) = @_;
my $changelog_url; foreach my $verfile (@{$veriter->{FileList}}) {
foreach my $verfile (@{$candidate_ver->{FileList}}) {
my $pkgfile = $verfile->{File}; my $pkgfile = $verfile->{File};
my $origin = $pkgfile->{Origin}; next if !$pkgfile->{Origin};
return $pkgfile;
}
return undef;
};
my $get_changelog_url =sub {
my ($pkgname, $info, $pkgver, $origin) = @_;
my $changelog_url;
my $base = dirname($info->{FileName}); my $base = dirname($info->{FileName});
if ($origin && $base) { if ($origin && $base) {
my $pkgver = $candidate_ver->{VerStr};
$pkgver =~ s/^\d+://; # strip epoch $pkgver =~ s/^\d+://; # strip epoch
my $srcpkg = $info->{SourcePkg} || $pkgname; my $srcpkg = $info->{SourcePkg} || $pkgname;
if ($origin eq 'Debian') { if ($origin eq 'Debian') {
$changelog_url = "http://packages.debian.org/changelogs/$base/" . $changelog_url = "http://packages.debian.org/changelogs/$base/" .
"${srcpkg}_$pkgver/changelog"; "${srcpkg}_$pkgver/changelog";
} }
last;
}
} }
return $changelog_url; return $changelog_url;
}; };
...@@ -95,11 +102,16 @@ my $assemble_pkginfo = sub { ...@@ -95,11 +102,16 @@ my $assemble_pkginfo = sub {
my $data = { my $data = {
Package => $info->{Name}, Package => $info->{Name},
Title => $info->{ShortDesc}, Title => $info->{ShortDesc},
Origin => 'unknown',
}; };
if (my $changelog_url = &$get_changelug_url($pkgname, $info, $candidate_ver)) { if (my $pkgfile = &$get_pkgfile($candidate_ver)) {
my $origin = $pkgfile->{Origin};
$data->{Origin} = $origin;
if (my $changelog_url = &$get_changelog_url($pkgname, $info, $candidate_ver->{VerStr}, $origin)) {
$data->{ChangeLogUrl} = $changelog_url; $data->{ChangeLogUrl} = $changelog_url;
} }
}
if (my $desc = $info->{LongDesc}) { if (my $desc = $info->{LongDesc}) {
$desc =~ s/^.*\n\s?//; # remove first line $desc =~ s/^.*\n\s?//; # remove first line
...@@ -345,8 +357,11 @@ __PACKAGE__->register_method({ ...@@ -345,8 +357,11 @@ __PACKAGE__->register_method({
my $info = $pkgrecords->lookup($pkgname); my $info = $pkgrecords->lookup($pkgname);
my $url = &$get_changelug_url($pkgname, $info, $ver) || my $pkgfile = &$get_pkgfile($ver);
die "changelog for '${pkgname}_$ver->{VerStr}' not available\n"; my $url;
die "changelog for '${pkgname}_$ver->{VerStr}' not available\n"
if !($pkgfile && ($url = &$get_changelog_url($pkgname, $info, $ver->{VerStr}, $pkgfile->{Origin})));
my $data = ""; my $data = "";
......
...@@ -13,7 +13,7 @@ Ext.define('PVE.node.APT', { ...@@ -13,7 +13,7 @@ Ext.define('PVE.node.APT', {
var store = Ext.create('Ext.data.Store', { var store = Ext.create('Ext.data.Store', {
model: 'apt-pkglist', model: 'apt-pkglist',
groupField: 'Section', groupField: 'Origin',
proxy: { proxy: {
type: 'pve', type: 'pve',
url: "/api2/json/nodes/" + nodename + "/apt/update" url: "/api2/json/nodes/" + nodename + "/apt/update"
...@@ -27,7 +27,8 @@ Ext.define('PVE.node.APT', { ...@@ -27,7 +27,8 @@ Ext.define('PVE.node.APT', {
}); });
var groupingFeature = Ext.create('Ext.grid.feature.Grouping', { var groupingFeature = Ext.create('Ext.grid.feature.Grouping', {
groupHeaderTpl: '{[ "Section: " + values.name ]} ({rows.length} Item{[values.rows.length > 1 ? "s" : ""]})' groupHeaderTpl: '{[ "Origin: " + values.name ]} ({rows.length} Item{[values.rows.length > 1 ? "s" : ""]})',
enableGroupingMenu: false
}); });
var rowBodyFeature = Ext.create('Ext.grid.feature.RowBody', { var rowBodyFeature = Ext.create('Ext.grid.feature.RowBody', {
...@@ -203,7 +204,7 @@ Ext.define('PVE.node.APT', { ...@@ -203,7 +204,7 @@ Ext.define('PVE.node.APT', {
Ext.define('apt-pkglist', { Ext.define('apt-pkglist', {
extend: 'Ext.data.Model', extend: 'Ext.data.Model',
fields: [ 'Package', 'Title', 'Description', 'Section', 'Arch', fields: [ 'Package', 'Title', 'Description', 'Section', 'Arch',
'Priority', 'Version', 'OldVersion', 'ChangeLogUrl' ], 'Priority', 'Version', 'OldVersion', 'ChangeLogUrl', 'Origin' ],
idProperty: 'Package' idProperty: 'Package'
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment