MiniDigger/Hangar

View on GitHub
ore/public/javascripts/orgCreate.js

Summary

Maintainability
A
0 mins
Test Coverage
//=====> CONSTANTS

var MIN_NAME_LENGTH = 3;


//=====> HELPER FUNCTIONS

function resetStatus(status) {
    return status.removeClass('fa-spinner fa-spin')
        .removeClass('fa-check-circle')
        .removeClass('fa-times-circle');
}


//=====> DOCUMENT READY

$(function() {
    var events = 0;

    $('.input-name').on('input', function() {
        var val = $(this).val();
        var status = $('.status-org-name');
        var continueBtn = $('.continue-btn').prop('disabled', true);
        if (val.length < MIN_NAME_LENGTH)
            status.hide();
        else {
            resetStatus(status).addClass('fa-spinner fa-spin');
            status.show();
            var event = ++events;
            $.ajax({
                url: '/' + val,
                statusCode: {
                    404: function() {
                        if (event === events) {
                            resetStatus(status).addClass('fa-check-circle');
                            continueBtn.prop('disabled', false);
                        }
                    },
                    200: function() {
                        if (event === events)
                            resetStatus(status).addClass('fa-times-circle');
                    }
                }
            });
        }
    });
});