Improve displaying results from update check with multiple source repos

This commit is contained in:
Martchus 2021-02-09 17:49:31 +01:00
parent ab6b940d8e
commit 40d99e3bf0
1 changed files with 17 additions and 14 deletions

View File

@ -716,13 +716,7 @@ function renderBuildActionArtefacts(array, obj)
}); });
} }
function isBuildActionSourceAur(buildActionInfo) function renderUpdateInfoWithCheckbox(id, packageName, newPackageName, versionInfo, sourceDbs, newVersion)
{
const sourceDbs = typeof buildActionInfo === 'object' ? buildActionInfo.sourceDbs : undefined;
return Array.isArray(sourceDbs) && sourceDbs.length === 1 && sourceDbs[0] == 'aur';
}
function renderUpdateInfoWithCheckbox(id, packageName, newPackageName, versionInfo, sourceFromAur)
{ {
const inputElement = document.createElement('input'); const inputElement = document.createElement('input');
inputElement.type = 'checkbox'; inputElement.type = 'checkbox';
@ -730,17 +724,25 @@ function renderUpdateInfoWithCheckbox(id, packageName, newPackageName, versionIn
inputElement.value = packageName; inputElement.value = packageName;
const labelElement = document.createElement('label'); const labelElement = document.createElement('label');
labelElement.htmlFor = id; labelElement.htmlFor = id;
if (sourceFromAur && newPackageName) { if (newVersion && newPackageName) {
const packageNameLink = document.createElement('a'); const packageNameLink = document.createElement('a');
packageNameLink.href = 'https://aur.archlinux.org/packages/' + newPackageName; let from = newVersion.db;
if (newVersion.db === 'aur') {
packageNameLink.href = 'https://aur.archlinux.org/packages/' + encodeURIComponent(newPackageName);
packageNameLink.target = '_blank'; packageNameLink.target = '_blank';
from = 'AUR';
} else {
packageNameLink.href = '#package-details-section&' + encodeURIComponent(newVersion.db + '@' + newVersion.arch + '/' + newPackageName);
}
packageNameLink.appendChild(document.createTextNode(newPackageName)); packageNameLink.appendChild(document.createTextNode(newPackageName));
if (newPackageName !== packageName) { if (newPackageName !== packageName) {
labelElement.appendChild(document.createTextNode(packageName + ' (')); labelElement.appendChild(document.createTextNode(packageName + ' ('));
} }
labelElement.appendChild(packageNameLink); labelElement.appendChild(packageNameLink);
if (newPackageName !== packageName) { if (newPackageName !== packageName) {
labelElement.appendChild(document.createTextNode(')')); labelElement.appendChild(document.createTextNode(sourceDbs.length ? ' from ' + from + ')' : ')'));
} else if (sourceDbs.length) {
labelElement.appendChild(document.createTextNode(' from ' + from));
} }
labelElement.appendChild(document.createTextNode(': ' + versionInfo)); labelElement.appendChild(document.createTextNode(': ' + versionInfo));
} else if (newPackageName && packageName !== newPackageName) { } else if (newPackageName && packageName !== newPackageName) {
@ -816,7 +818,8 @@ function renderOrphanPackage(value, obj, level, row)
'update-info-checkbox-' + packageName + '-' + package.version, 'update-info-checkbox-' + packageName + '-' + package.version,
packageName, packageName,
undefined, undefined,
package.version package.version,
row.sourceDbs,
); );
return document.createTextNode(); return document.createTextNode();
}, function(package1, package2) { }, function(package1, package2) {
@ -826,7 +829,6 @@ function renderOrphanPackage(value, obj, level, row)
function renderUpdateOrDowngrade(value, obj, level, row) function renderUpdateOrDowngrade(value, obj, level, row)
{ {
const sourceFromAur = isBuildActionSourceAur(row);
return renderCustomList(value, function(updateInfo) { return renderCustomList(value, function(updateInfo) {
const oldVersion = updateInfo.oldVersion; const oldVersion = updateInfo.oldVersion;
const newVersion = updateInfo.newVersion; const newVersion = updateInfo.newVersion;
@ -836,7 +838,8 @@ function renderUpdateOrDowngrade(value, obj, level, row)
packageName, packageName,
newVersion.name, newVersion.name,
oldVersion.version + ' → ' + newVersion.version, oldVersion.version + ' → ' + newVersion.version,
sourceFromAur row.sourceDbs,
newVersion
); );
}, function(updateInfo1, updateInfo2) { }, function(updateInfo1, updateInfo2) {
return updateInfo1.oldVersion.name.localeCompare(updateInfo2.oldVersion.name); return updateInfo1.oldVersion.name.localeCompare(updateInfo2.oldVersion.name);