Pi2-FGABreja/FGABrejaWeb

View on GitHub
FGABreja/monitoring/templates/realtime_monitoring_js

Summary

Maintainability
Test Coverage
{% load urls %}
<script>
    PREBREWERY = {1: 'Insert water',
              2: 'Waiting water',
              3: 'Stop water'};
    BREWERY = {4: 'Initial boiling',
           5: 'Insert malt',
           6: 'Heating',
           7: 'Heat controll',
           8: 'Iodine test'};
    FILTERING = {9: 'Open pot valve',
             10: 'Insert water',
             11: 'Check level',
             12: 'Stop water'};
    BOILING = {13: 'Warm must',
           14: 'Add hop',
           15: 'Continue boiling'};
    COOLING = {16: 'Turn on chiller',
           17: 'Check temperature'};
    FERMENTATION = {18: 'Chill must',
                19: 'Maintain temperature',
                20: 'Process end'};

    function get_stage(state) {
        if (state in PREBREWERY) {return "Pre-Brewery";}
        else if (state in BREWERY) {return "Brewery";}
        else if (state in FILTERING) {return "Filtering";}
        else if (state in BOILING) {return "Boiling";}
        else if (state in COOLING) {return "Cooling";}
        else if (state in FERMENTATION) {return "Fermentation";}
    }

    function get_state(state) {
        if (state in PREBREWERY) {return PREBREWERY[state];}
        else if (state in BREWERY) {return BREWERY[state];}
        else if (state in FILTERING) {return FILTERING[state];}
        else if (state in BOILING) {return BOILING[state];}
        else if (state in COOLING) {return COOLING[state];}
        else if (state in FERMENTATION) {return FERMENTATION[state];}
    }

    function add_malt() {
        {% insert_malt_url as url %}
        $.get("{{url}}");
    }

    function iodine_test() {
        {% iodine_test_url as url %}
        $.get("{{url}}");
    }

    $(document).ready(function(){
        $('#insert-malt-btn').click(add_malt);
        var malt_modal = false;
        var iodine_test_modal = false;
        setInterval(function() {
            $.get("{% url 'actual_process' %}", function(data) {
                var process = data['objects'][0];
                $('.js-stage').html(get_stage(process.state));
                $('.js-state').html(get_state(process.state));
                var process_date = new Date(process.initial_datetime);
                $('.js-process-date').html(process_date.toDateString());

                if (process.malt) {
                    $('.js-malt').html('check_circle');
                } else {
                    $('.js-malt').html('highlight_off');
                }

                if (process.iodine_test) {
                    $('.js-iodine-test').html('check_circle');
                } else {
                    $('.js-iodine-test').html('highlight_off');
                }
                if (process.state == 5 && !malt_modal) {
                    $("#malt-modal").openModal();
                    malt_modal = true;
                }

                if (process.state == 8 && !iodine_test_modal) {
                    $("#iodine-modal").openModal();
                    iodine_test_modal = true;
                }

                if ([1, 2, 10, 11].indexOf(process.state) > -1) {
                    $('.js-water').addClass('turn-on');
                } else {
                    $('.js-water').removeClass("turn-on");
                }

                if ([4, 5, 6, 7, 8].indexOf(process.state) > -1) {
                    $('.js-resistor-1').addClass('turn-on');
                } else {
                    $('.js-resistor-1').removeClass("turn-on");
                }

                if ([6, 7, 8].indexOf(process.state) > -1) {
                    $('.js-engine').addClass('turn-on');
                } else {
                    $('.js-engine').removeClass("turn-on");
                }

                if ([13, 14, 15].indexOf(process.state) > -1) {
                    $('.js-resistor-2').addClass('turn-on');
                } else {
                    $('.js-resistor-2').removeClass("turn-on");
                }

                if ([16, 17].indexOf(process.state) > -1) {
                    $('.js-chiller').addClass('turn-on');
                } else {
                    $('.js-chiller').removeClass("turn-on");
                }

                if ([18, 19].indexOf(process.state) > -1) {
                    $('.js-freezer').addClass('turn-on');
                } else {
                    $('.js-freezer').removeClass("turn-on");
                }
            })
        }, 3000);
    });

</script>