diff --git a/templates/index.html b/templates/index.html index 175959e..84b5988 100644 --- a/templates/index.html +++ b/templates/index.html @@ -83,6 +83,15 @@ transform: translateY(-50%); margin-left: 0; } + /* Стили для подсветки папки при перетаскивании */ + .jstree-node.highlight { + background-color: #d4edda !important; /* Светлая тема */ + border: 2px dashed #28a745; + } + .jstree-node.highlight.dark-theme { + background-color: #2f4f4f !important; /* Темная тема */ + border: 2px dashed #5cb85c; + } .jstree-default-dark .jstree-clicked { background: #005580 !important; color: #e0e0e0 !important; @@ -498,6 +507,28 @@ const movedNode = data.node; const newParentId = movedNode.parent === '#' ? null : movedNode.parent; saveFolderPosition(movedNode.id, newParentId); + }).on('dragover.jstree', function (e) { + e.preventDefault(); + const node = $(e.target).closest('.jstree-node'); + if (node.length) { + node.addClass('highlight').addClass(document.body.classList.contains('dark-theme') ? 'dark-theme' : ''); + } + }).on('dragenter.jstree', function (e) { + e.preventDefault(); + const node = $(e.target).closest('.jstree-node'); + if (node.length) { + node.addClass('highlight').addClass(document.body.classList.contains('dark-theme') ? 'dark-theme' : ''); + } + }).on('dragleave.jstree', function (e) { + const node = $(e.target).closest('.jstree-node'); + if (node.length) { + node.removeClass('highlight'); + } + }).on('drop.jstree', function (e) { + const node = $(e.target).closest('.jstree-node'); + if (node.length) { + node.removeClass('highlight'); + } }); $('#search-input').on('input', function () { @@ -746,7 +777,7 @@ } const install = allInstalls.find(i => i.id === installId); if (install) { - data['protocol'] = install.protocol; // Сохраняем текущий protocol + data['protocol'] = install.protocol; } $.ajax({ url: `${API_URL}/install/${installId}`, @@ -792,7 +823,7 @@ contentType: 'application/json', data: JSON.stringify({ folder_id: folderId, - protocol: install.protocol // Добавляем текущее значение protocol + protocol: install.protocol }), success: function () { console.log('Move successful'); @@ -857,7 +888,7 @@ contentType: 'application/json', data: JSON.stringify({ note: note, - protocol: install.protocol // Сохраняем текущий protocol + protocol: install.protocol }), success: function () { loadInstalls(selectedFolderId);