Skip to content
Snippets Groups Projects
Commit da6aaabb authored by Nicole Cordes's avatar Nicole Cordes Committed by Christian Kuhn
Browse files

[BUGFIX] Prevent current extension version in update dialog

If you update an extension, the current version is included  in the
confirmation dialog. This might confuse the user as this version is
already available. The patch extends the repository function and adds
a parameter to exclude the current version from the database request.

Resolves: #65904
Releases: master
Change-Id: I66e7450840da1297ea4f3dc06bafe52b799bc267
Reviewed-on: http://review.typo3.org/38011


Reviewed-by: default avatarAndreas Fernandez <andreas.fernandez@aspedia.de>
Tested-by: default avatarAndreas Fernandez <andreas.fernandez@aspedia.de>
Reviewed-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
Tested-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
parent 71365fe6
No related merge requests found
......@@ -207,7 +207,7 @@ class DownloadController extends AbstractController {
$version = $this->request->getArgument('integerVersion');
$updateComments = array();
/** @var Extension[] $updatableVersions */
$updatableVersions = $this->extensionRepository->findByVersionRangeAndExtensionKeyOrderedByVersion($extensionKey, $version);
$updatableVersions = $this->extensionRepository->findByVersionRangeAndExtensionKeyOrderedByVersion($extensionKey, $version, 0, FALSE);
foreach ($updatableVersions as $updatableVersion) {
$updateComments[$updatableVersion->getVersion()] = $updatableVersion->getUpdateComment();
}
......
......@@ -168,17 +168,22 @@ class ExtensionRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {
* @param string $extensionKey
* @param int $lowestVersion
* @param int $highestVersion
* @param bool $includeCurrentVersion
* @return \TYPO3\CMS\Extbase\Persistence\QueryResultInterface
*/
public function findByVersionRangeAndExtensionKeyOrderedByVersion($extensionKey, $lowestVersion = 0, $highestVersion = 0) {
public function findByVersionRangeAndExtensionKeyOrderedByVersion($extensionKey, $lowestVersion = 0, $highestVersion = 0, $includeCurrentVersion = TRUE) {
$query = $this->createQuery();
$constraint = NULL;
if ($lowestVersion !== 0 && $highestVersion !== 0) {
$constraint = $query->logicalAnd($query->lessThanOrEqual('integerVersion', $highestVersion), $query->greaterThanOrEqual('integerVersion', $lowestVersion), $query->equals('extensionKey', $extensionKey));
} elseif ($lowestVersion === 0 && $highestVersion !== 0) {
} elseif ($lowestVersion === 0 && $highestVersion !== 0 && $includeCurrentVersion) {
$constraint = $query->logicalAnd($query->lessThanOrEqual('integerVersion', $highestVersion), $query->equals('extensionKey', $extensionKey));
} elseif ($lowestVersion !== 0 && $highestVersion === 0) {
} elseif ($lowestVersion === 0 && $highestVersion !== 0) {
$constraint = $query->logicalAnd($query->lessThan('integerVersion', $highestVersion), $query->equals('extensionKey', $extensionKey));
} elseif ($lowestVersion !== 0 && $highestVersion === 0 && $includeCurrentVersion) {
$constraint = $query->logicalAnd($query->greaterThanOrEqual('integerVersion', $lowestVersion), $query->equals('extensionKey', $extensionKey));
} elseif ($lowestVersion !== 0 && $highestVersion === 0) {
$constraint = $query->logicalAnd($query->greaterThan('integerVersion', $lowestVersion), $query->equals('extensionKey', $extensionKey));
} elseif ($lowestVersion === 0 && $highestVersion === 0) {
$constraint = $query->equals('extensionKey', $extensionKey);
}
......
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