mirror of
https://codeberg.org/PLG-Development/PLG-MuDiCS
synced 2026-07-06 00:47:09 +00:00
fix(control): better folder view, especially for same named folders on different displays
This commit is contained in:
@@ -74,9 +74,14 @@ done
|
||||
for (const response_element of response) {
|
||||
// filter hidden files (start with '.' -> './.config')
|
||||
if (response_element.name.charAt(2) !== '.') {
|
||||
const truncated = {
|
||||
...response_element,
|
||||
created: response_element.created.slice(0, 16) // truncated to YYYY-MM-DD hh-mm -> no (milli)seconds
|
||||
};
|
||||
|
||||
const folder_element: FolderElement = {
|
||||
id: get_uuid(),
|
||||
hash: JSON.stringify(response_element),
|
||||
hash: JSON.stringify(truncated),
|
||||
name: response_element.name.slice(2), // remove "./"
|
||||
type: response_element.type,
|
||||
date_created: new Date(response_element.created),
|
||||
|
||||
@@ -191,15 +191,21 @@ export function get_current_folder_elements(all_files: Record<string, Record<str
|
||||
FileOnDisplay:
|
||||
for (const file_on_display of files_on_display_array[key]) {
|
||||
for (const existing_file of files) {
|
||||
const both_same_folder = file_on_display.type === "inode/directory" && existing_file.type === "inode/directory" && file_on_display.name === existing_file.name;
|
||||
if (both_same_folder && file_on_display.size !== existing_file.size) {
|
||||
existing_file.size = -1;
|
||||
}
|
||||
if (file_on_display.hash === existing_file.hash) {
|
||||
continue FileOnDisplay;
|
||||
} else if (both_same_folder) {
|
||||
existing_file.date_created = null;
|
||||
continue FileOnDisplay;
|
||||
}
|
||||
}
|
||||
files.push(file_on_display);
|
||||
files.push({ ...file_on_display });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return sort_files(files);
|
||||
}
|
||||
|
||||
|
||||
@@ -30,10 +30,10 @@ export const supported_file_type_icon: Record<string, typeof X> = {
|
||||
|
||||
export type FolderElement = {
|
||||
id?: string;
|
||||
hash: string | null;
|
||||
hash: string;
|
||||
name: string;
|
||||
type: string;
|
||||
date_created: Date;
|
||||
date_created: Date | null;
|
||||
size: number;
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ export function get_uuid(): string {
|
||||
}
|
||||
|
||||
export function get_file_size_display_string(size: number, toFixed: number | null = null): string {
|
||||
if (size < 0) return toFixed === null ? "versch." : "Verschiedene Größen auf verschiedenen Bildschirmen";
|
||||
if (size === 0) return "0 B";
|
||||
|
||||
const k = 1024;
|
||||
|
||||
Reference in New Issue
Block a user