# metasync/2.6.10/admin/js/metasync-debug-mode.js

Search Atlas SEO – OTTO AI SEO Automation for WordPress, version 2.6.10. 72 lines.

- Page: https://pluginprobe.com/plugins/metasync/2.6.10/code/admin/js/metasync-debug-mode.js
- Raw: https://pluginprobe.com/plugins/metasync/2.6.10/raw/admin/js/metasync-debug-mode.js
- Modified: 2026-03-23T17:37:48+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/metasync/2.6.10/code/admin/js/metasync-debug-mode.js#L10-L20`.

```javascript
/* global metasyncDebugData */
/**
 * MetaSync Debug Mode
 *
 * Extracted for Phase 5, #887 — Part B JS extraction.
 * Handles the debug-mode timer UI and auto-refresh when debug mode expires.
 *
 * Localized data object: metasyncDebugData
 *   - enabled       (bool)   — whether debug mode is currently enabled
 *   - indefinite    (bool)   — whether debug mode is set to indefinite
 *   - timeRemaining (int)    — seconds remaining for debug mode
 *   - statusUrl     (string) — REST endpoint for debug-mode status
 *   - restNonce     (string) — wp_rest nonce for REST requests
 *
 * @since Phase 5
 * @see   wp_localize_script() call in class-metasync-admin.php
 */

jQuery(document).ready(function($) {
    // Show warning when indefinite mode is checked
    $('#indefinite-mode-advanced').on('change', function() {
        if ($(this).is(':checked')) {
            $('#indefinite-warning-advanced').slideDown();
        } else {
            $('#indefinite-warning-advanced').slideUp();
        }
    });

    // Auto-update time remaining every minute
    var initialTimeRemaining = metasyncDebugData.enabled && !metasyncDebugData.indefinite ? metasyncDebugData.timeRemaining : 0;
    var hasReloaded = false;

    function updateDebugTimeRemaining() {
        if (initialTimeRemaining <= 0 || hasReloaded) {
            return;
        }

        $.ajax({
            url: metasyncDebugData.statusUrl,
            method: 'GET',
            beforeSend: function(xhr) {
                xhr.setRequestHeader('X-WP-Nonce', metasyncDebugData.restNonce);
            },
            success: function(response) {
                console.log('MetaSync Debug Mode Status:', response);

                if (response && typeof response.time_remaining !== 'undefined') {
                    if (response.time_remaining_formatted) {
                        $('.debug-time-remaining').text(response.time_remaining_formatted);
                    }

                    if (response.time_remaining <= 0 && initialTimeRemaining > 0 && !hasReloaded) {
                        hasReloaded = true;
                        console.log('Debug mode expired, reloading page...');
                        setTimeout(function() {
                            window.location.reload();
                        }, 2000);
                    }
                }
            },
            error: function(xhr, status, error) {
                console.error('MetaSync Debug Mode: Failed to update time remaining', error);
            }
        });
    }

    if (metasyncDebugData.enabled && !metasyncDebugData.indefinite && initialTimeRemaining > 0) {
        setTimeout(updateDebugTimeRemaining, 2000);
        setInterval(updateDebugTimeRemaining, 60000);
    }
});

```
