feat: Добавлен инструмент генерации документов для AI Ассистента
- Создан API create_document_with_text.php для создания DOCX/XLSX/PPTX с текстом от AI - Поддержка Markdown форматирования (заголовки, жирный, курсив, списки, код) - Установлен PHPWord для красивого форматирования документов - Исправлены пути сохранения (crm2/CRM_Active_Files/... без /crm/ в начале) - Замена пробелов на подчеркивания в именах папок - Создана документация для AI и разработчиков - Добавлены API для работы с шаблонами Nextcloud
This commit is contained in:
@@ -448,24 +448,37 @@ function editInNextcloud(recordId, fileName) {
|
||||
|
||||
/**
|
||||
* Открытие файла через Nextcloud Files UI (с версионированием)
|
||||
* Использует Redis индекс для быстрого получения FileID
|
||||
*/
|
||||
function openViaNextcloud(recordId, fileName) {
|
||||
console.log('📚 Opening via Nextcloud Files UI:', recordId, fileName);
|
||||
console.log('📚 Opening via Nextcloud Files UI:', recordId);
|
||||
|
||||
// Открываем через nextcloud_open.php (PROPFIND → Nextcloud UI)
|
||||
const redirectUrl = `/crm_extensions/file_storage/api/nextcloud_open.php?recordId=${recordId}&fileName=${encodeURIComponent(fileName)}&v=${Date.now()}`;
|
||||
|
||||
console.log('🎯 Opening via Nextcloud:', redirectUrl);
|
||||
|
||||
// Открываем в новом окне
|
||||
const win = window.open(redirectUrl, 'nextcloud_files_' + Date.now(), 'width=1400,height=900,scrollbars=yes,resizable=yes');
|
||||
|
||||
if (win) {
|
||||
console.log('✅ Nextcloud opened successfully');
|
||||
} else {
|
||||
console.log('❌ Failed to open window - popup blocked');
|
||||
alert('❌ Не удалось открыть Nextcloud. Проверьте блокировку всплывающих окон.');
|
||||
}
|
||||
// Получаем FileID и redirect URL из API
|
||||
fetch(`/crm_extensions/file_storage/api/nextcloud_open.php?recordId=${recordId}&v=${Date.now()}`)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data.success) {
|
||||
console.log('✅ FileID получен:', data.fileId);
|
||||
console.log('🔗 Redirect URL:', data.redirectUrl);
|
||||
|
||||
// Открываем Nextcloud в новом окне
|
||||
const win = window.open(data.redirectUrl, 'nextcloud_files_' + Date.now(), 'width=1400,height=900,scrollbars=yes,resizable=yes');
|
||||
|
||||
if (win) {
|
||||
console.log('✅ Nextcloud opened successfully');
|
||||
} else {
|
||||
console.log('❌ Failed to open window - popup blocked');
|
||||
alert('❌ Не удалось открыть Nextcloud. Проверьте блокировку всплывающих окон.');
|
||||
}
|
||||
} else {
|
||||
console.error('❌ API error:', data);
|
||||
alert('❌ Ошибка получения FileID: ' + (data.error || 'Unknown error'));
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('❌ Fetch error:', error);
|
||||
alert('❌ Ошибка подключения к API');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
</div>
|
||||
|
||||
{* Подключаем Nextcloud Editor JS *}
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js"></script>
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js?v=20251102c"></script>
|
||||
|
||||
<div class="info-row">
|
||||
<i class="fa fa-map-marker"></i>
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
</div>
|
||||
|
||||
{* Подключаем Nextcloud Editor JS *}
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js"></script>
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js?v=20251102c"></script>
|
||||
|
||||
<div class="info-row">
|
||||
<i class="fa fa-map-marker"></i>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
</div>
|
||||
|
||||
{* Подключаем Nextcloud Editor JS *}
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js"></script>
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js?v=20251102c"></script>
|
||||
|
||||
{*
|
||||
{assign var=PRIORITY value=$RECORD->get('ticketpriorities')}
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
</div>
|
||||
|
||||
{* Подключаем Nextcloud Editor JS *}
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js"></script>
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js?v=20251102c"></script>
|
||||
|
||||
{*
|
||||
<div class="row info-row">
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
</div>
|
||||
|
||||
{* Подключаем Nextcloud Editor JS *}
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js"></script>
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js?v=20251102c"></script>
|
||||
|
||||
{*
|
||||
<div class="info-row row">
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
</div>
|
||||
|
||||
{* Подключаем Nextcloud Editor JS *}
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js"></script>
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js?v=20251102c"></script>
|
||||
|
||||
{*
|
||||
{assign var=RELATED_TO value=$RECORD->get('related_to')}
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
</div>
|
||||
|
||||
{* Подключаем Nextcloud Editor JS *}
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js"></script>
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js?v=20251102c"></script>
|
||||
|
||||
{*
|
||||
{assign var=RELATED_TO value=$RECORD->get('linktoaccountscontacts')}
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
</div>
|
||||
|
||||
{* Подключаем Nextcloud Editor JS *}
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js"></script>
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js?v=20251102c"></script>
|
||||
|
||||
{*
|
||||
<div class="info-row row">
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
</div>
|
||||
|
||||
{* Подключаем Nextcloud Editor JS *}
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js"></script>
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js?v=20251102c"></script>
|
||||
|
||||
{*
|
||||
<div class="row info-row">
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
</div>
|
||||
|
||||
{* Подключаем Nextcloud Editor JS *}
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js"></script>
|
||||
<script type="text/javascript" src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js?v=20251102c"></script>
|
||||
|
||||
{*
|
||||
<div class="row info-row">
|
||||
|
||||
Reference in New Issue
Block a user