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/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); 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": { 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}

} { 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) => ( + + )) :
{ selectHasAdministerSettingsPermission(state) &&