Files
crm.clientright.ru/modules/SwVtTools/resources/germannumbers.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

64 lines
1.9 KiB
JavaScript

jQuery.fn.bindFirst = function(name, fn) {
// bind as you normally would
// don't want to miss out on any jQuery magic
this.on(name, fn);
// Thanks to a comment by @Martin, adding support for
// namespaced events too.
this.each(function() {
var handlers = $._data(this, 'events')[name.split('.')[0]];
// take out the handler we just inserted from the end
var handler = handlers.pop();
// move it at the beginning
handlers.splice(0, 0, handler);
});
};
jQuery(function() {
jQuery('[name="listPrice"][data-decimal-seperator=","]').bindFirst('keyup', function() {
var start = this.selectionStart;
var end = this.selectionEnd;
jQuery(this).val(jQuery(this).val().replace('.',','));
this.setSelectionRange(start, end);
});
jQuery('.listPrice, .qty, .lineItemInputBox, .currencyField, .discountVal, .groupTaxPercentage, .chargeTaxPercentage').bindFirst('keyup', function() {
// store current positions in variables
var start = this.selectionStart;
var end = this.selectionEnd;
if(jQuery(this).data('decimalSeperator') != ',') {
jQuery(this).val(jQuery(this).val().replace(/,/,'.'));
}
this.setSelectionRange(start, end);
});
});
/*
jQuery('.input-large[data-fieldinfo]').bindFirst('keyup', function() {
var fieldData = jQuery(this).data();
var fieldInfo = fieldData.fieldinfo;
if(typeof fieldInfo == 'string') {
fieldInfo = JSON.parse(fieldInfo);
}
if(typeof fieldInfo != 'undefined' &&
(fieldInfo.type == 'double' || fieldInfo.type == 'integer')) {
var oldContent = jQuery(this).val();
var newContent = oldContent.replace(/,/,'.');
if(oldContent != newContent) {
var start = this.selectionStart;
var end = this.selectionEnd;
jQuery(this).val(newContent);
this.setSelectionRange(start, end);
}
}
});
*/