From 4f2f2982ec1f4a65ffe834e2c21f847c8a945881 Mon Sep 17 00:00:00 2001
From: Samuel Weirich <4281791+SamuelWei@users.noreply.github.com>
Date: Wed, 29 Jan 2025 17:49:14 +0100
Subject: [PATCH] Fix Admin-UI management bugs (#1588)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Close multiselect dropdowns on selection
* Bugfix overlay reload buttons
* Fix overlays not shown after loading error (admin view pages)
* Fix search not disabled during loading (admin index pages)
* Fix dialog buttons not disabled correctly during actions on admin pages
* Fix error messages (AdminServerPoolsView, AdminRoomTypesView, AdminSettings)
* Fix error handling (AdminUsersIndex, AdminServerPoolsView (staleError), RoomTypesDeleteButton (404 error))
* Add missing loading retry button (Admin RoomTypesIndex)
* Add reload button for replacement room type (RoomTypesDeleteButton)
* Fix bbb logo image url input
* Fix access superuser attribute
* Fix accessing multiselect ref
* Permissions loading behaviour (AdminRolesView)
* Prevent dialogs from being closable during loading
* Update CHANGELOG.md
* Improve accessibility on reload buttons
---------
Co-authored-by: Sabrina Wüst <119059706+Sabr1n4W@users.noreply.github.com>
---
CHANGELOG.md | 20 +++++
app/Http/Requests/UpdateSettings.php | 2 +-
resources/js/components/RoleSelect.vue | 7 +-
.../components/SettingsRolesDeleteButton.vue | 3 +-
.../SettingsRoomTypesDeleteButton.vue | 87 +++++++++++--------
.../SettingsServerPoolsDeleteButton.vue | 3 +-
.../SettingsServersDeleteButton.vue | 3 +-
.../components/SettingsUsersDeleteButton.vue | 3 +-
.../SettingsUsersResetPasswordButton.vue | 3 +-
resources/js/components/TimezoneSelect.vue | 1 +
resources/js/components/UserTabEmail.vue | 2 +-
...rTabSecurityRolesAndPermissionsSection.vue | 2 +-
resources/js/views/AdminRolesIndex.vue | 2 +
resources/js/views/AdminRolesView.vue | 48 ++++++----
resources/js/views/AdminRoomTypesIndex.vue | 11 ++-
resources/js/views/AdminRoomTypesView.vue | 7 +-
resources/js/views/AdminServerPoolsIndex.vue | 2 +
resources/js/views/AdminServerPoolsView.vue | 9 +-
resources/js/views/AdminServersIndex.vue | 2 +
resources/js/views/AdminServersView.vue | 4 +-
resources/js/views/AdminSettings.vue | 8 +-
resources/js/views/AdminUsersIndex.vue | 11 +--
resources/js/views/AdminUsersNew.vue | 2 +-
resources/js/views/RoomsIndex.vue | 1 +
tests/Backend/Feature/api/v1/SettingsTest.php | 5 +-
25 files changed, 165 insertions(+), 83 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ef71f6531..f7b5ec446 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
+- Missing loading retry button on room types overview page ([#1588])
+- Reload button for replacement room type in delete dialog on room types overview page ([#1588])
- Permission restrictions to prevent non-superusers from editing and deleting superusers ([#1651])
- Permission restrictions to prevent non-superusers from assigning the superuser role ([#1651])
- Environment variable for configuring restricted permissions that cannot be assigned to non-superuser roles ([#1651])
@@ -21,11 +23,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Real-time input validation on create superuser command ([#1651])
- Error handling in room statistics ([#1535], [#1600])
- Error handling in room attendance ([#1535], [#1600])
+- Close multiselect dropdowns on selection ([#1588])
+- Permissions loading behaviour on view/edit page of roles ([#1588])
- Improve frontend tests for login page ([#1794])
- Access code input type on room settings section to hide browser arrow buttons ([#1827], [#1829])
### Fixed
+- Search not disabled during loading on the overview pages for roles, room types, servers and server pools ([#1675], [#1588])
+- Overlays not shown after loading error on view/edit pages of servers and server pools ([#1677], [#1588])
+- Dialog buttons not disabled correctly during actions on the overview/view/edit pages for roles, room types, servers and server pools ([#1711], [#1588])
+- Dialogs being closable during loading on the overview/view/edit pages for roles, room types, servers and server pools ([#1588])
+- Form validation error messages on view/edit pages room types, server pools and application settings ([#1588])
+- Error handling on the overview page of users ([#1588])
+- Stale error handling on the view/edit page of sever pools ([#1588])
+- 404 error handling on the room types delete dialog ([#1588])
+- Set empty BBB logo image url ([#1751], [#1588])
+- 401 error handling on view/edit/create page of users ([#1588])
+- Overlay reload buttons on view/edit/create page of roles, room types, servers and server pools ([#1588])
- Wrong error message shown for 422 errors when verifying email ([#1744], [#1758])
- Broken banner link style 'warning' ([#1759], [#1760])
- Inconsistent select/multiselect loading states ([#1772])
@@ -331,6 +346,7 @@ You can find the changelog for older versions there [here](https://github.com/TH
[#1559]: https://github.com/THM-Health/PILOS/issues/1559
[#1561]: https://github.com/THM-Health/PILOS/pull/1561
[#1565]: https://github.com/THM-Health/PILOS/pull/1565
+[#1588]: https://github.com/THM-Health/PILOS/pull/1588
[#1569]: https://github.com/THM-Health/PILOS/pull/1569
[#1595]: https://github.com/THM-Health/PILOS/pull/1595
[#1600]: https://github.com/THM-Health/PILOS/pull/1600
@@ -342,13 +358,17 @@ You can find the changelog for older versions there [here](https://github.com/TH
[#1618]: https://github.com/THM-Health/PILOS/pull/1618
[#1636]: https://github.com/THM-Health/PILOS/issues/1636
[#1651]: https://github.com/THM-Health/PILOS/issues/1651
+[#1675]: https://github.com/THM-Health/PILOS/issues/1675
+[#1677]: https://github.com/THM-Health/PILOS/issues/1677
[#1678]: https://github.com/THM-Health/PILOS/pull/1678
[#1679]: https://github.com/THM-Health/PILOS/issues/1679
[#1702]: https://github.com/THM-Health/PILOS/pull/1702
[#1704]: https://github.com/THM-Health/PILOS/pull/1704
+[#1711]: https://github.com/THM-Health/PILOS/issues/1711
[#1721]: https://github.com/THM-Health/PILOS/issues/1721
[#1724]: https://github.com/THM-Health/PILOS/pull/1724
[#1744]: https://github.com/THM-Health/PILOS/issues/1744
+[#1751]: https://github.com/THM-Health/PILOS/issues/1751
[#1758]: https://github.com/THM-Health/PILOS/pull/1758
[#1759]: https://github.com/THM-Health/PILOS/issues/1759
[#1760]: https://github.com/THM-Health/PILOS/pull/1760
diff --git a/app/Http/Requests/UpdateSettings.php b/app/Http/Requests/UpdateSettings.php
index daed11ab3..3b94a499f 100644
--- a/app/Http/Requests/UpdateSettings.php
+++ b/app/Http/Requests/UpdateSettings.php
@@ -77,7 +77,7 @@ public function rules()
'recording_attendance_retention_period' => ['required', 'numeric', Rule::enum(TimePeriod::class)],
'recording_recording_retention_period' => ['required', 'numeric', Rule::enum(TimePeriod::class)->except($disabledRecordingRetentionPeriods)],
- 'bbb_logo' => ['string', 'max:255'],
+ 'bbb_logo' => ['nullable', 'string', 'max:255'],
'bbb_logo_file' => ['image', 'max:500'],
'bbb_style' => ['nullable', 'file', 'max:500'],
'bbb_default_presentation' => ['nullable', 'file', 'max:'.(config('bigbluebutton.max_filesize') * 1000), 'mimes:'.config('bigbluebutton.allowed_file_mimes')],
diff --git a/resources/js/components/RoleSelect.vue b/resources/js/components/RoleSelect.vue
index 6ae39de9a..aab0f14f4 100644
--- a/resources/js/components/RoleSelect.vue
+++ b/resources/js/components/RoleSelect.vue
@@ -1,7 +1,7 @@
@@ -94,7 +95,7 @@