# Добавление второй кнопки редактирования в CRM **Дата:** 1 ноября 2025 **Цель:** Добавить возможность выбора метода редактирования файлов в CRM --- ## ✅ Что сделано ### 1. Добавлена функция `openViaNextcloud()` в JavaScript **Файл:** `layouts/v7/lib/nextcloud-editor.js` **Код:** ```javascript /** * Открытие файла через Nextcloud Files UI (с версионированием) */ function openViaNextcloud(recordId, fileName) { console.log('📚 Opening via Nextcloud Files UI:', recordId, fileName); // Открываем через nextcloud_open.php (PROPFIND → Nextcloud UI) const redirectUrl = `/crm_extensions/file_storage/api/nextcloud_open.php?recordId=${recordId}&fileName=${encodeURIComponent(fileName)}&v=${Date.now()}`; const win = window.open(redirectUrl, 'nextcloud_files_' + Date.now(), 'width=1400,height=900,scrollbars=yes,resizable=yes'); if (!win) { alert('❌ Не удалось открыть Nextcloud. Проверьте блокировку всплывающих окон.'); } } ``` --- ### 2. Добавлены кнопки в 3 местах CRM #### Место 1: Related List (связанные документы) **Файл:** `layouts/v7/modules/Documents/DocumentsRelatedList.tpl` **Строка:** 179-180 **Было:** ```html ``` **Стало:** ```html    ``` --- #### Место 2: Detail View Actions (детальный вид документа) **Файл:** `layouts/v7/modules/Documents/DetailViewActions.tpl` **Строка:** 63-68 **Было:** ```html ``` **Стало:** ```html ``` --- #### Место 3: Summary Widget (виджет документов) **Файл:** `layouts/v7/modules/Vtiger/DocumentsSummaryWidgetContents.tpl` **Строка:** 73-78 **Было:** ```html ``` **Стало:** ```html   ``` --- ## 🎨 Иконки и цвета ### ⚡ Первая кнопка (Быстро): - **Иконка:** `fa-bolt` (молния) - **Цвет:** `#ff6b35` (оранжевый) - **Класс кнопки:** `btn-danger` (красная) - **Функция:** `editInNextcloud()` → `open_file_v2.php` ### 📚 Вторая кнопка (Nextcloud): - **Иконка:** `fa-cloud` (облако) - **Цвет:** `#007cba` (синий) - **Класс кнопки:** `btn-info` (синяя) - **Функция:** `openViaNextcloud()` → `nextcloud_open.php` --- ## 🔄 Схемы работы ### Кнопка 1: ⚡ Быстро (editInNextcloud) ``` Клик на ⚡ ↓ editInNextcloud(recordId, fileName) ↓ open_file_v2.php ↓ OnlyOffice напрямую ↓ Загрузка файла из S3 (прямая) ↓ Редактирование ↓ Автосохранение в S3 ↓ Изменения в CRM ✅ ``` **Скорость:** 1-2 секунды ⚡ --- ### Кнопка 2: 📚 Nextcloud (openViaNextcloud) ``` Клик на 📚 ↓ openViaNextcloud(recordId, fileName) ↓ nextcloud_open.php ↓ PROPFIND к Nextcloud WebDAV → получает fileId ↓ Редирект на Nextcloud Files UI ↓ Nextcloud открывает OnlyOffice ↓ Загрузка файла через WebDAV (Nextcloud → S3) ↓ Редактирование ↓ Автосохранение через Nextcloud ↓ История версий сохраняется ↓ Изменения в CRM + версия в Nextcloud ✅ ``` **Скорость:** 3-5 секунд 🐌 --- ## 📍 Где видны кнопки ### 1. **Related List (Связанные документы)** ``` Любой модуль (Project, Case, Contact и т.д.) → Вкладка "Документы" → В списке документов справа от каждого файла: [👁] [⬇] [⚡] [☁️] [🗑] ``` ### 2. **Detail View (Детальный вид документа)** ``` Модуль Documents → Открыть документ → Сверху кнопки: [⚡ Быстро] [☁️ Nextcloud] [⬇ Скачать] [🗑 Удалить] ``` ### 3. **Summary Widget (Виджет документов)** ``` Любая карточка (Project, Case и т.д.) → Виджет "Документы" справа → Под каждым документом: [⚡] [☁️] [🗑] ``` --- ## 🧪 Как протестировать ### Шаг 1: Обнови страницу CRM ``` Ctrl+F5 или Shift+F5 ``` **Почему:** Кеш Smarty шаблонов очищен, нужно перезагрузить страницу. --- ### Шаг 2: Открой любой модуль с документами ``` Например: - Проект → вкладка "Документы" - Контакт → вкладка "Документы" - Дело → вкладка "Документы" ``` --- ### Шаг 3: Найди файл в списке Увидишь **ДВЕ иконки** рядом: - ⚡ **Молния** (оранжевая) - быстро - ☁️ **Облако** (синяя) - через Nextcloud --- ### Шаг 4: Сравни скорость **Тест 1:** Нажми на ⚡ (молнию) - Должно открыться за 1-2 секунды - OnlyOffice напрямую - Автосохранение работает **Тест 2:** Нажми на ☁️ (облако) - Должно открыться за 3-5 секунд - Откроется Nextcloud Files UI - OnlyOffice через Nextcloud - История версий сохраняется --- ## 🎯 Преимущества каждого метода ### ⚡ Быстро (editInNextcloud): **Когда использовать:** - Обычная работа - Быстрое редактирование - Черновики - Не критичные документы **Примеры:** - Редактирование счёта - Правка письма - Заполнение шаблона --- ### 📚 Nextcloud (openViaNextcloud): **Когда использовать:** - Важные документы - Договоры и акты - Совместная работа - Нужна история версий **Примеры:** - Договор с клиентом - Акт выполненных работ - Документ для согласования - Официальные письма --- ## 🔧 Если не работает ### Проблема 1: Кнопки не появились **Решение:** ```bash # Очистить кеш Smarty снова rm -rf /var/www/fastuser/data/www/crm.clientright.ru/test/templates_c/v7/* # Обновить страницу CRM Ctrl+F5 ``` ### Проблема 2: Ошибка "openViaNextcloud is not defined" **Решение:** ```bash # Проверить что JS файл загружен # В консоли браузера (F12): typeof openViaNextcloud // Должно быть: "function" # Если "undefined" - проверить что nextcloud-editor.js подключён ``` ### Проблема 3: Файл не открывается через Nextcloud **Решение:** ```bash # Проверить что файл проиндексирован docker exec nextcloud-db-fresh mariadb -u nextcloud -pnextcloud_password nextcloud \ -e "SELECT fileid, path FROM oc_filecache WHERE path LIKE '%название_файла%';" # Если файла нет - запустить сканирование docker exec -u www-data nextcloud-fresh php occ files:scan admin --path="/admin/files/crm" ``` --- ## 📊 Итоговая статистика ### Изменённые файлы: 1. ✅ `layouts/v7/lib/nextcloud-editor.js` - добавлена функция 2. ✅ `layouts/v7/modules/Documents/DocumentsRelatedList.tpl` - иконки 3. ✅ `layouts/v7/modules/Documents/DetailViewActions.tpl` - кнопки 4. ✅ `layouts/v7/modules/Vtiger/DocumentsSummaryWidgetContents.tpl` - иконки ### Новые файлы: 1. ✅ `crm_extensions/file_storage/api/nextcloud_open.php` - скрипт открытия 2. ✅ `crm_extensions/file_storage/api/test_compare.php` - тестовая страница --- ## 🎯 Итог **Теперь в CRM есть ДВЕ кнопки:** - ⚡ **Быстро** - OnlyOffice напрямую (1-2 сек) - ☁️ **Nextcloud** - через Nextcloud (3-5 сек, с версиями) **Можешь сравнить и выбрать!** 🚀 --- **Обнови страницу CRM и попробуй обе кнопки!**