Skip to content

Commit

Permalink
Sort drivers alphabetically, with “None” first
Browse files Browse the repository at this point in the history
  • Loading branch information
bencroker committed Mar 27, 2024
1 parent 7be55f7 commit 58cd0da
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 4 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

### Added

- Added batched generate cache jobs ([#537](https://github.com/putyourlightson/craft-blitz/issues/537)).
- Added batching to generate cache jobs ([#537](https://github.com/putyourlightson/craft-blitz/issues/537)).
- Added a new `driverJobBatchSize` config setting that sets the batch size to use for driver jobs that support batching.
- Added a new `refreshCacheEnabled` config setting that determines whether cached pages are refreshed whenever content changes or an integration triggers it.
- Added a new `injectScriptPosition` config setting that determines the position in the HTML in which to output the injected script ([#636](https://github.com/putyourlightson/craft-blitz/issues/636)).
Expand Down
27 changes: 24 additions & 3 deletions src/controllers/SettingsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

use Craft;
use craft\base\ComponentInterface;
use craft\base\SavableComponent;
use craft\helpers\Template;
use craft\helpers\UrlHelper;
use craft\web\Controller;
Expand All @@ -20,6 +21,7 @@
use putyourlightson\blitz\helpers\CachePurgerHelper;
use putyourlightson\blitz\helpers\CacheStorageHelper;
use putyourlightson\blitz\helpers\DeployerHelper;
use yii\helpers\ArrayHelper;
use yii\web\Response;

class SettingsController extends Controller
Expand Down Expand Up @@ -71,7 +73,7 @@ public function actionEdit(): ?Response
// Validate the generator so that any errors will be displayed
$generatorDriver->validate();

$generatorDrivers = CacheGeneratorHelper::getAllDrivers();
$generatorDrivers = $this->sortDriversByDisplayName(CacheGeneratorHelper::getAllDrivers());

/** @var BaseCachePurger $purgerDriver */
$purgerDriver = BaseDriverHelper::createDriver(
Expand All @@ -83,7 +85,7 @@ public function actionEdit(): ?Response
$purgerDriver->validate();
$purgerDriver->test();

$purgerDrivers = CachePurgerHelper::getAllDrivers();
$purgerDrivers = $this->sortDriversByDisplayName(CachePurgerHelper::getAllDrivers());

/** @var BaseDeployer $deployerDriver */
$deployerDriver = BaseDriverHelper::createDriver(
Expand All @@ -95,7 +97,7 @@ public function actionEdit(): ?Response
$deployerDriver->validate();
$deployerDriver->test();

$deployerDrivers = DeployerHelper::getAllDrivers();
$deployerDrivers = $this->sortDriversByDisplayName(DeployerHelper::getAllDrivers());

$detectSsiTag = null;
if (Blitz::$plugin->settings->detectSsiEnabled) {
Expand Down Expand Up @@ -244,4 +246,23 @@ private function getSelectOption(ComponentInterface $component): array
'label' => $component::displayName(),
];
}

/**
* Sorts drivers by display name.
*
* @param SavableComponent[] $drivers
* @return SavableComponent[]
*/
private function sortDriversByDisplayName(array $drivers): array
{
ArrayHelper::multisort($drivers, function(SavableComponent $purger) {
if ($purger->isDummy ?? false) {
return 1;
}

return $purger->displayName();
});

return $drivers;
}
}

0 comments on commit 58cd0da

Please sign in to comment.