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:
@@ -90,8 +90,12 @@ impl FolderFsRepository {
|
|||||||
let mut entries = result.map_err(|e| FolderRepositoryError::StorageError(e.to_string()))?;
|
let mut entries = result.map_err(|e| FolderRepositoryError::StorageError(e.to_string()))?;
|
||||||
let mut count = 0;
|
let mut count = 0;
|
||||||
|
|
||||||
// Count entries manually
|
// Count entries manually, skipping hidden/system directories
|
||||||
while let Ok(Some(_)) = entries.next_entry().await {
|
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;
|
count += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -474,6 +478,12 @@ impl FolderRepository for FolderFsRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let folder_name = entry.file_name().to_string_lossy().to_string();
|
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 folder_storage_path = parent_storage_path.join(&folder_name);
|
||||||
|
|
||||||
let get_folder_timeout = Duration::from_secs(5);
|
let get_folder_timeout = Duration::from_secs(5);
|
||||||
@@ -602,6 +612,13 @@ impl FolderRepository for FolderFsRepository {
|
|||||||
continue;
|
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 path = entry.path();
|
||||||
let rel_path = match path.strip_prefix(&self.root_path) {
|
let rel_path = match path.strip_prefix(&self.root_path) {
|
||||||
Ok(rel) => StoragePath::from(rel.to_path_buf()),
|
Ok(rel) => StoragePath::from(rel.to_path_buf()),
|
||||||
|
|||||||
+1
-1
@@ -68,7 +68,7 @@ const ALL_LANGUAGES = [
|
|||||||
{ code: 'fr', name: 'French', nativeName: 'Français', flag: '🇫🇷', popular: true },
|
{ code: 'fr', name: 'French', nativeName: 'Français', flag: '🇫🇷', popular: true },
|
||||||
{ code: 'de', name: 'German', nativeName: 'Deutsch', flag: '🇩🇪', popular: true },
|
{ code: 'de', name: 'German', nativeName: 'Deutsch', flag: '🇩🇪', popular: true },
|
||||||
{ code: 'pt', name: 'Portuguese', nativeName: 'Português', 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: 'ru', name: 'Russian', nativeName: 'Русский', flag: '🇷🇺', popular: false },
|
||||||
{ code: 'ja', name: 'Japanese', nativeName: '日本語', flag: '🇯🇵', popular: false },
|
{ code: 'ja', name: 'Japanese', nativeName: '日本語', flag: '🇯🇵', popular: false },
|
||||||
{ code: 'ko', name: 'Korean', nativeName: '한국어', flag: '🇰🇷', popular: false },
|
{ code: 'ko', name: 'Korean', nativeName: '한국어', flag: '🇰🇷', popular: false },
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ function getAvailableLanguages() {
|
|||||||
{ code: 'fa', name: 'فارسی', flag: '🇮🇷' },
|
{ code: 'fa', name: 'فارسی', flag: '🇮🇷' },
|
||||||
{ code: 'fr', name: 'Français', flag: '🇫🇷' },
|
{ code: 'fr', name: 'Français', flag: '🇫🇷' },
|
||||||
{ code: 'de', name: 'Deutsch', flag: '🇩🇪' },
|
{ code: 'de', name: 'Deutsch', flag: '🇩🇪' },
|
||||||
{ code: 'pt', name: 'Português', flag: '🇧🇷' }
|
{ code: 'pt', name: 'Português', flag: '🇧🇷' },
|
||||||
|
{ code: 'it', name: 'Italiano', flag: '🇮🇹' }
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user