main
Satur@it-depot.ru 2025-03-06 13:26:59 +03:00
parent ec65dd6cec
commit 8c57d7e4a8
1 changed files with 6 additions and 46 deletions

View File

@ -159,19 +159,6 @@
}
.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;
}
</style>
</head>
<body>
@ -179,7 +166,6 @@
<h2>Папки</h2>
<div id="folder-tree"></div>
<button onclick="addFolder()">Добавить папку</button>
<button id="sort-folders-btn" onclick="sortFolders()">Сортировать ⬆️</button>
</div>
<div id="installs-container">
<h1 class="header-logo">
@ -280,9 +266,11 @@
$.getJSON(`${API_URL}/folders`, function (data) {
console.log("Loaded folders:", data);
allFolders = data; // Сохраняем все папки
// Сортируем папки по имени
const sortedFolders = [...data].sort((a, b) => a.name.localeCompare(b.name));
const treeData = [
{ id: "root", text: "Корень", parent: "#" }
].concat(data.map(folder => ({
].concat(sortedFolders.map(folder => ({
id: folder.id,
text: `${folder.name} <span class="folder-actions">` +
`<button onclick="editFolder(${folder.id}, '${folder.name}')">✏️</button>` +
@ -292,7 +280,7 @@
cb(treeData);
// Автоматически выбираем папку "Несортированные" после загрузки дерева
const unsortedFolder = data.find(f => f.name === 'Несортированные');
const unsortedFolder = sortedFolders.find(f => f.name === 'Несортированные');
if (unsortedFolder) {
setTimeout(() => {
$('#folder-tree').jstree('select_node', unsortedFolder.id);
@ -349,7 +337,8 @@
function loadFolders() {
$.getJSON(`${API_URL}/folders`, function (data) {
allFolders = data; // Обновляем список папок
// Сортируем папки по имени перед сохранением
allFolders = [...data].sort((a, b) => a.name.localeCompare(b.name));
updateFolderSelect(); // Обновляем выпадающий список
}).fail(function(jqxhr, textStatus, error) {
console.error("Error loading folders:", textStatus, error);
@ -750,36 +739,7 @@
});
}
function sortFolders() {
// Получаем все папки из allFolders
const rootFolders = allFolders.filter(folder => !folder.parent_id || folder.parent_id === "root");
// Сортируем по имени
rootFolders.sort((a, b) => a.name.localeCompare(b.name));
// Обновляем порядок папок в allFolders
const sortedFolders = [];
const nonRootFolders = allFolders.filter(folder => folder.parent_id && folder.parent_id !== "root");
rootFolders.forEach(folder => sortedFolders.push(folder));
nonRootFolders.forEach(folder => sortedFolders.push(folder));
allFolders = sortedFolders;
// Перестраиваем дерево
const instance = $('#folder-tree').jstree(true);
instance.settings.core.data = [
{ id: "root", text: "Корень", parent: "#" }
].concat(allFolders.map(folder => ({
id: folder.id,
text: `${folder.name} <span class="folder-actions">` +
`<button onclick="editFolder(${folder.id}, '${folder.name}')">✏️</button>` +
`<button onclick="deleteFolder(${folder.id})">🗑️</button></span>`,
parent: folder.parent_id ? folder.parent_id : "root"
})));
instance.refresh();
}
function saveFolderPosition(folderId, newParentId) {
// Найдём имя папки, чтобы включить его в запрос
const folder = allFolders.find(f => f.id == folderId);
if (!folder) {
console.error(`Folder with id ${folderId} not found`);