Files
crm.clientright.ru/backups/20250921_173241_WORKING_S3_NEXTCLOUD_AI/DocumentsSummaryWidgetContents.tpl
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

81 lines
5.7 KiB
Smarty

{*<!--
/*********************************************************************************
** The contents of this file are subject to the vtiger CRM Public License Version 1.0
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
*
********************************************************************************/
-->*}
{strip}
<div class="paddingLeft5px">
<span class="col-sm-5">
<strong>{vtranslate('Title','Documents')}</strong>
</span>
<span class="col-sm-7">
<strong>{vtranslate('File Name', 'Documents')}</strong>
</span>
{foreach item=RELATED_RECORD from=$RELATED_RECORDS}
{assign var=DOWNLOAD_FILE_URL value=$RELATED_RECORD->getDownloadFileURL()}
{assign var=DOWNLOAD_STATUS value=$RELATED_RECORD->get('filestatus')}
{assign var=DOWNLOAD_LOCATION_TYPE value=$RELATED_RECORD->get('filelocationtype')}
<div class="recentActivitiesContainer row">
<ul class="" style="padding-left: 0px;list-style-type: none;">
<li>
<div class="" id="documentRelatedRecord pull-left">
<span class="col-sm-5 textOverflowEllipsis">
<a href="{$RELATED_RECORD->getDetailViewUrl()}" id="{$MODULE}_{$RELATED_MODULE}_Related_Record_{$RELATED_RECORD->get('id')}" title="{$RELATED_RECORD->getDisplayValue('notes_title')}">
{$RELATED_RECORD->getDisplayValue('notes_title')}
</a>
</span>
<span class="col-sm-4 textOverflowEllipsis" id="DownloadableLink">
{if $DOWNLOAD_STATUS eq 1}
{$RELATED_RECORD->getDisplayValue('filename', $RELATED_RECORD->getId(), $RELATED_RECORD)}
{else}
{$RELATED_RECORD->get('filename')}
{/if}
</span>
<span class="col-sm-3">
{* Documents list view special actions "view file" and "download file" *}
{assign var=RECORD_ID value=$RELATED_RECORD->getId()}
{if isPermitted('Documents', 'DetailView', $RECORD_ID) eq 'yes'}
{assign var="DOCUMENT_RECORD_MODEL" value=Vtiger_Record_Model::getInstanceById($RECORD_ID)}
{if $DOCUMENT_RECORD_MODEL->get('filename') && $DOCUMENT_RECORD_MODEL->get('filestatus')}
<a name="viewfile" href="javascript:void(0)" data-filelocationtype="{$DOCUMENT_RECORD_MODEL->get('filelocationtype')}" data-filename="{$DOCUMENT_RECORD_MODEL->get('filename')}" onclick="Vtiger_Header_Js.previewFile(event,{$RECORD_ID})"><i title="{vtranslate('LBL_VIEW_FILE', 'Documents')}" class="fa fa-picture-o alignMiddle"></i></a>&nbsp;
{/if}
{if $DOCUMENT_RECORD_MODEL->get('filename') && $DOCUMENT_RECORD_MODEL->get('filestatus') && $DOCUMENT_RECORD_MODEL->get('filelocationtype') eq 'I'}
<a name="downloadfile" href="{$DOCUMENT_RECORD_MODEL->getDownloadFileURL()}"><i title="{vtranslate('LBL_DOWNLOAD_FILE', 'Documents')}" class="fa fa-download alignMiddle"></i></a>&nbsp;
{/if}
{* Кнопка редактирования в Nextcloud *}
{if $DOCUMENT_RECORD_MODEL->get('filename') && $DOCUMENT_RECORD_MODEL->get('filestatus')}
<a name="editInNextcloud" href="javascript:void(0)" onclick="editInNextcloud({$RECORD_ID}, '{$DOCUMENT_RECORD_MODEL->get('filename')|escape:'javascript'}')">
<i title="Редактировать в Nextcloud" class="fa fa-edit alignMiddle" style="color: #28a745;"></i>
</a>&nbsp;
{/if}
<a name="deletefile"
class=""
href="#"
onclick="javascript:AppConnector.request({ module:'Documents',action:'DeleteAjax',record:{$RECORD_ID} });this.closest('li').remove()">
<i title="{vtranslate('LBL_DELETE_FILE', 'Documents')}" class="fa fa-trash alignMiddle"></i>
</a>
{/if}
</span>
</div>
</li>
</ul>
</div>
{/foreach}
</div>
{assign var=NUMBER_OF_RECORDS value=count($RELATED_RECORDS)}
{if ($NUMBER_OF_RECORDS == -1)}
<div class="row np">
<div class="pull-right">
<a class="moreRecentDocuments cursorPointer">{vtranslate('LBL_MORE',$MODULE_NAME)}</a>
</div>
</div>
{/if}
{/strip}