-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathadmin.html
More file actions
115 lines (104 loc) · 3.76 KB
/
Copy pathadmin.html
File metadata and controls
115 lines (104 loc) · 3.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex,nofollow">
<title>OSINTPRO Admin</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<main class="admin-shell">
<section class="admin-panel">
<div class="brand">
<div class="mark">OP</div>
<div>
<strong>OSINTPRO</strong>
<span>Admin access</span>
</div>
</div>
<div>
<span class="pill">Private owner access</span>
<h1>Admin access</h1>
<p>Unlock full owner access without checkout or freemium limits.</p>
</div>
<form id="adminForm" class="admin-form">
<div>
<label for="adminCode">Admin code</label>
<input id="adminCode" name="adminCode" type="password" autocomplete="current-password" placeholder="Private code">
</div>
<button class="primary" type="submit">Unlock Admin</button>
</form>
<div class="billing-message" id="adminMessage"></div>
<section class="admin-dashboard" id="adminDashboard" hidden>
<div class="admin-status-grid" id="adminStatusGrid"></div>
<div class="admin-actions">
<a class="secondary button-link" href="/api/admin/export">Download operational export</a>
<button class="secondary" type="button" id="backupButton">Create DB backup</button>
</div>
<form id="restoreForm" class="admin-form restore-form">
<div>
<label for="restoreFile">Restore snapshot SQLite</label>
<input id="restoreFile" name="restoreFile" type="file" accept=".sqlite,.sqlite3,.db,application/octet-stream">
</div>
<button class="secondary" type="submit">Restore backup</button>
</form>
<form id="planForm" class="admin-form inline-admin-form">
<div>
<label for="planNickname">User nickname</label>
<input id="planNickname" name="planNickname" autocomplete="off" placeholder="nickname">
</div>
<div>
<label for="planValue">Plan</label>
<select id="planValue" name="planValue">
<option value="Free">Free</option>
<option value="Pro">Pro</option>
<option value="Agency">Agency</option>
<option value="Admin">Admin</option>
</select>
</div>
<button class="secondary" type="submit">Update plan</button>
</form>
<div>
<div class="section-head compact-head">
<div>
<span class="pill">Users</span>
<h2>Recent accounts</h2>
</div>
</div>
<div class="admin-table" id="adminUsers"></div>
</div>
<div>
<div class="section-head compact-head">
<div>
<span class="pill">Conversion</span>
<h2>Free-to-paid funnel</h2>
</div>
</div>
<div class="admin-table" id="adminConversion"></div>
</div>
<div>
<div class="section-head compact-head">
<div>
<span class="pill">Stripe</span>
<h2>Latest events</h2>
</div>
</div>
<div class="admin-table" id="adminEvents"></div>
</div>
<div>
<div class="section-head compact-head">
<div>
<span class="pill">Backup</span>
<h2>Snapshot database</h2>
</div>
</div>
<div class="admin-table" id="adminBackups"></div>
</div>
</section>
<a class="secondary button-link" href="/">Back to app</a>
</section>
</main>
<script src="admin.js"></script>
</body>
</html>