From 501e1dbbb2ce56883bb5f6be31af18bab932c7a2 Mon Sep 17 00:00:00 2001 From: Thierry Bugier Date: Thu, 2 Apr 2026 11:36:31 +0200 Subject: [PATCH] feat: prepare tab for cache management --- src/CronTask.php | 6 +-- .../ElectricityMaps/CronTask.php | 37 +++++++++++++------ .../CarbonIntensity/Rte/CronTask.php | 37 +++++++++++++------ 3 files changed, 53 insertions(+), 27 deletions(-) diff --git a/src/CronTask.php b/src/CronTask.php index 14caa8b5..a070937c 100644 --- a/src/CronTask.php +++ b/src/CronTask.php @@ -70,19 +70,19 @@ public static function displayTabContentForItem(CommonGLPI $item, $tabnum = 1, $ if ($item instanceof GlpiCronTask) { /** @var GlpiCronTask $item */ $cron_task = new self(); - $cron_task->showForCronTask($item); + $cron_task->showForCronTask($item, $tabnum); } return true; } - public function showForCronTask(CommonDBTM $item) + public function showForCronTask(CommonDBTM $item, int $tabnum) { $itemtype = $item->fields['itemtype']; if (!in_array($itemtype, CronTaskProvider::getCronTaskTypes())) { return; } $crontask = new $itemtype(); - $crontask->showForCronTask($item); + $crontask->showForCronTask($item, $tabnum); } /** diff --git a/src/DataSource/CarbonIntensity/ElectricityMaps/CronTask.php b/src/DataSource/CarbonIntensity/ElectricityMaps/CronTask.php index 02ae7461..e8182705 100644 --- a/src/DataSource/CarbonIntensity/ElectricityMaps/CronTask.php +++ b/src/DataSource/CarbonIntensity/ElectricityMaps/CronTask.php @@ -45,6 +45,9 @@ class CronTask extends AbstractCronTask implements CronTaskInterface { + private const TAB_DIAGNOSIS = 0; + private const TAB_CACHE = 1; + public static function getIcon() { return 'fa-solid fa-gears'; @@ -52,7 +55,10 @@ public static function getIcon() public function getTabNameForItem(CommonGLPI $item, $withtemplate = 0) { - return self::createTabEntry(__('Resource diagnosis', 'carbon'), 0); + return [ + self::TAB_DIAGNOSIS => self::createTabEntry(__('Resource diagnosis', 'carbon'), 0), + // self::TAB_CACHE => self::createTabEntry(__('Cache', 'carbon'), 0), + ]; } public static function enumerateTasks(): array @@ -103,19 +109,26 @@ public static function cronDownloadElectricityMap(GlpiCronTask $task): int return CarbonCronTask::downloadCarbonIntensityFromSource($task, $client, new CarbonIntensity()); } - public function showForCronTask(CommonDBTM $item) + public function showForCronTask(CommonDBTM $item, int $tabnum) { - switch ($item->fields['name']) { - case 'DownloadElectricityMap': - $client = new Client(new RestApiClient()); - $source_name = ($client)->getSourceName(); - foreach ($client->getSupportedZones() as $zone_name) { - $source_zone = new Source_Zone(); - if (!$source_zone->getFromDbBySourceAndZone($source_name, $zone_name)) { - continue; + if ($tabnum === self::TAB_DIAGNOSIS) { + switch ($item->fields['name']) { + case 'DownloadElectricityMap': + $client = new Client(new RestApiClient()); + $source_name = ($client)->getSourceName(); + foreach ($client->getSupportedZones() as $zone_name) { + $source_zone = new Source_Zone(); + if (!$source_zone->getFromDbBySourceAndZone($source_name, $zone_name)) { + continue; + } + $source_zone->showGaps(); } - $source_zone->showGaps(); - } + } + } elseif ($tabnum === self::TAB_CACHE) { + switch ($item->fields['name']) { + case 'DownloadElectricityMap': + // TODO: implement tab to clear cached data in files/ folder + } } } } diff --git a/src/DataSource/CarbonIntensity/Rte/CronTask.php b/src/DataSource/CarbonIntensity/Rte/CronTask.php index c46e6eb2..d0784435 100644 --- a/src/DataSource/CarbonIntensity/Rte/CronTask.php +++ b/src/DataSource/CarbonIntensity/Rte/CronTask.php @@ -45,6 +45,9 @@ class CronTask extends AbstractCronTask implements CronTaskInterface { + private const TAB_DIAGNOSIS = 0; + private const TAB_CACHE = 1; + public static function getIcon() { return 'fa-solid fa-gears'; @@ -52,22 +55,32 @@ public static function getIcon() public function getTabNameForItem(CommonGLPI $item, $withtemplate = 0) { - return self::createTabEntry(__('Resource diagnosis', 'carbon'), 0); + return [ + self::TAB_DIAGNOSIS => self::createTabEntry(__('Resource diagnosis', 'carbon'), 0), + // self::TAB_CACHE => self::createTabEntry(__('Cache', 'carbon'), 0), + ]; } - public function showForCronTask(CommonDBTM $item) + public function showForCronTask(CommonDBTM $item, int $tabnum) { - switch ($item->fields['name']) { - case 'DownloadRte': - $client = new Client(new RestApiClient()); - $source_name = ($client)->getSourceName(); - foreach ($client->getSupportedZones() as $zone_name) { - $source_zone = new Source_Zone(); - if (!$source_zone->getFromDbBySourceAndZone($source_name, $zone_name)) { - continue; + if ($tabnum === self::TAB_DIAGNOSIS) { + switch ($item->fields['name']) { + case 'DownloadRte': + $client = new Client(new RestApiClient()); + $source_name = ($client)->getSourceName(); + foreach ($client->getSupportedZones() as $zone_name) { + $source_zone = new Source_Zone(); + if (!$source_zone->getFromDbBySourceAndZone($source_name, $zone_name)) { + continue; + } + $source_zone->showGaps(); } - $source_zone->showGaps(); - } + } + } elseif ($tabnum === self::TAB_CACHE) { + switch ($item->fields['name']) { + case 'DownloadElectricityMap': + // TODO: implement tab to clear cached data in files/ folder + } } }