open-orchestra/open-orchestra-cms-bundle

View on GitHub
BackofficeBundle/Resources/public/ecmascript/OpenOrchestra/Service/Form/Behavior/GenerateId.js

Summary

Maintainability
A
0 mins
Test Coverage
import AbstractBehavior from 'OpenOrchestra/Service/Form/Behavior/AbstractBehavior'

/**
 * @class GenerateId
 */
class GenerateId extends AbstractBehavior
{
    /**
     * get extra events
     *
     * @return {Object}
     */
    getExtraEvents() {
        return {
            'focusout': '_generateId'
        }
    }

    /**
     * activate global behavior
     *
     * @param {Object} view - instance of AbstractFormView
     */
    activateBehavior(view) {
        this.bindExtraEvents(view);
    }

    /**
     * {Object} event
     * @private
     */
    _generateId(event) {
        let value = $(event.currentTarget).val();
        let $dest = $('.generate-id-dest', this.$el);
        if (0 !== $dest.length && '' === $dest.val() && '' !== value) {
            $dest.val(value.latinise().replace(/[^a-z0-9]/gi,'_'));
        }
    }

    /**
     * return selector
     *
     * @return {String}
     */
    getSelector() {
        return '.generate-id-source';
    }
}

export default (new GenerateId);