Fix: Hide system directories (.blobs, .trash, .dedup_temp) from all users

- Added directory name filtering in folder_fs_repository.rs
- Filters out directories starting with '.' in list_folders, list_folders_paginated, and count_directory_items
- Matches existing file listing behavior
- Also added Italian language to popular languages list

Fixes #87
This commit is contained in:
Dionisio
2026-02-13 19:46:38 +01:00
parent f34edefea7
commit c2c9bb700d
3 changed files with 22 additions and 4 deletions
@@ -90,8 +90,12 @@ impl FolderFsRepository {
let mut entries = result.map_err(|e| FolderRepositoryError::StorageError(e.to_string()))?;
let mut count = 0;
// Count entries manually
while let Ok(Some(_)) = entries.next_entry().await {
// Count entries manually, skipping hidden/system directories
while let Ok(Some(entry)) = entries.next_entry().await {
let name = entry.file_name().to_string_lossy().to_string();
if name.starts_with('.') {
continue;
}
count += 1;
}
@@ -474,6 +478,12 @@ impl FolderRepository for FolderFsRepository {
}
let folder_name = entry.file_name().to_string_lossy().to_string();
// Skip hidden/system directories (e.g. .blobs, .trash, .dedup_temp)
if folder_name.starts_with('.') {
continue;
}
let folder_storage_path = parent_storage_path.join(&folder_name);
let get_folder_timeout = Duration::from_secs(5);
@@ -602,6 +612,13 @@ impl FolderRepository for FolderFsRepository {
continue;
}
// Skip hidden/system directories (e.g. .blobs, .trash, .dedup_temp)
let dir_name = entry.file_name().to_string_lossy().to_string();
if dir_name.starts_with('.') {
current_idx += 1;
continue;
}
let path = entry.path();
let rel_path = match path.strip_prefix(&self.root_path) {
Ok(rel) => StoragePath::from(rel.to_path_buf()),
+1 -1
View File
@@ -68,7 +68,7 @@ const ALL_LANGUAGES = [
{ code: 'fr', name: 'French', nativeName: 'Français', flag: '🇫🇷', popular: true },
{ code: 'de', name: 'German', nativeName: 'Deutsch', flag: '🇩🇪', popular: true },
{ code: 'pt', name: 'Portuguese', nativeName: 'Português', flag: '🇧🇷', popular: true },
{ code: 'it', name: 'Italian', nativeName: 'Italiano', flag: '🇮🇹', popular: false },
{ code: 'it', name: 'Italian', nativeName: 'Italiano', flag: '🇮🇹', popular: true },
{ code: 'ru', name: 'Russian', nativeName: 'Русский', flag: '🇷🇺', popular: false },
{ code: 'ja', name: 'Japanese', nativeName: '日本語', flag: '🇯🇵', popular: false },
{ code: 'ko', name: 'Korean', nativeName: '한국어', flag: '🇰🇷', popular: false },
+2 -1
View File
@@ -16,7 +16,8 @@ function getAvailableLanguages() {
{ code: 'fa', name: 'فارسی', flag: '🇮🇷' },
{ code: 'fr', name: 'Français', flag: '🇫🇷' },
{ code: 'de', name: 'Deutsch', flag: '🇩🇪' },
{ code: 'pt', name: 'Português', flag: '🇧🇷' }
{ code: 'pt', name: 'Português', flag: '🇧🇷' },
{ code: 'it', name: 'Italiano', flag: '🇮🇹' }
];
}