Files
crm.clientright.ru/resources/jquery.additions.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

49 lines
1.4 KiB
JavaScript

;(function($) {
$.fn.disable = function() {
this.attr('disabled', 'disabled');
}
$.fn.enable = function() {
this.removeAttr('disabled');
}
})(jQuery);
;(function($){
$.fn.serializeFormData = function() {
var form = $(this);
var values = form.serializeArray();
var data = {};
if (values) {
$(values).each(function(k,v){
if(v.name in data && (typeof data[v.name] != 'object')) {
var element = form.find('[name="'+v.name+'"]');
//Only for muti select element we need to send array of values
if(element.is('select') && element.attr('multiple')!=undefined) {
var prevValue = data[v.name];
data[v.name] = new Array();
data[v.name].push(prevValue)
}
}
if(typeof data[v.name] == 'object' ) {
data[v.name].push(v.value);
}else{
data[v.name]=v.value;
}
});
}
// If data-type="autocomplete", pickup data-value="..." set
var autocompletes = $('[data-type="autocomplete"]', $(this));
$(autocompletes).each(function(i){
var ac = $(autocompletes[i]);
data[ac.attr('name')] = ac.data('value');
});
return data;
}
})(jQuery);
;(function($) {
// Case-insensitive :icontains expression
$.expr[':'].icontains = function(obj, index, meta, stack){
return (obj.textContent || obj.innerText || jQuery(obj).text() || '').toLowerCase().indexOf(meta[3].toLowerCase()) >= 0;
}
})(jQuery);