utils_ezworks_revalidate-all-row.js
/**
* @typedef {Object} RevalidateAllRowOptions
* @property {boolean} [onlyUpdateRow=false]
*/
/**
* EzValidator의 데이터셋 유효성 검사를 초기화합니다.
* 모든 행에 대해 oncolumnchanged 이벤트를 발생시켜 유효성 검사를 다시 수행합니다.
*
* @function revalidateAllRow
* @param {Object} validator
* EzValidator 인스턴스
* @param {RevalidateAllRowOptions} options
* @returns {boolean}
* 초기화 성공 여부. validator가 없거나 dataset이 없으면 false를 반환합니다.
* @memberof $f
* @example
* $f.revalidateAllRow(this.mainValidator);
*
* // 수정된 행만 재검증
* $f.revalidateAllRow(this.mainValidator, { onlyUpdateRow: true });
*
*/
export function revalidateAllRow(validator, options = {}) {
const { onlyUpdateRow = false } = options;
if (!validator || !validator.dataset) {
return false;
}
/**
* @type {nexacro.Dataset}
*/
const ds = validator.dataset;
// 행을 돌면서 초기화
for (let i = 0; i < ds.rowcount; i++) {
if (onlyUpdateRow && ds.getRowType(i) === 1) {
continue;
}
validator.oncolumnchanged(ds, { row: i });
}
return true;
}