Other files

This commit is contained in:
2026-04-10 18:30:04 -04:00
parent ea4ddd7d41
commit bcbfe2797c
17 changed files with 2221 additions and 16 deletions
+90 -2
View File
@@ -337,14 +337,14 @@
<!-- Users Page -->
<section id="page-users" class="page">
<h1>Users</h1>
<p class="help-text">Manage users and their store locations for local stock checking</p>
<p class="help-text">Manage users, store locations, and encrypted checkout profiles</p>
<div class="users-section">
<div class="add-user-form">
<h3>Add New User</h3>
<div class="form-group">
<label for="newUserName">Name</label>
<input type="text" id="newUserName" placeholder="e.g., John">
<input type="text" id="newUserName" placeholder="e.g., Michael">
</div>
<div class="form-group">
<label for="newUserZip">Zip Code</label>
@@ -363,6 +363,94 @@
<p class="loading">Loading users...</p>
</div>
</div>
<!-- Checkout Profile Modal -->
<div id="profileModal" class="modal" style="display:none;">
<div class="modal-content modal-lg">
<div class="modal-header">
<h3 id="profileModalTitle">Checkout Profile</h3>
<button class="modal-close" onclick="closeProfileModal()">&times;</button>
</div>
<div class="modal-body">
<p class="help-text" style="margin-bottom:1rem;">
Your card and shipping data is encrypted with your password before saving.
It is never stored in plaintext and is never sent back to the browser.
</p>
<h4>Shipping Address</h4>
<div class="form-row">
<div class="form-group"><label>First Name</label><input type="text" id="pf-first-name" placeholder="Michael"></div>
<div class="form-group"><label>Last Name</label><input type="text" id="pf-last-name" placeholder="Smith"></div>
</div>
<div class="form-group"><label>Address</label><input type="text" id="pf-address1" placeholder="123 Main St"></div>
<div class="form-group"><label>Address Line 2 (optional)</label><input type="text" id="pf-address2" placeholder="Apt 4B"></div>
<div class="form-row">
<div class="form-group"><label>City</label><input type="text" id="pf-city" placeholder="Dallas"></div>
<div class="form-group" style="max-width:80px;"><label>State</label><input type="text" id="pf-state" placeholder="TX" maxlength="2"></div>
<div class="form-group" style="max-width:120px;"><label>Zip</label><input type="text" id="pf-zip" placeholder="75201" maxlength="10"></div>
</div>
<div class="form-row">
<div class="form-group"><label>Phone</label><input type="tel" id="pf-phone" placeholder="214-555-0100"></div>
<div class="form-group"><label>Email</label><input type="email" id="pf-email" placeholder="you@email.com"></div>
</div>
<h4 style="margin-top:1.5rem;">Payment</h4>
<div class="form-group"><label>Card Number</label><input type="text" id="pf-card-number" placeholder="4111 1111 1111 1111" maxlength="19" autocomplete="cc-number"></div>
<div class="form-row">
<div class="form-group" style="max-width:100px;"><label>Exp Month</label><input type="text" id="pf-expiry-month" placeholder="01" maxlength="2"></div>
<div class="form-group" style="max-width:110px;"><label>Exp Year</label><input type="text" id="pf-expiry-year" placeholder="2027" maxlength="4"></div>
<div class="form-group" style="max-width:90px;"><label>CVV</label><input type="password" id="pf-cvv" placeholder="•••" maxlength="4" autocomplete="cc-csc"></div>
</div>
<div class="form-group"><label>Name on Card</label><input type="text" id="pf-card-name" placeholder="Michael Smith" autocomplete="cc-name"></div>
<h4 style="margin-top:1.5rem;">Site Logins (optional but recommended)</h4>
<p class="help-text">Used to log in automatically at checkout. Leave blank to check out as guest.</p>
<div class="form-row">
<div class="form-group"><label>Target Email</label><input type="email" id="pf-target-email" placeholder="you@email.com"></div>
<div class="form-group"><label>Target Password</label><input type="password" id="pf-target-password" placeholder="••••••••"></div>
</div>
<div class="form-row">
<div class="form-group"><label>Best Buy Email</label><input type="email" id="pf-bestbuy-email" placeholder="you@email.com"></div>
<div class="form-group"><label>Best Buy Password</label><input type="password" id="pf-bestbuy-password" placeholder="••••••••"></div>
</div>
<div class="form-row">
<div class="form-group"><label>GameStop Email</label><input type="email" id="pf-gamestop-email" placeholder="you@email.com"></div>
<div class="form-group"><label>GameStop Password</label><input type="password" id="pf-gamestop-password" placeholder="••••••••"></div>
</div>
<h4 style="margin-top:1.5rem;">Profile Password</h4>
<p class="help-text">Encrypts your profile. You'll need this to unlock before each buy session.</p>
<div class="form-row">
<div class="form-group"><label>Password (min 8 chars)</label><input type="password" id="pf-password" placeholder="••••••••••••"></div>
<div class="form-group"><label>Confirm Password</label><input type="password" id="pf-password-confirm" placeholder="••••••••••••"></div>
</div>
<div id="profileModalError" class="error-message" style="display:none; color:#e74c3c; margin-top:.5rem;"></div>
</div>
<div class="modal-footer">
<button class="btn-secondary" onclick="closeProfileModal()">Cancel</button>
<button class="btn-primary" onclick="saveProfile()">Encrypt &amp; Save</button>
</div>
</div>
</div>
<!-- Unlock Modal -->
<div id="unlockModal" class="modal" style="display:none;">
<div class="modal-content">
<div class="modal-header">
<h3 id="unlockModalTitle">Unlock Profile</h3>
<button class="modal-close" onclick="closeUnlockModal()">&times;</button>
</div>
<div class="modal-body">
<p class="help-text">Enter your password to load your checkout data into memory for this session.</p>
<div class="form-group">
<label>Password</label>
<input type="password" id="unlock-password" placeholder="••••••••••••" autocomplete="current-password">
</div>
<div id="unlockModalError" class="error-message" style="display:none; color:#e74c3c; margin-top:.5rem;"></div>
</div>
<div class="modal-footer">
<button class="btn-secondary" onclick="closeUnlockModal()">Cancel</button>
<button class="btn-primary" onclick="submitUnlock()">Unlock</button>
</div>
</div>
</div>
</section>
<!-- Settings Page -->