Files
crm.clientright.ru/debug_nextcloud_button.html

186 lines
9.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>🔍 Отладка кнопки Nextcloud</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container" style="margin-top: 30px;">
<h1><i class="fa fa-bug"></i> Отладка интеграции Nextcloud</h1>
<div class="alert alert-info">
<strong>Цель:</strong> Проверить, работает ли кнопка "Редактировать" и JavaScript
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Тестовые кнопки</h3>
</div>
<div class="panel-body">
<p><strong>Тестовый файл:</strong> test-document.docx</p>
<p><strong>Record ID:</strong> 392936</p>
<div class="btn-group-vertical" style="width: 100%; margin-bottom: 20px;">
<button type="button" class="btn btn-primary" onclick="testFunction1()">
<i class="fa fa-test"></i> Тест 1: Простая функция
</button>
<button type="button" class="btn btn-success" onclick="testFunction2()">
<i class="fa fa-cog"></i> Тест 2: API вызов
</button>
<button type="button" class="btn btn-warning" onclick="openNextcloudEditor('392936', 'test-document.docx')">
<i class="fa fa-edit"></i> Тест 3: Оригинальная функция
</button>
<button type="button" class="btn btn-info" onclick="testDirectAPI()">
<i class="fa fa-rocket"></i> Тест 4: Прямой API вызов
</button>
</div>
<h4>Лог событий:</h4>
<div id="debugLog" style="background: #f5f5f5; padding: 15px; border: 1px solid #ddd; min-height: 200px; font-family: monospace; font-size: 12px; overflow-y: auto;">
<div class="text-muted">Лог будет появляться здесь...</div>
</div>
<div style="margin-top: 15px;">
<button class="btn btn-default" onclick="clearLog()">Очистить лог</button>
<button class="btn btn-default" onclick="showConsoleErrors()">Показать ошибки консоли</button>
</div>
</div>
</div>
</div>
<!-- Подключаем наш JavaScript -->
<script src="crm_extensions/nextcloud_editor/js/nextcloud-editor.js"></script>
<script>
// Функции отладки
function log(message) {
var timestamp = new Date().toLocaleTimeString();
var logDiv = document.getElementById('debugLog');
logDiv.innerHTML += '<div style="margin: 2px 0; padding: 2px; border-left: 3px solid #007bff;">[' + timestamp + '] ' + message + '</div>';
logDiv.scrollTop = logDiv.scrollHeight;
console.log('[DEBUG] ' + message);
}
function clearLog() {
document.getElementById('debugLog').innerHTML = '<div class="text-muted">Лог очищен...</div>';
}
function showConsoleErrors() {
log('=== СОСТОЯНИЕ КОНСОЛИ ===');
log('jQuery доступен: ' + (typeof $ !== 'undefined'));
log('Bootstrap доступен: ' + (typeof $.fn.modal !== 'undefined'));
log('openNextcloudEditor доступен: ' + (typeof openNextcloudEditor !== 'undefined'));
}
function testFunction1() {
log('✅ Тест 1: Простая функция работает!');
alert('Тест 1 прошёл успешно!');
}
function testFunction2() {
log('🔄 Тест 2: Начинаем API вызов...');
// Мокаем app объект если его нет
if (typeof app === 'undefined') {
window.app = {
helper: {
showProgress: function(msg) {
log('📋 Progress: ' + msg);
return { hide: function() { log('✅ Progress hidden'); } };
},
hideProgress: function() { log('✅ Progress hidden (global)'); },
showSuccessNotification: function(opts) {
log('✅ Success: ' + opts.message);
alert('✅ ' + opts.message);
},
showErrorNotification: function(opts) {
log('❌ Error: ' + opts.message);
alert('❌ ' + opts.message);
}
}
};
log('📦 Создан мок app объект');
}
var apiUrl = 'crm_extensions/file_storage/api/test_upload.php?record=392936&filename=test-document.docx';
log('🌐 API URL: ' + apiUrl);
$.get(apiUrl)
.done(function(response) {
log('✅ API ответ получен: ' + JSON.stringify(response).substring(0, 100) + '...');
if (response.success) {
log('🎉 API вернул success=true');
log('📝 Файл: ' + response.file_name);
log('🔗 Edit URL: ' + response.edit_url);
} else {
log('❌ API вернул success=false: ' + response.error);
}
})
.fail(function(xhr, status, error) {
log('💥 API ошибка: ' + status + ' - ' + error);
log('📄 Response: ' + xhr.responseText.substring(0, 200));
});
}
function testDirectAPI() {
log('🚀 Тест 4: Прямой тест модального окна');
// Создаём тестовое модальное окно
var testModal = `
<div class="modal fade" id="testModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">🧪 Тестовое модальное окно</h4>
<button type="button" class="close" data-dismiss="modal">
<span>&times;</span>
</button>
</div>
<div class="modal-body">
<p>Это тестовое модальное окно для проверки Bootstrap.</p>
<p>Если вы видите это окно, значит Bootstrap работает правильно!</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button>
</div>
</div>
</div>
</div>
`;
$('body').append(testModal);
$('#testModal').modal('show');
log('📱 Тестовое модальное окно показано');
// Удаляем через 5 секунд
setTimeout(function() {
$('#testModal').remove();
log('🗑️ Тестовое модальное окно удалено');
}, 5000);
}
// Перехватываем ошибки JavaScript
window.onerror = function(msg, url, line, col, error) {
log('💥 JavaScript Error: ' + msg + ' at ' + url + ':' + line);
return false;
};
// Логируем загрузку
$(document).ready(function() {
log('🎯 Страница отладки загружена');
log('📦 jQuery версия: ' + $.fn.jquery);
showConsoleErrors();
});
</script>
</body>
</html>