/*+***********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
*************************************************************************************/
Settings_Vtiger_Edit_Js('Settings_Groups_Edit_Js', {}, {
memberSelectElement : false,
getMemberSelectElement : function () {
if(this.memberSelectElement == false) {
this.memberSelectElement = jQuery('#memberList');
}
return this.memberSelectElement;
},
/**
* Function to register event for select2 element
*/
registerEventForSelect2Element : function(){
var editViewForm = this.getForm();
var selectElement = this.getMemberSelectElement();
var params = {};
params.dropdownCss = {'z-index' : 0};
params.formatSelection = function(object,container){
var selectedId = object.id;
var selectedOptionTag = editViewForm.find('option[value="'+selectedId+'"]');
var selectedMemberType = selectedOptionTag.data('memberType');
container.addClass(selectedMemberType);
var element = '
'+selectedOptionTag.text()+'
';
return element;
}
app.changeSelectElementView(selectElement, 'select2',params);
},
/**
* Function to register form for validation
*/
registerFormForValidation : function(){
var editViewForm = this.getForm();
editViewForm.validationEngine(app.getvalidationEngineOptions(true));
},
/**
* Function to register the submit event of form
*/
registerSubmitEvent : function() {
var thisInstance = this;
var form = jQuery('#EditView');
form.on('submit',function(e) {
if(form.data('submit') == 'true' && form.data('performCheck') == 'true') {
return true;
} else {
if(form.data('jqv').InvalidFields.length <= 0) {
var formData = form.serializeFormData();
thisInstance.checkDuplicateName({
'groupname' : formData.groupname,
'record' : formData.record
}).then(
function(data){
form.data('submit', 'true');
form.data('performCheck', 'true');
form.submit();
},
function(data, err){
var params = {};
params['text'] = data['message'];
params['type'] = 'error';
Settings_Vtiger_Index_Js.showMessage(params);
return false;
}
);
} else {
//If validation fails, form should submit again
form.removeData('submit');
// to avoid hiding of error message under the fixed nav bar
app.formAlignmentAfterValidation(form);
}
e.preventDefault();
}
});
},
/*
* Function to check Duplication of Group Names
* returns boolean true or false
*/
checkDuplicateName : function(details) {
var aDeferred = jQuery.Deferred();
var params = {
'module' : app.getModuleName(),
'parent' : app.getParentModuleName(),
'action' : 'EditAjax',
'mode' : 'checkDuplicate',
'groupname' : details.groupname,
'record' : details.record
}
AppConnector.request(params).then(
function(data) {
var response = data['result'];
var result = response['success'];
if(result == true) {
aDeferred.reject(response);
} else {
aDeferred.resolve(response);
}
},
function(error,err){
aDeferred.reject();
}
);
return aDeferred.promise();
},
/**
* Function which will handle the registrations for the elements
*/
registerEvents : function() {
this._super();
this.registerEventForSelect2Element();
this.registerSubmitEvent();
}
});