Store admin key in localStorage for unlock forms

This commit is contained in:
Johnnybegood90
2026-03-17 03:16:35 +01:00
parent 9b068e7c74
commit eb9e3028cf
2 changed files with 37 additions and 2 deletions
+36 -1
View File
@@ -216,7 +216,7 @@ $submitted_key = trim($_POST['admin_key_input'] ?? $_POST['admin_key_hidden']
<div class="lock-sub">GridTV is already configured.<br>Enter your admin key to edit the settings.</div>
<form method="POST" action="setup.php">
<div class="lock-form">
<input type="password" name="admin_key_input" placeholder="Your admin key" autofocus autocomplete="off">
<input type="password" id="setupAdminKeyInput" name="admin_key_input" placeholder="Your admin key" autofocus autocomplete="off">
<button type="submit" class="btn-submit" style="width:auto;padding:10px 20px;">Unlock</button>
</div>
</form>
@@ -349,6 +349,41 @@ function syncPersonalM3uToggle() {
}
allowPersonalEpgToggle?.addEventListener('change', syncPersonalM3uToggle);
syncPersonalM3uToggle();
const GRIDTV_ADMIN_KEY_STORAGE = 'gridtv-admin-key';
const setupAdminKeyInput = document.getElementById('setupAdminKeyInput');
const setupAdminHiddenInput = document.querySelector('input[name="admin_key_hidden"]');
try {
const savedAdminKey = localStorage.getItem(GRIDTV_ADMIN_KEY_STORAGE) || '';
if (setupAdminKeyInput && savedAdminKey) setupAdminKeyInput.value = savedAdminKey;
if (setupAdminHiddenInput && savedAdminKey) setupAdminHiddenInput.value = savedAdminKey;
} catch (_) {}
if (setupAdminKeyInput?.form) {
setupAdminKeyInput.form.addEventListener('submit', () => {
try {
localStorage.setItem(GRIDTV_ADMIN_KEY_STORAGE, setupAdminKeyInput.value.trim());
} catch (_) {}
});
}
if (setupAdminHiddenInput?.form) {
const persistHiddenAdminKey = () => {
try {
const currentKey = setupAdminHiddenInput.value.trim();
if (currentKey) localStorage.setItem(GRIDTV_ADMIN_KEY_STORAGE, currentKey);
} catch (_) {}
};
persistHiddenAdminKey();
setupAdminHiddenInput.form.addEventListener('submit', persistHiddenAdminKey);
}
<?php if ($mode === 'success' && !empty($new_key)): ?>
try {
localStorage.setItem(GRIDTV_ADMIN_KEY_STORAGE, <?= json_encode($new_key) ?>);
} catch (_) {}
<?php endif; ?>
</script>
</body>
</html>