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