Skip to content

Commit 3b12c54

Browse files
authored
[v0.5.3] Version release (#51)
* [task-238] Improvements in cart views * [task-191] Improvements in pagination * [task-114] Servers tab updated * [task-224] Fixed bug in egg manager script * [task-114] Added missing translations & some css changes * [task-114] Refresh servers tab * [task-256] Store page refresh * [task-256] Updated category view * [task-256] Store product order refresh * [task-256] Refreshed configure template * [task-256] Refreshed renew template * [task-256] Refreshed topup page * [task-256] Updated wallet template * [task-256] Refreshed dashboard * [task-256] Update * [task-256] Dashboard improvements * [task-256] Updated header * [task-256] Updated new hedaers * [task-256] Updated translations * [task-256] Updated views and translations * [task-256] Moved CSS to .css file * [task-256] Moved CSS to .css file * [task-256] Updated icons padding * [task-256] Updated user account & user payment templates * [task-256] Updated button styles * [task-256] Updated font size in form input * [task-256] Admin overview template refresh * [task-257] Show message if payment url is expired * [task-258] Updated grid in user account template * [task-258] Updated validator translations * [task-258] Added missing translations * [task-258] Updated translations in user payment crud * [task-164] Custom error pages * [task-259] Added flash message when payment is expired * [task-260] Refreshed login page * [task-260] Updated login view * [task-260] Updated register view * [0.5.3] Version release * [0.5.3] Added missing translations
1 parent ce80a0b commit 3b12c54

File tree

78 files changed

+4174
-1055
lines changed

Some content is hidden

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

78 files changed

+4174
-1055
lines changed

CHANGELOG.md

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

33
---
44

5+
## [0.5.3] - 2025-06-02
6+
7+
### Added
8+
- Added command to migrate servers from Pterodactyl to PteroCA.
9+
- Added user account verification check before allowing voucher usage.
10+
- Added server IP address and current expiration date to the server renewal view.
11+
- Added my account tab with payment history and account settings.
12+
13+
### Changed
14+
- Renamed the Servers menu item to My servers for improved clarity.
15+
- Refactored some code to improve readability and maintainability.
16+
- Improved styling of input placeholders.
17+
18+
### Fixed
19+
- Fixed an issue where activating a voucher to top up balance did not work correctly.
20+
- Fixed an error that occurred when deleting a server from the PteroCA panel.
21+
- Fixed missing translations in the Server Logs section.
22+
23+
---
24+
525
## [0.5.2] - 2025-05-12
626

727
### 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.2",
4+
"version": "0.5.3",
55
"type": "project",
66
"license": "MIT",
77
"minimum-stability": "stable",

config/packages/twig.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ twig:
22
file_name_pattern: '*.twig'
33
paths:
44
'%kernel.project_dir%/src/Core/Resources/templates': core_templates
5+
'%kernel.project_dir%/themes/default': default_theme
56

67
when@test:
78
twig:
Lines changed: 283 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,283 @@
1+
/* Error Pages Styles */
2+
:root {
3+
--primary-color: #2563eb;
4+
--secondary-color: #64748b;
5+
--success-color: #10b981;
6+
--warning-color: #f59e0b;
7+
--danger-color: #ef4444;
8+
--dark-color: #1e293b;
9+
--light-color: #f8fafc;
10+
--border-color: #e2e8f0;
11+
--text-muted: #64748b;
12+
--shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
13+
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
14+
}
15+
16+
* {
17+
margin: 0;
18+
padding: 0;
19+
box-sizing: border-box;
20+
}
21+
22+
body {
23+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
24+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
25+
min-height: 100vh;
26+
display: flex;
27+
align-items: center;
28+
justify-content: center;
29+
color: var(--dark-color);
30+
}
31+
32+
.error-container {
33+
background: white;
34+
border-radius: 20px;
35+
box-shadow: var(--shadow-lg);
36+
padding: 3rem 2rem;
37+
max-width: 500px;
38+
width: 90%;
39+
text-align: center;
40+
position: relative;
41+
overflow: hidden;
42+
}
43+
44+
.error-container::before {
45+
content: '';
46+
position: absolute;
47+
top: 0;
48+
left: 0;
49+
right: 0;
50+
height: 4px;
51+
background: linear-gradient(90deg, var(--primary-color), var(--success-color));
52+
}
53+
54+
.logo-section {
55+
margin-bottom: 2rem;
56+
}
57+
58+
.logo-section img {
59+
max-height: 60px;
60+
width: auto;
61+
}
62+
63+
.error-code {
64+
font-size: 5rem;
65+
font-weight: 700;
66+
color: var(--primary-color);
67+
line-height: 1;
68+
margin-bottom: 1rem;
69+
background: linear-gradient(135deg, var(--primary-color), var(--success-color));
70+
-webkit-background-clip: text;
71+
-webkit-text-fill-color: transparent;
72+
background-clip: text;
73+
}
74+
75+
.error-title {
76+
font-size: 1.5rem;
77+
font-weight: 600;
78+
color: var(--dark-color);
79+
margin-bottom: 1rem;
80+
}
81+
82+
.error-description {
83+
font-size: 1rem;
84+
color: var(--text-muted);
85+
line-height: 1.6;
86+
margin-bottom: 2.5rem;
87+
}
88+
89+
.btn-custom {
90+
padding: 0.75rem 2rem;
91+
border-radius: 12px;
92+
font-weight: 500;
93+
text-decoration: none;
94+
transition: all 0.3s ease;
95+
border: none;
96+
cursor: pointer;
97+
display: inline-flex;
98+
align-items: center;
99+
gap: 0.5rem;
100+
margin: 0.25rem;
101+
}
102+
103+
.btn-primary-custom {
104+
background: linear-gradient(135deg, var(--primary-color), #3b82f6);
105+
color: white;
106+
box-shadow: var(--shadow);
107+
}
108+
109+
.btn-primary-custom:hover {
110+
transform: translateY(-2px);
111+
box-shadow: var(--shadow-lg);
112+
color: white;
113+
}
114+
115+
.btn-secondary-custom {
116+
background: var(--light-color);
117+
color: var(--text-muted);
118+
border: 2px solid var(--border-color);
119+
}
120+
121+
.btn-secondary-custom:hover {
122+
background: var(--border-color);
123+
color: var(--dark-color);
124+
transform: translateY(-2px);
125+
}
126+
127+
.footer-section {
128+
margin-top: 2.5rem;
129+
padding-top: 1.5rem;
130+
border-top: 1px solid var(--border-color);
131+
font-size: 0.875rem;
132+
color: var(--text-muted);
133+
}
134+
135+
.footer-section a {
136+
color: var(--primary-color);
137+
text-decoration: none;
138+
font-weight: 500;
139+
}
140+
141+
.footer-section a:hover {
142+
text-decoration: underline;
143+
}
144+
145+
.floating-shapes {
146+
position: absolute;
147+
width: 100%;
148+
height: 100%;
149+
overflow: hidden;
150+
z-index: -1;
151+
}
152+
153+
.shape {
154+
position: absolute;
155+
opacity: 0.1;
156+
animation: float 6s ease-in-out infinite;
157+
}
158+
159+
.shape-1 {
160+
top: 20%;
161+
left: 10%;
162+
width: 60px;
163+
height: 60px;
164+
background: var(--primary-color);
165+
border-radius: 50%;
166+
animation-delay: 0s;
167+
}
168+
169+
.shape-2 {
170+
top: 60%;
171+
right: 15%;
172+
width: 40px;
173+
height: 40px;
174+
background: var(--success-color);
175+
border-radius: 50%;
176+
animation-delay: 2s;
177+
}
178+
179+
.shape-3 {
180+
bottom: 30%;
181+
left: 20%;
182+
width: 30px;
183+
height: 30px;
184+
background: var(--warning-color);
185+
border-radius: 50%;
186+
animation-delay: 4s;
187+
}
188+
189+
@keyframes float {
190+
0%, 100% {
191+
transform: translateY(0px);
192+
}
193+
50% {
194+
transform: translateY(-20px);
195+
}
196+
}
197+
198+
.fade-in {
199+
animation: fadeIn 0.8s ease-out;
200+
}
201+
202+
@keyframes fadeIn {
203+
from {
204+
opacity: 0;
205+
transform: translateY(30px);
206+
}
207+
to {
208+
opacity: 1;
209+
transform: translateY(0);
210+
}
211+
}
212+
213+
/* Responsywność */
214+
@media (max-width: 768px) {
215+
.error-container {
216+
padding: 2rem 1.5rem;
217+
margin: 1rem;
218+
}
219+
220+
.error-code {
221+
font-size: 3.5rem;
222+
}
223+
224+
.error-title {
225+
font-size: 1.25rem;
226+
}
227+
228+
.error-description {
229+
font-size: 0.9rem;
230+
}
231+
232+
.btn-custom {
233+
width: 100%;
234+
justify-content: center;
235+
margin: 0.5rem 0;
236+
}
237+
}
238+
239+
@media (max-width: 480px) {
240+
.error-code {
241+
font-size: 2.5rem;
242+
}
243+
244+
.error-container {
245+
padding: 1.5rem 1rem;
246+
}
247+
}
248+
249+
/* Dark mode support */
250+
@media (prefers-color-scheme: dark) {
251+
body {
252+
background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
253+
}
254+
255+
.error-container {
256+
background: #1e293b;
257+
color: #f1f5f9;
258+
}
259+
260+
.error-title {
261+
color: #f1f5f9;
262+
}
263+
264+
.error-description {
265+
color: #94a3b8;
266+
}
267+
268+
.btn-secondary-custom {
269+
background: #334155;
270+
color: #94a3b8;
271+
border-color: #475569;
272+
}
273+
274+
.btn-secondary-custom:hover {
275+
background: #475569;
276+
color: #f1f5f9;
277+
}
278+
279+
.footer-section {
280+
border-color: #475569;
281+
color: #94a3b8;
282+
}
283+
}

0 commit comments

Comments
 (0)