/
Dmitry-F
/
cbt_tool
Обзор
Документация
Войти
/
Dmitry-F
/
cbt_tool
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
python-ml-service
bin/button_audit
161 строка
7 KB
Dmitriy-Filatov
🧹 ФИНАЛЬНАЯ ЧИСТКА ИНТЕРФЕЙСА
13 мар 2026, 13:24
13 мар 2026, 13:24
86e73bf
Код
Авторство
О чём код?
#!/bin/bash echo "=========================================" echo "🔍 АУДИТ КНОПОК И ССЫЛОК ДАШБОРДА" echo "=========================================" echo "" # Создаём временную папку REPORT_DIR="/tmp/cbt_buttons_$(date +%s)" mkdir -p "$REPORT_DIR" # ========================================= # 1. Сбор всех файлов с кнопками # ========================================= echo "📁 1. Файлы с кнопками и ссылками:" > "$REPORT_DIR/buttons_report.txt" echo "" >> "$REPORT_DIR/buttons_report.txt" FILES=( "app/views/clients/show.html.erb" "engines/smer_diary/app/views/smer_diary/entries/index.html.erb" "engines/smer_diary/app/views/smer_diary/entries/show.html.erb" "engines/smer_diary/app/views/smer_diary/entries/edit.html.erb" "engines/smer_diary/app/views/smer_diary/entries/new.html.erb" "app/views/layouts/application.html.erb" ) for file in "${FILES[@]}"; do if [ -f "$file" ]; then echo "=== $file ===" >> "$REPORT_DIR/buttons_report.txt" echo "" >> "$REPORT_DIR/buttons_report.txt" # Ищем все ссылки и кнопки echo "🔗 ССЫЛКИ (link_to):" >> "$REPORT_DIR/buttons_report.txt" grep -n "link_to" "$file" | sed 's/^/ /' >> "$REPORT_DIR/buttons_report.txt" echo "" >> "$REPORT_DIR/buttons_report.txt" echo "🖱️ КНОПКИ (button_to, submit):" >> "$REPORT_DIR/buttons_report.txt" grep -n "button_to\|submit" "$file" | sed 's/^/ /' >> "$REPORT_DIR/buttons_report.txt" echo "" >> "$REPORT_DIR/buttons_report.txt" echo "🎯 TURBO FRAME АТРИБУТЫ:" >> "$REPORT_DIR/buttons_report.txt" grep -n "turbo_frame\|data: { turbo_frame" "$file" | sed 's/^/ /' >> "$REPORT_DIR/buttons_report.txt" echo "" >> "$REPORT_DIR/buttons_report.txt" echo "---" >> "$REPORT_DIR/buttons_report.txt" echo "" >> "$REPORT_DIR/buttons_report.txt" else echo "❌ Файл не найден: $file" >> "$REPORT_DIR/buttons_report.txt" fi done # ========================================= # 2. Анализ маршрутов # ========================================= echo "" >> "$REPORT_DIR/buttons_report.txt" echo "📌 2. МАРШРУТЫ ДЛЯ КНОПОК:" >> "$REPORT_DIR/buttons_report.txt" echo "" >> "$REPORT_DIR/buttons_report.txt" bin/rails routes | grep -E "smer|client|session" >> "$REPORT_DIR/buttons_report.txt" # ========================================= # 3. Анализ поведения кнопок # ========================================= echo "" >> "$REPORT_DIR/buttons_report.txt" echo "🔍 3. АНАЛИЗ ПОВЕДЕНИЯ:" >> "$REPORT_DIR/buttons_report.txt" echo "" >> "$REPORT_DIR/buttons_report.txt" # Проверка кнопки "Все записи" echo "🔹 КНОПКА «ВСЕ ЗАПИСИ»:" >> "$REPORT_DIR/buttons_report.txt" if grep -q "Все записи.*smer_diary_client_entries_path" app/views/clients/show.html.erb; then echo " ✅ Ведёт на правильный путь" >> "$REPORT_DIR/buttons_report.txt" else echo " ❌ Проблема с путём" >> "$REPORT_DIR/buttons_report.txt" fi if grep -q "turbo_frame.*active_module" app/views/clients/show.html.erb; then echo " ✅ Есть turbo_frame" >> "$REPORT_DIR/buttons_report.txt" else echo " ❌ Нет turbo_frame" >> "$REPORT_DIR/buttons_report.txt" fi # Проверка кнопки "Назад" в index echo "" >> "$REPORT_DIR/buttons_report.txt" echo "🔹 КНОПКА «НАЗАД» (index):" >> "$REPORT_DIR/buttons_report.txt" if grep -q "Назад.*main_app.client_path" engines/smer_diary/app/views/smer_diary/entries/index.html.erb 2>/dev/null; then echo " ✅ Ведёт на страницу клиента" >> "$REPORT_DIR/buttons_report.txt" else echo " ❌ Нет кнопки назад или неправильный путь" >> "$REPORT_DIR/buttons_report.txt" fi # Проверка кнопки "Назад" в show echo "" >> "$REPORT_DIR/buttons_report.txt" echo "🔹 КНОПКА «НАЗАД» (show):" >> "$REPORT_DIR/buttons_report.txt" if grep -q "Назад.*smer_diary_client_entries_path" engines/smer_diary/app/views/smer_diary/entries/show.html.erb 2>/dev/null; then echo " ✅ Ведёт на список записей" >> "$REPORT_DIR/buttons_report.txt" else echo " ❌ Нет кнопки назад" >> "$REPORT_DIR/buttons_report.txt" fi # Проверка кнопки "Редактировать" echo "" >> "$REPORT_DIR/buttons_report.txt" echo "🔹 КНОПКА «РЕДАКТИРОВАТЬ»:" >> "$REPORT_DIR/buttons_report.txt" if grep -q "Редактировать.*edit_smer_diary_client_entry_path" engines/smer_diary/app/views/smer_diary/entries/show.html.erb 2>/dev/null; then echo " ✅ Есть" >> "$REPORT_DIR/buttons_report.txt" else echo " ❌ Нет кнопки редактирования" >> "$REPORT_DIR/buttons_report.txt" fi # Проверка кнопки "Удалить" echo "" >> "$REPORT_DIR/buttons_report.txt" echo "🔹 КНОПКА «УДАЛИТЬ»:" >> "$REPORT_DIR/buttons_report.txt" if grep -q "Удалить.*method: :delete" engines/smer_diary/app/views/smer_diary/entries/show.html.erb 2>/dev/null; then echo " ✅ Есть с confirm" >> "$REPORT_DIR/buttons_report.txt" else echo " ❌ Нет кнопки удаления" >> "$REPORT_DIR/buttons_report.txt" fi # Проверка навигации браузера echo "" >> "$REPORT_DIR/buttons_report.txt" echo "🌐 ПРОБЛЕМА СТРЕЛКИ НАЗАД:" >> "$REPORT_DIR/buttons_report.txt" echo " ⚠️ Turbo Frame не сохраняет историю браузера" >> "$REPORT_DIR/buttons_report.txt" echo " 💡 Решение: добавить data-turbo-action='replace' или кнопки навигации" >> "$REPORT_DIR/buttons_report.txt" # ========================================= # 4. Генерация исправлений # ========================================= echo "" >> "$REPORT_DIR/buttons_report.txt" echo "🔧 4. ИСПРАВЛЕНИЯ:" >> "$REPORT_DIR/buttons_report.txt" echo "" >> "$REPORT_DIR/buttons_report.txt" cat << 'FIX_EOF' >> "$REPORT_DIR/buttons_report.txt" 🔹 ДЛЯ ИСПРАВЛЕНИЯ СТРЕЛКИ НАЗАД: Вариант А (кнопки везде): - В show.html.erb добавить: <%= link_to "← Назад", smer_diary_client_entries_path(@client_id), data: { turbo_frame: "active_module" } %> - В edit.html.erb добавить: <%= link_to "← Отмена", smer_diary_client_entry_path(@client_id, @entry), data: { turbo_frame: "active_module" } %> Вариант Б (Turbo Drive): - В ссылках добавить: data: { turbo_action: "replace" } - Тогда браузер будет сохранять историю 🔹 ДЛЯ ПОЛНОГО CRUD: - show.html.erb: нужны кнопки Редактировать и Удалить - edit.html.erb: нужна форма и кнопка Отмена - index.html.erb: у нас уже есть FIX_EOF # ========================================= # 5. Копируем в буфер # ========================================= cat "$REPORT_DIR/buttons_report.txt" | pbcopy echo "" echo "✅ ГОТОВО! В буфере обмена (Cmd+V):" echo " - Все кнопки и ссылки из всех файлов" echo " - Анализ их поведения" echo " - Проблемы и исправления" echo "" echo "📊 Краткий итог:" grep -E "✅|❌|⚠️|🔹" "$REPORT_DIR/buttons_report.txt" | head -15 echo ""