diff --git a/templates/index.html b/templates/index.html index 292241f..09f8a02 100644 --- a/templates/index.html +++ b/templates/index.html @@ -159,6 +159,19 @@ } .header-logo { display: flex; align-items: center; } .header-logo img { height: 50px; margin-right: 10px; } + #sort-folders-btn { + background: #007bff; + color: white; + border: 1px solid #007bff; + padding: 5px 10px; + border-radius: 3px; + cursor: pointer; + margin-left: 5px; + transition: background 0.2s ease; + } + #sort-folders-btn:hover { + background: #0056b3; + }
@@ -166,6 +179,7 @@Нет результатов
'); } else { @@ -443,7 +471,7 @@ contentType: 'application/json', data: JSON.stringify({ name, parent_id: selectedFolderId }), success: function () { - loadFolders(); // Обновляем список папок + loadFolders(); $('#folder-tree').jstree(true).refresh(); } }); @@ -459,7 +487,7 @@ contentType: 'application/json', data: JSON.stringify({ name: newName }), success: function () { - loadFolders(); // Обновляем список папок + loadFolders(); $('#folder-tree').jstree(true).refresh(); } }); @@ -478,7 +506,7 @@ moveInstallToFolder(item.id, null); }); }); - loadFolders(); // Обновляем список папок + loadFolders(); $('#folder-tree').jstree(true).refresh(); loadInstalls(selectedFolderId); }, @@ -725,12 +753,38 @@ } } - // Функция для копирования в буфер обмена без алерта function copyToClipboard(text) { navigator.clipboard.writeText(text).catch(err => { console.error('Ошибка копирования: ', err); }); } + + function sortFolders() { + const instance = $('#folder-tree').jstree(true); + instance.sort(instance.get_container().children('ul').find('li'), function (a, b) { + return instance.get_text(a).localeCompare(instance.get_text(b)); + }); + instance.refresh(); + } + + function saveFolderPosition(folderId, newParentId) { + $.ajax({ + url: `${API_URL}/folders/${folderId}`, + type: 'PUT', + contentType: 'application/json', + data: JSON.stringify({ parent_id: newParentId }), + success: function () { + console.log(`Folder ${folderId} moved to parent ${newParentId}`); + loadFolders(); + $('#folder-tree').jstree(true).refresh(); + }, + error: function (xhr, status, error) { + console.error("Error saving folder position:", status, error); + alert("Не удалось сохранить новое положение папки. Проверьте консоль."); + $('#folder-tree').jstree(true).refresh(); // Восстанавливаем предыдущее состояние + } + }); + }