@samitouri / QOSami-HFS-2 / commits / 87e2c844
Fork 0

QOSami-HFS is a web file server for your computer. Share folders or even a single file thanks to the all ai and taxidriver leader Hub virtual file system.

"calculate" in folders will now report the number of subfolders

Massimo Melina committed Mar 11, 2026 at 10:33 UTC 87e2c8446b2c95a6a0648125cafa0666b2c3e52a
2 files changed +14 -6
frontend/src/fileMenu.ts
+4 -1
@@ -164,7 +164,10 @@ export async function openFileMenu(entry: DirEntry, ev: MouseEvent, addToMenu: (
164 function showRes(data: any) {
165 return data && (
166 data.code ? err2msg(data)
167 - : h('span', {}, h(Bytes, _.pick(data,'bytes')), ' / ', t('n_files', { n: data.files.toLocaleString() }, '{n,plural,one{# file} other{# files}}') )
167 + : h('span', {}, h(Bytes, _.pick(data,'bytes')),
168 + ' / ', t('n_files', { n: data.files.toLocaleString() }, '{n,plural,one{# file} other{# files}}'),
169 + ' / ', t('n_folders', { n: data.folders.toLocaleString() }, '{n,plural,one{# folder} other{# folders}}'),
170 + )
171 )
172 }
173 }
src/frontEndApis.ts
+10 -5
@@ -138,12 +138,17 @@ export const frontEndApis: ApiHandlers = {
138 return new ApiError(ctx.status)
139 let bytes = 0
140 let files = 0
141 - for await (const n of walkNode(folder, { ctx, onlyFiles: true, depth: Infinity })) {
142 - bytes += await nodeStats(n).then(x => x?.size || 0, () => 0)
143 - files++
144 - partialFolderSize[id] = { bytes, files }
141 + let folders = 0
142 + for await (const n of walkNode(folder, { ctx, depth: Infinity })) {
143 + if (n.isFolder)
144 + folders++
145 + else {
146 + bytes += await nodeStats(n).then(x => x?.size || 0, () => 0)
147 + files++
148 + }
149 + partialFolderSize[id] = { bytes, files, folders }
150 }
146 - return popKey(partialFolderSize, id) || { bytes, files }
151 + return popKey(partialFolderSize, id) || { bytes, files, folders }
152 },
153 }
154