Guard lt.* calls when base.js unavailable to prevent crash
Wraps all lt.keys.initDefaults() calls in `if (window.lt)` guards across 6 view files. Adds `if (!window.lt) return` bail-out in keyboard-shortcuts.js and `if (window.lt)` guard in settings.js DOMContentLoaded handler. This prevents TypeError crashes when /web_template/base.js returns 404, which was causing the admin menu click delegation to never register. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -854,7 +854,7 @@ $nonce = SecurityHeadersMiddleware::getNonce();
|
||||
<script nonce="<?php echo $nonce; ?>" src="<?php echo $GLOBALS['config']['ASSETS_URL']; ?>/js/advanced-search.js"></script>
|
||||
<script nonce="<?php echo $nonce; ?>">
|
||||
// Initialize lt keyboard defaults (ESC closes modals, Ctrl+K focuses search, ? shows help)
|
||||
lt.keys.initDefaults();
|
||||
if (window.lt) lt.keys.initDefaults();
|
||||
// Event delegation for all data-action handlers
|
||||
document.addEventListener('click', function(event) {
|
||||
const target = event.target.closest('[data-action]');
|
||||
|
||||
@@ -816,6 +816,6 @@ $nonce = SecurityHeadersMiddleware::getNonce();
|
||||
|
||||
<script nonce="<?php echo $nonce; ?>" src="<?php echo $GLOBALS['config']['ASSETS_URL']; ?>/js/keyboard-shortcuts.js"></script>
|
||||
<script nonce="<?php echo $nonce; ?>" src="<?php echo $GLOBALS['config']['ASSETS_URL']; ?>/js/settings.js"></script>
|
||||
<script nonce="<?php echo $nonce; ?>">lt.keys.initDefaults();</script>
|
||||
<script nonce="<?php echo $nonce; ?>">if (window.lt) lt.keys.initDefaults();</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -204,7 +204,7 @@ $nonce = SecurityHeadersMiddleware::getNonce();
|
||||
saveField(e);
|
||||
});
|
||||
|
||||
lt.keys.initDefaults();
|
||||
if (window.lt) lt.keys.initDefaults();
|
||||
|
||||
function toggleOptionsField() {
|
||||
const type = document.getElementById('field_type').value;
|
||||
|
||||
@@ -241,7 +241,7 @@ $nonce = SecurityHeadersMiddleware::getNonce();
|
||||
saveRecurring(e);
|
||||
});
|
||||
|
||||
lt.keys.initDefaults();
|
||||
if (window.lt) lt.keys.initDefaults();
|
||||
|
||||
function updateScheduleOptions() {
|
||||
const type = document.getElementById('schedule_type').value;
|
||||
|
||||
@@ -202,7 +202,7 @@ $nonce = SecurityHeadersMiddleware::getNonce();
|
||||
saveTemplate(e);
|
||||
});
|
||||
|
||||
lt.keys.initDefaults();
|
||||
if (window.lt) lt.keys.initDefaults();
|
||||
|
||||
function saveTemplate(e) {
|
||||
e.preventDefault();
|
||||
|
||||
@@ -219,7 +219,7 @@ $nonce = SecurityHeadersMiddleware::getNonce();
|
||||
saveTransition(e);
|
||||
});
|
||||
|
||||
lt.keys.initDefaults();
|
||||
if (window.lt) lt.keys.initDefaults();
|
||||
|
||||
function saveTransition(e) {
|
||||
e.preventDefault();
|
||||
|
||||
Reference in New Issue
Block a user