From 34b05937826ec0cfbf5dcb309ff84bd56d58e63d Mon Sep 17 00:00:00 2001 From: curo1305 Date: Fri, 29 May 2026 08:32:19 +0200 Subject: [PATCH] feat(05-08): add cloud tree components and getCloudFolders API function - Add getCloudFolders(provider, folderId) to api/client.js (GET /api/cloud/folders/{provider}/{folderId}) - Create CloudProviderTreeItem.vue: lazy-load folder tree per connection, providerIconColor computed, expand/collapse arrow, loading/error states - Create CloudFolderTreeItem.vue: recursive folder tree node with is_dir expand arrow, lazy-load children, depth padding --- frontend/src/api/client.js | 4 + .../components/cloud/CloudFolderTreeItem.vue | 128 ++++++++++++++++++ .../cloud/CloudProviderTreeItem.vue | 118 ++++++++++++++++ 3 files changed, 250 insertions(+) create mode 100644 frontend/src/components/cloud/CloudFolderTreeItem.vue create mode 100644 frontend/src/components/cloud/CloudProviderTreeItem.vue diff --git a/frontend/src/api/client.js b/frontend/src/api/client.js index aa5783f..8a37128 100644 --- a/frontend/src/api/client.js +++ b/frontend/src/api/client.js @@ -390,3 +390,7 @@ export function updateDefaultStorage(backend) { body: JSON.stringify({ backend }), }) } + +export function getCloudFolders(provider, folderId) { + return request(`/api/cloud/folders/${provider}/${folderId}`) +} diff --git a/frontend/src/components/cloud/CloudFolderTreeItem.vue b/frontend/src/components/cloud/CloudFolderTreeItem.vue new file mode 100644 index 0000000..7c8e875 --- /dev/null +++ b/frontend/src/components/cloud/CloudFolderTreeItem.vue @@ -0,0 +1,128 @@ + + + diff --git a/frontend/src/components/cloud/CloudProviderTreeItem.vue b/frontend/src/components/cloud/CloudProviderTreeItem.vue new file mode 100644 index 0000000..c1a33e8 --- /dev/null +++ b/frontend/src/components/cloud/CloudProviderTreeItem.vue @@ -0,0 +1,118 @@ + + +