<!-- head --><!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>FilaMan - Filament Management Tool</title>
    <link rel="icon" type="image/png" href="/favicon.ico">
    <link rel="stylesheet" href="style.css">
    <script>
        fetch('/api/version')
            .then(response => response.json())
            .then(data => {
                const versionSpan = document.querySelector('.version');
                if (versionSpan) {
                    versionSpan.textContent = 'v' + data.version;
                }
            })
            .catch(error => console.error('Error fetching version:', error));
    </script>
</head>
<body>
    <div class="navbar">
        <div style="display: flex; align-items: center; gap: 2rem;">
            <img src="/logo.png" alt="FilaMan Logo" class="logo">
            <div class="logo-text">
                <h1>FilaMan<span class="version"></span></h1>
                <h4>Filament Management Tool</h4>
            </div>
        </div>
        <nav style="display: flex; gap: 1rem;">
            <a href="/">Start</a>
            <a href="/waage">Scale</a>
            <a href="/spoolman">Spoolman/Bambu</a>
            <a href="/about">About</a>
            <a href="/upgrade">Upgrade</a>
        </nav>
        <div class="status-container">
            <div class="status-item">
                <span class="status-dot" id="bambuDot"></span>B
            </div>
            <div class="status-item">
                <span class="status-dot" id="spoolmanDot"></span>S
            </div>
            <div class="ram-status" id="ramStatus"></div>
        </div>
    </div>

<!-- head -->

    <script>
        window.onload = function() {
            if (spoolmanUrl && spoolmanUrl.trim() !== "") {
                document.getElementById('spoolmanUrl').value = spoolmanUrl;
            }
            
            // Initialize OctoPrint fields visibility
            toggleOctoFields();
        };

        function checkSpoolmanInstance() {
            const url = document.getElementById('spoolmanUrl').value;
            const spoolmanOctoEnabled = document.getElementById('spoolmanOctoEnabled').checked;
            const spoolmanOctoUrl = document.getElementById('spoolmanOctoUrl').value;
            const spoolmanOctoToken = document.getElementById('spoolmanOctoToken').value;
            
            fetch(`/api/checkSpoolman?url=${encodeURIComponent(url)}&octoEnabled=${spoolmanOctoEnabled}&octoUrl=${spoolmanOctoUrl}&octoToken=${spoolmanOctoToken}`)
                .then(response => response.json())
                .then(data => {
                    if (data.healthy) {
                        document.getElementById('statusMessage').innerText = 'Spoolman-Instance is availabe and healthy!';
                    } else {
                        document.getElementById('statusMessage').innerText = 'Spoolman-Instance not available.';
                    }
                })
                .catch(error => {
                    document.getElementById('statusMessage').innerText = 'Error while connecting to Spoolman-Instance: ' + error.message;
                });
        }

        function saveBambuCredentials() {
            const ip = document.getElementById('bambuIp').value;
            const serial = document.getElementById('bambuSerial').value;
            const code = document.getElementById('bambuCode').value;
            const autoSend = document.getElementById('autoSend').checked;
            const autoSendTime = document.getElementById('autoSendTime').value;

            fetch(`/api/bambu?bambu_ip=${encodeURIComponent(ip)}&bambu_serialnr=${encodeURIComponent(serial)}&bambu_accesscode=${encodeURIComponent(code)}&autoSend=${autoSend}&autoSendTime=${autoSendTime}`)
                .then(response => response.json())
                .then(data => {
                    if (data.healthy) {
                        document.getElementById('bambuStatusMessage').innerText = 'Bambu Credentials saved!';
                    } else {
                        document.getElementById('bambuStatusMessage').innerText = 'Error while saving Bambu Credentials.';
                    }
                })
                .catch(error => {
                    document.getElementById('bambuStatusMessage').innerText = 'Error while saving: ' + error.message;
                });
        }

        /**
         * Controls visibility of OctoPrint configuration fields based on checkbox state
         * Called on page load and when checkbox changes
         */
        function toggleOctoFields() {
            const octoEnabled = document.getElementById('spoolmanOctoEnabled').checked;
            document.getElementById('octoFields').style.display = octoEnabled ? 'block' : 'none';
        }
    </script>
    <script>
        var spoolmanUrl = "{{spoolmanUrl}}";
    </script>
    
    <div class="content">
        <h1>Spoolman API URL / Bambu Credentials</h1>

        <div class="card">
            <div class="card-body">
                <h5 class="card-title">Set URL/IP to your Spoolman-Instanz</h5>
                <input type="text" id="spoolmanUrl" placeholder="http://ip-or-url-of-your-spoolman-instanz:port">
                <h5 class="card-title">If you want to enable sending Spool to Spoolman Octoprint Plugin:</h5>
                <p>
                    <input type="checkbox" id="spoolmanOctoEnabled" {{spoolmanOctoEnabled}} onchange="toggleOctoFields()"> Send to Octo-Plugin
                </p>
                <div id="octoFields" style="display: none;">
                    <p>
                        <input type="text" id="spoolmanOctoUrl" placeholder="http://ip-or-url-of-your-octoprint-instanz:port" value="{{spoolmanOctoUrl}}">
                        <input type="text" id="spoolmanOctoToken" placeholder="Your Octoprint Token" value="{{spoolmanOctoToken}}">
                    </p>
                </div>
                
                <button onclick="checkSpoolmanInstance()">Save Spoolman URL</button>
                <p id="statusMessage"></p>
            </div>
        </div>

        <div class="card">
            <div class="card-body">
                <h5 class="card-title">Bambu Lab Printer Credentials</h5>
                <div class="bambu-settings">
                    <div class="input-group">
                        <label for="bambuIp">Bambu Drucker IP-Adresse:</label>
                        <input type="text" id="bambuIp" placeholder="192.168.1.xxx" value="{{bambuIp}}">
                    </div>
                    <div class="input-group">
                        <label for="bambuSerial">Drucker Seriennummer:</label>
                        <input type="text" id="bambuSerial" placeholder="BBLXXXXXXXX" value="{{bambuSerial}}">
                    </div>
                    <div class="input-group">
                        <label for="bambuCode">Access Code:</label>
                        <input type="text" id="bambuCode" placeholder="Access Code vom Drucker" value="{{bambuCode}}">
                    </div>
                    <hr>
                    <p>If activated, FilaMan will automatically update the next filled tray with the last scanned and weighed spool.</p>
                    <div class="input-group" style="display: flex; margin-bottom: 0;">
                        <label for="autoSend" style="width: 250px; margin-right: 5px;">Auto Send to Bambu:</label>
                        <label for="autoSendTime" style="width: 250px; margin-right: 5px;">Wait for Spool in Sec:</label>
                    </div>
                    <div class="input-group" style="display: flex;">
                        <input type="checkbox" id="autoSend" {{autoSendToBambu}} style="width: 190px; margin-right: 10px;">
                        <input type="number" min="60" id="autoSendTime" placeholder="Time to wait" value="{{autoSendTime}}" style="width: 100px;">
                    </div>

                    <button style="margin: 0;" onclick="saveBambuCredentials()">Save Bambu Credentials</button>
                    <p id="bambuStatusMessage"></p>
                </div>
            </div>
        </div>
    </div>
</body>
</html>