From ff0821d0341759f4a0c4182510aa6d356d7928d8 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Mon, 2 Mar 2026 05:08:39 +0000 Subject: [PATCH] 6 --- frontend/src/menuAside.ts | 10 ++++++++- frontend/src/pages/dashboard.tsx | 35 ++++++++++++++++++++++++++--- frontend/src/pages/index.tsx | 16 ++++++------- frontend/src/pages/login.tsx | 6 ++--- frontend/src/pages/studio/index.tsx | 4 ++-- 5 files changed, 53 insertions(+), 18 deletions(-) diff --git a/frontend/src/menuAside.ts b/frontend/src/menuAside.ts index bd4ba5f..ce96bb3 100644 --- a/frontend/src/menuAside.ts +++ b/frontend/src/menuAside.ts @@ -4,7 +4,7 @@ import { MenuAsideItem } from './interfaces' const menuAside: MenuAsideItem[] = [ { href: '/studio', - label: 'AI Music Generator Creator', + label: 'Music Studio', icon: icon.mdiMusicNotePlus, }, { @@ -133,6 +133,14 @@ const menuAside: MenuAsideItem[] = [ icon: 'mdiLock' in icon ? icon['mdiLock' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable, permissions: 'READ_SYSTEM_SETTINGS' }, + { + href: '/admin_access_keys/admin_access_keys-list', + label: 'Admin access keys', + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + icon: 'mdiKey' in icon ? icon['mdiKey' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable, + permissions: 'READ_ADMIN_ACCESS_KEYS' + }, { href: '/profile', label: 'Profile', diff --git a/frontend/src/pages/dashboard.tsx b/frontend/src/pages/dashboard.tsx index d4a5dcc..9ca57fb 100644 --- a/frontend/src/pages/dashboard.tsx +++ b/frontend/src/pages/dashboard.tsx @@ -41,6 +41,7 @@ const Dashboard = () => { const [media_assets, setMedia_assets] = React.useState(loadingMessage); const [playback_sessions, setPlayback_sessions] = React.useState(loadingMessage); const [system_settings, setSystem_settings] = React.useState(loadingMessage); + const [admin_access_keys, setAdmin_access_keys] = React.useState(loadingMessage); const [widgetsRole, setWidgetsRole] = React.useState({ @@ -53,8 +54,8 @@ const Dashboard = () => { async function loadData() { - const entities = ['users','roles','permissions','languages','music_styles','eras','ai_voices','lyric_templates','songs','song_voice_tracks','lyric_sync_segments','generation_jobs','media_assets','playback_sessions','system_settings',]; - const fns = [setUsers,setRoles,setPermissions,setLanguages,setMusic_styles,setEras,setAi_voices,setLyric_templates,setSongs,setSong_voice_tracks,setLyric_sync_segments,setGeneration_jobs,setMedia_assets,setPlayback_sessions,setSystem_settings,]; + const entities = ['users','roles','permissions','languages','music_styles','eras','ai_voices','lyric_templates','songs','song_voice_tracks','lyric_sync_segments','generation_jobs','media_assets','playback_sessions','system_settings','admin_access_keys',]; + const fns = [setUsers,setRoles,setPermissions,setLanguages,setMusic_styles,setEras,setAi_voices,setLyric_templates,setSongs,setSong_voice_tracks,setLyric_sync_segments,setGeneration_jobs,setMedia_assets,setPlayback_sessions,setSystem_settings,setAdmin_access_keys,]; const requests = entities.map((entity, index) => { @@ -106,7 +107,7 @@ const Dashboard = () => { main> @@ -575,6 +576,34 @@ const Dashboard = () => { } + + {hasPermission(currentUser, 'READ_ADMIN_ACCESS_KEYS') && +
+
+
+
+ Admin access keys +
+
+ {admin_access_keys} +
+
+
+ +
+
+
+ } diff --git a/frontend/src/pages/index.tsx b/frontend/src/pages/index.tsx index 25f42c5..c0544b7 100644 --- a/frontend/src/pages/index.tsx +++ b/frontend/src/pages/index.tsx @@ -10,12 +10,12 @@ import { mdiMusic, mdiAccountKey, mdiPlayCircle, mdiCloudDownload, mdiAutoFix } import BaseIcon from '../components/BaseIcon'; export default function Home() { - const title = 'AI Music Generator Creator Pro'; + const title = 'Music Studio Pro'; return (
- {getPageTitle('AI Music Generator Creator')} + {getPageTitle('Music Studio')} {/* Hero Section */} @@ -31,16 +31,16 @@ export default function Home() {
- Next-Gen AI Generation + Next-Gen Audio Engineering

- Professional AI
Music Generator + Professional
Music Studio

- Generate studio-quality songs in seconds. Choose your style, era, and voice. - Lyrics synchronization across 200+ languages with synchronized AI vocals. + Create studio-quality songs in seconds. Choose your style, era, and voice. + Advanced music generation across 200+ languages with synchronized vocals.

@@ -54,7 +54,7 @@ export default function Home() {
@@ -64,7 +64,7 @@ export default function Home() { { label: '200+ Languages', icon: mdiMusic }, { label: 'Studio Voices', icon: mdiMusic }, { label: 'Sync Lyrics', icon: mdiMusic }, - { label: 'MP4 Download', icon: mdiCloudDownload } + { label: 'High-Quality Download', icon: mdiCloudDownload } ].map((feature, i) => (
diff --git a/frontend/src/pages/login.tsx b/frontend/src/pages/login.tsx index 297c14b..1ab6390 100644 --- a/frontend/src/pages/login.tsx +++ b/frontend/src/pages/login.tsx @@ -1,5 +1,3 @@ - - import React, { useEffect, useState } from 'react'; import type { ReactElement } from 'react'; import Head from 'next/head'; @@ -44,7 +42,7 @@ export default function Login() { password: '60682486', remember: true }) - const title = 'AI Music Studio Admin' + const title = 'Music Studio Admin' // Fetch Pexels image/video useEffect( () => { @@ -273,4 +271,4 @@ export default function Login() { Login.getLayout = function getLayout(page: ReactElement) { return {page}; -}; +}; \ No newline at end of file diff --git a/frontend/src/pages/studio/index.tsx b/frontend/src/pages/studio/index.tsx index 8fdf992..029c186 100644 --- a/frontend/src/pages/studio/index.tsx +++ b/frontend/src/pages/studio/index.tsx @@ -149,7 +149,7 @@ const StudioPage = () => { return ( <> - {getPageTitle('AI Music Generator Creator')} + {getPageTitle('Music Studio')}