307 lines
8.7 KiB
JavaScript
307 lines
8.7 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_Currency_Js', {
|
|
|
|
//holds the currency instance
|
|
currencyInstance : false,
|
|
|
|
/**
|
|
* This function used to triggerAdd Currency
|
|
*/
|
|
triggerAdd : function(event) {
|
|
event.stopPropagation();
|
|
var instance = Settings_Currency_Js.currencyInstance;
|
|
instance.showEditView();
|
|
},
|
|
|
|
/**
|
|
* This function used to trigger Edit Currency
|
|
*/
|
|
triggerEdit : function(event, id) {
|
|
event.stopPropagation();
|
|
var instance = Settings_Currency_Js.currencyInstance;
|
|
instance.showEditView(id);
|
|
},
|
|
|
|
/**
|
|
* This function used to trigger Delete Currency
|
|
*/
|
|
triggerDelete : function(event, id) {
|
|
event.stopPropagation();
|
|
var currentTarget = jQuery(event.currentTarget);
|
|
var currentTrEle = currentTarget.closest('tr');
|
|
var instance = Settings_Currency_Js.currencyInstance;
|
|
instance.transformEdit(id).then(
|
|
function(data) {
|
|
var callBackFunction = function(data) {
|
|
var form = jQuery('#transformCurrency');
|
|
|
|
//register all select2 Elements
|
|
app.showSelect2ElementView(form.find('select.select2'));
|
|
|
|
form.submit(function(e) {
|
|
e.preventDefault();
|
|
var transferCurrencyEle = form.find('select[name="transform_to_id"]');
|
|
instance.deleteCurrency(id, transferCurrencyEle, currentTrEle);
|
|
})
|
|
}
|
|
|
|
app.showModalWindow(data,function(data){
|
|
if(typeof callBackFunction == 'function'){
|
|
callBackFunction(data);
|
|
}
|
|
}, {'width':'500px'});
|
|
}, function(error, err) {
|
|
|
|
}
|
|
);
|
|
}
|
|
|
|
}, {
|
|
|
|
//constructor
|
|
init : function() {
|
|
Settings_Currency_Js.currencyInstance = this;
|
|
},
|
|
|
|
/*
|
|
* function to show editView for Add/Edit Currency
|
|
* @params: id - currencyId
|
|
*/
|
|
showEditView : function(id) {
|
|
var thisInstance = this;
|
|
var aDeferred = jQuery.Deferred();
|
|
|
|
var progressIndicatorElement = jQuery.progressIndicator({
|
|
'position' : 'html',
|
|
'blockInfo' : {
|
|
'enabled' : true
|
|
}
|
|
});
|
|
|
|
var params = {};
|
|
params['module'] = app.getModuleName();
|
|
params['parent'] = app.getParentModuleName();
|
|
params['view'] = 'EditAjax';
|
|
params['record'] = id;
|
|
|
|
AppConnector.request(params).then(
|
|
function(data) {
|
|
var callBackFunction = function(data) {
|
|
var form = jQuery('#editCurrency');
|
|
var record = form.find('[name="record"]').val();
|
|
|
|
//register all select2 Elements
|
|
app.showSelect2ElementView(form.find('select.select2'));
|
|
var currencyStatus = form.find('[name="currency_status"]').is(':checked');
|
|
if(record != '' && currencyStatus) {
|
|
//While editing currency, register the status change event
|
|
thisInstance.registerCurrencyStatusChangeEvent(form);
|
|
}
|
|
//If we change the currency name, change the code and symbol for that currency
|
|
thisInstance.registerCurrencyNameChangeEvent(form);
|
|
|
|
var params = app.validationEngineOptions;
|
|
params.onValidationComplete = function(form, valid){
|
|
if(valid) {
|
|
thisInstance.saveCurrencyDetails(form);
|
|
return valid;
|
|
}
|
|
}
|
|
form.validationEngine(params);
|
|
|
|
form.submit(function(e) {
|
|
e.preventDefault();
|
|
})
|
|
}
|
|
|
|
progressIndicatorElement.progressIndicator({'mode' : 'hide'});
|
|
app.showModalWindow(data,function(data){
|
|
if(typeof callBackFunction == 'function'){
|
|
callBackFunction(data);
|
|
}
|
|
}, {'width':'600px'});
|
|
},
|
|
function(error) {
|
|
progressIndicatorElement.progressIndicator({'mode' : 'hide'});
|
|
//TODO : Handle error
|
|
aDeferred.reject(error);
|
|
}
|
|
);
|
|
return aDeferred.promise();
|
|
},
|
|
|
|
/**
|
|
* Register Change event for currency status
|
|
*/
|
|
registerCurrencyStatusChangeEvent : function(form) {
|
|
/*If the status changed to Inactive while editing currency,
|
|
currency should transfer to other existing currencies */
|
|
form.find('[name="currency_status"]').on('change', function(e) {
|
|
var currentTarget = jQuery(e.currentTarget);
|
|
if(currentTarget.is(':checked')) {
|
|
form.find('div.transferCurrency').addClass('hide');
|
|
} else {
|
|
form.find('div.transferCurrency').removeClass('hide');
|
|
}
|
|
})
|
|
},
|
|
|
|
/**
|
|
* Register Change event for currency Name
|
|
*/
|
|
registerCurrencyNameChangeEvent : function(form) {
|
|
var currencyNameEle = form.find('select[name="currency_name"]');
|
|
//on change of currencyName, update the currency code & symbol
|
|
currencyNameEle.on('change', function() {
|
|
var selectedCurrencyOption = currencyNameEle.find('option:selected');
|
|
form.find('[name="currency_code"]').val(selectedCurrencyOption.data('code'));
|
|
form.find('[name="currency_symbol"]').val(selectedCurrencyOption.data('symbol'));
|
|
})
|
|
},
|
|
|
|
/**
|
|
* This function will save the currency details
|
|
*/
|
|
saveCurrencyDetails : function(form) {
|
|
var thisInstance = this;
|
|
var progressIndicatorElement = jQuery.progressIndicator({
|
|
'position' : 'html',
|
|
'blockInfo' : {
|
|
'enabled' : true
|
|
}
|
|
});
|
|
|
|
var data = form.serializeFormData();
|
|
data['module'] = app.getModuleName();
|
|
data['parent'] = app.getParentModuleName();
|
|
data['action'] = 'SaveAjax';
|
|
|
|
AppConnector.request(data).then(
|
|
function(data) {
|
|
if(data['success']) {
|
|
progressIndicatorElement.progressIndicator({'mode' : 'hide'});
|
|
app.hideModalWindow();
|
|
var params = {};
|
|
params.text = app.vtranslate('JS_CURRENCY_DETAILS_SAVED');
|
|
Settings_Vtiger_Index_Js.showMessage(params);
|
|
thisInstance.loadListViewContents();
|
|
}
|
|
},
|
|
function(error) {
|
|
progressIndicatorElement.progressIndicator({'mode' : 'hide'});
|
|
//TODO : Handle error
|
|
}
|
|
);
|
|
},
|
|
|
|
/**
|
|
* This function will load the listView contents after Add/Edit currency
|
|
*/
|
|
loadListViewContents : function() {
|
|
var thisInstance = this;
|
|
var progressIndicatorElement = jQuery.progressIndicator({
|
|
'position' : 'html',
|
|
'blockInfo' : {
|
|
'enabled' : true
|
|
}
|
|
});
|
|
|
|
var params = {};
|
|
params['module'] = app.getModuleName();
|
|
params['parent'] = app.getParentModuleName();
|
|
params['view'] = 'List';
|
|
|
|
AppConnector.request(params).then(
|
|
function(data) {
|
|
progressIndicatorElement.progressIndicator({'mode' : 'hide'});
|
|
//replace the new list view contents
|
|
jQuery('#listViewContents').html(data);
|
|
//thisInstance.triggerDisplayTypeEvent();
|
|
}, function(error, err) {
|
|
progressIndicatorElement.progressIndicator({'mode' : 'hide'});
|
|
}
|
|
);
|
|
},
|
|
|
|
/**
|
|
* This function will show the Transform Currency view while delete the currency
|
|
*/
|
|
transformEdit : function(id) {
|
|
var aDeferred = jQuery.Deferred();
|
|
|
|
var params = {};
|
|
params['module'] = app.getModuleName();
|
|
params['parent'] = app.getParentModuleName();
|
|
params['view'] = 'TransformEditAjax';
|
|
params['record'] = id;
|
|
|
|
AppConnector.request(params).then(
|
|
function(data) {
|
|
aDeferred.resolve(data);
|
|
}, function(error, err) {
|
|
aDeferred.reject();
|
|
});
|
|
return aDeferred.promise();
|
|
},
|
|
|
|
/**
|
|
* This function will delete the currency and save the transferCurrency details
|
|
*/
|
|
deleteCurrency : function(id, transferCurrencyEle, currentTrEle) {
|
|
var transferCurrencyId = transferCurrencyEle.find('option:selected').val();
|
|
var params = {};
|
|
params['module'] = app.getModuleName();
|
|
params['parent'] = app.getParentModuleName();
|
|
params['action'] = 'DeleteAjax';
|
|
params['record'] = id;
|
|
params['transform_to_id'] = transferCurrencyId;
|
|
|
|
AppConnector.request(params).then(
|
|
function(data) {
|
|
app.hideModalWindow();
|
|
var params = {};
|
|
params.text = app.vtranslate('JS_CURRENCY_DELETED_SUEESSFULLY');
|
|
Settings_Vtiger_Index_Js.showMessage(params);
|
|
currentTrEle.fadeOut('slow').remove();
|
|
}, function(error, err) {
|
|
|
|
});
|
|
},
|
|
|
|
triggerDisplayTypeEvent : function() {
|
|
var widthType = app.cacheGet('widthType', 'narrowWidthType');
|
|
if(widthType) {
|
|
var elements = jQuery('.listViewEntriesTable').find('td,th');
|
|
elements.attr('class', widthType);
|
|
}
|
|
},
|
|
|
|
registerRowClick : function() {
|
|
var thisInstance = this;
|
|
jQuery('#listViewContents').on('click','.listViewEntries',function(e) {
|
|
var currentRow = jQuery(e.currentTarget);
|
|
if(currentRow.find('.icon-pencil ').length <= 0) {
|
|
return;
|
|
}
|
|
thisInstance.showEditView(currentRow.data('id'));
|
|
})
|
|
},
|
|
|
|
registerEvents : function() {
|
|
this.registerRowClick();
|
|
}
|
|
|
|
});
|
|
|
|
jQuery(document).ready(function(){
|
|
var currencyInstance = new Settings_Currency_Js();
|
|
currencyInstance.registerEvents();
|
|
})
|