Files
BACHIR SOULDI 2794e62571 first commit
2025-09-28 08:49:37 +01:00

166 lines
4.4 KiB
JavaScript

/*+***********************************************************************************
* 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.
*************************************************************************************/
jQuery.Class("Settings_Vtiger_OutgoingServer_Js",{},{
/*
* function to Save the Outgoing Server Details
*/
saveOutgoingDetails : function(form) {
var thisInstance = this;
var data = form.serializeFormData();
var progressIndicatorElement = jQuery.progressIndicator({
'position' : 'html',
'blockInfo' : {
'enabled' : true
}
});
if(typeof data == 'undefined' ) {
data = {};
}
data.module = app.getModuleName();
data.parent = app.getParentModuleName();
data.action = 'OutgoingServerSaveAjax';
AppConnector.request(data).then(
function(data) {
if(data['success']) {
var OutgoingServerDetailUrl = form.data('detailUrl');
//after save, load detail view contents and register events
thisInstance.loadContents(OutgoingServerDetailUrl).then(
function(data) {
thisInstance.registerDetailViewEvents();
progressIndicatorElement.progressIndicator({'mode':'hide'});
},
function(error, err) {
progressIndicatorElement.progressIndicator({'mode':'hide'});
}
);
} else {
progressIndicatorElement.progressIndicator({'mode':'hide'});
jQuery('.errorMessage', form).removeClass('hide');
}
},
function(error, errorThrown){
}
);
},
/*
* function to load the contents from the url through pjax
*/
loadContents : function(url) {
var aDeferred = jQuery.Deferred();
AppConnector.requestPjax(url).then(
function(data){
jQuery('.contentsDiv').html(data);
aDeferred.resolve(data);
},
function(error, err){
aDeferred.reject();
}
);
return aDeferred.promise();
},
/*
* function to register the events in editView
*/
registerEditViewEvents : function() {
var thisInstance = this;
var form = jQuery('#OutgoingServerForm');
var cancelLink = jQuery('.cancelLink', form);
//register validation engine
var params = app.validationEngineOptions;
params.onValidationComplete = function(form, valid){
if(valid) {
thisInstance.saveOutgoingDetails(form);
return valid;
}
}
form.validationEngine(params);
form.submit(function(e) {
e.preventDefault();
})
//register click event for cancelLink
cancelLink.click(function(e) {
var OutgoingServerDetailUrl = form.data('detailUrl');
var progressIndicatorElement = jQuery.progressIndicator({
'position' : 'html',
'blockInfo' : {
'enabled' : true
}
});
thisInstance.loadContents(OutgoingServerDetailUrl).then(
function(data) {
progressIndicatorElement.progressIndicator({'mode':'hide'});
//after loading contents, register the events
thisInstance.registerDetailViewEvents();
},
function(error, err) {
progressIndicatorElement.progressIndicator({'mode':'hide'});
}
);
})
},
/*
* function to register the events in DetailView
*/
registerDetailViewEvents : function() {
var thisInstance = this;
//Detail view container
var container = jQuery('#OutgoingServerDetails');
var editButton = jQuery('.editButton', container);
//register click event for edit button
editButton.click(function(e) {
var progressIndicatorElement = jQuery.progressIndicator({
'position' : 'html',
'blockInfo' : {
'enabled' : true
}
});
var url = editButton.data('url');
thisInstance.loadContents(url).then(
function(data) {
//after load the contents register the edit view events
thisInstance.registerEditViewEvents();
progressIndicatorElement.progressIndicator({'mode':'hide'});
},
function(error, err) {
progressIndicatorElement.progressIndicator({'mode':'hide'});
}
);
});
},
registerEvents: function() {
var thisInstance = this;
if(jQuery('#OutgoingServerForm').length > 0) {
thisInstance.registerEditViewEvents();
} else {
thisInstance.registerDetailViewEvents();
}
}
});
jQuery(document).ready(function(e){
var instance = new Settings_Vtiger_OutgoingServer_Js();
instance.registerEvents();
})