diff --git a/web-ui/src/api/birthdayanniversary.js b/web-ui/src/api/birthdayanniversary.js index b7f842f970..ba0245f62f 100644 --- a/web-ui/src/api/birthdayanniversary.js +++ b/web-ui/src/api/birthdayanniversary.js @@ -11,7 +11,11 @@ export const getAnniversaries = async (months, cookie) => { url: `${anniversaryReportUrl}?month=${month}`, headers: { 'X-CSRF-Header': cookie, Accept: 'application/json' } }); - results.push(...res.payload.data); + if (res.error) { + console.error(res.error); + } else { + results.push(...res.payload.data); + } } return results; }; diff --git a/web-ui/src/components/team-results/TeamsActions.jsx b/web-ui/src/components/team-results/TeamsActions.jsx index 81873bf46e..b37eee21b6 100644 --- a/web-ui/src/components/team-results/TeamsActions.jsx +++ b/web-ui/src/components/team-results/TeamsActions.jsx @@ -34,7 +34,6 @@ const TeamsActions = ({ isOpen, onOpen }) => { if (data) { dispatch({ type: ADD_TEAM, payload: data }); } - handleClose(); } }} headerText="Add A New Team" diff --git a/web-ui/src/context/selectors.js b/web-ui/src/context/selectors.js index 707c4b647f..a724740dc5 100644 --- a/web-ui/src/context/selectors.js +++ b/web-ui/src/context/selectors.js @@ -170,6 +170,10 @@ export const selectHasAdministerKudosPermission = hasPermission( 'CAN_ADMINISTER_KUDOS' ); +export const selectHasCreateKudosPermission = hasPermission( + 'CAN_CREATE_KUDOS' +); + export const selectHasDeleteMembersPermission = hasPermission( 'CAN_DELETE_ORGANIZATION_MEMBERS' ); @@ -198,6 +202,10 @@ export const selectCanViewCheckinsPermission = hasPermission( 'CAN_VIEW_CHECKINS' ); +export const selectCanUpdateCheckinsPermission = hasPermission( + 'CAN_UPDATE_CHECKINS' +); + export const selectCanEditSkills = hasPermission( 'CAN_EDIT_SKILLS' ); diff --git a/web-ui/src/pages/CheckinsPage.jsx b/web-ui/src/pages/CheckinsPage.jsx index 7a292fbbeb..4ac7b3c3f6 100644 --- a/web-ui/src/pages/CheckinsPage.jsx +++ b/web-ui/src/pages/CheckinsPage.jsx @@ -14,6 +14,7 @@ import { selectProfile, selectCheckinsForMember, selectCanViewCheckinsPermission, + selectCanUpdateCheckinsPermission, selectCanViewPrivateNotesPermission, } from '../context/selectors'; import { getCheckins, createNewCheckin } from '../context/thunks'; @@ -101,7 +102,7 @@ const CheckinsPage = () => { const handleClose = () => setOpen(false); const completeCheckin = async () => { - if (csrf) { + if (csrf && selectCanUpdateCheckinsPermission(state)) { const res = await updateCheckin( { ...currentCheckin, pdlId: selectedProfile.pdlId, completed: true }, csrf diff --git a/web-ui/src/pages/KudosPage.jsx b/web-ui/src/pages/KudosPage.jsx index f2fb2561b5..21074c0ed0 100644 --- a/web-ui/src/pages/KudosPage.jsx +++ b/web-ui/src/pages/KudosPage.jsx @@ -3,7 +3,11 @@ import { styled } from "@mui/material/styles"; import { Button, Tab, Typography } from "@mui/material"; import { TabContext, TabList, TabPanel } from "@mui/lab"; import { AppContext } from "../context/AppContext"; -import { selectCsrfToken, selectCurrentUser } from "../context/selectors"; +import { + selectCsrfToken, + selectCurrentUser, + selectHasCreateKudosPermission, +} from "../context/selectors"; import { getReceivedKudos, getSentKudos } from "../api/kudos"; import { UPDATE_TOAST } from "../context/actions"; import KudosCard from "../components/kudos_card/KudosCard"; @@ -116,14 +120,14 @@ const KudosPage = () => { open={kudosDialogOpen} onClose={() => setKudosDialogOpen(false)} /> - + }
diff --git a/web-ui/src/pages/SkillReportPage.jsx b/web-ui/src/pages/SkillReportPage.jsx index 2ad63fd682..e2728e0c90 100644 --- a/web-ui/src/pages/SkillReportPage.jsx +++ b/web-ui/src/pages/SkillReportPage.jsx @@ -59,12 +59,12 @@ const SkillReportPage = props => { let memberSkillsFound; if (res && res.payload) { memberSkillsFound = - res.payload.data.teamMembers && !res.error + !res.error && res.payload.data.teamMembers ? res.payload.data.teamMembers : undefined; } // Filter out skills of terminated members - memberSkillsFound = memberSkillsFound.filter(memberSkill => + memberSkillsFound = memberSkillsFound?.filter(memberSkill => memberIds.includes(memberSkill.id) ); if (memberSkillsFound && memberIds) { diff --git a/web-ui/src/pages/TeamSkillReportPage.jsx b/web-ui/src/pages/TeamSkillReportPage.jsx index 7737f30ac6..2b32a25fc0 100644 --- a/web-ui/src/pages/TeamSkillReportPage.jsx +++ b/web-ui/src/pages/TeamSkillReportPage.jsx @@ -77,7 +77,7 @@ const TeamSkillReportPage = () => { let memberSkillsFound; if (res && res.payload) { memberSkillsFound = - res.payload.data.teamMembers && !res.error + !res.error && res.payload.data.teamMembers ? res.payload.data.teamMembers : undefined; } diff --git a/web-ui/src/pages/ViewFeedbackPage.jsx b/web-ui/src/pages/ViewFeedbackPage.jsx index ab72edf7eb..b67fed9c9c 100644 --- a/web-ui/src/pages/ViewFeedbackPage.jsx +++ b/web-ui/src/pages/ViewFeedbackPage.jsx @@ -234,10 +234,12 @@ const ViewFeedbackPage = () => { //and associated template info together const templateReqs = []; const templateIds = []; - for (let i = 0; i < feedbackRequests.length; i++) { - if (!templateIds.includes(feedbackRequests[i].templateId)) { - templateIds.push(feedbackRequests[i].templateId); - templateReqs.push(getTemplateInfo(feedbackRequests[i].templateId)); + if (feedbackRequests) { + for (let i = 0; i < feedbackRequests.length; i++) { + if (!templateIds.includes(feedbackRequests[i].templateId)) { + templateIds.push(feedbackRequests[i].templateId); + templateReqs.push(getTemplateInfo(feedbackRequests[i].templateId)); + } } } let templates = await Promise.all(templateReqs); @@ -245,7 +247,7 @@ const ViewFeedbackPage = () => { map[template.id] = template; return map; }, {}); - feedbackRequests.forEach(request => { + feedbackRequests?.forEach(request => { request.templateInfo = templates[request.templateId]; }); return feedbackRequests;