nord vpnnord vpn
Ad

Untitled

mail@pastecode.io avatar
unknown
plain_text
a month ago
6.3 kB
10
Indexable
Never
 CheckPass({ oldpass, newpass }) {
        const ObjX = this.ObjX || KSWN.ObjX.getCurrentObjX();
        const jsDocument = ObjX?.jsDocument;

        if (!jsDocument)
            return;

        if (jsDocument.existCheckPasswordValidator) {
            return;
        }

        const oldPassUI = jsDocument.GetControlUIById(oldpass)?.UI;
        const newPassUI = jsDocument.GetControlUIById(newpass)?.UI;

        if (!oldPassUI || !newPassUI) {
            return;
        }
        
        const oldPass = oldPassUI.getValue();
        const newPass = newPassUI.getValue();

        

        if (newPass && oldPass && oldPass !== newPass) {
            KSWN.MessageBox.alert({
                messageType: 'msg',
                message: KSWN.Locale.paroli_ne_sovpadayt
            });
        }
        
        jsDocument.existCheckPasswordValidator = true;
        const validator = () => {
            const oldPassUIValue = oldPassUI.getValue();
            const newPassUIValue = newPassUI.getValue();

            return newPassUIValue && oldPassUIValue && oldPassUIValue !== newPassUIValue
                ? KSWN.Locale.paroli_ne_sovpadayt
                : true;
        };

        oldPassUI.setConfig('validator', validator);
        newPassUI.setConfig('validator', validator);

        oldPassUI.on('change', () => newPassUI.validate());
        newPassUI.on('change', () => oldPassUI.validate());

        oldPassUI.validate();
        newPassUI.validate();
    },

CheckAE: function () {
        if (this.NoRender)
            return true;
        if (this.ignoreEmpty)
            return true;
        var ctrls = this.Controls;
        this.invalidControls = [];
        var i, c, el, v, cm, ci, rs, existEmpty = false;
        for (i = 0; i < ctrls.length; i++) {
            c = ctrls[i];
            c.UI.parent = c.UI.parent || (c.UI && c.UI.Info.ParentID && c.UI.up(`#${c.UI.Info.ParentID}`));
            if (!c) continue;
            if (!c.Info) continue;
            if (c.Info.AspType === 'label') continue;
            if (c.UI.hidden) continue;
            if (c.UI.disabled) continue;
            if (c.UI.parent && c.UI.parent.tab.hidden) continue;
            if (c.UI.parent && c.UI.parent.disabled) continue;
            if (typeof c.UI.getValue !== 'function') continue;
            if (c.Info.editableValue === '0') continue;
            el = Ext.get(c.Info.ID);
            if (el && el.dom.readOnly && !KSWN.Utils.IsEqual(c.Info.Editable, '3')) continue;
            if (KSWN.Utils.IsEqual(c.Info.Editable, '3') && c.UI.triggers && !c.UI.triggers.dict && !c.UI.isCombo) continue;
            v = c.UI.getValue();

            // Учитываем случаи, когда title в свойствах объекта не заполнено (в торгах)
            var title = c.Info.Title || c.Info.Attr['title'] || '';

            title = title.replace(/\s*[*:]\s*$/, '') || '...';
            
            const invalidControl = {
                title,
                control: c.UI,
                parent: c.Info.parent
            };

            if (!c.Info.AllowEmpty) {
                if (KSWN.Utils.IsEmpty(v) ||
                    c.UI.isCheckBox && !c.UI.checked ||
                    c.UI.isNumeric && !c.Info.Attr.allownonemptyzeroes && v === 0) {
                    c.UI.validate();
                    this.invalidControls.push(invalidControl);
                    existEmpty = true;
                }                
            } else {
                if (!c.UI.isValid()) {
                    c.UI.validate();
                    this.invalidControls.push(invalidControl);
                    existEmpty = true;
                }
            }
        }

        const gridList = this.GridsList;

        gridList.forEach(grid => {
            const columns = grid.getColumns();
            grid.UI.parent = grid.UI.parent 
                || (grid.UI && grid.UI.Info 
                    && grid.UI.Info.ParentID 
                    && grid.UI.up(`#${grid.UI.Info.ParentID}`)
                );

            columns.forEach(col => {
                const { allowEmpty, hidden, editableValue, dataIndex, Title, isCheckBox } = col;

                if (
                    isCheckBox || //todo: а возможно неопределенное состояние(сначала реализовать отображением такого состояния)
                    allowEmpty ||
                    allowEmpty === undefined ||
                    hidden ||
                    KSWN.Utils.IsEqual(editableValue, 0) ||
                    KSWN.Utils.IsEqual(editableValue, 2)
                ) {
                    return;
                }
                // null=''=0=0.00
                
                const rows = !col.Attr.allownonemptyzeroes && (col.type == 'system.decimal') 
                    ? grid.FindRows(dataIndex, '', false) 
                    : grid.FindRows(dataIndex, '', true);

                if (_.size(rows) > 0) {

                    //заблокированные ячейки пропускать
                    if (!rows.find(function (record) {
                        return !grid.IsDisabledCell(col, record);
                    }))
                        return;

                    const title = Title.replace(/\s*[*:]\s*$/, '');
                    existEmpty = true;
                    this.invalidControls.push({
                        title: `${title} (${KSWN.Locale.v_tablice})`,
                        parent: grid.UI.parent,
                        control: col
                    });

                    rows.forEach(row => {
                        grid.SetInvalidCellState({ column: dataIndex, record: row, isInvalid: true });
                    });
                }
            });
        });

        if (existEmpty) {
            this.Type = 'info';
            this.TitleStatus = KSWN.Locale.provertekorrektnostzapolneniyaobyazatelnikhpoleiotmechennikhkrasnoiramkoi;
            this.ShowInvalidControls();
            this.SetStatus();
            return false;
        }
        return true;
    },

nord vpnnord vpn
Ad