fixes bugs
This commit is contained in:
parent
b9b15d20cd
commit
dde938c91d
|
|
@ -22,7 +22,8 @@
|
||||||
"Bash(.\\\\\\\\.venv\\\\\\\\Scripts\\\\\\\\python.exe -m pytest:*)",
|
"Bash(.\\\\\\\\.venv\\\\\\\\Scripts\\\\\\\\python.exe -m pytest:*)",
|
||||||
"Bash(..venvScriptsactivate)",
|
"Bash(..venvScriptsactivate)",
|
||||||
"Bash(pytest:*)",
|
"Bash(pytest:*)",
|
||||||
"Bash(source:*)"
|
"Bash(source:*)",
|
||||||
|
"Bash(find:*)"
|
||||||
],
|
],
|
||||||
"deny": [],
|
"deny": [],
|
||||||
"ask": []
|
"ask": []
|
||||||
|
|
|
||||||
|
|
@ -133,6 +133,49 @@ function setupEventListeners() {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// App bar buttons
|
||||||
|
const menuBtn = document.getElementById('menu-btn')
|
||||||
|
if (menuBtn) {
|
||||||
|
menuBtn.addEventListener('click', toggleDrawer)
|
||||||
|
}
|
||||||
|
|
||||||
|
const newQueryBtn = document.getElementById('new-query-btn')
|
||||||
|
if (newQueryBtn) {
|
||||||
|
newQueryBtn.addEventListener('click', () => queryBuilderUI.show())
|
||||||
|
}
|
||||||
|
|
||||||
|
const exportBtn = document.getElementById('export-btn')
|
||||||
|
if (exportBtn) {
|
||||||
|
exportBtn.addEventListener('click', window.exportAnalysis)
|
||||||
|
}
|
||||||
|
|
||||||
|
const importBtn = document.getElementById('import-btn')
|
||||||
|
if (importBtn) {
|
||||||
|
importBtn.addEventListener('click', window.importAnalysis)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Drawer buttons
|
||||||
|
const clearAllBtn = document.getElementById('clear-all-btn')
|
||||||
|
if (clearAllBtn) {
|
||||||
|
clearAllBtn.addEventListener('click', clearAll)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Query builder file operations
|
||||||
|
const loadRequestBtn = document.getElementById('load-request-btn')
|
||||||
|
if (loadRequestBtn) {
|
||||||
|
loadRequestBtn.addEventListener('click', loadRequestFromFile)
|
||||||
|
}
|
||||||
|
|
||||||
|
const loadResponseBtn = document.getElementById('load-response-btn')
|
||||||
|
if (loadResponseBtn) {
|
||||||
|
loadResponseBtn.addEventListener('click', loadResponseFromFile)
|
||||||
|
}
|
||||||
|
|
||||||
|
const validateJsonBtn = document.getElementById('validate-json-btn')
|
||||||
|
if (validateJsonBtn) {
|
||||||
|
validateJsonBtn.addEventListener('click', () => queryBuilderUI.validateJSONMode())
|
||||||
|
}
|
||||||
|
|
||||||
// Setup UI component listeners
|
// Setup UI component listeners
|
||||||
authUI.setupListeners()
|
authUI.setupListeners()
|
||||||
settingsUI.setupListeners()
|
settingsUI.setupListeners()
|
||||||
|
|
@ -165,6 +208,89 @@ function setupEventListeners() {
|
||||||
console.log('Event listeners setup complete')
|
console.log('Event listeners setup complete')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ============================================
|
||||||
|
// UI Utility Functions
|
||||||
|
// ============================================
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggle drawer visibility (mobile)
|
||||||
|
*/
|
||||||
|
function toggleDrawer() {
|
||||||
|
const drawer = document.getElementById('drawer')
|
||||||
|
if (drawer) {
|
||||||
|
drawer.classList.toggle('collapsed')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clear all data and reload page
|
||||||
|
*/
|
||||||
|
function clearAll() {
|
||||||
|
if (confirm('Очистить все данные и обновить страницу? Несохраненные изменения будут потеряны.')) {
|
||||||
|
window.location.reload()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load request from JSON file
|
||||||
|
*/
|
||||||
|
function loadRequestFromFile() {
|
||||||
|
const input = document.createElement('input')
|
||||||
|
input.type = 'file'
|
||||||
|
input.accept = 'application/json'
|
||||||
|
|
||||||
|
input.onchange = async (e) => {
|
||||||
|
const file = e.target.files[0]
|
||||||
|
if (!file) return
|
||||||
|
|
||||||
|
try {
|
||||||
|
const requestBody = await queryService.loadRequestFromFile(file)
|
||||||
|
|
||||||
|
// Load into textarea
|
||||||
|
const jsonTextarea = document.getElementById('json-textarea')
|
||||||
|
if (jsonTextarea) {
|
||||||
|
jsonTextarea.value = JSON.stringify(requestBody, null, 2)
|
||||||
|
queryBuilderUI.validateJSONMode()
|
||||||
|
}
|
||||||
|
|
||||||
|
showToast(`Загружен запрос: ${requestBody.length} вопросов`, 'success')
|
||||||
|
} catch (error) {
|
||||||
|
showToast(`Ошибка загрузки запроса: ${error.message}`, 'error')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
input.click()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load response from JSON file
|
||||||
|
*/
|
||||||
|
function loadResponseFromFile() {
|
||||||
|
const input = document.createElement('input')
|
||||||
|
input.type = 'file'
|
||||||
|
input.accept = 'application/json'
|
||||||
|
|
||||||
|
input.onchange = async (e) => {
|
||||||
|
const file = e.target.files[0]
|
||||||
|
if (!file) return
|
||||||
|
|
||||||
|
try {
|
||||||
|
const currentEnvKey = appState.getCurrentEnvironment()
|
||||||
|
await queryService.loadResponseFromFile(file, currentEnvKey)
|
||||||
|
|
||||||
|
// Update UI
|
||||||
|
questionsListUI.render()
|
||||||
|
answerViewerUI.render(0, annotationsUI.loadForAnswer)
|
||||||
|
|
||||||
|
showToast(`Загружен ответ`, 'success')
|
||||||
|
} catch (error) {
|
||||||
|
showToast(`Ошибка загрузки ответа: ${error.message}`, 'error')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
input.click()
|
||||||
|
}
|
||||||
|
|
||||||
// ============================================
|
// ============================================
|
||||||
// Export/Import Functions
|
// Export/Import Functions
|
||||||
// ============================================
|
// ============================================
|
||||||
|
|
|
||||||
|
|
@ -253,7 +253,7 @@ export function handleApiModeChange() {
|
||||||
* Инициализация обработчиков событий
|
* Инициализация обработчиков событий
|
||||||
*/
|
*/
|
||||||
export function setupListeners() {
|
export function setupListeners() {
|
||||||
const openBtn = document.getElementById('open-settings-btn')
|
const openBtn = document.getElementById('settings-btn')
|
||||||
const closeBtn = document.getElementById('close-settings-btn')
|
const closeBtn = document.getElementById('close-settings-btn')
|
||||||
const saveBtn = document.getElementById('save-settings-btn')
|
const saveBtn = document.getElementById('save-settings-btn')
|
||||||
const resetBtn = document.getElementById('reset-settings-btn')
|
const resetBtn = document.getElementById('reset-settings-btn')
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue