- 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.
142 lines
7.7 KiB
Smarty
142 lines
7.7 KiB
Smarty
{*<!--
|
|
/*********************************************************************************
|
|
* The content of this file is subject to the ITS4YouMultiCompany license.
|
|
* ("License"); You may not use this file except in compliance with the License
|
|
* The Initial Developer of the Original Code is IT-Solutions4You s.r.o.
|
|
* Portions created by IT-Solutions4You s.r.o. are Copyright(C) IT-Solutions4You s.r.o.
|
|
* All Rights Reserved.
|
|
********************************************************************************/
|
|
-->*}
|
|
{strip}
|
|
{if !empty($PICKIST_DEPENDENCY_DATASOURCE)}
|
|
<input type="hidden" name="picklistDependency" value='{Vtiger_Util_Helper::toSafeHTML($PICKIST_DEPENDENCY_DATASOURCE)}' />
|
|
{/if}
|
|
{foreach key=BLOCK_LABEL_KEY item=FIELD_MODEL_LIST from=$RECORD_STRUCTURE}
|
|
{assign var=BLOCK value=$BLOCK_LIST[$BLOCK_LABEL_KEY]}
|
|
{if $BLOCK eq null or $FIELD_MODEL_LIST|@count lte 0}{continue}{/if}
|
|
<div class="block block_{$BLOCK_LABEL_KEY}">
|
|
{assign var=IS_HIDDEN value=$BLOCK->isHidden()}
|
|
{assign var=WIDTHTYPE value=$USER_MODEL->get('rowheight')}
|
|
<input type=hidden name="timeFormatOptions" data-value='{$DAY_STARTS}' />
|
|
<div>
|
|
<h4 class="textOverflowEllipsis maxWidth50">
|
|
<img class="cursorPointer alignMiddle blockToggle {if !($IS_HIDDEN)} hide {/if}" src="{vimage_path('arrowRight.png')}" data-mode="hide" data-id={$BLOCK_LIST[$BLOCK_LABEL_KEY]->get('id')}>
|
|
<img class="cursorPointer alignMiddle blockToggle {if ($IS_HIDDEN)} hide {/if}" src="{vimage_path('arrowdown.png')}" data-mode="show" data-id={$BLOCK_LIST[$BLOCK_LABEL_KEY]->get('id')}>
|
|
{vtranslate({$BLOCK_LABEL_KEY},{$MODULE_NAME})}
|
|
</h4>
|
|
</div>
|
|
<hr>
|
|
<div class="blockData">
|
|
<table class="table detailview-table no-border">
|
|
<tbody {if $IS_HIDDEN} class="hide" {/if}>
|
|
{assign var=COUNTER value=0}
|
|
<tr>
|
|
{foreach item=FIELD_MODEL key=FIELD_NAME from=$FIELD_MODEL_LIST}
|
|
{assign var=fieldDataType value=$FIELD_MODEL->getFieldDataType()}
|
|
{if !$FIELD_MODEL->isViewableInDetailView()}
|
|
{continue}
|
|
{/if}
|
|
{if $FIELD_MODEL->get('uitype') eq "83"}
|
|
{foreach item=tax key=count from=$TAXCLASS_DETAILS}
|
|
{if $COUNTER eq 2}
|
|
</tr><tr>
|
|
{assign var="COUNTER" value=1}
|
|
{else}
|
|
{assign var="COUNTER" value=$COUNTER+1}
|
|
{/if}
|
|
<td class="fieldLabel {$WIDTHTYPE}">
|
|
<span class='muted'>{vtranslate($tax.taxlabel, $MODULE)}(%)</span>
|
|
</td>
|
|
<td class="fieldValue {$WIDTHTYPE}">
|
|
<span class="value textOverflowEllipsis" data-field-type="{$FIELD_MODEL->getFieldDataType()}" >
|
|
{if $tax.check_value eq 1}
|
|
{$tax.percentage}
|
|
{else}
|
|
0
|
|
{/if}
|
|
</span>
|
|
</td>
|
|
{/foreach}
|
|
{else if $FIELD_MODEL->get('uitype') eq "69" || $FIELD_MODEL->get('uitype') eq "105"}
|
|
{if $COUNTER neq 0}
|
|
{if $COUNTER eq 2}
|
|
</tr><tr>
|
|
{assign var=COUNTER value=0}
|
|
{/if}
|
|
{/if}
|
|
<td class="fieldLabel {$WIDTHTYPE}"><span class="muted">{vtranslate({$FIELD_MODEL->get('label')},{$MODULE_NAME})}</span></td>
|
|
<td class="fieldValue {$WIDTHTYPE}">
|
|
<ul id="imageContainer">
|
|
{foreach key=ITER item=IMAGE_INFO from=$RECORD->getImageDetails($FIELD_MODEL)}
|
|
{if !empty($IMAGE_INFO.path) && !empty({$IMAGE_INFO.orgname})}
|
|
<li><img src="{$IMAGE_INFO.path}_{$IMAGE_INFO.orgname}" title="{$IMAGE_INFO.orgname}" width="400" height="300" /></li>
|
|
{/if}
|
|
{/foreach}
|
|
</ul>
|
|
</td>
|
|
{assign var=COUNTER value=$COUNTER+1}
|
|
{else}
|
|
{if $FIELD_MODEL->get('uitype') eq "20" or $FIELD_MODEL->get('uitype') eq "19" or $fieldDataType eq 'reminder' or $fieldDataType eq 'recurrence'}
|
|
{if $COUNTER eq '1'}
|
|
<td class="fieldLabel {$WIDTHTYPE}"></td><td class="{$WIDTHTYPE}"></td></tr><tr>
|
|
{assign var=COUNTER value=0}
|
|
{/if}
|
|
{/if}
|
|
{if $COUNTER eq 2}
|
|
</tr><tr>
|
|
{assign var=COUNTER value=1}
|
|
{else}
|
|
{assign var=COUNTER value=$COUNTER+1}
|
|
{/if}
|
|
<td class="fieldLabel textOverflowEllipsis {$WIDTHTYPE}" id="{$MODULE_NAME}_detailView_fieldLabel_{$FIELD_MODEL->getName()}" {if $FIELD_MODEL->getName() eq 'description' or $FIELD_MODEL->get('uitype') eq '69'} style='width:8%'{/if}>
|
|
<span class="muted">
|
|
{if $MODULE_NAME eq 'Documents' && $FIELD_MODEL->get('label') eq "File Name" && $RECORD->get('filelocationtype') eq 'E'}
|
|
{vtranslate("LBL_FILE_URL",{$MODULE_NAME})}
|
|
{else}
|
|
{vtranslate({$FIELD_MODEL->get('label')},{$MODULE_NAME})}
|
|
{/if}
|
|
{if ($FIELD_MODEL->get('uitype') eq '72') && ($FIELD_MODEL->getName() eq 'unit_price')}
|
|
({$BASE_CURRENCY_SYMBOL})
|
|
{/if}
|
|
</span>
|
|
</td>
|
|
<td class="fieldValue {$WIDTHTYPE}" id="{$MODULE_NAME}_detailView_fieldValue_{$FIELD_MODEL->getName()}" {if $FIELD_MODEL->get('uitype') eq '19' or $fieldDataType eq 'reminder' or $fieldDataType eq 'recurrence'} colspan="3" {assign var=COUNTER value=$COUNTER+1} {/if}>
|
|
{assign var=FIELD_VALUE value=$FIELD_MODEL->get('fieldvalue')}
|
|
{if $fieldDataType eq 'multipicklist'}
|
|
{assign var=FIELD_DISPLAY_VALUE value=$FIELD_MODEL->getDisplayValue($FIELD_MODEL->get('fieldvalue'))}
|
|
{else}
|
|
{assign var=FIELD_DISPLAY_VALUE value=Vtiger_Util_Helper::toSafeHTML($FIELD_MODEL->getDisplayValue($FIELD_MODEL->get('fieldvalue')))}
|
|
{/if}
|
|
|
|
<span class="value" data-field-type="{$FIELD_MODEL->getFieldDataType()}" {if $FIELD_MODEL->get('uitype') eq '19' or $FIELD_MODEL->get('uitype') eq '21'} style="white-space:normal;" {/if}>
|
|
{include file=vtemplate_path($FIELD_MODEL->getUITypeModel()->getDetailViewTemplateName(),$MODULE_NAME) FIELD_MODEL=$FIELD_MODEL USER_MODEL=$USER_MODEL MODULE=$MODULE_NAME RECORD=$RECORD}
|
|
</span>
|
|
{if $IS_AJAX_ENABLED && $FIELD_MODEL->isEditable() eq 'true' && $FIELD_MODEL->isAjaxEditable() eq 'true'}
|
|
<span class="hide edit pull-left">
|
|
{if $fieldDataType eq 'multipicklist'}
|
|
<input type="hidden" class="fieldBasicData" data-name='{$FIELD_MODEL->get('name')}[]' data-type="{$fieldDataType}" data-displayvalue='{$FIELD_DISPLAY_VALUE}' data-value="{$FIELD_VALUE}" />
|
|
{else}
|
|
<input type="hidden" class="fieldBasicData" data-name='{$FIELD_MODEL->get('name')}' data-type="{$fieldDataType}" data-displayvalue='{$FIELD_DISPLAY_VALUE}' data-value="{$FIELD_VALUE}" />
|
|
{/if}
|
|
</span>
|
|
<span class="action pull-right"><a href="#" onclick="return false;" class="editAction fa fa-pencil"></a></span>
|
|
{/if}
|
|
</td>
|
|
{/if}
|
|
|
|
{if $FIELD_MODEL_LIST|@count eq 1 and $FIELD_MODEL->get('uitype') neq "19" and $FIELD_MODEL->get('uitype') neq "20" and $FIELD_MODEL->get('uitype') neq "30" and $FIELD_MODEL->get('name') neq "recurringtype" and $FIELD_MODEL->get('uitype') neq "69" and $FIELD_MODEL->get('uitype') neq "105"}
|
|
<td class="fieldLabel {$WIDTHTYPE}"></td><td class="{$WIDTHTYPE}"></td>
|
|
{/if}
|
|
{/foreach}
|
|
{* adding additional column for odd number of fields in a block *}
|
|
{if $FIELD_MODEL_LIST|@end eq true and $FIELD_MODEL_LIST|@count neq 1 and $COUNTER eq 1}
|
|
<td class="fieldLabel {$WIDTHTYPE}"></td><td class="{$WIDTHTYPE}"></td>
|
|
{/if}
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
{/foreach}
|
|
{/strip} |