Spaces:
Sleeping
Sleeping
| <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) ; | |
| 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 ; | |
| } | |
| .navbar-brand i { | |
| color: #e74c3c; | |
| font-size: 1.8rem; | |
| margin-right: 0.5rem; | |
| } | |
| .nav-link { | |
| color: #ecf0f1 ; | |
| font-weight: 500; | |
| transition: all 0.3s ease; | |
| padding: 0.5rem 1rem ; | |
| 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 ; | |
| } | |
| .nav-link.text-danger:hover { | |
| background: rgba(231, 76, 60, 0.1); | |
| color: #ff6b6b ; | |
| } | |
| </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> |