- toolbar refactor
This commit is contained in:
2024-06-29 18:13:43 +02:00
parent 858a5bed06
commit b4f0811bca
20 changed files with 432 additions and 193 deletions

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Manager\Toolbar\Definition;
use App\Manager\Toolbar\Element\ToolbarButton;
use App\Manager\Toolbar\Element\ToolbarDivider;
class ChapterListToolbar extends Toolbar
{
public function __construct()
{
$this->addToLeftGroup(new ToolbarButton('keyboard', 'Rename chapters', 'renameChapters'))
->addToLeftGroup(new ToolbarButton('file-zipper', 'Manage cbz', 'manageCbz'))
->addToLeftGroup(new ToolbarButton('history', 'History', 'history'))
->addToLeftGroup(new ToolbarDivider())
->addToLeftGroup(new ToolbarButton('bookmark', 'Monitoring', 'monitoring'))
->addToLeftGroup(new ToolbarButton('wrench', 'Edit', 'edit'))
->addToLeftGroup(new ToolbarButton('trash-can', 'Delete', 'delete'))
->addToRightGroup(new ToolbarButton('chevron-down', 'Expand all', 'expandAll'));
}
}

View File

@@ -0,0 +1,37 @@
<?php
namespace App\Manager\Toolbar\Definition;
use App\Manager\Toolbar\Element\ToolbarButton;
use App\Manager\Toolbar\Element\ToolbarDivider;
use App\Manager\Toolbar\Element\ToolbarDropdown;
class MangaListToolbar extends Toolbar
{
public function __construct()
{
$this->addToLeftGroup(new ToolbarButton('arrows-rotate', 'Refresh metadata', 'refreshMetadata'))
->addToLeftGroup(new ToolbarButton('search', 'Search last chapter', 'searchLastChapter'))
->addToLeftGroup(new ToolbarDivider())
->addToLeftGroup(new ToolbarButton('plus', 'Add Manga', 'addManga'))
->addToRightGroup(new ToolbarButton('th-large', 'Options', 'options'))
->addToRightGroup(new ToolbarDivider())
->addToRightGroup(new ToolbarDropdown('eye', 'View', 'changeView', [
['text' => 'Poster View', 'action' => 'changeView', 'data' => ['view' => 'poster']],
['text' => 'Table View', 'action' => 'changeView', 'data' => ['view' => 'table']],
['text' => 'Resume View', 'action' => 'changeView', 'data' => ['view' => 'resume']]
]))
->addToRightGroup(new ToolbarDropdown('sort', 'Sort', 'sort', [
['text' => 'Par titre', 'action' => 'sort', 'data' => ['sort' => 'title']],
['text' => 'Par année de publication', 'action' => 'sort', 'data' => ['sort' => 'publicationYear']],
['text' => 'Par date d\'ajout', 'action' => 'sort', 'data' => ['sort' => 'createdAt']]
]))
->addToRightGroup(new ToolbarDropdown('filter', 'Filter', 'filter', [
['text' => 'Tous les mangas', 'action' => 'filter', 'data' => ['filter' => 'all']],
['text' => 'Mangas en cours', 'action' => 'filter', 'data' => ['filter' => 'ongoing']],
['text' => 'Mangas terminés', 'action' => 'filter', 'data' => ['filter' => 'completed']]
]))
;
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace App\Manager\Toolbar\Definition;
use App\Manager\Toolbar\Element\ToolbarElement;
class Toolbar
{
private array $leftGroup = [];
private array $rightGroup = [];
public function addToLeftGroup(ToolbarElement $element): self
{
$this->leftGroup[] = $element;
return $this;
}
public function addToRightGroup(ToolbarElement $element): self
{
$this->rightGroup[] = $element;
return $this;
}
public function getGroups(): array
{
return [
'leftGroup' => $this->leftGroup,
'rightGroup' => $this->rightGroup,
];
}
}