diff --git a/CHANGELOG.md b/CHANGELOG.md index fb3da326..f2de3836 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ - Rework `/public` Route. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/538)) ### Tweaks - Hide stats DB directory from files tree. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/530)) +- Make it so file tree doesn't reload on upload/delete. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/541)) +- Add upload completed feedback to file upload. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/541)) - Added further login screen customisation settings. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/531)) - Set backup filename to use same time as schedule. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/534)) - Move Schedules to from DB to Queue Datatype. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/535)) diff --git a/app/classes/shared/helpers.py b/app/classes/shared/helpers.py index 432276a0..cd7ae4fe 100644 --- a/app/classes/shared/helpers.py +++ b/app/classes/shared/helpers.py @@ -966,9 +966,12 @@ class Helpers: dpath = os.path.join(folder, filename) if os.path.isdir(rel): if filename not in self.ignored_names: - output += f"""
  • - \n
    - + output += f"""
  • + \n
    + {filename} @@ -977,7 +980,7 @@ class Helpers: \n""" else: if filename not in self.ignored_names: - output += f"""
  • - \n
    - + output += f"""
  • + \n
    + {filename} @@ -1015,7 +1021,7 @@ class Helpers:
  • """ else: if filename not in self.ignored_names: - output += f"""
  • { if (event.target.responseText == 'success') { - console.log('Upload for file', file.name, 'was successful!') + console.log('Upload for file', file.name, 'was successful!'); + let caught = false; + try { + var par_el = document.getElementById(path + "ul"); + var items = par_el.children; + } catch { + caught = true; + var par_el = document.getElementById("files-tree"); + var items = par_el.children; + } + let name = file.name; + console.log(par_el) + let full_path = path + '/' + name + let flag = false; + for (var k = 0; k < items.length; ++k) { + if ($(items[k]).attr("data-name") == name) { + flag = true; + } + } + if (!flag) { + if (caught) { + $(par_el).append('
  • ' + name + '
  • '); + } else { + $(par_el).append('
  • ' + name + '
  • '); + } + setTreeViewContext(); + } + $(`#upload-progress-bar-${i + 1}`).removeClass("progress-bar-striped"); + $(`#upload-progress-bar-${i + 1}`).addClass("bg-success"); + $(`#upload-progress-bar-${i + 1}`).html('') } else { alert('Upload failed with response: ' + event.target.responseText); @@ -735,7 +764,7 @@ let uploadWaitDialog; let doUpload = true; - function uploadFilesE(event) { + async function uploadFilesE(event) { path = event.target.parentElement.getAttribute('data-path'); $(function () { var uploadHtml = "
    " + @@ -795,7 +824,7 @@ `; $('#upload-progress-bar-parent').append(progressHtml); - sendFile(files.files[i], path, serverId, nFiles - i - 1, (progress) => { + await sendFile(files.files[i], path, serverId, nFiles - i - 1, i, (progress) => { $(`#upload-progress-bar-${i + 1}`).attr('aria-valuenow', progress) $(`#upload-progress-bar-${i + 1}`).css('width', progress + '%') }); @@ -996,7 +1025,6 @@ function hideUploadBox() { if (!uploadWaitDialog) return; uploadWaitDialog.modal('hide'); - getTreeView(); } function createFileE(event) { @@ -1074,7 +1102,8 @@ callback: function (result) { if (!result) return; deleteFile(path, function () { - getTreeView() + el = document.getElementById(path + "li"); + $(el).remove(); document.getElementById('files-tree-nav').style.display = 'none'; }); } @@ -1102,7 +1131,8 @@ callback: function (result) { if (!result) return; deleteDir(path, function () { - getTreeView() + el = document.getElementById(path + "li"); + $(el).remove(); document.getElementById('files-tree-nav').style.display = 'none'; }); }