2023-06-05 07:11:07 -04:00
|
|
|
<?php
|
|
|
|
|
|
2026-02-23 17:12:09 -05:00
|
|
|
// SPDX-FileCopyrightText: 2023 Icinga GmbH <https://icinga.com>
|
|
|
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
2023-06-05 07:11:07 -04:00
|
|
|
|
|
|
|
|
namespace Icinga\Module\Icingadb\Web\Control;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* View mode switcher to toggle between grid and list view
|
|
|
|
|
*/
|
|
|
|
|
class GridViewModeSwitcher extends ViewModeSwitcher
|
|
|
|
|
{
|
|
|
|
|
/** @var string Default view mode */
|
|
|
|
|
public const DEFAULT_VIEW_MODE = 'list';
|
|
|
|
|
|
|
|
|
|
/** @var array View mode-icon pairs */
|
|
|
|
|
public static $viewModes = [
|
|
|
|
|
'list' => 'default',
|
|
|
|
|
'grid' => 'grid'
|
|
|
|
|
];
|
|
|
|
|
|
2023-06-07 07:50:06 -04:00
|
|
|
protected function getTitle(string $viewMode): string
|
2023-06-05 07:11:07 -04:00
|
|
|
{
|
2023-08-16 10:34:33 -04:00
|
|
|
$active = null;
|
|
|
|
|
$inactive = null;
|
2023-06-07 07:50:06 -04:00
|
|
|
switch ($viewMode) {
|
|
|
|
|
case 'list':
|
|
|
|
|
$active = t('List view active');
|
|
|
|
|
$inactive = t('Switch to list view');
|
|
|
|
|
break;
|
|
|
|
|
case 'grid':
|
|
|
|
|
$active = t('Grid view active');
|
|
|
|
|
$inactive = t('Switch to grid view');
|
|
|
|
|
break;
|
2023-06-05 07:11:07 -04:00
|
|
|
}
|
2023-06-07 07:50:06 -04:00
|
|
|
|
|
|
|
|
return $viewMode === $this->getViewMode() ? $active : $inactive;
|
2023-06-05 07:11:07 -04:00
|
|
|
}
|
|
|
|
|
}
|