Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
V
vidai
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
SexHackMe
vidai
Commits
cd863f07
Commit
cd863f07
authored
Oct 06, 2025
by
Stefy Lanza (nextime / spora )
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update account.html to extend base.html and use correct navbar
parent
738d5a79
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
51 additions
and
96 deletions
+51
-96
account.html
templates/account.html
+51
-96
No files found.
templates/account.html
View file @
cd863f07
<!DOCTYPE html>
<html>
<head>
<title>
Account - VidAI
</title>
<link
href=
"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap"
rel=
"stylesheet"
>
<link
rel=
"stylesheet"
href=
"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"
>
<style>
*
{
margin
:
0
;
padding
:
0
;
box-sizing
:
border-box
;
}
body
{
font-family
:
'Inter'
,
sans-serif
;
background
:
#f8fafc
;
}
.header
{
background
:
white
;
padding
:
1rem
2rem
;
box-shadow
:
0
1px
3px
rgba
(
0
,
0
,
0
,
0.1
);
}
.header-content
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
max-width
:
1200px
;
margin
:
0
auto
;
}
.logo
{
font-size
:
1.5rem
;
font-weight
:
700
;
color
:
#667eea
;
}
.nav
{
display
:
flex
;
gap
:
2rem
;
}
.nav
a
{
text-decoration
:
none
;
color
:
#64748b
;
font-weight
:
500
;
}
.nav
a
.active
{
color
:
#667eea
;
}
.user-menu
{
display
:
flex
;
align-items
:
center
;
gap
:
1rem
;
position
:
relative
;
}
.user-icon
{
cursor
:
pointer
;
padding
:
0.5rem
;
border-radius
:
50%
;
background
:
#f8fafc
;
transition
:
background
0.2s
;
}
.user-icon
:hover
{
background
:
#e2e8f0
;
}
.user-icon
i
{
font-size
:
1.2rem
;
color
:
#64748b
;
}
.user-dropdown
{
display
:
none
;
position
:
absolute
;
top
:
100%
;
right
:
0
;
background
:
white
;
min-width
:
200px
;
box-shadow
:
0
4px
12px
rgba
(
0
,
0
,
0
,
0.15
);
border-radius
:
8px
;
z-index
:
1000
;
}
.user-dropdown
a
{
display
:
block
;
padding
:
0.75rem
1rem
;
text-decoration
:
none
;
color
:
#374151
;
border-bottom
:
1px
solid
#f1f5f9
;
}
.user-dropdown
a
:last-child
{
border-bottom
:
none
;
color
:
#dc2626
;
}
.user-dropdown
a
:hover
{
background
:
#f8fafc
;
}
.container
{
max-width
:
1000px
;
margin
:
2rem
auto
;
padding
:
0
2rem
;
}
.account-card
{
background
:
white
;
padding
:
2rem
;
border-radius
:
12px
;
box-shadow
:
0
2px
10px
rgba
(
0
,
0
,
0
,
0.05
);
margin-bottom
:
2rem
;
}
.card-header
{
margin-bottom
:
1.5rem
;
}
.card-header
h3
{
margin
:
0
;
color
:
#1e293b
;
}
.form-group
{
margin-bottom
:
1.5rem
;
}
.form-group
label
{
display
:
block
;
margin-bottom
:
0.5rem
;
color
:
#374151
;
font-weight
:
500
;
}
.form-group
input
,
.form-group
select
{
width
:
100%
;
padding
:
0.75rem
;
border
:
2px
solid
#e5e7eb
;
border-radius
:
8px
;
font-size
:
1rem
;
}
.form-group
input
:focus
,
.form-group
select
:focus
{
outline
:
none
;
border-color
:
#667eea
;
}
.btn
{
padding
:
0.75rem
2rem
;
background
:
#667eea
;
color
:
white
;
border
:
none
;
border-radius
:
8px
;
font-size
:
1rem
;
font-weight
:
600
;
cursor
:
pointer
;
}
.btn
:hover
{
background
:
#5a67d8
;
}
.btn-danger
{
background
:
#dc2626
;
}
.btn-danger
:hover
{
background
:
#b91c1c
;
}
.btn-success
{
background
:
#059669
;
}
.btn-success
:hover
{
background
:
#047857
;
}
.alert
{
padding
:
0.75rem
;
border-radius
:
8px
;
margin-bottom
:
1rem
;
}
.alert-error
{
background
:
#fee2e2
;
color
:
#dc2626
;
border
:
1px
solid
#fecaca
;
}
.alert-success
{
background
:
#d1fae5
;
color
:
#065f46
;
border
:
1px
solid
#a7f3d0
;
}
.token-balance
{
background
:
linear-gradient
(
135deg
,
#667eea
0%
,
#764ba2
100%
);
color
:
white
;
padding
:
2rem
;
border-radius
:
12px
;
text-align
:
center
;
margin-bottom
:
2rem
;
}
.balance-amount
{
font-size
:
3rem
;
font-weight
:
700
;
margin-bottom
:
0.5rem
;
}
.balance-label
{
font-size
:
1.2rem
;
opacity
:
0.9
;
}
.pricing-grid
{
display
:
grid
;
grid-template-columns
:
repeat
(
auto-fit
,
minmax
(
250px
,
1
fr
));
gap
:
1rem
;
margin-bottom
:
2rem
;
}
.pricing-card
{
border
:
2px
solid
#e0e0e0
;
border-radius
:
12px
;
padding
:
1.5rem
;
text-align
:
center
;
transition
:
all
0.3s
ease
;
cursor
:
pointer
;
}
.pricing-card
:hover
{
border-color
:
#667eea
;
transform
:
translateY
(
-2px
);
box-shadow
:
0
4px
15px
rgba
(
102
,
126
,
234
,
0.2
);
}
.pricing-card.selected
{
border-color
:
#667eea
;
background
:
#f0f4ff
;
}
.pricing-name
{
font-size
:
1.2rem
;
font-weight
:
600
;
margin-bottom
:
0.5rem
;
color
:
#1e293b
;
}
.pricing-tokens
{
font-size
:
2rem
;
font-weight
:
700
;
color
:
#667eea
;
margin-bottom
:
0.5rem
;
}
.pricing-price
{
font-size
:
1.1rem
;
color
:
#374151
;
margin-bottom
:
1rem
;
}
.payment-methods
{
display
:
grid
;
grid-template-columns
:
repeat
(
auto-fit
,
minmax
(
200px
,
1
fr
));
gap
:
1rem
;
}
.payment-card
{
border
:
2px
solid
#e0e0e0
;
border-radius
:
8px
;
padding
:
1rem
;
text-align
:
center
;
transition
:
all
0.3s
ease
;
cursor
:
pointer
;
}
.payment-card
:hover
{
border-color
:
#667eea
;
}
.payment-card.selected
{
border-color
:
#667eea
;
background
:
#f0f4ff
;
}
.payment-icon
{
font-size
:
2rem
;
margin-bottom
:
0.5rem
;
}
.payment-name
{
font-weight
:
500
;
color
:
#374151
;
}
.modal
{
display
:
none
;
position
:
fixed
;
z-index
:
1000
;
left
:
0
;
top
:
0
;
width
:
100%
;
height
:
100%
;
background-color
:
rgba
(
0
,
0
,
0
,
0.5
);
}
.modal-content
{
background-color
:
white
;
margin
:
15%
auto
;
padding
:
0
;
width
:
90%
;
max-width
:
500px
;
border-radius
:
12px
;
}
.modal-header
{
padding
:
1rem
2rem
;
border-bottom
:
1px
solid
#e5e7eb
;
}
.modal-body
{
padding
:
2rem
;
}
.modal-footer
{
padding
:
1rem
2rem
;
border-top
:
1px
solid
#e5e7eb
;
text-align
:
right
;
}
.form-row
{
display
:
flex
;
gap
:
1rem
;
}
.form-row
.form-group
{
flex
:
1
;
}
</style>
</head>
<body>
<header
class=
"header"
>
<div
class=
"header-content"
>
<div
class=
"logo"
>
VidAI
</div>
<nav
class=
"nav"
>
<a
href=
"/dashboard"
>
Dashboard
</a>
<a
href=
"/analyze"
>
Analyze
</a>
<a
href=
"/train"
>
Train
</a>
<a
href=
"/history"
>
History
</a>
<a
href=
"/api_tokens"
>
API Tokens
</a>
<a
href=
"/settings"
>
Settings
</a>
</nav>
<div
class=
"user-menu"
>
<div
class=
"user-icon"
onclick=
"toggleUserMenu()"
>
<i
class=
"fas fa-user"
></i>
</div>
<div
id=
"userDropdown"
class=
"user-dropdown"
>
<a
href=
"/account"
>
Account
</a>
{% if user.get('role') != 'admin' %}
<a
href=
"/api_tokens"
>
Tokens
</a>
{% else %}
<a
href=
"/admin/users"
>
Users
</a>
<a
href=
"/config"
>
Configurations
</a>
{% endif %}
<a
href=
"/logout"
>
Logout
</a>
</div>
</div>
</div>
</header>
{% extends "base.html" %}
{% block title %}Account - VidAI{% endblock %}
{% block head %}
<style>
.container
{
max-width
:
1000px
;
margin
:
2rem
auto
;
padding
:
0
2rem
;
}
.account-card
{
background
:
white
;
padding
:
2rem
;
border-radius
:
12px
;
box-shadow
:
0
2px
10px
rgba
(
0
,
0
,
0
,
0.05
);
margin-bottom
:
2rem
;
}
.card-header
{
margin-bottom
:
1.5rem
;
}
.card-header
h3
{
margin
:
0
;
color
:
#1e293b
;
}
.form-group
{
margin-bottom
:
1.5rem
;
}
.form-group
label
{
display
:
block
;
margin-bottom
:
0.5rem
;
color
:
#374151
;
font-weight
:
500
;
}
.form-group
input
,
.form-group
select
{
width
:
100%
;
padding
:
0.75rem
;
border
:
2px
solid
#e5e7eb
;
border-radius
:
8px
;
font-size
:
1rem
;
}
.form-group
input
:focus
,
.form-group
select
:focus
{
outline
:
none
;
border-color
:
#667eea
;
}
.btn
{
padding
:
0.75rem
2rem
;
background
:
#667eea
;
color
:
white
;
border
:
none
;
border-radius
:
8px
;
font-size
:
1rem
;
font-weight
:
600
;
cursor
:
pointer
;
}
.btn
:hover
{
background
:
#5a67d8
;
}
.btn-danger
{
background
:
#dc2626
;
}
.btn-danger
:hover
{
background
:
#b91c1c
;
}
.btn-success
{
background
:
#059669
;
}
.btn-success
:hover
{
background
:
#047857
;
}
.alert
{
padding
:
0.75rem
;
border-radius
:
8px
;
margin-bottom
:
1rem
;
}
.alert-error
{
background
:
#fee2e2
;
color
:
#dc2626
;
border
:
1px
solid
#fecaca
;
}
.alert-success
{
background
:
#d1fae5
;
color
:
#065f46
;
border
:
1px
solid
#a7f3d0
;
}
.token-balance
{
background
:
linear-gradient
(
135deg
,
#667eea
0%
,
#764ba2
100%
);
color
:
white
;
padding
:
2rem
;
border-radius
:
12px
;
text-align
:
center
;
margin-bottom
:
2rem
;
}
.balance-amount
{
font-size
:
3rem
;
font-weight
:
700
;
margin-bottom
:
0.5rem
;
}
.balance-label
{
font-size
:
1.2rem
;
opacity
:
0.9
;
}
.pricing-grid
{
display
:
grid
;
grid-template-columns
:
repeat
(
auto-fit
,
minmax
(
250px
,
1
fr
));
gap
:
1rem
;
margin-bottom
:
2rem
;
}
.pricing-card
{
border
:
2px
solid
#e0e0e0
;
border-radius
:
12px
;
padding
:
1.5rem
;
text-align
:
center
;
transition
:
all
0.3s
ease
;
cursor
:
pointer
;
}
.pricing-card
:hover
{
border-color
:
#667eea
;
transform
:
translateY
(
-2px
);
box-shadow
:
0
4px
15px
rgba
(
102
,
126
,
234
,
0.2
);
}
.pricing-card.selected
{
border-color
:
#667eea
;
background
:
#f0f4ff
;
}
.pricing-name
{
font-size
:
1.2rem
;
font-weight
:
600
;
margin-bottom
:
0.5rem
;
color
:
#1e293b
;
}
.pricing-tokens
{
font-size
:
2rem
;
font-weight
:
700
;
color
:
#667eea
;
margin-bottom
:
0.5rem
;
}
.pricing-price
{
font-size
:
1.1rem
;
color
:
#374151
;
margin-bottom
:
1rem
;
}
.payment-methods
{
display
:
grid
;
grid-template-columns
:
repeat
(
auto-fit
,
minmax
(
200px
,
1
fr
));
gap
:
1rem
;
}
.payment-card
{
border
:
2px
solid
#e0e0e0
;
border-radius
:
8px
;
padding
:
1rem
;
text-align
:
center
;
transition
:
all
0.3s
ease
;
cursor
:
pointer
;
}
.payment-card
:hover
{
border-color
:
#667eea
;
}
.payment-card.selected
{
border-color
:
#667eea
;
background
:
#f0f4ff
;
}
.payment-icon
{
font-size
:
2rem
;
margin-bottom
:
0.5rem
;
}
.payment-name
{
font-weight
:
500
;
color
:
#374151
;
}
.modal
{
display
:
none
;
position
:
fixed
;
z-index
:
1000
;
left
:
0
;
top
:
0
;
width
:
100%
;
height
:
100%
;
background-color
:
rgba
(
0
,
0
,
0
,
0.5
);
}
.modal-content
{
background-color
:
white
;
margin
:
15%
auto
;
padding
:
0
;
width
:
90%
;
max-width
:
500px
;
border-radius
:
12px
;
}
.modal-header
{
padding
:
1rem
2rem
;
border-bottom
:
1px
solid
#e5e7eb
;
}
.modal-body
{
padding
:
2rem
;
}
.modal-footer
{
padding
:
1rem
2rem
;
border-top
:
1px
solid
#e5e7eb
;
text-align
:
right
;
}
.form-row
{
display
:
flex
;
gap
:
1rem
;
}
.form-row
.form-group
{
flex
:
1
;
}
</style>
{% endblock %}
{% block content %}
<div
class=
"container"
>
<!-- Token Balance -->
...
...
@@ -379,5 +335,4 @@
dropdown
.
style
.
display
=
dropdown
.
style
.
display
===
'block'
?
'none'
:
'block'
;
}
</script>
</body>
</html>
\ No newline at end of file
{% endblock %}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment