63 lines
1.6 KiB
PHP
63 lines
1.6 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace GlpiPlugin\Urbackup\Capacity;
|
|
|
|
use CommonGLPI;
|
|
use Glpi\Asset\Capacity\AbstractCapacity;
|
|
use Glpi\Asset\CapacityConfig;
|
|
use GlpiPlugin\Urbackup\AssetTab;
|
|
use GlpiPlugin\Urbackup\Server;
|
|
use GlpiPlugin\Urbackup\ServerAsset;
|
|
|
|
final class UrBackupCapacity extends AbstractCapacity
|
|
{
|
|
public function getLabel(): string
|
|
{
|
|
return __('UrBackup', 'urbackup');
|
|
}
|
|
|
|
public function getIcon(): string
|
|
{
|
|
return 'ti ti-cloud-up';
|
|
}
|
|
|
|
public function getDescription(): string
|
|
{
|
|
return __('Manage UrBackup backups for these assets', 'urbackup');
|
|
}
|
|
|
|
public function onClassBootstrap(string $classname, CapacityConfig $config): void
|
|
{
|
|
CommonGLPI::registerStandardTab($classname, AssetTab::class);
|
|
}
|
|
|
|
public function onCapacityDisabled(string $classname, CapacityConfig $config): void
|
|
{
|
|
(new ServerAsset())->deleteByCriteria(
|
|
['itemtype' => $classname],
|
|
force: true,
|
|
history: false
|
|
);
|
|
$this->deleteRelationLogs($classname, Server::class);
|
|
}
|
|
|
|
public function isUsed(string $classname): bool
|
|
{
|
|
return parent::isUsed($classname)
|
|
&& $this->countAssetsLinkedToPeerItem(
|
|
$classname,
|
|
ServerAsset::class
|
|
) > 0;
|
|
}
|
|
|
|
public function getCapacityUsageDescription(string $classname): string
|
|
{
|
|
return sprintf(
|
|
__('%1$s assets linked to UrBackup servers', 'urbackup'),
|
|
$this->countAssetsLinkedToPeerItem($classname, ServerAsset::class)
|
|
);
|
|
}
|
|
}
|