Files
crm.clientright.ru/layouts/vlayout/modules/Settings/SMSNotifier/resources/List.js
Fedor ac7467f0b4 Major CRM updates: AI Assistant, Court Status API, S3 integration improvements, and extensive file storage system
- Added comprehensive AI Assistant system (aiassist/ directory):
  * Vector search and embedding capabilities
  * Typebot proxy integration
  * Elastic search functionality
  * Message classification and chat history
  * MCP proxy for external integrations

- Implemented Court Status API (GetCourtStatus.php):
  * Real-time court document status checking
  * Integration with external court systems
  * Comprehensive error handling and logging

- Enhanced S3 integration:
  * Improved file backup system with metadata
  * Batch processing capabilities
  * Enhanced error logging and recovery
  * Copy operations with URL fixing

- Added Telegram contact creation API
- Improved error logging across all modules
- Enhanced callback system for AI responses
- Extensive backup file storage with timestamps
- Updated documentation and README files

- File storage improvements:
  * Thousands of backup files with proper metadata
  * Fix operations for broken file references
  * Project-specific backup and recovery systems
  * Comprehensive file integrity checking

Total: 26,461+ files added/modified including AWS SDK, vendor dependencies, and extensive backup system.
2025-10-16 11:17:21 +03:00

191 lines
5.9 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.
*************************************************************************************/
Settings_Vtiger_List_Js("Settings_SMSNotifier_List_Js", {
/**
* Function to trigger edit and add new configuration for SMS server
*/
triggerEdit: function (event, url) {
event.stopPropagation();
var instance = Vtiger_List_Js.getInstance();
instance.EditRecord(url);
},
/**
* Function to trigger delete SMS provider Configuration
*/
triggerDelete: function (event, url) {
event.stopPropagation();
var instance = Vtiger_List_Js.getInstance();
instance.DeleteRecord(url);
}
}, {
/**
* Function to show the SMS Provider configuration details for edit and add new
*/
EditRecord: function (url) {
var thisInstance = this;
AppConnector.request(url).then(
function (data) {
var callBackFunction = function (data) {
var form = jQuery('#smsConfig');
thisInstance.registerProviderTypeChangeEvent(form);
thisInstance.registerPhoneFormatPop(form);
var params = app.getvalidationEngineOptions(true);
params.onValidationComplete = function (form, valid) {
if (valid) {
var params = form.serializeFormData();
var errorMsg = app.vtranslate('JS_REQUIRED_FIELD');
if (params.providertype == "") {
var providerTypeEle = jQuery(form).find('.providerType');
providerTypeEle.validationEngine('showPrompt', errorMsg, 'error', 'topLeft', true);
return false;
}
if (params.username == "") {
jQuery(form).find('[name="username"]').validationEngine('showPrompt', errorMsg, 'error', 'topLeft', true);
return false;
}
if (params.password == "") {
jQuery(form).find('[name="password"]').validationEngine('showPrompt', errorMsg, 'error', 'topLeft', true);
return false;
}
if (params.providertype == 'SolutionsInfini') {
if (params.api_key == "") {
jQuery(form).find('[name="api_key"]').validationEngine('showPrompt', errorMsg, 'error', 'topLeft', true);
return false;
}
if (params.sender == "") {
jQuery(form).find('[name="sender"]').validationEngine('showPrompt', errorMsg, 'error', 'topLeft', true);
return false;
}
}
thisInstance.saveConfiguration(form).then(
function (data) {
if (data['success']) {
var params = {};
params['text'] = app.vtranslate('JS_CONFIGURATION_SAVED');
Settings_Vtiger_Index_Js.showMessage(params);
thisInstance.getListViewRecords();
}
},
function (error, err) {
});
}
//To prevent form submit
return false;
}
form.validationEngine(params);
}
app.showModalWindow(data, function (data) {
if (typeof callBackFunction == 'function') {
callBackFunction(data);
}
});
},
function (error, err) {
});
},
registerPhoneFormatPop: function (form) {
form.find('#phoneFormatWarningPop').popover();
},
/**
* Function to register change event for SMS server Provider Type
*/
registerProviderTypeChangeEvent: function (form) {
var thisInstance = this;
var contents = form.find('.configContent');
form.find('.providerType').change(function (e) {
var currentTarget = jQuery(e.currentTarget);
var selectedProviderName = currentTarget.val();
var params = form.serializeFormData();
params['module'] = app.getModuleName();
params['parent'] = app.getParentModuleName();
params['view'] = 'EditAjax';
params['provider'] = selectedProviderName;
var progressIndicatorElement = jQuery('#provider').progressIndicator({});
AppConnector.request(params).then(function (data) {
progressIndicatorElement.progressIndicator({'mode': 'hide'});
jQuery('#provider').html(data);
if (jQuery(data).find('select').hasClass('select2')) {
app.showSelect2ElementView(jQuery('#provider').find('select.select2'));
}
});
});
},
/**
* Function to save the SMS Server Configuration Details from edit and Add new configuration
*/
saveConfiguration: function (form) {
var thisInstance = this;
var aDeferred = jQuery.Deferred();
var progressIndicatorElement = jQuery.progressIndicator({
'position': 'html',
'blockInfo': {
'enabled': true
}
});
var params = form.serializeFormData();
params['module'] = app.getModuleName();
params['parent'] = app.getParentModuleName();
params['action'] = 'SaveAjax';
AppConnector.request(params).then(
function (data) {
progressIndicatorElement.progressIndicator({'mode': 'hide'});
aDeferred.resolve(data);
},
function (error) {
progressIndicatorElement.progressIndicator({'mode': 'hide'});
aDeferred.reject(error);
}
);
return aDeferred.promise();
},
/**
* Function to delete Configuration for SMS Provider
*/
DeleteRecord: function (url) {
var thisInstance = this;
var message = app.vtranslate('LBL_DELETE_CONFIRMATION');
Vtiger_Helper_Js.showConfirmationBox({'message': message}).then(
function (e) {
AppConnector.request(url).then(
function () {
var params = {
text: app.vtranslate('JS_RECORD_DELETED_SUCCESSFULLY')
};
Settings_Vtiger_Index_Js.showMessage(params);
thisInstance.getListViewRecords();
},
function (error, err) {
}
);
},
function (error, err) {
}
);
},
/**
* Function to register all the events
*/
registerEvents: function () {
//this.triggerDisplayTypeEvent();
this.registerPageNavigationEvents();
}
});