From 2b91fb7d104d6f74c197fe114bbf057fc4f1e064 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Tue, 22 Oct 2024 09:37:27 +0000 Subject: [PATCH] fix filter in files overview, fixes #3267 Closes #3267 Merge request studip/studip!3525 --- app/controllers/files.php | 5 +++-- app/views/files/flat.php | 9 +++++++-- resources/assets/stylesheets/scss/pagination.scss | 4 ---- resources/vue/components/FilesTable.vue | 4 +++- templates/pagination/buttons.php | 7 ------- templates/pagination/links.php | 7 ------- templates/sidebar/time-range-filter.php | 11 +++++++---- 7 files changed, 20 insertions(+), 27 deletions(-) diff --git a/app/controllers/files.php b/app/controllers/files.php index f5957d7d9e3..effdf627ac9 100644 --- a/app/controllers/files.php +++ b/app/controllers/files.php @@ -343,6 +343,7 @@ class FilesController extends AuthenticatedController if ($this->begin > $this->end) { $this->begin = clone $this->end; } + if ($this->begin instanceof DateTime) { $this->begin->setTime(0,0,0); } @@ -350,7 +351,7 @@ class FilesController extends AuthenticatedController $this->end->setTime(23,59,59); } - if (!is_array($_SESSION['files_overview'])) { + if (!isset($_SESSION['files_overview'])) { $_SESSION['files_overview'] = []; } $_SESSION['files_overview']['begin'] = $this->begin; @@ -359,7 +360,7 @@ class FilesController extends AuthenticatedController if (Request::submitted('course_id')) { $course_did_change = true; $this->course_id = Request::get('course_id'); - if (!is_array($_SESSION['files_overview'])) { + if (!isset($_SESSION['files_overview'])) { $_SESSION['files_overview'] = []; } $_SESSION['files_overview']['course_id'] = $this->course_id; diff --git a/app/views/files/flat.php b/app/views/files/flat.php index 1440117efed..3072256343f 100644 --- a/app/views/files/flat.php +++ b/app/views/files/flat.php @@ -56,9 +56,14 @@ foreach ($topFolder->getAdditionalActionButtons() as $button) { :topfolder="topfolder" :allow_filter="<?= json_encode(!empty($enable_table_filter)) ?>" table_title="<?= htmlReady($table_title ?? '') ?>" - pagination="<?= htmlReady($pagination_html ?? '') ?>" :initial_sort="{sortedBy:'chdate',sortDirection:'desc'}" - ></files-table> + > + <? if (!empty($pagination_html)): ?> + <template #pagination> + <?= $pagination_html ?> + </template> + <? endif; ?> + </files-table> </form> <? if (!empty($show_default_sidebar)) { diff --git a/resources/assets/stylesheets/scss/pagination.scss b/resources/assets/stylesheets/scss/pagination.scss index 7a921e05c7b..99b8adf7bc6 100644 --- a/resources/assets/stylesheets/scss/pagination.scss +++ b/resources/assets/stylesheets/scss/pagination.scss @@ -23,10 +23,6 @@ } } - .divider--template { - display: none; - } - .pagination--link { background-color: transparent; border: 0; diff --git a/resources/vue/components/FilesTable.vue b/resources/vue/components/FilesTable.vue index 1e19cc9f948..71db77ff8d2 100644 --- a/resources/vue/components/FilesTable.vue +++ b/resources/vue/components/FilesTable.vue @@ -298,7 +298,9 @@ <span v-if="tfoot_link" :colspan="(topfolder.buttons && show_bulk_actions ? 1 : numberOfColumns)"> <a :href="tfoot_link.href">{{tfoot_link.text}}</a> </span> - <span v-if="pagination" v-html="pagination" class="pagination"></span> + <slot name="pagination"> + <span v-if="pagination" v-html="pagination" class="pagination"></span> + </slot> </div> </td> </tr> diff --git a/templates/pagination/buttons.php b/templates/pagination/buttons.php index 1c62b10a83d..9bfd0bdc571 100644 --- a/templates/pagination/buttons.php +++ b/templates/pagination/buttons.php @@ -41,11 +41,4 @@ </button> </li> <? endif; ?> - - <li class="divider--template"> - <button class="pagination--link" name="<?= htmlReady($name) ?>" value="{{value}}" <? if ($dialog !== null) echo "data-dialog=\"{$dialog}\""; ?>> - <span class="audible"><?= _('Seite') ?></span> - {{label}} - </button> - </li> </ul> diff --git a/templates/pagination/links.php b/templates/pagination/links.php index 6d824ed93d8..007b77a719f 100644 --- a/templates/pagination/links.php +++ b/templates/pagination/links.php @@ -43,11 +43,4 @@ </a> </li> <? endif; ?> - - <li class="divider--template"> - <a class="pagination--link" href="<?= $link_for('{{value}}') ?>" <? if ($dialog !== null) echo "data-dialog=\"{$dialog}\""; ?>> - <span class="audible"><?= _('Seite') ?></span> - {{label}} - </a> - </li> </ul> diff --git a/templates/sidebar/time-range-filter.php b/templates/sidebar/time-range-filter.php index 97dbcf67820..059c51dc715 100644 --- a/templates/sidebar/time-range-filter.php +++ b/templates/sidebar/time-range-filter.php @@ -2,13 +2,16 @@ <?= CSRFProtection::tokenTag() ?> <label> <?= _('Dateien neuer als') ?>: - <input type="text" name="begin" value="<?= htmlReady($begin ?? '') ?>" - class="hasDatePicker"> + <input type="text" name="begin" id="begin" + value="<?= htmlReady($begin ?? '') ?>" + data-date-picker="<?= htmlReady(json_encode(['<=' => '#end'])) ?>"> </label> <label> <?= _('Dateien älter als') ?>: - <input type="text" name="end" value="<?= htmlReady($end ?? '') ?>" - class="hasDatePicker submit-on-change"> + <input type="text" name="end" id="end" + value="<?= htmlReady($end ?? '') ?>" + data-date-picker="<?= htmlReady(json_encode(['>=' => '#begin'])) ?>" + onchange="this.closest('form').submit()"> </label> <? if (!empty($course_options)) : ?> <label> -- GitLab