mirror of
https://github.com/VTECRM/vtenext.git
synced 2026-02-26 16:18:47 +00:00
91 lines
2.2 KiB
JavaScript
91 lines
2.2 KiB
JavaScript
/*************************************
|
|
* SPDX-FileCopyrightText: 2009-2020 Vtenext S.r.l. <info@vtenext.com>
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
************************************/
|
|
function MessageBoxPopup(){
|
|
function center(el){
|
|
el.css({position: 'absolute'});
|
|
el.width("400px");
|
|
el.height("110px");
|
|
placeAtCenter(el.get(0));
|
|
}
|
|
|
|
function close(){
|
|
jQuery('#error_message_box').css('display', 'none');
|
|
}
|
|
|
|
function show(module){
|
|
if(typeof('VteJS_DialogBox') != 'undefined') VteJS_DialogBox.unblock();
|
|
jQuery('#error_message_box').css('display', 'block');
|
|
center(jQuery('#error_message_box'));
|
|
}
|
|
|
|
jQuery('#error_message_box_close').click(close);
|
|
jQuery('#error_message_box_cancel').click(close);
|
|
return {
|
|
close:close,show:show
|
|
};
|
|
}
|
|
|
|
|
|
var validateMandatoryFields = {
|
|
init: function(){
|
|
this.mandatoryFields = [];
|
|
},
|
|
validator: function (){
|
|
var emptyFields = [];
|
|
var result;
|
|
var mandatoryFields = this.mandatoryFields;
|
|
for(var i = 0; i < mandatoryFields.length; i++){
|
|
var fieldName = mandatoryFields[i];
|
|
if(this.fieldValue(fieldName)==""){
|
|
emptyFields.push(fieldName);
|
|
}
|
|
}
|
|
if(emptyFields.length!=0){
|
|
result = [false, 'empty_fields_message', emptyFields];
|
|
}else{
|
|
result = [true];
|
|
}
|
|
return result;
|
|
}
|
|
};
|
|
|
|
var VTFieldValidatorPrototype = {
|
|
validate: function(){
|
|
var isValid = true;
|
|
var validators = this.validators;
|
|
for(var i = 0; i < validators.length; i++){
|
|
var validator = validators[i];
|
|
var result = validator.call(this);
|
|
if(result[0]==false){
|
|
jQuery('#'+result[1]).css('display', 'block');
|
|
isValid = false;
|
|
}
|
|
}
|
|
if(!isValid){
|
|
this.messageBoxPopup.show();
|
|
}
|
|
return isValid;
|
|
},
|
|
addValidator: function(name, validator){
|
|
validator.init.call(this);
|
|
this.validators.push(validator.validator);
|
|
},
|
|
fieldValue: function(fieldName){
|
|
return this.form.find('[name='+fieldName+']').val();
|
|
}
|
|
};
|
|
|
|
function VTFieldValidator(form){
|
|
var _this = this;
|
|
_this.form = form;
|
|
_this.messageBoxPopup = MessageBoxPopup();
|
|
form.submit(function(){
|
|
return _this.validate();
|
|
});
|
|
_this.validators = [];
|
|
_this.addValidator('mandatoryFields', validateMandatoryFields);
|
|
}
|
|
|
|
VTFieldValidator.prototype = VTFieldValidatorPrototype; |