# Добавление второй кнопки редактирования в 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 и попробуй обе кнопки!**