Skip to content

Commit 0294320

Browse files
authored
v0.5.5 (#55)
## [0.5.5] - 2025-07-27 ### Added - Added server status indicators (e.g. online/offline) to the server list views. - Displayed informative messages when a server is currently installing or reinstalling. - Added a prompt in the automatic installer asking whether to generate an SSL certificate for the domain. - Updated the documentation with details about available installation parameters. ### Changed - Improved validation, error handling, and instructional messages in both the Web Installer and CLI installer. - Moved Categories and Products under a new collapsible Store section in the sidebar for improved navigation.
1 parent 3210b2f commit 0294320

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+652
-148
lines changed

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,18 @@
22

33
---
44

5+
## [0.5.5] - 2025-07-27
6+
7+
### Added
8+
- Added server status indicators (e.g. online/offline) to the server list views.
9+
- Displayed informative messages when a server is currently installing or reinstalling.
10+
11+
### Changed
12+
- Improved validation, error handling, and instructional messages in both the Web Installer and CLI installer.
13+
- Moved Categories and Products under a new collapsible Store section in the sidebar for improved navigation.
14+
15+
---
16+
517
## [0.5.4] - 2025-07-13
618

719
### Added

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "pteroca/panel",
33
"description": "PteroCA.com is a free, open-source client area and management panel designed specifically for Pterodactyl server users and hosting providers. The platform simplifies and automates server management with a user-friendly interface and robust billing features.",
4-
"version": "0.5.4",
4+
"version": "0.5.5",
55
"type": "project",
66
"license": "MIT",
77
"minimum-stability": "stable",

src/Core/Controller/API/ServerController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public function serverDetails(
2828
{
2929
$server = $this->getServer($id, ServerPermissionEnum::WEBSOCKET_CONNECT);
3030
$serverDetails = $this->serverService
31-
->getServerDetails($server)
31+
->getServerStateByClient($this->getUser(), $server)
3232
?->toArray();
3333
unset($serverDetails['egg']);
3434

src/Core/Controller/FirstConfigurationController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ private function validateConfiguratorAccess(): void
6666
{
6767
$isConfiguratorEnabled = $this->webConfiguratorService->isConfiguratorEnabled();
6868

69-
if (!$isConfiguratorEnabled || $this->getUser()) {
69+
if (!$isConfiguratorEnabled) {
7070
throw $this->createNotFoundException('System is already configured.');
7171
}
7272
}

src/Core/Controller/Panel/DashboardController.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,14 +111,16 @@ public function configureMenuItems(): iterable
111111
if ($this->isGranted(UserRoleEnum::ROLE_ADMIN->name)) {
112112
yield MenuItem::section($this->translator->trans('pteroca.crud.menu.administration'));
113113
yield MenuItem::linkToRoute($this->translator->trans('pteroca.crud.menu.overview'), 'fa fa-gauge', 'admin_overview');
114-
yield MenuItem::linkToCrud($this->translator->trans('pteroca.crud.menu.categories'), 'fa fa-list', Category::class);
115-
yield MenuItem::linkToCrud($this->translator->trans('pteroca.crud.menu.products'), 'fa fa-sliders-h', Product::class);
116-
yield MenuItem::linkToCrud($this->translator->trans('pteroca.crud.menu.payments'), 'fa fa-money', Payment::class);
117-
yield MenuItem::linkToCrud($this->translator->trans('pteroca.crud.menu.logs'), 'fa fa-bars-staggered', Log::class);
114+
yield MenuItem::subMenu($this->translator->trans('pteroca.crud.menu.shop'), 'fa fa-shopping-cart')->setSubItems([
115+
MenuItem::linkToCrud($this->translator->trans('pteroca.crud.menu.categories'), 'fa fa-list', Category::class),
116+
MenuItem::linkToCrud($this->translator->trans('pteroca.crud.menu.products'), 'fa fa-sliders-h', Product::class),
117+
]);
118118
yield MenuItem::subMenu($this->translator->trans('pteroca.crud.menu.servers'), 'fa fa-server')->setSubItems([
119119
MenuItem::linkToCrud($this->translator->trans('pteroca.crud.menu.servers'), 'fa fa-server', Server::class),
120120
MenuItem::linkToCrud($this->translator->trans('pteroca.crud.menu.server_logs'), 'fa fa-bars', ServerLog::class),
121121
]);
122+
yield MenuItem::linkToCrud($this->translator->trans('pteroca.crud.menu.payments'), 'fa fa-money', Payment::class);
123+
yield MenuItem::linkToCrud($this->translator->trans('pteroca.crud.menu.logs'), 'fa fa-bars-staggered', Log::class);
122124
yield MenuItem::subMenu($this->translator->trans('pteroca.crud.menu.settings'), 'fa fa-cogs')->setSubItems([
123125
MenuItem::linkToUrl($this->translator->trans('pteroca.crud.menu.general'), 'fa fa-cog', $this->generateSettingsUrl(SettingContextEnum::GENERAL)),
124126
MenuItem::linkToUrl($this->translator->trans('pteroca.crud.menu.pterodactyl'), 'fa fa-network-wired', $this->generateSettingsUrl(SettingContextEnum::PTERODACTYL)),

src/Core/Controller/ServerController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public function server(
5757
$serverData = $serverDataService->getServerData($server, $this->getUser(), $currentPage);
5858
$isAdminView = $this->isGranted(UserRoleEnum::ROLE_ADMIN->name);
5959
$isOwner = $server->getUser() === $this->getUser();
60-
if (empty($serverData->serverPermissions->toArray()) && !$isAdminView) {
60+
if (empty($serverData->serverPermissions?->toArray()) && !$isAdminView) {
6161
throw $this->createAccessDeniedException();
6262
}
6363

src/Core/DTO/ServerDataDTO.php

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,24 @@
99
class ServerDataDTO
1010
{
1111
public function __construct(
12-
public Server $server,
13-
public ServerPermissionCollection $serverPermissions,
14-
public ServerDetailsDTO $serverDetails,
1512
public array $pterodactylServer,
16-
public array $dockerImages,
17-
public ?array $pterodactylClientServer,
18-
public ?array $pterodactylClientAccount,
19-
public array $productEggConfiguration,
20-
public ?array $availableNestEggs,
21-
public bool $hasConfigurableOptions,
22-
public bool $hasConfigurableVariables,
23-
public ServerVariableCollection $serverVariables,
24-
public array $serverBackups,
25-
public array $allocatedPorts,
26-
public array $subusers,
27-
public array $activityLogs,
28-
public array $serverSchedules,
13+
public bool $isInstalling,
14+
public ?Server $server = null,
15+
public ?ServerPermissionCollection $serverPermissions = null,
16+
public ?ServerDetailsDTO $serverDetails = null,
17+
public ?array $dockerImages = null,
18+
public ?array $pterodactylClientServer = null,
19+
public ?array $pterodactylClientAccount = null,
20+
public ?array $productEggConfiguration = null,
21+
public ?array $availableNestEggs = null,
22+
public bool $hasConfigurableOptions = false,
23+
public bool $hasConfigurableVariables = false,
24+
public ?ServerVariableCollection $serverVariables = null,
25+
public ?array $serverBackups = null,
26+
public ?array $allocatedPorts = null,
27+
public ?array $subusers = null,
28+
public ?array $activityLogs = null,
29+
public ?array $serverSchedules = null,
2930
)
3031
{
3132
}

src/Core/DTO/ServerDetailsDTO.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
namespace App\Core\DTO;
44

5+
use App\Core\Enum\ServerStateEnum;
6+
57
readonly class ServerDetailsDTO
68
{
79
public function __construct(
@@ -12,6 +14,7 @@ public function __construct(
1214
public array $limits,
1315
public array $featureLimits,
1416
public array $egg,
17+
public ?ServerStateEnum $state = null,
1518
) {}
1619

1720
public function toArray(): array
@@ -24,6 +27,7 @@ public function toArray(): array
2427
'limits' => $this->limits,
2528
'featureLimits' => $this->featureLimits,
2629
'egg' => $this->egg,
30+
'state' => $this->state?->value,
2731
];
2832
}
2933
}

src/Core/Enum/ServerStateEnum.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
namespace App\Core\Enum;
4+
5+
enum ServerStateEnum: string
6+
{
7+
case RUNNING = 'running';
8+
case STOPPED = 'stopped';
9+
case STARTING = 'starting';
10+
case STOPPING = 'stopping';
11+
case OFFLINE = 'offline';
12+
}

src/Core/Enum/ServerStatusEnum.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
namespace App\Core\Enum;
4+
5+
enum ServerStatusEnum: string
6+
{
7+
case INSTALLING = 'installing';
8+
case RUNNING = 'running';
9+
case OFFLINE = 'offline';
10+
case STARTING = 'starting';
11+
case STOPPING = 'stopping';
12+
}

0 commit comments

Comments
 (0)