DashX-API / public /profile.html
HerzaJ's picture
Upload 11 files
fa5f51c verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>DashX - Profile</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/sweetalert2/11.10.8/sweetalert2.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet">
<link href="styles.css" rel="stylesheet">
<style>
.navbar {
background: rgba(44, 62, 80, 0.95) !important;
backdrop-filter: blur(10px);
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 2px 20px rgba(0, 0, 0, 0.2);
}
.navbar-brand {
font-size: 1.5rem;
font-weight: 700;
color: #fff !important;
}
.navbar-brand i {
color: #e74c3c;
font-size: 1.8rem;
margin-right: 0.5rem;
}
.nav-link {
color: #ecf0f1 !important;
font-weight: 500;
transition: all 0.3s ease;
padding: 0.5rem 1rem !important;
border-radius: 6px;
margin: 0 0.25rem;
}
.nav-link:hover {
background: rgba(255, 255, 255, 0.1);
transform: translateY(-1px);
}
.nav-link.text-danger {
color: #e74c3c !important;
}
.nav-link.text-danger:hover {
background: rgba(231, 76, 60, 0.1);
color: #ff6b6b !important;
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-dark">
<div class="container">
<a class="navbar-brand" href="/">
<i class="fas fa-bolt"></i> DashX
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item">
<a class="nav-link" href="/dashboard">
<i class="fas fa-chart-line"></i> Dashboard
</a>
</li>
<li class="nav-item">
<a class="nav-link text-danger" href="#" onclick="logout()">
<i class="fas fa-sign-out-alt"></i> Logout
</a>
</li>
</ul>
</div>
</div>
</nav>
<div class="profile-container">
<div class="profile-header">
<div class="profile-avatar" id="profileAvatar">
<img id="profileImage" src="" alt="Profile" style="display: none; width: 100%; height: 100%; border-radius: 50%; object-fit: cover;">
<i class="fas fa-user-circle" id="defaultAvatar"></i>
</div>
<div class="profile-info">
<h2 id="profileUsername">Loading...</h2>
<p id="profileEmail">Loading...</p>
<span class="badge" id="profileRole">User</span>
<span class="badge premium" id="premiumBadge" style="display: none;">Premium</span>
<span class="badge" id="adminBadge" style="display: none; background: linear-gradient(135deg, #853030 0%, #292727 100%);">Admin</span>
</div>
</div>
<div class="profile-content">
<div class="profile-section">
<h3><i class="fas fa-info-circle"></i> Account Information</h3>
<div class="info-grid">
<div class="info-item">
<label>API Key</label>
<div class="api-key-display">
<code id="profileApiKey">Loading...</code>
<button onclick="copyApiKey()" class="btn btn-sm">
<i class="fas fa-copy"></i>
</button>
</div>
</div>
<div class="info-item">
<label>Total Requests</label>
<span class="info-value" id="profileRequests">0</span>
</div>
<div class="info-item">
<label>Today's Requests</label>
<span class="info-value" id="profileRequestsToday">0</span>
</div>
<div class="info-item">
<label>Daily Limit</label>
<span class="info-value" id="profileLimit">30</span>
</div>
</div>
</div>
<div class="profile-section">
<h3><i class="fas fa-chart-bar"></i> Usage Statistics</h3>
<div class="usage-progress">
<div class="progress-item">
<label>Today's Usage</label>
<div class="progress-bar">
<div class="progress-fill" id="usageProgress"></div>
</div>
<span class="progress-text" id="usageText">0 / 30</span>
</div>
</div>
</div>
<div class="profile-section">
<h3><i class="fas fa-cog"></i> Account Settings</h3>
<div class="settings-grid">
<div class="setting-item">
<label>Change Username</label>
<div class="input-group">
<input type="text" id="newUsername" placeholder="Enter new username">
<button onclick="updateUsername()" class="btn btn-primary">
<i class="fas fa-save"></i> Update
</button>
</div>
</div>
<div class="setting-item">
<label>Profile Picture URL</label>
<div class="input-group">
<input type="url" id="profileUrlInput" placeholder="Enter image URL">
<button onclick="updateProfileUrl()" class="btn btn-primary">
<i class="fas fa-image"></i> Update
</button>
</div>
</div>
<div class="setting-item" id="premiumFeatures" style="display: none;">
<label>Premium Features</label>
<div class="premium-actions">
<button onclick="regenerateApiKey()" class="btn btn-warning">
<i class="fas fa-sync"></i> Regenerate API Key
</button>
</div>
<label>Custom API Key</label>
<div class="input-group">
<input type="text" id="customApiKeyInput" placeholder="Enter custom API key">
<button onclick="updateCustomApiKey()" class="btn btn-primary">
<i class="fas fa-key"></i> Update
</button>
</div>
<small style="opacity: 0.7;">Premium feature - Set your own custom API key</small>
</div>
</div>
</div>
<div class="profile-section">
<h3><i class="fas fa-history"></i> Recent Activity</h3>
<div class="activity-list" id="recentActivity">
<div class="activity-item">
<i class="fas fa-spinner fa-spin"></i>
<span>Loading activity...</span>
</div>
</div>
</div>
<div class="profile-section danger-zone">
<h3><i class="fas fa-exclamation-triangle"></i> Danger Zone</h3>
<div class="danger-actions">
<button onclick="deleteAccount()" class="btn btn-danger">
<i class="fas fa-trash"></i> Delete Account
</button>
<p class="warning-text">This action cannot be undone. All your data will be permanently deleted.</p>
</div>
</div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert2/11.10.8/sweetalert2.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/js/bootstrap.bundle.min.js"></script>
<script src="profile.js"></script>
</body>
</html>