/** Datei: plugins/rest/assets.OLD/js/generator/data/form/additional/defaults.js **/ /** * generator/data/form/additional/validate.js * * Verarbeitet die Validierungslogik für Formularelemente. * * @author Sparky * @copyright 2025 ARUNOX * @version 1.0.0 * * @since 1.0.0 Datei erstellt */ import { generator } from 'plugins/rest/core/generator'; import { validator } from 'plugins/rest/core/validator'; generator.extend( 'data/form/additional/defaults', async ( config, data, element, wrapper ) => { if( typeof element !== 'undefined' ) { element.id = 'control_' + config.key; if( element.hasAttribute( 'readonly' ) ) element.readonly = true; if( element.hasAttribute( 'type' ) ) element.type = config.type; if( element.hasAttribute( 'name' ) ) element.name = config.key; element.classList.add( 'form__control' ); if( config.required ) { element.required = true; validator.add( element, 'required' ); } if( validator.exists( config.type ) ) { validator.add( element, config.type ); } if( config.validate?.request ) { validator.add( element, 'request' ); } } if( typeof wrapper !== 'undefined' ) { if( config.readonly ) { wrapper.classList.add( 'is-readonly' ); } if( config.required ) { wrapper.classList.add( 'is-required' ); const required = document.createElement( 'span' ); required.classList.add( 'form__info', 'form__info--required' ); required.innerHTML = typeof config.required === 'string' ? config.required : 'required'; wrapper.append( required ); } } if( typeof element !== 'undefined' && typeof wrapper !== 'undefined' ) { wrapper.append( element ); element.addEventListener( 'focus', () => { wrapper.classList.add( 'has-focus' ); }); element.addEventListener( 'blur', () => { wrapper.classList.remove( 'has-focus' ); }); } }); /** Datei: plugins/rest/assets.OLD/js/generator/data/form/additional/feedback.js **/ /** * /data/form/additional/feedback.js * * @author Sparky * @copyright 2025 ARUNOX * @version 1.0.0 * */ import { generator } from 'plugins/rest/core/generator'; generator.extend( 'data/form/additional/feedback', async ( config, type, valid, wrapper ) => { let textField = valid === null ? 'waiting' : 'message'; wrapper.classList.removeRexEx( /^(is|on|validate)-/ ); if( type !== 'valid' ) wrapper.classList.add( `validate-${type}` ); if( valid === null ) wrapper.classList.add( 'on-validate' ); if( valid === true ) wrapper.classList.add( 'is-valid' ); if( valid === false ) wrapper.classList.add( 'is-invalid' ); const feedback = wrapper.querySelector('.form__info--feedback') || document.createElement( 'span' ); feedback.classList.add( 'form__info', 'form__info--feedback' ); feedback.innerHTML = ''; wrapper.append( feedback ); if( !config.validate ) return; if( typeof config.validate[ type ] === 'undefined' ) return; if( typeof config.validate[ type ] === 'string' ) { feedback.innerHTML = config.validate[ type ]; return; } if( typeof config.validate[ type ][ textField ] === 'string' ) { feedback.innerHTML = config.validate[ type ][ textField ]; return; } }); /** Datei: plugins/rest/assets.OLD/js/generator/data/form/additional/validate.js **/ /** * /data/form/additional/validate.js * * @author Sparky * @copyright 2025 ARUNOX * @version 1.0.0 * */ import { generator } from 'plugins/rest/core/generator'; import { router } from 'plugins/rest/core/router'; import { validator } from 'plugins/rest/core/validator'; generator.extend( 'data/form/additional/validate', async ( config, data, element, wrapper ) => { if( config.validate === false ) return; element.validate = config.validate; if( typeof config.validate === 'undefined' ) { config.validate = true; } if( typeof config.validate === 'string' ) { const validateType = config.validate; config.validate = {}; config.validate[ validateType ] = true; } if( typeof config.validate === 'boolean' ) { config.validate = {}; } if( typeof wrapper !== 'undefined' ) { wrapper.querySelectorAll( '.form__info--feedback' ).forEach( element => element.remove() ); } if( typeof element !== 'undefined' ) { if( config.validate?.onCreate ?? false ) validator.validateAll( element, config, data, wrapper ); if( config.validate?.onChange ?? true ) validator.on( 'change', element, config, data, wrapper ); if( config.validate?.onBlur ?? false ) validator.on( 'blur', element, config, data, wrapper ); validator.on( 'validate', element, config, data, wrapper ); } });