From 4474e7a8145d4fd478fe5efbf7bba819a5ac17a0 Mon Sep 17 00:00:00 2001
From: Moritz Strohm <strohm@data-quest.de>
Date: Mon, 9 May 2022 12:01:54 +0000
Subject: [PATCH] fix for BIESt #800

Merge request studip/studip!587
---
 app/controllers/files.php | 32 +++++++++++++++++++++++++++++---
 1 file changed, 29 insertions(+), 3 deletions(-)

diff --git a/app/controllers/files.php b/app/controllers/files.php
index 4e114409ba6..9910398a8a6 100644
--- a/app/controllers/files.php
+++ b/app/controllers/files.php
@@ -270,7 +270,7 @@ class FilesController extends AuthenticatedController
         )->setActive($current_view == 'all_files');
 
         $views->addLink(
-            _('Persönlicher Dateibereich'),
+            _('Meine hochgeladenen Dateien'),
             $this->url_for('files/overview', ['view' => 'my_uploaded_files']),
             null,
             [],
@@ -506,10 +506,36 @@ class FilesController extends AuthenticatedController
                 $this->files[] = $file_ref->getFileType();
             }
         } elseif ($this->current_view == 'my_uploaded_files') {
+            $this->page_size = 25;
+            $this->page = 1;
+            if (!$course_did_change) {
+                $this->page = Request::get('page') + 1;
+            }
+            if (($this->page < 1) || !$this->page) {
+                $this->page = 1;
+            }
+            $offset = $this->page_size * ($this->page - 1);
+
             $this->addFiltersToOverviewSidebar(['time_range', 'course']);
-            $this->table_title = _('Persönlicher Dateibereich');
-            $file_refs = FileRef::findUploadedFiles($GLOBALS['user']->id, $this->begin, $this->end, $this->course_id);
+            $this->table_title = _('Meine hochgeladenen Dateien');
+            $file_refs = FileRef::findUploadedFiles($GLOBALS['user']->id, $this->begin, $this->end, $this->course_id, $this->page_size, $offset);
             $this->files_c = FileRef::countUploadedFiles($GLOBALS['user']->id, $this->begin, $this->end, $this->course_id);
+            $pagination = Pagination::create(
+                $this->files_c,
+                $this->page - 1,
+                $this->page_size
+            );
+            $this->pagination_html = $pagination->asLinks(
+                function ($page_id) {
+                    return URLHelper::getLink(
+                        'dispatch.php/files/overview',
+                        [
+                            'view' => 'my_uploaded_files',
+                            'page' => $page_id
+                        ]
+                    );
+                }
+            );
             $this->files = [];
             foreach ($file_refs as $file_ref) {
                 $this->files[] = $file_ref->getFileType();
-- 
GitLab