From e19b192a82565b3618c743a3a41f0fe9699bfc15 Mon Sep 17 00:00:00 2001 From: Chad Elliott Date: Thu, 31 Oct 2024 11:27:04 -0500 Subject: [PATCH 1/4] Remove the ripple effect from these buttons so the test consistently passes. --- web-ui/src/components/settings/types/boolean.jsx | 1 + web-ui/src/pages/SettingsPage.jsx | 1 + web-ui/src/pages/__snapshots__/SettingsPage.test.jsx.snap | 6 ------ 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/web-ui/src/components/settings/types/boolean.jsx b/web-ui/src/components/settings/types/boolean.jsx index 9c724bcdf5..9d7c476feb 100644 --- a/web-ui/src/components/settings/types/boolean.jsx +++ b/web-ui/src/components/settings/types/boolean.jsx @@ -26,6 +26,7 @@ const SettingsBoolean = ({ name, description, value, handleChange }) => { {description &&

{description}

} { selectHasAdministerSettingsPermission(state) &&
From e1ea9d5fb9fdd08c1c0e3ac37c45e627997f9862 Mon Sep 17 00:00:00 2001 From: Chad Elliott Date: Thu, 31 Oct 2024 12:19:51 -0500 Subject: [PATCH 2/4] Added the skeleton loader when running the queries. --- web-ui/src/pages/AnniversaryReportPage.jsx | 25 +++++++++++++++++++--- web-ui/src/pages/BirthdayReportPage.jsx | 24 ++++++++++++++++++--- 2 files changed, 43 insertions(+), 6 deletions(-) diff --git a/web-ui/src/pages/AnniversaryReportPage.jsx b/web-ui/src/pages/AnniversaryReportPage.jsx index 04763cdbfb..5f5977594b 100644 --- a/web-ui/src/pages/AnniversaryReportPage.jsx +++ b/web-ui/src/pages/AnniversaryReportPage.jsx @@ -18,6 +18,7 @@ import { noPermission, } from '../context/selectors'; import { useQueryParameters } from '../helpers/query-parameters'; +import SkeletonLoader from '../components/skeleton_loader/SkeletonLoader'; const months = [ 'January', @@ -43,6 +44,7 @@ const AnniversaryReportPage = () => { const [searchAnniversaryResults, setSearchAnniversaryResults] = useState([]); const [selectedMonths, setSelectedMonths] = useState(defaultMonths); const [hasSearched, setHasSearched] = useState(false); + const [loading, setLoading] = useState(false); useQueryParameters([ { @@ -57,9 +59,22 @@ const AnniversaryReportPage = () => { ]); const handleSearch = async monthsToSearch => { - const anniversaryResults = await getAnniversaries(monthsToSearch, csrf); - setSearchAnniversaryResults(sortAnniversaries(anniversaryResults)); - setHasSearched(true); + setLoading(true); + try { + const anniversaryResults = await getAnniversaries(monthsToSearch, csrf); + setSearchAnniversaryResults(sortAnniversaries(anniversaryResults)); + setHasSearched(true); + } catch(e) { + console.error(e); + window.snackDispatch({ + type: UPDATE_TOAST, + payload: { + severity: 'error', + toast: e, + } + }); + } + setLoading(false); }; function onMonthChange(event, newValue) { @@ -111,6 +126,10 @@ const AnniversaryReportPage = () => {
{ + loading ? + Array.from({ length: 10 }).map((_, index) => ( + + )) :
{ const [searchBirthdayResults, setSearchBirthdayResults] = useState([]); const [selectedMonths, setSelectedMonths] = useState(defaultMonths); const [hasSearched, setHasSearched] = useState(false); + const [loading, setLoading] = useState(false); useQueryParameters([ { @@ -57,9 +59,21 @@ const BirthdayReportPage = () => { ]); const handleSearch = async monthsToSearch => { - const birthdayResults = await getBirthdays(monthsToSearch, csrf); - setSearchBirthdayResults(sortBirthdays(birthdayResults)); - setHasSearched(true); + setLoading(true); + try { + const birthdayResults = await getBirthdays(monthsToSearch, csrf); + setSearchBirthdayResults(sortBirthdays(birthdayResults)); + setHasSearched(true); + } catch(e) { + window.snackDispatch({ + type: UPDATE_TOAST, + payload: { + severity: 'error', + toast: e, + } + }); + } + setLoading(false); }; function onMonthChange(event, newValue) { @@ -111,6 +125,10 @@ const BirthdayReportPage = () => {
{ + loading ? + Array.from({ length: 10 }).map((_, index) => ( + + )) :
Date: Thu, 31 Oct 2024 13:50:20 -0500 Subject: [PATCH 3/4] Saving member roles will invalidate the role-permission-cache. --- .../services/role/member_roles/MemberRoleController.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server/src/main/java/com/objectcomputing/checkins/services/role/member_roles/MemberRoleController.java b/server/src/main/java/com/objectcomputing/checkins/services/role/member_roles/MemberRoleController.java index 8a5d5786d6..6e2b5942ec 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/role/member_roles/MemberRoleController.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/role/member_roles/MemberRoleController.java @@ -6,6 +6,7 @@ import io.micronaut.scheduling.annotation.ExecuteOn; import io.micronaut.security.annotation.Secured; import io.micronaut.security.rules.SecurityRule; +import io.micronaut.cache.annotation.CacheInvalidate; import jakarta.validation.constraints.NotNull; import java.util.List; @@ -34,6 +35,7 @@ HttpResponse deleteMemberRole(@NotNull UUID roleId, @NotNull UUID memberId){ } @Post + @CacheInvalidate(cacheNames = {"role-permission-cache"}) HttpResponse saveMemberRole(@NotNull @Body MemberRoleId id){ MemberRole memberRole = memberRoleServices.saveByIds(id.getMemberId(), id.getRoleId()); return HttpResponse.ok(memberRole); From a8e4da7323d1f38304ddbb72610f23a0f0943848 Mon Sep 17 00:00:00 2001 From: Michael Kimberlin Date: Thu, 31 Oct 2024 19:46:38 -0500 Subject: [PATCH 4/4] Version bump --- server/build.gradle | 2 +- web-ui/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server/build.gradle b/server/build.gradle index 48fc844641..7199ffecf8 100755 --- a/server/build.gradle +++ b/server/build.gradle @@ -7,7 +7,7 @@ plugins { id "jacoco" } -version "0.8.0" +version "0.8.1" group "com.objectcomputing.checkins" repositories { diff --git a/web-ui/package.json b/web-ui/package.json index 6d9f6e67d5..9e83f97098 100644 --- a/web-ui/package.json +++ b/web-ui/package.json @@ -1,6 +1,6 @@ { "name": "web-ui", - "version": "0.8.0", + "version": "0.8.1", "private": true, "type": "module", "dependencies": {