Files
crm.clientright.ru/layouts/v7/modules/Settings/ModuleManager/ListContents.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

102 lines
5.3 KiB
Smarty

{*+**********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.1
* ("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.
************************************************************************************}
{* modules/Settings/ModuleManager/views/List.php *}
{strip}
<div class="listViewPageDiv detailViewContainer" id="moduleManagerContents">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 ">
<div id="listview-actions" class="listview-actions-container">
<div class="clearfix">
<h4 class="pull-left">{vtranslate('LBL_MODULE_MANAGER', $QUALIFIED_MODULE)}</h4>
<div class="pull-right">
<div class="btn-group">
<button class="btn btn-default" type="button" onclick='window.location.href="{$IMPORT_USER_MODULE_FROM_FILE_URL}"'>
{vtranslate('LBL_IMPORT_MODULE_FROM_ZIP', $QUALIFIED_MODULE)}
</button>
</div>&nbsp;
<div class="btn-group">
<button class="btn btn-default" type="button" onclick='window.location.href = "{$IMPORT_MODULE_URL}"'>
{vtranslate('LBL_EXTENSION_STORE', 'Settings:ExtensionStore')}
</button>
</div>
</div>
</div>
<br>
<div class="contents">
{assign var=COUNTER value=0}
<table class="table table-bordered modulesTable">
<tr>
{foreach item=MODULE_MODEL key=MODULE_ID from=$ALL_MODULES}
{assign var=MODULE_NAME value=$MODULE_MODEL->get('name')}
{assign var=MODULE_ACTIVE value=$MODULE_MODEL->isActive()}
{assign var=MODULE_LABEL value=vtranslate($MODULE_MODEL->get('label'), $MODULE_MODEL->get('name'))}
{if $COUNTER eq 2}
</tr><tr>
{assign var=COUNTER value=0}
{/if}
<td class="ModulemanagerSettings">
<div class="moduleManagerBlock">
<span class="col-lg-1" style="line-height: 2.5;">
<input type="checkbox" value="" name="moduleStatus" data-module="{$MODULE_NAME}" data-module-translation="{$MODULE_LABEL}" {if $MODULE_MODEL->isActive()}checked{/if} />
</span>
<span class="col-lg-1 moduleImage {if !$MODULE_ACTIVE}dull {/if}">
{if vimage_path($MODULE_NAME|cat:'.png') != false}
<img class="alignMiddle" src="{vimage_path($MODULE_NAME|cat:'.png')}" alt="{$MODULE_LABEL}" title="{$MODULE_LABEL}"/>
{else}
<img class="alignMiddle" src="{vimage_path('DefaultModule.png')}" alt="{$MODULE_LABEL}" title="{$MODULE_LABEL}"/>
{/if}
</span>
<span class="col-lg-7 moduleName {if !$MODULE_ACTIVE} dull {/if}"><h5 style="line-height: 0.5;">{$MODULE_LABEL}</h5></span>
{assign var=SETTINGS_LINKS value=$MODULE_MODEL->getSettingLinks()}
{if !in_array($MODULE_NAME, $RESTRICTED_MODULES_LIST) && (count($SETTINGS_LINKS) > 0)}
<span class="col-lg-3 moduleblock">
<span class="btn-group pull-right actions {if !$MODULE_ACTIVE}hide{/if}">
<button class="btn btn-default btn-sm dropdown-toggle unpin hiden " data-toggle="dropdown">
{vtranslate('LBL_SETTINGS', $QUALIFIED_MODULE)}&nbsp;<i class="caret"></i>
</button>
<ul class="dropdown-menu pull-right dropdownfields">
{foreach item=SETTINGS_LINK from=$SETTINGS_LINKS}
{if $MODULE_NAME eq 'Calendar'}
{if $SETTINGS_LINK['linklabel'] eq 'LBL_EDIT_FIELDS'}
<li><a href="{$SETTINGS_LINK['linkurl']}&sourceModule=Events">{vtranslate($SETTINGS_LINK['linklabel'], $MODULE_NAME, vtranslate('LBL_EVENTS',$MODULE_NAME))}</a></li>
<li><a href="{$SETTINGS_LINK['linkurl']}&sourceModule=Calendar">{vtranslate($SETTINGS_LINK['linklabel'], $MODULE_NAME, vtranslate('LBL_TASKS','Calendar'))}</a></li>
{else if $SETTINGS_LINK['linklabel'] eq 'LBL_EDIT_WORKFLOWS'}
<li><a href="{$SETTINGS_LINK['linkurl']}&sourceModule=Events">{vtranslate('LBL_EVENTS', $MODULE_NAME)} {vtranslate('LBL_WORKFLOWS',$MODULE_NAME)}</a></li>
<li><a href="{$SETTINGS_LINK['linkurl']}&sourceModule=Calendar">{vtranslate('LBL_TASKS', 'Calendar')} {vtranslate('LBL_WORKFLOWS',$MODULE_NAME)}</a></li>
{else}
<li><a href={$SETTINGS_LINK['linkurl']}>{vtranslate($SETTINGS_LINK['linklabel'], $MODULE_NAME, vtranslate($MODULE_NAME, $MODULE_NAME))}</a></li>
{/if}
{else}
<li>
<a {if stripos($SETTINGS_LINK['linkurl'], 'javascript:')===0}
onclick='{$SETTINGS_LINK['linkurl']|substr:strlen("javascript:")};'
{else}
onclick='window.location.href = "{$SETTINGS_LINK['linkurl']}"'
{/if}>
{vtranslate($SETTINGS_LINK['linklabel'], $MODULE_NAME, vtranslate("SINGLE_$MODULE_NAME", $MODULE_NAME))}
</a>
</li>
{/if}
{/foreach}
</ul>
</span>
</span>
{/if}
</div>
{assign var=COUNTER value=$COUNTER+1}
</td>
{/foreach}
</tr>
</table>
</div>
</div>
</div>
</div>
{/strip}