API Docs for: 1.0.0
Show:

File: Resources/public/js/views/services/plugins/extensions/ez-draftserversidevalidation.js

/*
 * Copyright (C) eZ Systems AS. All rights reserved.
 * For full copyright and license information view LICENSE file distributed with this source code.
 */
YUI.add('ez-draftserversidevalidation', function (Y) {
    "use strict";
    /**
     * Provides the draft server side validation extension
     *
     * @module ez-draftserversidevalidation
     */
    Y.namespace('eZ');

    /**
     * Draft server side validation. It provides the ability to extract the field validation errors from an error response.
     *
     * @namespace eZ
     * @class draftServerSideValidation
     * @constructor
     * @extends Y.Base
     */
    Y.eZ.DraftServerSideValidation = Y.Base.create('draftServerSideValidation', Y.Base, [], {
        /**
         * Parse the errors form the response
         * and call the serverSideErrorCallback with an array of  Y.eZ.FieldErrorDetails
         *
         * @method _parseServerFieldsErrors
         * @param {Response} response
         * @param {Function} [serverSideErrorCallback] called on server side validation
         * @param {Array} serverSideErrorCallback.serverSideFieldsError Array of Y.eZ.FieldErrorDetails
         * @protected
         */
        _parseServerFieldsErrors: function (response, serverSideErrorCallback) {
            var serverSideFieldsError = [],
                error,
                fieldsError;

            if ( !response.document && serverSideErrorCallback) {
                serverSideErrorCallback(serverSideFieldsError);
                return;
            }

            if (serverSideErrorCallback) {
                error = response.document.ErrorMessage;
                fieldsError = error.errorDetails ?  error.errorDetails.fields : [];

                fieldsError.forEach(function (field) {
                    field.errors.forEach(function (error) {
                        var serverSideFieldErrorDetails;

                        serverSideFieldErrorDetails = new Y.eZ.FieldErrorDetails({fieldDefinitionId: field._fieldTypeId});
                        serverSideFieldErrorDetails.parse(error);
                        serverSideFieldsError.push(serverSideFieldErrorDetails);
                    });
                });
                serverSideErrorCallback(serverSideFieldsError);
            }
        },
    });
});