- 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.
81 lines
4.4 KiB
JavaScript
81 lines
4.4 KiB
JavaScript
/**
|
|
* Created by PHPStorm
|
|
* User: Stefan Warnat <support@stefanwarnat.de>
|
|
* Date: 2013-09-17
|
|
* You must not use this file without permission.
|
|
*/
|
|
|
|
|
|
|
|
function addBlock(block, styleClass, duplicateId) {
|
|
if(duplicateId === undefined) duplicateId = 0;
|
|
|
|
jQuery.post("index.php?module=Workflow2&action=Workflow2Ajax&file=addblock", { workflow:workflow_id, duplicateId: duplicateId, blockid:block, left:350, top:80 }, function(response) {
|
|
if(response == false) {
|
|
return;
|
|
}
|
|
var styleClass = response.styleClass;
|
|
var element_id = response.element_id;
|
|
var topPos = response.topPos;
|
|
var leftPos = response.leftPos;
|
|
var styleExtra = response.styleExtra;
|
|
var typeText = response.typeText;
|
|
|
|
var blockText = (response["blockText"].length > 2 ?'<br><span style="font-weight:bold;">' + response["blockText"] + '</span>':'');
|
|
var html = '<div class="context-wfBlock wfBlock ' + styleClass + '" id="' + element_id+ '" style="display:none;top:' + topPos + 'px;left:' + leftPos + 'px;' + styleExtra + '"><span class="blockDescription">' + typeText + blockText + '</span><div data-color="" class="colorLayer"> </div><img class="settingsIcon" src="modules/Workflow2/icons/settings.png"></div>';
|
|
|
|
jQuery("#workflowDesignContainer").append(html);
|
|
|
|
jQuery("#" + element_id).fadeIn("fast");
|
|
|
|
endpoints[element_id + "__input"] = jsPlumb.addEndpoint(element_id, inputPointOptions, jQuery.extend(getInput('modules/Workflow2/icons/input.png', "flowChart", false, true, false), {parameters:{ "in":element_id + '__input' }}));
|
|
|
|
for(var i = 0; i < response.personPoints.length; i++) {
|
|
var pointKey = response.personPoints[i][0];
|
|
endpoints[element_id + "__" + pointKey] = jsPlumb.addEndpoint(element_id, { anchor:topAnchor[response.personPoints.length][i], maxConnections:maxConnections, overlays:getOverlay(response.personPoints[i][1], 'personLabel') }, jQuery.extend(getInput('modules/Workflow2/icons/peopleInput.png', "person", false, true, true), {parameters:{ "in":element_id + '__' + pointKey }}));
|
|
_listeners(endpoints[element_id + "__" + pointKey]);
|
|
}
|
|
for(var i = 0; i < response.outputPoints.length; i++) {
|
|
var pointKey = response.outputPoints[i][0];
|
|
endpoints[element_id + "__" + pointKey] = jsPlumb.addEndpoint(element_id, { anchor:rightAnchor[response.outputPoints.length][i], maxConnections:maxConnections, overlays:getOverlay(response.outputPoints[i][1]) }, jQuery.extend(getInput('modules/Workflow2/icons/output.png', "flowChart", true, false, false), {parameters:{ out:element_id + '__' + pointKey }}));
|
|
|
|
_listeners(endpoints[element_id + "__" + pointKey]);
|
|
}
|
|
|
|
// jsPlumb.draggable(jsPlumb.getSelector("#" + element_id));
|
|
jQuery("#" + element_id).bind( "dblclick", onDblClickBlock);
|
|
|
|
jQuery("#" + element_id + ' .colorLayer').bind( "dblclick", function(event) { jQuery(event.target).parent().trigger("dblclick"); });
|
|
|
|
jQuery("#" + element_id).bind( "dragstop", onDragStopBlock);
|
|
}, 'json');
|
|
}
|
|
|
|
function addRecord(module_name) {
|
|
jQuery.post("index.php?module=Workflow2&action=Workflow2Ajax&file=addrecord", { workflow:workflow_id, module_name:module_name, left:400, top:110 }, function(response) {
|
|
var element_id = response.element_id;
|
|
var topPos = response.topPos;
|
|
var leftPos = response.leftPos;
|
|
|
|
var html = '<div class="wfBlock wfPerson" id="' + element_id + '" style="top:' + topPos + 'px;left:' + leftPos + 'px;">Not connected<img src="modules/Workflow2/icons/cross-button.png" class="removePersonIcon" onclick="removePerson(\'' + element_id + '\');"></div>';
|
|
|
|
jQuery("#workflowDesignContainer").append(html);
|
|
|
|
endpoints[element_id + "__person"] = jsPlumb.addEndpoint(element_id, { anchor:bottomAnchor, maxConnections:maxConnections }, jQuery.extend(getInput('modules/Workflow2/icons/peopleOutput.png', "person", true, false, true), {parameters:{ out:element_id + '__person' }}));
|
|
|
|
// jsPlumb.draggable(jsPlumb.getSelector("#" + element_id));
|
|
jQuery("#" + element_id).bind( "dblclick", onDblClickBlock);
|
|
|
|
jQuery("#" + element_id).bind( "dragstop", onDragStopBlock);
|
|
}, 'json');
|
|
}
|
|
|
|
function getOverlay(label, cls) {
|
|
if(cls === undefined) cls = "";
|
|
|
|
return [
|
|
[ "Label", { cssClass:"labelClass " + cls, label:label, id:"lbl" } ]
|
|
];
|
|
}
|
|
|