Skip to content
Snippets Groups Projects
Select Git revision
  • c5166e8eae24ff5ba993b3b3d585ea78e2adaee9
  • master default
2 results

api.php

Blame
  • main.js 3.08 KiB
    var wsUrl = 'ws://' + document.location.host + '/ws';
    
    var settings = {
        brightness: 0,
        interval: 0,
    };
    
    $(document).ready(function () {
        uiEnabled(false);
        $("#wsMessages, #prompt").val("");
        startSocket();
    });
    
    $(document).on('change', '.rangeSetting', function () {
        var setting = $(this).data('name');
        var value = $(this).val();
        switch (setting) {
            case 'brightness':
                value = mapRange(value, 1, 100, 8, 255);
                break;
            case 'interval':
                value = mapRange(value, 1, 100, 1000, 10);
                break;
        }
        settings[setting] = value;
        var payload = {
            'settings': settings
        };
        wsSend(payload);
    });
    
    $('.btnAction').on('click', function () {
        var action = $(this).data('action');
        sendAction(action);
    });
    
    $("#prompt").on('keydown', function (e) {
        if (e.keyCode == 13 && $("#prompt").val() != "") {
            var val = $("#prompt").val();
            wsSend(JSON.parse(val));
            $("#prompt").val("");
        }
    });
    
    function uiEnabled(enabled) {
        if (enabled) {
            $('#spinner').addClass('invisible');
            $('.btnAction').prop('disabled', false);
            $('.rangeSetting').prop('disabled', false);
        } else {
            $('#spinner').removeClass('invisible');
            $('.btnAction').prop('disabled', true);
            $('.rangeSetting').prop('disabled', true);
        }
    }
    
    function addMessage(msg) {
        var txt = $("#wsMessages");
        txt.val($.trim(txt.val() + "\n" + msg));
        txt.scrollTop(txt[0].scrollHeight - txt.height());
    }
    
    function wsSend(obj) {
        ws.send(obj).done(function () {
            addMessage("➡️ " + JSON.stringify(obj));
        }).fail(function (e) {
            addMessage("❗️ " + JSON.stringify(obj));
        });
    }