HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/ste.komma.pro/resources/js/components/errorController.js
/**
 * Controls a div with an ul in it to show errors or not
 */
class ErrorController {
    constructor()
    {
        this._classToHide = 'u-hidden';
        this._errorElementIdSuffix = '-error';
    }

    /**
     * @param {string} fieldSelector
     * @param {string} error
     */
    setFieldError(fieldSelector, error)
    {
        let selector = '#'+fieldSelector+this._errorElementIdSuffix;
        let errorElement = document.querySelector(selector);
        if(!errorElement) return;

        errorElement.classList.remove(this._classToHide);
        errorElement.innerText = error;
    }

    /**
     * @param {string} fieldSelector
     */
    clearFieldError(fieldSelector) {
        let selector = '#'+fieldSelector+this._errorElementIdSuffix;
        let errorElement = document.querySelector(selector);
        if (!errorElement) return;

        errorElement.classList.add(this._classToHide);
        errorElement.innerText = '';
    }

    /**
     * Clear all errors
     */
    clearAllErrors() {
        let self = this;
        document.querySelectorAll('[id$='+this._errorElementIdSuffix+']').forEach(function(errorElement) {
            errorElement.classList.add(self._classToHide);
            errorElement.innerText = '';
        })
    }
}

export { ErrorController }