Diff -- /var/www/vhosts/3dshawn.com/repricer.3dshawn.com/TEMPLATES/repricer_export_request.html
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
to f05f41390af7
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">← 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 · 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 — 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> |