fix3
parent
822c2d4c94
commit
ec65dd6cec
|
|
@ -304,16 +304,7 @@
|
|||
console.error("Error loading folders:", textStatus, error);
|
||||
});
|
||||
},
|
||||
'check_callback': true,
|
||||
'sort': function (a, b) {
|
||||
// Сортировка по имени при загрузке
|
||||
const nodeA = this.get_node(a);
|
||||
const nodeB = this.get_node(b);
|
||||
if (nodeA.parent === nodeB.parent && nodeA.parent === '#') {
|
||||
return nodeA.text.localeCompare(nodeB.text);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
'check_callback': true
|
||||
},
|
||||
'plugins': ['dnd', 'html_data'],
|
||||
'dnd': {
|
||||
|
|
@ -432,7 +423,7 @@
|
|||
|
||||
function sortInstalls(field, filteredInstalls = null) {
|
||||
let installs = filteredInstalls || (selectedFolderId
|
||||
? allInstalls.filter(i => i.folder_id == selectedFolderId && i.folder_id !== null)
|
||||
? allInstalls.filter(i => i.folder_id == folderId && i.folder_id !== null)
|
||||
: allInstalls);
|
||||
|
||||
if (field) {
|
||||
|
|
@ -760,19 +751,46 @@
|
|||
}
|
||||
|
||||
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.sort(instance.get_container().children('ul').find('li'), function (a, b) {
|
||||
return instance.get_text(a).localeCompare(instance.get_text(b));
|
||||
});
|
||||
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`);
|
||||
return;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: `${API_URL}/folders/${folderId}`,
|
||||
type: 'PUT',
|
||||
contentType: 'application/json',
|
||||
data: JSON.stringify({ parent_id: newParentId }),
|
||||
data: JSON.stringify({ name: folder.name, parent_id: newParentId }),
|
||||
success: function () {
|
||||
console.log(`Folder ${folderId} moved to parent ${newParentId}`);
|
||||
loadFolders();
|
||||
|
|
@ -780,8 +798,9 @@
|
|||
},
|
||||
error: function (xhr, status, error) {
|
||||
console.error("Error saving folder position:", status, error);
|
||||
console.error("Response:", xhr.responseText);
|
||||
alert("Не удалось сохранить новое положение папки. Проверьте консоль.");
|
||||
$('#folder-tree').jstree(true).refresh(); // Восстанавливаем предыдущее состояние
|
||||
$('#folder-tree').jstree(true).refresh();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue