From 347a4ed5d8bde2ed17d6b296f6f27a7615905a94 Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Thu, 18 Apr 2019 11:19:54 +0200 Subject: [PATCH] Improved the visual separation of package sources --- .../acp/templates/packageSearchResultList.tpl | 58 ++++++++++++------- .../update/PackageUpdateAction.class.php | 31 ++++++---- wcfsetup/install/lang/de.xml | 6 +- wcfsetup/install/lang/en.xml | 2 + 4 files changed, 62 insertions(+), 35 deletions(-) diff --git a/wcfsetup/install/files/acp/templates/packageSearchResultList.tpl b/wcfsetup/install/files/acp/templates/packageSearchResultList.tpl index 976964941a..1acc835d3d 100644 --- a/wcfsetup/install/files/acp/templates/packageSearchResultList.tpl +++ b/wcfsetup/install/files/acp/templates/packageSearchResultList.tpl @@ -1,24 +1,42 @@ -{hascontent} - - +
+ + + + + + + + {event name='headColumns'} + + + + + + + + {foreach from=$trustedSources item=$package} + + + + + + + + {/foreach} + {hascontent} - - - - - - {event name='headColumns'} + - - - {content} - {foreach from=$packageUpdates item=$package} + {foreach from=$thirdPartySources item=$package} - - {event name='columns'} {/foreach} {/content} - -
{lang}wcf.acp.package.name{/lang}{lang}wcf.acp.package.author{/lang}{lang}wcf.acp.package.license{/lang}{lang}wcf.acp.package.packageDate{/lang}
{lang count=$trustedSources|count}wcf.acp.package.search.result.trusted{/lang}
+ + +
{$package->packageName} {$package->getAccessibleVersion()->packageVersion}
+ {$package->package} +
{if $package->authorURL}{$package->author}{else}{$package->author}{/if}{if $package->getAccessibleVersion()->licenseURL}{$package->getAccessibleVersion()->license}{else}{$package->getAccessibleVersion()->license}{/if}{@$package->getAccessibleVersion()->packageDate|time}
{lang}wcf.acp.package.name{/lang}{lang}wcf.acp.package.author{/lang}{lang}wcf.acp.package.license{/lang}{lang}wcf.acp.package.packageDate{/lang}{lang count=$thirdPartySources|count}wcf.acp.package.search.result.thirdParty{/lang}
- - {event name='buttons'}
{$package->packageName} {$package->getAccessibleVersion()->packageVersion}
@@ -27,13 +45,9 @@
{if $package->authorURL}{$package->author}{else}{$package->author}{/if} {if $package->getAccessibleVersion()->licenseURL}{$package->getAccessibleVersion()->license}{else}{$package->getAccessibleVersion()->license}{/if} {@$package->getAccessibleVersion()->packageDate|time}
-{hascontentelse} -

{lang}wcf.acp.package.search.error.noMatches{/lang}

-{/hascontent} + {/hascontent} + + diff --git a/wcfsetup/install/files/lib/data/package/update/PackageUpdateAction.class.php b/wcfsetup/install/files/lib/data/package/update/PackageUpdateAction.class.php index a94d9b8750..7af9a557bc 100644 --- a/wcfsetup/install/files/lib/data/package/update/PackageUpdateAction.class.php +++ b/wcfsetup/install/files/lib/data/package/update/PackageUpdateAction.class.php @@ -450,6 +450,11 @@ class PackageUpdateAction extends AbstractDatabaseObjectAction { $updateVersions = $statement->fetchObjects(PackageUpdateVersion::class, 'packageUpdateVersionID'); // assign versions + /** + * @var ViewablePackageUpdate[] $thirdPartySources + * @var ViewablePackageUpdate[] $trustedSources + */ + $thirdPartySources = $trustedSources = []; /** * @var int $packageUpdateID * @var ViewablePackageUpdate $packageUpdate @@ -459,25 +464,29 @@ class PackageUpdateAction extends AbstractDatabaseObjectAction { $packageUpdate->setAccessibleVersion($updateVersions[$versionIDs['accessible']]); $packageUpdate->setLatestVersion($updateVersions[$versionIDs['existing']]); $packageUpdate->setUpdateServer($updateServers[$packageUpdate->packageUpdateServerID]); - } - - uasort($packageUpdates, function(ViewablePackageUpdate $a, ViewablePackageUpdate $b) { - $aIsTrusted = $a->getUpdateServer()->isTrustedServer() || $a->getUpdateServer()->isWoltLabStoreServer(); - $bIsTrusted = $b->getUpdateServer()->isTrustedServer() || $b->getUpdateServer()->isWoltLabStoreServer(); - if ($aIsTrusted === $bIsTrusted) { - return strnatcasecmp($a->getName(), $b->getName()); + if ($packageUpdate->getUpdateServer()->isTrustedServer() || $packageUpdate->getUpdateServer()->isWoltLabStoreServer()) { + $trustedSources[] = $packageUpdate; } - - return $aIsTrusted ? -1 : 1; + else { + $thirdPartySources[] = $packageUpdate; + } + } + + uasort($thirdPartySources, function(ViewablePackageUpdate $a, ViewablePackageUpdate $b) { + return strnatcasecmp($a->getName(), $b->getName()); + }); + uasort($trustedSources, function(ViewablePackageUpdate $a, ViewablePackageUpdate $b) { + return strnatcasecmp($a->getName(), $b->getName()); }); WCF::getTPL()->assign([ - 'packageUpdates' => $packageUpdates, + 'thirdPartySources' => $thirdPartySources, + 'trustedSources' => $trustedSources, ]); return [ - 'count' => count($updateData), + 'count' => count($thirdPartySources) + count($trustedSources), 'template' => WCF::getTPL()->fetch('packageSearchResultList'), ]; } diff --git a/wcfsetup/install/lang/de.xml b/wcfsetup/install/lang/de.xml index 16ce3e6041..4f5e817739 100644 --- a/wcfsetup/install/lang/de.xml +++ b/wcfsetup/install/lang/de.xml @@ -1919,9 +1919,11 @@ Die Datenbestände werden sorgfältig gepflegt, aber es ist nicht ausgeschlossen - + - + + + diff --git a/wcfsetup/install/lang/en.xml b/wcfsetup/install/lang/en.xml index 9dd1ed7182..2966d146f8 100644 --- a/wcfsetup/install/lang/en.xml +++ b/wcfsetup/install/lang/en.xml @@ -1908,6 +1908,8 @@ If you have already bought the licenses for the listed apps, th + + -- 2.20.1