hnhdigital-os/laravel-resources-loader

View on GitHub
js/AutoInit.js

Summary

Maintainability
A
0 mins
Test Coverage

// Auto trigger intialization.
$(function() {
    $('[class*="init-"]').each(function(key, element) {
        result = $.grep($(element).attr('class').split(' '), function(s) { return s.match(new RegExp('init-')) });
        result.forEach(function(class_name) {
            $(element).trigger('extension::'+class_name.replace('init-', '')+'::init');
        });
    });

    $('body').on('extensions::init', findAndInit);
    $('ul.nav-tabs a').on('shown.bs.tab', findAndInit);
});

function findAndInit(event, restrict_search) {
    $('[class*="init-"]').each(function(key, element) {
        result = $.grep($(element).attr('class').split(' '), function(s) { return s.match(new RegExp('init-')) });
        result.forEach(function(class_name) {

            if (typeof restrict_search == 'object') {
                result = $(restrict_search).find('.' + class_name);
            } else if (typeof restrict_search == 'string') {
                result = $(restrict_search + ' .' + class_name)
            } else {
                result = $(' .' + class_name);
            }

            result.each(function(key, element) {
                $(element).trigger('extension::'+class_name.replace('init-', '')+'::init');
            });
        });
    });
}

var findAndApplyScriptExtensions = findAndInit;