- 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.
98 lines
2.9 KiB
PHP
98 lines
2.9 KiB
PHP
<?php
|
|
/**
|
|
* Created by JetBrains PhpStorm.
|
|
* User: Stefan Warnat <support@stefanwarnat.de>
|
|
* Date: 20.09.14 23:15
|
|
* You must not use this file without permission.
|
|
*/
|
|
namespace Workflow\Plugins\RecordSource;
|
|
|
|
use Workflow\ComplexeCondition;
|
|
use Workflow\Preset;
|
|
use Workflow\PresetManager;
|
|
use Workflow\RelationAddExtend;
|
|
use Workflow\VTTemplate;
|
|
use Workflow\VtUtils;
|
|
|
|
class Search extends \Workflow\RecordSource {
|
|
|
|
|
|
public function getSource($moduleName) {
|
|
$return = array();
|
|
|
|
$return = array(
|
|
'id' => 'searched',
|
|
'title' => 'Result of previous search',
|
|
'sort' => 30,
|
|
);
|
|
|
|
return $return;
|
|
}
|
|
|
|
/**
|
|
* @param $key
|
|
* @param $value
|
|
* @param $context \Workflow\VTEntity
|
|
* @return string
|
|
*/
|
|
public function getQuery(\Workflow\VTEntity $context, $sortField = null, $limit = null, $includeAllModTables = false) {
|
|
$recordIds = $context->getEnvironment($this->_Data['recordsource']['resultvariable']);
|
|
|
|
if(!is_array($recordIds)) {
|
|
$recordIds = explode(',', $recordIds);
|
|
} else {
|
|
$recordIds = $recordIds['ids'];
|
|
}
|
|
|
|
$sqlQuery = '';
|
|
|
|
$moduleSQL = VtUtils::getModuleTableSQL($this->_TargetModule);
|
|
|
|
$orderBy = '';
|
|
if(!empty($sortField)) {
|
|
if(is_array($sortField) && !empty($sortField[0])) {
|
|
$sortDuration = $sortField[1];
|
|
$sortField = $sortField[0];
|
|
} else {
|
|
$sortDuration = '';
|
|
}
|
|
|
|
$sortField = VtUtils::getFieldInfo($sortField, getTabId($this->_TargetModule));
|
|
if(!empty($sortField['tablename']) && !empty($sortField['columnname'])) {
|
|
$orderBy = ' ORDER BY ' . $sortField['tablename'] . '.' . $sortField['columnname'] . ' ' . $sortDuration;
|
|
}
|
|
|
|
}
|
|
|
|
$moduleSQL = 'SELECT vtiger_crmentity.crmid /* Insert Fields */ '.$moduleSQL.' WHERE vtiger_crmentity.crmid IN ('.implode(',', $recordIds).') '.$orderBy;
|
|
|
|
return $moduleSQL;
|
|
}
|
|
|
|
public function beforeGetTaskform($data) {
|
|
//$presetManager = new PresetManager($this->)
|
|
}
|
|
|
|
/**
|
|
* @var null|ComplexeCondition
|
|
*/
|
|
private $_ConditionObj = null;
|
|
|
|
public function getConfigHTML($data, $parameter) {
|
|
$html = '';
|
|
|
|
$html .= '<div><label>'.vtranslate('Result variable:', 'Settings:Workflow2').'</label><div style="display:inline-block;width:50%;"><div class="insertTextfield" data-name="task[recordsource][resultvariable]" data-id="subject">' . $this->_Data['recordsource']['resultvariable'] . '</div></div></div>';
|
|
|
|
return $html;
|
|
|
|
}
|
|
public function getConfigInlineJS() {
|
|
return '';
|
|
}
|
|
public function getConfigInlineCSS() {
|
|
return '.asd { color:red; }';
|
|
}
|
|
|
|
}
|
|
|
|
\Workflow\RecordSource::register('search', '\Workflow\Plugins\RecordSource\Search'); |