CyberRegister/CyberRegister

View on GitHub
resources/assets/js/app.js

Summary

Maintainability
A
2 hrs
Test Coverage

/**
 * First we will load all of this project's JavaScript dependencies which
 * includes Vue and other libraries. It is a great starting point when
 * building robust, powerful web applications using Vue and Laravel.
 */

require('./bootstrap');

window.Dropzone = require('dropzone');
window.Dropzone.prototype.defaultOptions.maxFiles = 1;
window.Dropzone.prototype.defaultOptions.acceptedFiles = '.png,.jpg,.gif,.bmp,.jpeg';
window.Dropzone.prototype.defaultOptions.autoProcessQueue = false;
window.Dropzone.prototype.defaultOptions.uploadMultiple = false;
window.Dropzone.prototype.defaultOptions.previewsContainer = '.dz-default';
window.Dropzone.prototype.defaultOptions.init = function () {
    var myDropzone = this;
    // First change the button to actually tell Dropzone to process the queue.
    this.element.querySelector('button[type=submit]').addEventListener(
        'click', function (e) {
            // Make sure that the form isn't actually being sent.
            e.preventDefault();
            e.stopPropagation();
            myDropzone.processQueue();
        }
    );
    this.on(
        'success', function () {
            window.location = '/users';    // nasty hack
        }
    );
    this.on(
        'maxfilesexceeded', function (file) {
            this.removeFile(file);
        }
    );
};

$(document).ready(
    function () {
        // Delete resource
        $('button[name="delete-resource"]').on(
            'click', function (e) {
                e.preventDefault();
                var $form = $(this).closest('form');
                $('#confirm-delete').modal({backdrop: 'static', keyboard: false}).one(
                    'click', '#delete', function () {
                        $form.trigger('submit');
                    }
                );
            }
        );
        $('#logout').click(
            function (event) {
                event.preventDefault();
                document.getElementById('logout-form').submit();
            }
        );
    }
);

let u2f = require('./u2f').default;

/**
 * Based on code by arnaud 21/05/15.
 */
/* eslint-disable no-undef */
u2fClient = {
    login: function (request, errors) {
        setTimeout(
            function () {

                u2f.sign(
                    request, function (data) {
                        var alert = null;

                        if (data.errorCode) {
                            alert = document.getElementById('error');
                            alert.innerHTML = errors[data.errorCode];
                            alert.style.display = 'block';

                            return;
                        }

                        var form = document.getElementById('form');
                        var auth = document.getElementById('authentication');

                        alert = document.getElementById('success');
                        alert.style.display = 'block';
                        auth.value = JSON.stringify(data);
                        form.submit();
                    }
                );
            }, 1000
        );
    },

    register: function (request, keys, errors) {
        setTimeout(
            function () {
                u2f.register(
                    [request], keys, function (data) {
                        var form = document.getElementById('form');
                        var reg = document.getElementById('register');
                        var alert = null;

                        if (data.errorCode) {
                            alert = document.getElementById('error');
                            alert.innerHTML = errors[data.errorCode];
                            alert.style.display = 'block';

                            return;
                        }

                        alert = document.getElementById('success');
                        alert.style.display = 'block';

                        reg.value = JSON.stringify(data);
                        form.submit();
                    }
                );
            }, 1000
        );
    }
};
/* eslint-enable no-undef */

window.Vue = require('vue');

window.Vue.component(
    'passport-clients',
    require('./components/passport/Clients.vue')
);

window.Vue.component(
    'passport-authorized-clients',
    require('./components/passport/AuthorizedClients.vue')
);

window.Vue.component(
    'passport-personal-access-tokens',
    require('./components/passport/PersonalAccessTokens.vue')
);

new window.Vue({
    el: '#app'
});