changed some navigation
This commit is contained in:
@@ -1038,7 +1038,7 @@ async function performLogin(userId, password = null) {
|
|||||||
const data = await res.json();
|
const data = await res.json();
|
||||||
localStorage.setItem('token', data.token);
|
localStorage.setItem('token', data.token);
|
||||||
|
|
||||||
window.location.href = '/dashboard';
|
window.location.href = '/profile';
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('Login error', err);
|
console.error('Login error', err);
|
||||||
showUserToast(err.message || 'Login failed', 'error');
|
showUserToast(err.message || 'Login failed', 'error');
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ function getNavbarHTML(activePage: string, showSearch: boolean = true): string {
|
|||||||
|
|
||||||
let navbar = cachedNavbar;
|
let navbar = cachedNavbar;
|
||||||
|
|
||||||
const pages = ['dashboard', 'anime', 'books', 'gallery', 'schedule' , 'marketplace'];
|
const pages = ['anime', 'books', 'gallery', 'schedule' , 'marketplace'];
|
||||||
pages.forEach(page => {
|
pages.forEach(page => {
|
||||||
const regex = new RegExp(`(<button class="nav-button[^"]*)"\\s+data-page="${page}"`, 'g');
|
const regex = new RegExp(`(<button class="nav-button[^"]*)"\\s+data-page="${page}"`, 'g');
|
||||||
if (page === activePage) {
|
if (page === activePage) {
|
||||||
@@ -51,10 +51,10 @@ async function viewsRoutes(fastify: FastifyInstance) {
|
|||||||
reply.type('text/html').send(htmlWithNavbar);
|
reply.type('text/html').send(htmlWithNavbar);
|
||||||
});
|
});
|
||||||
|
|
||||||
fastify.get('/dashboard', (req: FastifyRequest, reply: FastifyReply) => {
|
fastify.get('/profile', (req: FastifyRequest, reply: FastifyReply) => {
|
||||||
const htmlPath = path.join(__dirname, '..', '..', 'views', 'dashboard.html');
|
const htmlPath = path.join(__dirname, '..', '..', 'views', 'profile.html');
|
||||||
const html = fs.readFileSync(htmlPath, 'utf-8');
|
const html = fs.readFileSync(htmlPath, 'utf-8');
|
||||||
const htmlWithNavbar = injectNavbar(html, 'dashboard', false);
|
const htmlWithNavbar = injectNavbar(html, '', false);
|
||||||
reply.type('text/html').send(htmlWithNavbar);
|
reply.type('text/html').send(htmlWithNavbar);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
</a>
|
</a>
|
||||||
|
|
||||||
<div class="nav-center">
|
<div class="nav-center">
|
||||||
<button class="nav-button" data-page="dashboard" onclick="window.location.href='/dashboard'">Dashboard</button>
|
|
||||||
<button class="nav-button" data-page="anime" onclick="window.location.href='/anime'">Anime</button>
|
<button class="nav-button" data-page="anime" onclick="window.location.href='/anime'">Anime</button>
|
||||||
<button class="nav-button" data-page="books" onclick="window.location.href='/books'">Books</button>
|
<button class="nav-button" data-page="books" onclick="window.location.href='/books'">Books</button>
|
||||||
<button class="nav-button" data-page="gallery" onclick="window.location.href='/gallery'">Gallery</button>
|
<button class="nav-button" data-page="gallery" onclick="window.location.href='/gallery'">Gallery</button>
|
||||||
@@ -39,6 +38,21 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<a href="/profile" class="dropdown-item">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="18" height="18"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round">
|
||||||
|
<path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/>
|
||||||
|
<circle cx="12" cy="7" r="4"/>
|
||||||
|
</svg>
|
||||||
|
<span>Profile</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
<button class="dropdown-item" id="nav-settings">
|
<button class="dropdown-item" id="nav-settings">
|
||||||
<svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
|
<svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
|
||||||
<circle cx="12" cy="12" r="3"/>
|
<circle cx="12" cy="12" r="3"/>
|
||||||
@@ -47,14 +61,6 @@
|
|||||||
<span>Settings</span>
|
<span>Settings</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<a href="/my-list" class="dropdown-item">
|
|
||||||
<svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
|
|
||||||
<path d="M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"/>
|
|
||||||
<polyline points="17 21 17 13 7 13 7 21"/>
|
|
||||||
<polyline points="7 3 7 8 15 8"/>
|
|
||||||
</svg>
|
|
||||||
<span>My List</span>
|
|
||||||
</a>
|
|
||||||
<button class="dropdown-item logout-item" id="nav-logout">
|
<button class="dropdown-item logout-item" id="nav-logout">
|
||||||
<svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
|
<svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
|
||||||
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/>
|
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/>
|
||||||
|
|||||||
@@ -4,11 +4,11 @@
|
|||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<link rel="icon" href="/public/assets/waifuboards.ico" type="image/x-icon">
|
<link rel="icon" href="/public/assets/waifuboards.ico" type="image/x-icon">
|
||||||
<title>Dashboard - WaifuBoard</title>
|
<title>Profile - WaifuBoard</title>
|
||||||
<link rel="stylesheet" href="/views/css/globals.css">
|
<link rel="stylesheet" href="/views/css/globals.css">
|
||||||
<link rel="stylesheet" href="/views/css/components/navbar.css">
|
<link rel="stylesheet" href="/views/css/components/navbar.css">
|
||||||
<link rel="stylesheet" href="/views/css/components/anilist-modal.css">
|
<link rel="stylesheet" href="/views/css/components/anilist-modal.css">
|
||||||
<link rel="stylesheet" href="/views/css/dashboard.css">
|
<link rel="stylesheet" href="/views/css/profile.css">
|
||||||
<link rel="stylesheet" href="/views/css/components/updateNotifier.css">
|
<link rel="stylesheet" href="/views/css/components/updateNotifier.css">
|
||||||
<link rel="stylesheet" href="/views/css/components/titlebar.css">
|
<link rel="stylesheet" href="/views/css/components/titlebar.css">
|
||||||
<script src="/src/scripts/titlebar.js"></script>
|
<script src="/src/scripts/titlebar.js"></script>
|
||||||
@@ -206,6 +206,6 @@
|
|||||||
<script src="/src/scripts/utils/auth-utils.js"></script>
|
<script src="/src/scripts/utils/auth-utils.js"></script>
|
||||||
<script src="/src/scripts/utils/notification-utils.js"></script>
|
<script src="/src/scripts/utils/notification-utils.js"></script>
|
||||||
<script src="/src/scripts/utils/list-modal-manager.js"></script>
|
<script src="/src/scripts/utils/list-modal-manager.js"></script>
|
||||||
<script src="/src/scripts/dashboard.js"></script>
|
<script src="/src/scripts/profile.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -1038,7 +1038,7 @@ async function performLogin(userId, password = null) {
|
|||||||
const data = await res.json();
|
const data = await res.json();
|
||||||
localStorage.setItem('token', data.token);
|
localStorage.setItem('token', data.token);
|
||||||
|
|
||||||
window.location.href = '/dashboard';
|
window.location.href = '/profile';
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('Login error', err);
|
console.error('Login error', err);
|
||||||
showUserToast(err.message || 'Login failed', 'error');
|
showUserToast(err.message || 'Login failed', 'error');
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ function getNavbarHTML(activePage: string, showSearch: boolean = true): string {
|
|||||||
|
|
||||||
let navbar = cachedNavbar;
|
let navbar = cachedNavbar;
|
||||||
|
|
||||||
const pages = ['dashboard', 'anime', 'books', 'gallery', 'schedule' , 'marketplace'];
|
const pages = ['anime', 'books', 'gallery', 'schedule' , 'marketplace'];
|
||||||
pages.forEach(page => {
|
pages.forEach(page => {
|
||||||
const regex = new RegExp(`(<button class="nav-button[^"]*)"\\s+data-page="${page}"`, 'g');
|
const regex = new RegExp(`(<button class="nav-button[^"]*)"\\s+data-page="${page}"`, 'g');
|
||||||
if (page === activePage) {
|
if (page === activePage) {
|
||||||
@@ -51,10 +51,10 @@ async function viewsRoutes(fastify: FastifyInstance) {
|
|||||||
reply.type('text/html').send(htmlWithNavbar);
|
reply.type('text/html').send(htmlWithNavbar);
|
||||||
});
|
});
|
||||||
|
|
||||||
fastify.get('/dashboard', (req: FastifyRequest, reply: FastifyReply) => {
|
fastify.get('/profile', (req: FastifyRequest, reply: FastifyReply) => {
|
||||||
const htmlPath = path.join(__dirname, '..', '..', 'views', 'dashboard.html');
|
const htmlPath = path.join(__dirname, '..', '..', 'views', 'profile.html');
|
||||||
const html = fs.readFileSync(htmlPath, 'utf-8');
|
const html = fs.readFileSync(htmlPath, 'utf-8');
|
||||||
const htmlWithNavbar = injectNavbar(html, 'dashboard', false);
|
const htmlWithNavbar = injectNavbar(html, '', false);
|
||||||
reply.type('text/html').send(htmlWithNavbar);
|
reply.type('text/html').send(htmlWithNavbar);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
</a>
|
</a>
|
||||||
|
|
||||||
<div class="nav-center">
|
<div class="nav-center">
|
||||||
<button class="nav-button" data-page="dashboard" onclick="window.location.href='/dashboard'">Dashboard</button>
|
|
||||||
<button class="nav-button" data-page="anime" onclick="window.location.href='/anime'">Anime</button>
|
<button class="nav-button" data-page="anime" onclick="window.location.href='/anime'">Anime</button>
|
||||||
<button class="nav-button" data-page="books" onclick="window.location.href='/books'">Books</button>
|
<button class="nav-button" data-page="books" onclick="window.location.href='/books'">Books</button>
|
||||||
<button class="nav-button" data-page="gallery" onclick="window.location.href='/gallery'">Gallery</button>
|
<button class="nav-button" data-page="gallery" onclick="window.location.href='/gallery'">Gallery</button>
|
||||||
@@ -39,6 +38,21 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<a href="/profile" class="dropdown-item">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="18" height="18"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round">
|
||||||
|
<path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/>
|
||||||
|
<circle cx="12" cy="7" r="4"/>
|
||||||
|
</svg>
|
||||||
|
<span>Profile</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
<button class="dropdown-item" id="nav-settings">
|
<button class="dropdown-item" id="nav-settings">
|
||||||
<svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
|
<svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
|
||||||
<circle cx="12" cy="12" r="3"/>
|
<circle cx="12" cy="12" r="3"/>
|
||||||
@@ -47,14 +61,6 @@
|
|||||||
<span>Settings</span>
|
<span>Settings</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<a href="/my-list" class="dropdown-item">
|
|
||||||
<svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
|
|
||||||
<path d="M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"/>
|
|
||||||
<polyline points="17 21 17 13 7 13 7 21"/>
|
|
||||||
<polyline points="7 3 7 8 15 8"/>
|
|
||||||
</svg>
|
|
||||||
<span>My List</span>
|
|
||||||
</a>
|
|
||||||
<button class="dropdown-item logout-item" id="nav-logout">
|
<button class="dropdown-item logout-item" id="nav-logout">
|
||||||
<svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
|
<svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
|
||||||
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/>
|
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/>
|
||||||
|
|||||||
@@ -4,11 +4,11 @@
|
|||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<link rel="icon" href="/public/assets/waifuboards.ico" type="image/x-icon">
|
<link rel="icon" href="/public/assets/waifuboards.ico" type="image/x-icon">
|
||||||
<title>Dashboard - WaifuBoard</title>
|
<title>Profile - WaifuBoard</title>
|
||||||
<link rel="stylesheet" href="/views/css/globals.css">
|
<link rel="stylesheet" href="/views/css/globals.css">
|
||||||
<link rel="stylesheet" href="/views/css/components/navbar.css">
|
<link rel="stylesheet" href="/views/css/components/navbar.css">
|
||||||
<link rel="stylesheet" href="/views/css/components/anilist-modal.css">
|
<link rel="stylesheet" href="/views/css/components/anilist-modal.css">
|
||||||
<link rel="stylesheet" href="/views/css/dashboard.css">
|
<link rel="stylesheet" href="/views/css/profile.css">
|
||||||
<link rel="stylesheet" href="/views/css/components/updateNotifier.css">
|
<link rel="stylesheet" href="/views/css/components/updateNotifier.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@@ -193,6 +193,6 @@
|
|||||||
<script src="/src/scripts/utils/auth-utils.js"></script>
|
<script src="/src/scripts/utils/auth-utils.js"></script>
|
||||||
<script src="/src/scripts/utils/notification-utils.js"></script>
|
<script src="/src/scripts/utils/notification-utils.js"></script>
|
||||||
<script src="/src/scripts/utils/list-modal-manager.js"></script>
|
<script src="/src/scripts/utils/list-modal-manager.js"></script>
|
||||||
<script src="/src/scripts/dashboard.js"></script>
|
<script src="/src/scripts/profile.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
Reference in New Issue
Block a user