main
Satur@it-depot.ru 2025-03-05 10:41:12 +03:00
parent e26ffa1953
commit 30ae8b76b6
2 changed files with 68 additions and 39 deletions

8
app.py
View File

@ -40,7 +40,7 @@ CREATE TABLE IF NOT EXISTS installs (
""")
conn.commit()
# Проверяем/создаем папку "Несортированные"
# Проверяем/создаем папку "Несортированные" и получаем её ID
cursor.execute("SELECT id FROM folders WHERE name = 'Несортированные'")
unsorted_folder = cursor.fetchone()
if not unsorted_folder:
@ -98,6 +98,12 @@ def update_folder(folder_id: int, folder: FolderUpdate):
@app.delete("/api/folders/{folder_id}")
def delete_folder(folder_id: int):
# Проверяем, не является ли папка "Несортированные"
cursor.execute("SELECT name FROM folders WHERE id = ?", (folder_id,))
folder_name = cursor.fetchone()
if folder_name and folder_name[0] == 'Несортированные':
raise HTTPException(status_code=403, detail="Папка 'Несортированные' не может быть удалена")
cursor.execute("DELETE FROM folders WHERE id = ?", (folder_id,))
conn.commit()
if cursor.rowcount == 0:

View File

@ -92,6 +92,12 @@
};
$(document).ready(function () {
// Получаем ID папки "Несортированные" перед инициализацией дерева
$.getJSON(`${API_URL}/folders`, function (folders) {
const unsortedFolder = folders.find(f => f.name === 'Несортированные');
const unsortedFolderId = unsortedFolder ? unsortedFolder.id : null;
// Инициализация дерева папок
$('#folder-tree').jstree({
'core': {
'data': function (node, cb) {
@ -116,6 +122,18 @@
loadInstalls(selectedFolderId);
});
// Автоматически выбираем "Несортированные" при загрузке
if (unsortedFolderId) {
setTimeout(() => {
$('#folder-tree').jstree('select_node', unsortedFolderId);
loadInstalls(unsortedFolderId);
}, 100); // Небольшая задержка, чтобы дерево инициализировалось
} else {
loadInstalls(null);
$('#folder-tree').jstree('select_node', 'root');
}
// Drag-and-drop для записей
$('#installs-list').on('dragstart', '.install-item', function (e) {
e.originalEvent.dataTransfer.setData('text/plain', $(this).data('id'));
});
@ -131,9 +149,7 @@
moveInstallToFolder(installId, targetFolderId);
}
});
loadInstalls(null);
$('#folder-tree').jstree('select_node', 'root');
});
});
function loadInstalls(folderId) {
@ -249,6 +265,13 @@
});
$('#folder-tree').jstree(true).refresh();
loadInstalls(selectedFolderId);
},
error: function (xhr, status, error) {
if (xhr.status === 403) {
alert("Нельзя удалить папку 'Несортированные'.");
} else {
console.error("Ошибка удаления:", status, error);
}
}
});
}