From 2e0e2b288f96b4a447ccd78659578d4746fbc8b8 Mon Sep 17 00:00:00 2001
From: David Siegfried <david.siegfried@uni-vechta.de>
Date: Tue, 16 Aug 2022 14:16:07 +0000
Subject: [PATCH] show folder-size, closes #1402

Closes #1402

Merge request studip/studip!894
---
 app/controllers/file.php | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/app/controllers/file.php b/app/controllers/file.php
index 2ee852ea63e..f41d87ba0b6 100644
--- a/app/controllers/file.php
+++ b/app/controllers/file.php
@@ -331,12 +331,7 @@ class FileController extends AuthenticatedController
 
             //The file system object is a folder.
             //Calculate the files and the folder size:
-            $this->folder_size = 0;
-            $this->folder_file_amount = 0;
-            foreach ($this->folder->getFiles() as $file) {
-                $this->folder_file_amount++;
-                $this->folder_size += $file->getSize();
-            }
+            list($this->folder_size, $this->folder_file_amount) = $this->getFolderSize($this->folder);
             PageLayout::setTitle($this->folder->name);
             $this->render_action('folder_details');
         }
@@ -1918,6 +1913,7 @@ class FileController extends AuthenticatedController
                 PageLayout::postMessage($result);
             }
         }
+        list($this->folder_size, $this->folder_file_amount) = $this->getFolderSize($folder);
     }
 
     public function delete_folder_action($folder_id)
@@ -2148,4 +2144,15 @@ class FileController extends AuthenticatedController
 
         return \FilesController::getRangeLink($folder) . '#fileref_' . $fileRef->id;
     }
+
+    private function getFolderSize($folder): array
+    {
+        $folder_size = 0;
+        $folder_file_amount = 0;
+        foreach ($folder->getFiles() as $file) {
+            $folder_size += $file->getSize();
+            $folder_file_amount++;
+        }
+        return [$folder_size, $folder_file_amount];
+    }
 }
-- 
GitLab