Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
6b2ce4b
Обновление визуала страницы с игроками
Gamer-VII Sep 10, 2025
62c1f8e
Добавлена возможность блокировки по железу
Gamer-VII Sep 10, 2025
fc12679
Добавлена поддержка снятия блокировки по железу
Gamer-VII Sep 10, 2025
6e645a6
Merge branch 'master' into develop
Gamer-VII Sep 10, 2025
7d7ce03
Добавлена проверка типа загрузчика и обновлен интерфейс
Gamer-VII Sep 10, 2025
6525608
Обновлен рендеринг столбца даты окончания сессии
Gamer-VII Sep 10, 2025
e692514
Добавлен диалог с деталями игрока и улучшены действия в таблице
Gamer-VII Sep 11, 2025
e3193ff
Добавлено подтверждение удаления игрока
Gamer-VII Sep 11, 2025
17011e8
Добавлены фильтры и улучшен функционал поиска игроков
Gamer-VII Sep 11, 2025
0b56b4d
Обновлен интерфейс фильтров игроков и формы поиска
Gamer-VII Sep 11, 2025
aeaf92f
Обновлена структура фильтров и кнопки сброса
Gamer-VII Sep 11, 2025
b3333d8
Добавлено отображение статуса лаунчера игрока
Gamer-VII Sep 11, 2025
06d4bfe
Добавлены вкладки в карточку игрока
Gamer-VII Sep 11, 2025
54f342a
Обновлены стили и добавлены иконки устройств в карточке игрока
Gamer-VII Sep 11, 2025
33dc62c
Обновлена версия пакета до 25.2
Gamer-VII Sep 11, 2025
a2a26a7
Изменены настройки `withCredentials` для подключения
Gamer-VII Sep 12, 2025
c2801cc
Добавлен CRUD для ролей и прав, матрица, управление RBAC
Gamer-VII Sep 12, 2025
d905e60
Добавлены функции управления группами прав ролей
Gamer-VII Sep 12, 2025
a082d5a
Обработаны ошибки в API и удалены уведомления об ошибках в UI
Gamer-VII Sep 12, 2025
ec816c2
Упрощены заголовки вкладок в `RolesPermissionsTab`
Gamer-VII Sep 15, 2025
b56af1c
Добавлены тултипы с правами для ролей в таблице пользователей
Gamer-VII Sep 15, 2025
2962b0d
Обновлено название вкладки на "Роли и права"
Gamer-VII Sep 15, 2025
10046ee
Ограничено управление "Администраторской" ролью
Gamer-VII Sep 15, 2025
08c4715
Улучшено управление ролями и изменен интерфейс
Gamer-VII Sep 15, 2025
8f7d62c
Добавлено модальное окно для управления правами
Gamer-VII Sep 15, 2025
9ad3b53
Добавлен визуальный индикатор и ограничения для системных прав
Gamer-VII Sep 15, 2025
56696eb
Улучшена поддержка системных прав в интерфейсе
Gamer-VII Sep 15, 2025
4cb3740
Добавлена функция декодирования base64Url и улучшена обработка токенов
Gamer-VII Sep 15, 2025
5bd4db4
Добавлено модальное окно для создания пользователей
Gamer-VII Sep 15, 2025
170b771
Добавлено модальное окно для удаления пользователей
Gamer-VII Sep 15, 2025
f6782cb
Добавлена вкладка "API ключи" и расширена функциональность ролей
Gamer-VII Sep 15, 2025
638fdb7
Исправлены отступы и оптимизирован код валидатора паролей
Gamer-VII Sep 15, 2025
4ee6bd6
Исправлены отступы и оптимизирован код валидатора паролей
Gamer-VII Sep 15, 2025
720ddb7
Отключена вкладка "API ключи" в настройках
Gamer-VII Sep 15, 2025
9725545
Приведены строки импорта к единому стилю
Gamer-VII Sep 15, 2025
63117e2
Добавлен бейдж "Beta" для вкладки "Роли и права"
Gamer-VII Sep 15, 2025
6979e93
fix account menu
Sep 15, 2025
be84789
Добавлена страница "Первый запуск" для раздела MNT
Gamer-VII Sep 26, 2025
49f6b63
Добавлены страницы "Настройка" и "Первый запуск" для раздела MNT
Gamer-VII Sep 26, 2025
e894938
Добавлена страница "Лицензионное соглашение" для раздела MNT
Gamer-VII Sep 26, 2025
e4b7935
Добавлены анимации переходов страниц и обновлены настройки раздела MNT
Gamer-VII Sep 26, 2025
7924877
Добавлены поля для ввода учетных данных администратора в настройках
Gamer-VII Sep 26, 2025
7190e95
Добавлена обработка ввода данных для сохранения настроек
Gamer-VII Sep 26, 2025
a03cb73
Обновлена логика задания адреса бекенда по умолчанию
Gamer-VII Sep 26, 2025
9bc6f30
Добавлено предупреждение о смешанном содержимом в настройках MNT
Gamer-VII Sep 26, 2025
23b402a
Добавлена обработка ошибки подключения в настройках MNT
Gamer-VII Sep 26, 2025
77dd706
Улучшена обработка ошибок в ответах сервера на странице настройки MNT
Gamer-VII Sep 26, 2025
fd52459
Добавлено поле для ввода email администратора на странице настройки MNT
Gamer-VII Sep 26, 2025
5a8e66f
Добавлена обработка и сохранение accessToken на странице настройки MNT
Gamer-VII Sep 26, 2025
68217ef
Обновлена логика определения базового URL для API
Gamer-VII Sep 26, 2025
e676086
Добавлена поддержка ветки develop в GitHub Actions
Gamer-VII Sep 26, 2025
b8b2d5a
Исправлено обращение к полю `UserName` в ProfilePage
Gamer-VII Sep 26, 2025
9d4d0a0
Обновлено состояние загрузки и ошибки в PlayersTable
Gamer-VII Sep 26, 2025
2a2189d
Реализована логика обновления accessToken и защита запросов
Gamer-VII Sep 27, 2025
c31c60a
Закомментировано использование `useGetJavaVersions`
Gamer-VII Sep 27, 2025
abfe68f
Обновлена типизация фильтров в PlayersTable
Gamer-VII Sep 27, 2025
9fe06cf
Улучшена логика отображения загрузки и сообщений об ошибках в Players…
Gamer-VII Sep 27, 2025
04eac0c
Исправлена некорректная структура стилей в ClientState
Gamer-VII Sep 27, 2025
3711ff4
Добавлено ожидание установки accessToken перед перенаправлением
Gamer-VII Sep 27, 2025
690000f
Merge branch 'master' into develop
Gamer-VII Sep 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/docker-package-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ name: Docker

on:
push:
branches: ['master']
branches: [ 'master', 'develop' ]
# Publish semver tags as releases.
tags: [ 'v*.*.*', 'v*.*.*-beta*' ]
pull_request:
branches: ['master']
branches: [ 'master', 'develop' ]

env:
# Use docker.io for Docker Hub if empty
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,5 @@ next-env.d.ts
/blob-report/
/playwright/.cache/
/.yarn

certificates
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"name": "gml-frontend",
"version": "25.1",
"version": "25.2",
"private": true,
"scripts": {
"dev": "next dev",
"dev": "next dev --experimental-https",
"build": "next build",
"start": "next start",
"lint": "next lint",
Expand Down
15 changes: 15 additions & 0 deletions src/app/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,21 @@
}
}

/* Page transition animations for installer (/mnt) */
.page-transition {
animation: pageFadeIn .25s ease-out, pageSlideIn .25s ease-out;
}

@keyframes pageFadeIn {
from { opacity: 0 }
to { opacity: 1 }
}

@keyframes pageSlideIn {
from { transform: translateY(8px) }
to { transform: translateY(0) }
}

.card-container {
opacity: .5;
transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out;
Expand Down
21 changes: 21 additions & 0 deletions src/app/mnt/ClientTransition.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
'use client';

import { ReactNode, useEffect, useState } from 'react';
import { usePathname } from 'next/navigation';

export function ClientTransition({ children }: { children: ReactNode }) {
const pathname = usePathname();
const [key, setKey] = useState(pathname);

useEffect(() => {
setKey(pathname);
}, [pathname]);

return (
<div className="relative overflow-hidden">
<div key={key} className="page-transition">
{children}
</div>
</div>
);
}
11 changes: 11 additions & 0 deletions src/app/mnt/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { ReactNode } from 'react';

import { ClientTransition } from './ClientTransition';

export const metadata = {
title: 'Gml Первый запуск',
};

export default function MntLayout({ children }: { children: ReactNode }) {
return <ClientTransition>{children}</ClientTransition>;
}
202 changes: 202 additions & 0 deletions src/app/mnt/license/page.tsx

Large diffs are not rendered by default.

100 changes: 100 additions & 0 deletions src/app/mnt/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
'use client';

import Image from 'next/image';
import { useRouter } from 'next/navigation';

import { config } from '@/core/configs';
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from '@/shared/ui/card';
import { Button, buttonVariants } from '@/shared/ui/button';
import { Tooltip, TooltipContent, TooltipTrigger } from '@/shared/ui/tooltip';
import logo from '@/assets/logos/logo.svg';

{
config.name;
}

export default function MntPage() {
const router = useRouter();
return (
<div
id="pageContent"
className="min-h-screen p-4 sm:p-10 flex flex-col items-center justify-center gap-6"
>
<Image src={logo} alt="Gml Frontend" className="w-12 sm:w-16" />
<h1 className="text-3xl font-bold tracking-tight">{config.name} Первый запуск</h1>

<noscript>
<div className="nojs-message text-sm text-muted-foreground">
Пожалуйста, включите JavaScript в браузере для доступа к {config.name}.
</div>
</noscript>

{/* THE PAGE CONTENT BEGIN */}
<div id="nestedPageContent" className="grid gap-6 w-full max-w-4xl">
<Card>
<CardHeader>
<CardTitle>Перед началом</CardTitle>
<CardDescription>
Пожалуйста, ознакомьтесь с настройками ниже перед первым запуском {config.name}.
</CardDescription>
</CardHeader>
<CardContent className="space-y-4">
<p className="text-sm text-muted-foreground">
Сервер {config.name} хранит конфигурацию сервера, определения проектов, результаты
сборок и кеши на диске в<b> Каталоге данных</b>.{' '}
<Tooltip>
<TooltipTrigger asChild>
<span
className="inline-flex h-5 w-5 items-center justify-center rounded-full border text-xs font-medium cursor-help align-baseline select-none"
aria-label="Подробнее"
>
?
</span>
</TooltipTrigger>
<TooltipContent>
Подробнее в документации:{' '}
<a
className={buttonVariants({ variant: 'link' })}
href="https://gml-launcher.github.io/Gml.Docs/profiles-add-files.html#dy4fr9_3"
target="_blank"
rel="noreferrer"
>
открыть
</a>
</TooltipContent>
</Tooltip>
</p>

<p className="text-sm">
Расположение каталога данных:{' '}
<b>
<span className="font-mono bg-white/10 p-2 rounded-md">/data/GmlBackend</span>
</b>
</p>
</CardContent>
<CardFooter className="justify-end">
<div className=" action-block flex gap-2">
<Button id="restoreButton" variant="secondary">
Восстановить из резервной копии
</Button>
<Button id="proceedButton" onClick={() => router.push('/mnt/license')}>
Продолжить
</Button>
</div>
</CardFooter>
</Card>
<div className=" text-center text-xs text-muted-foreground">
{config.name} {config.version}
</div>
</div>
{/* THE PAGE CONTENT END */}
</div>
);
}
9 changes: 9 additions & 0 deletions src/app/mnt/setup/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { ReactNode } from 'react';

export const metadata = {
title: 'Gml Настройка',
};

export default function MntSetupLayout({ children }: { children: ReactNode }) {
return <>{children}</>;
}
Loading