Diff -- /var/www/vhosts/3dshawn.com/repricer.3dshawn.com/TEMPLATES/repricer_export_request.html

O Operator
Diff

/var/www/vhosts/3dshawn.com/repricer.3dshawn.com/TEMPLATES/repricer_export_request.html

added on local at 2026-07-01 21:47:24

Added
+98
lines
Removed
-0
lines
Context
0
unchanged
Blobs
from
to f05f41390af7
Restore this content →
Unified diff
Naive LCS-based line diff. Additions in emerald, deletions in rose. Both sides decompressed live from BLOB_STORE.
1<!-- GDPR / CCPA data-export request page. Lets the seller queue a
2 full archive of every record we hold about them; a worker (to be
3 wired) builds the zip and updates the row with a download link.
4 Until the worker exists, the queued requests still record the
5 intent so support can fulfil them manually. -->
6
7<div class="page-shell" style="max-width:780px;margin:0 auto">
8
9 <div class="mb-3">
10 <a href="/profile.cgi" class="text-secondary text-xs" style="text-decoration:none">&larr; Back to Settings</a>
11 </div>
12
13 <div class="module mb-3">
14 <div class="module-head">
15 <div class="left">
16 <div class="module-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg></div>
17 <div>
18 <div class="module-title">Request data export</div>
19 <div class="module-sub">GDPR / CCPA full archive &middot; emailed to $email when ready</div>
20 </div>
21 </div>
22 </div>
23 <div class="module-body">
24
25 [if:$queued_flash]
26 <div class="banner success mb-3">
27 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="20 6 9 17 4 12"/></svg>
28 <div class="text-sm fw-600">Export queued. We'll email you when it's ready (usually under an hour).</div>
29 </div>
30 [/if]
31
32 [if:$table_missing]
33 <div class="banner warning mb-3">
34 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>
35 <div class="text-xs">The data-export table has not been migrated yet. Please contact support directly at <a href="/support.cgi?new=1" class="text-brand">support</a> and we'll fulfil your request manually within 30 days.</div>
36 </div>
37 [/if]
38
39 <div class="text-sm" style="line-height:1.7;color:var(--col-text-2);margin-bottom:18px">
40 <strong style="color:var(--col-text)">Your archive will contain:</strong>
41 <ul style="padding-left:22px;margin:8px 0 14px">
42 <li>Your account profile (display name, email, plan history)</li>
43 <li>Every model you uploaded (metadata only &mdash; the SKUs stay on your machine if you downloaded them)</li>
44 <li>Every order placed on your storefront (buyer-side personal data redacted)</li>
45 <li>Every invoice we've issued you</li>
46 <li>Every storefront page, category, bundle, and subscription plan</li>
47 <li>The audit log: when you signed in, what features you toggled, every plan change</li>
48 </ul>
49 <p>Exports take a few minutes for most accounts, up to an hour for accounts with thousands of models. You'll get an email at <strong style="color:var(--col-text)">$email</strong> the moment the zip is ready.</p>
50 </div>
51
52 [if:$table_ready]
53 [if:$has_pending]
54 <div class="banner info mb-3">
55 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>
56 <div class="text-xs">An export is already in progress. We won't queue another until it finishes.</div>
57 </div>
58 [/if]
59 [if:!$has_pending]
60 <form method="POST" action="/export_request.cgi">
61 <input type="hidden" name="action" value="queue">
62 <button type="submit" class="btn btn-primary">Queue an export</button>
63 </form>
64 [/if]
65 [/if]
66 </div>
67 </div>
68
69 [if:$has_exports]
70 <div class="module">
71 <div class="module-head"><div class="left"><div class="module-title">Past exports</div></div></div>
72 <div class="table-wrap" style="border:none;border-radius:0">
73 <table class="table">
74 <thead><tr><th>Requested</th><th>Status</th><th>Ready at</th><th style="text-align:right">Download</th></tr></thead>
75 <tbody>
76 [loop:@exports]
77 <tr>
78 <td class="text-xs">$loop1.requested_at</td>
79 <td>
80 [if:$loop1.is_queued]<span class="pill">Queued</span>[/if]
81 [if:$loop1.is_processing]<span class="pill warning">Processing</span>[/if]
82 [if:$loop1.is_ready]<span class="pill success">Ready</span>[/if]
83 [if:$loop1.is_failed]<span class="pill danger">Failed</span>[/if]
84 </td>
85 <td class="text-xs text-dim">$loop1.ready_at</td>
86 <td style="text-align:right">
87 [if:$loop1.is_ready]<a href="$loop1.download_url" class="btn btn-secondary btn-sm">Download zip</a>[/if]
88 [if:$loop1.is_failed]<span class="text-xs text-danger">$loop1.error_message</span>[/if]
89 </td>
90 </tr>
91 [/loop]
92 </tbody>
93 </table>
94 </div>
95 </div>
96 [/if]
97
98</div>