From cf0020b1d0d4db208b410e32d3a21a72a75e3dd8 Mon Sep 17 00:00:00 2001 From: Vedant Gandhi Date: Sat, 21 Sep 2024 12:36:53 -0700 Subject: [PATCH 1/9] Fix assign team button hover at smaller resolutions --- .../TeamsAndProjects/UserTeamsTable.jsx | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx b/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx index bab1d42b55..dc6c80ee53 100644 --- a/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx +++ b/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx @@ -368,25 +368,34 @@ const UserTeamsTable = props => { {props.edit && props.role && ( - + {canAssignTeamToUsers ? ( props.disabled ? ( ) : ( - + <> + + + This team code should only used by admin/owner, and has nothing to do with + the team data model. + + ) ) : ( <> From 429c62021ac5de64d4327f060d4138568b31aad3 Mon Sep 17 00:00:00 2001 From: Vedant Gandhi Date: Mon, 23 Sep 2024 22:43:05 -0700 Subject: [PATCH 2/9] Updated message --- .../UserProfile/TeamsAndProjects/UserTeamsTable.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx b/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx index dc6c80ee53..ed8fa7a92e 100644 --- a/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx +++ b/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx @@ -197,7 +197,7 @@ const UserTeamsTable = props => { target="teamCodeAssign" toggle={toggleTeamCodeExplainTooltip} > - This team code should only used by admin/owner, and has nothing to do with + This team code should only be used by admin/owner, and has nothing to do with the team data model. @@ -392,7 +392,7 @@ const UserTeamsTable = props => { target="teamCodeAssign" toggle={toggleTeamCodeExplainTooltip} > - This team code should only used by admin/owner, and has nothing to do with + This team code should only be used by admin/owner, and has nothing to do with the team data model. From ceee08a49e0b744e28a7785f9d91d5ab4b24e23c Mon Sep 17 00:00:00 2001 From: Vedant Gandhi Date: Thu, 10 Oct 2024 21:58:19 -0700 Subject: [PATCH 3/9] Update message --- src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx b/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx index efcdd91dc7..0bf429e3c8 100644 --- a/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx +++ b/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx @@ -197,7 +197,7 @@ const UserTeamsTable = props => { target="teamCodeAssign" toggle={toggleTeamCodeExplainTooltip} > - This team code should only be used by Admins/Owners, and has nothing to do with the team data model. + This team code should only be used by admins/owners, and has nothing to do with the team data model. )} From b06a07404f7e8241877796a28818200a33b93c35 Mon Sep 17 00:00:00 2001 From: Vedant Gandhi Date: Mon, 4 Nov 2024 14:07:14 -0800 Subject: [PATCH 4/9] Resolve merge conflict --- .../TeamsAndProjects/UserTeamsTable.jsx | 336 +++++++++--------- 1 file changed, 168 insertions(+), 168 deletions(-) diff --git a/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx b/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx index 186edc7cbc..fa5fdcf74c 100644 --- a/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx +++ b/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx @@ -309,182 +309,182 @@ const UserTeamsTable = props => { ) : ( - -
- -
- {props.canEditVisibility && ( - <> - - Visibility - - - - - - )} -
- - Teams - - - {props.canEditTeamCode ? ( - + +
+ {props.canEditVisibility && ( + <> + + Visibility + + + - ) : ( -
- {teamCode == '' ? 'No assigned team code' : teamCode} -
- )} - -
- {props.edit && props.role && ( - - {canAssignTeamToUsers ? ( - props.disabled ? ( - - ) : ( - <> - - - This team code should only be used by admin/owner, and has nothing to do with - the team data model. - - - ) - ) : ( - <> - )} - - )} -
-
- - - {props.role && ( - - - - {canAssignTeamToUsers ? ( - <> - - - - ) : null} - + + )} - - - {props.userTeamsById.length > 0 ? ( - props.userTeamsById.map((team, index) => ( - - - - {props.edit && props.role && ( - <> - - - + Teams + + + {props.canEditTeamCode ? ( + + ) : ( +
+ {teamCode == '' ? 'No assigned team code' : teamCode} +
+ )} + + + {props.edit && props.role && ( +
+ {canAssignTeamToUsers ? ( + props.disabled ? ( + + ) : ( + <> - - - - )} - - )) - ) : ( - <> + + This team code should only be used by admin/owner, and has nothing to do with + the team data model. + + + ) + ) : ( + <> + )} + )} - -
#Team NameMembers - { } -
{index + 1}{`${team.teamName}`} - -
+
+
-
-
+
+
+ + + {props.role && ( + + + + {canAssignTeamToUsers ? ( + <> + + + + ) : null} + + )} + + + {props.userTeamsById.length > 0 ? ( + props.userTeamsById.map((team, index) => ( + + + + {props.edit && props.role && ( + <> + - ); -}; + + + )} + + )) + ) : ( + <> + )} + +
#Team NameMembers + { } +
{index + 1}{`${team.teamName}`} + +
+ +
+
+
+ + )} + + ); + }; export default connect(null, { hasPermission })(UserTeamsTable); From ccfaf855bba6a51ffedf6abe9413cbf5b4814cd4 Mon Sep 17 00:00:00 2001 From: mohangadde1 Date: Sun, 15 Dec 2024 00:59:08 -0600 Subject: [PATCH 5/9] fixmsg --- .../TeamsAndProjects/UserTeamsTable.jsx | 520 ++++++------------ 1 file changed, 177 insertions(+), 343 deletions(-) diff --git a/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx b/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx index fa5fdcf74c..7dbe3b6033 100644 --- a/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx +++ b/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx @@ -131,360 +131,194 @@ const UserTeamsTable = props => { }; return ( -
- {innerWidth >= 1025 ? ( -
- -
- {props.canEditVisibility && ( -
- - Visibility - - - - -
- )} -
- - Teams - - {props.edit && props.role && canAssignTeamToUsers && ( - - {props.disabled ? ( - <> - - Please save changes before assign team - - - - ) : ( - <> - - - This team code should only be used by admins/owners, and has nothing to do with the team data model. - - - )} - - )} - - {props.canEditTeamCode ? ( - <> - - - ) : ( -
- {teamCode == '' ? 'No assigned team code' : teamCode} -
- )} - -
-
-
- + +
+ {props.canEditVisibility && ( +
+
- - {props.role && ( - - - {canAssignTeamToUsers ? ( - <> - + Visibility + + + Members - - ) : null} - {props.userTeamsById.length > 0 ? ( - - ) : null} - - )} - - - {props.userTeamsById.length > 0 ? ( - props.userTeamsById.map((team, index) => ( - - - - {props.edit && props.role && ( - <> - - - - )} - - )) - ) : ( - <> - )} - -
- # - - Team Name -
{index + 1}{`${team.teamName}`} - - -
+ switchType="visible" + state={props.isVisible} + handleUserProfile={props.onUserVisibilitySwitch} + darkMode={darkMode} + /> + +
+ )} +
+ + Teams + + + !showDropdown && setShowDropdown(true)} + disabled={!props.canEditTeamCode} + /> + +
+
- ) : ( -
- -
- {props.canEditVisibility && ( - <> - - Visibility - - - - - - )} -
- + {canAssignTeamToUsers ? ( + props.disabled ? ( + + ) : ( + <> +
- {props.edit && props.role && ( - - {canAssignTeamToUsers ? ( - props.disabled ? ( - - ) : ( - <> + Assign Team + + + This team code should only be used by admin/owner, and has nothing to do with + the team data model. + + + ) + ) : ( + <> + )} + + )} +
+
+ + + {props.role && ( + + + + {canAssignTeamToUsers ? ( + <> + + + + ) : null} + + )} + + + {props.userTeamsById.length > 0 ? ( + props.userTeamsById.map((team, index) => ( + + + + {props.edit && props.role && ( + <> + + + + + )} + + )) + ) : ( + <> )} - -
-
#Team NameMembers + { } +
{index + 1}{`${team.teamName}`} + +
- - This team code should only be used by admin/owner, and has nothing to do with - the team data model. - - - ) - ) : ( - <> - )} - +
+
- - {props.role && ( - - - - {canAssignTeamToUsers ? ( - <> - - - - ) : null} - - )} - - - {props.userTeamsById.length > 0 ? ( - props.userTeamsById.map((team, index) => ( - - - - {props.edit && props.role && ( - <> - + +
#Team NameMembers - { } -
{index + 1}{`${team.teamName}`} -
+
+
- -
- -
- - - )} - - )) - ) : ( - <> - )} - - -
-
- )} - - ); - }; + ); +}; export default connect(null, { hasPermission })(UserTeamsTable); From 41bde9e68de289a5586bd687d985351ff907069d Mon Sep 17 00:00:00 2001 From: mohangadde1 Date: Mon, 23 Dec 2024 11:19:53 -0600 Subject: [PATCH 6/9] fixmsg --- .../UserProfile/TeamsAndProjects/UserTeamsTable.jsx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx b/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx index 7dbe3b6033..f665357ecd 100644 --- a/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx +++ b/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx @@ -216,6 +216,7 @@ const UserTeamsTable = props => { {canAssignTeamToUsers ? ( props.disabled ? ( + @@ -232,10 +233,20 @@ const UserTeamsTable = props => { Assign Team This team code should only be used by admin/owner, and has nothing to do with the team data model. From 2243e543e6300e6a391ffcca867a292c3a01166b Mon Sep 17 00:00:00 2001 From: mohangadde1 Date: Mon, 23 Dec 2024 11:26:13 -0600 Subject: [PATCH 7/9] added id for Button --- src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx b/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx index f665357ecd..d5ea59ef5d 100644 --- a/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx +++ b/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx @@ -217,7 +217,7 @@ const UserTeamsTable = props => { {canAssignTeamToUsers ? ( props.disabled ? ( - ) : ( From fd4d4d18a280543e8f97f47a4f34914a18c20377 Mon Sep 17 00:00:00 2001 From: mohangadde1 Date: Mon, 23 Dec 2024 23:40:51 -0600 Subject: [PATCH 8/9] fix code structure --- .../TeamsAndProjects/UserTeamsTable.jsx | 27 +----- .../UserProfile/ToolTips/TeamsTabTips.jsx | 24 ++++++ src/components/UserProfile/UserProfile.jsx | 83 +++++++++---------- 3 files changed, 65 insertions(+), 69 deletions(-) create mode 100644 src/components/UserProfile/ToolTips/TeamsTabTips.jsx diff --git a/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx b/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx index d5ea59ef5d..137cb6eea1 100644 --- a/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx +++ b/src/components/UserProfile/TeamsAndProjects/UserTeamsTable.jsx @@ -1,5 +1,5 @@ import { React, useState, useEffect, useRef } from 'react'; -import { Button, Col, Tooltip, Input } from 'reactstrap'; +import { Button, Col, Input } from 'reactstrap'; import './TeamsAndProjects.css'; import ToggleSwitch from '../UserProfileEdit/ToggleSwitch'; import hasPermission from '../../../utils/permissions'; @@ -16,9 +16,6 @@ import { toast } from 'react-toastify'; const UserTeamsTable = props => { const { darkMode } = props; - const [tooltipOpen, setTooltip] = useState(false); - - const [teamCodeExplainTooltip, setTeamCodeExplainTooltip] = useState(false); const [showDropdown, setShowDropdown] = useState(false); @@ -45,7 +42,7 @@ const UserTeamsTable = props => { const canAssignTeamToUsers = props.hasPermission('assignTeamToUsers'); const fullCodeRegex = /^(|([a-zA-Z0-9]-[a-zA-Z0-9]{3,5}|[a-zA-Z0-9]{5,7}|.-[a-zA-Z0-9]{3}))$/; - const toggleTooltip = () => setTooltip(!tooltipOpen); + useEffect(() => { if (props.userProfile?.teamCode) { @@ -105,7 +102,6 @@ const UserTeamsTable = props => { opacity: !props.canEditTeamCode ? 0.6 : 0.9, }; - const toggleTeamCodeExplainTooltip = () => setTeamCodeExplainTooltip(!teamCodeExplainTooltip); const fetchTeamSelected = async (teamId, teamName, isUpdate) => { const urlTeamData = ENDPOINTS.TEAM_BY_ID(teamId); @@ -232,25 +228,6 @@ const UserTeamsTable = props => { > Assign Team - - This team code should only be used by admin/owner, and has nothing to do with - the team data model. - ) ) : ( diff --git a/src/components/UserProfile/ToolTips/TeamsTabTips.jsx b/src/components/UserProfile/ToolTips/TeamsTabTips.jsx new file mode 100644 index 0000000000..1079d4d0e3 --- /dev/null +++ b/src/components/UserProfile/ToolTips/TeamsTabTips.jsx @@ -0,0 +1,24 @@ +import { useState } from 'react'; +import { Tooltip } from 'reactstrap'; + +function TeamsTabTips() { + const [teamCodeExplainTooltip, setTeamCodeExplainTooltip] = useState(false); + const toggleTeamCodeExplainTooltip = () => setTeamCodeExplainTooltip(!teamCodeExplainTooltip); + return ( +
+ + + This team code should only be used by admin/owner, and has nothing to do with + the team data model. + +
+ ) +} +export default TeamsTabTips diff --git a/src/components/UserProfile/UserProfile.jsx b/src/components/UserProfile/UserProfile.jsx index 6bc6ed2d8c..e952c378a4 100644 --- a/src/components/UserProfile/UserProfile.jsx +++ b/src/components/UserProfile/UserProfile.jsx @@ -41,6 +41,7 @@ import SaveButton from './UserProfileEdit/SaveButton'; import UserLinkLayout from './UserLinkLayout'; import TabToolTips from './ToolTips/TabToolTips'; import BasicToolTips from './ToolTips/BasicTabTips'; +import TeamsTabTips from './ToolTips/TeamsTabTips'; import ResetPasswordButton from '../UserManagement/ResetPasswordButton'; import Badges from './Badges'; import { getAllTeamCode } from '../../actions/allTeamsAction'; @@ -579,9 +580,9 @@ function UserProfile(props) { if (newInfringements.length !== 0) { newInfringements = newInfringements.filter(infringement => infringement._id !== id); await axios.delete(ENDPOINTS.MODIFY_BLUE_SQUARE(userProfile._id, id)) - .catch(error => { - toast.error('Failed to delete Blue Square!'); - }); + .catch(error => { + toast.error('Failed to delete Blue Square!'); + }); toast.success('Blue Square Deleted!'); setUserProfile({ ...userProfile, infringements: newInfringements }); setOriginalUserProfile({ ...userProfile, infringements: newInfringements }); @@ -807,8 +808,8 @@ function UserProfile(props) { const canEditUserProfile = targetIsDevAdminUneditable ? false : userProfile.role === 'Owner' - ? canAddDeleteEditOwners - : canPutUserProfile; + ? canAddDeleteEditOwners + : canPutUserProfile; const canEdit = canEditUserProfile || isUserSelf; @@ -843,7 +844,7 @@ function UserProfile(props) { // console.log("userProfile:createdDate, startDate", createdDate, startDate === '' ? "EMPTY" : startDate); return startDate === '' ? false : (createdDate < CREATED_DATE_CRITERIA || createdDate <= startDate); }; - + const endDateValidation = (startDate, endDate) => { // console.log("userProfile:startDate, endDate", startDate === '' ? "EMPTY" : startDate, endDate === '' ? "EMPTY" : endDate ); return endDate ? (startDate <= endDate) : true; @@ -878,6 +879,7 @@ function UserProfile(props) { )} + ) : null} - + {!isProfileEqual || - !isTasksEqual || - (!isTeamsEqual && !isTeamSaved) || - !isProjectsEqual ? ( + !isTasksEqual || + (!isTeamsEqual && !isTeamSaved) || + !isProjectsEqual ? ( Please click on "Save changes" to save the changes you have made.{' '} @@ -1098,7 +1100,7 @@ function UserProfile(props) { canEdit={canEdit || canManageAdminLinks} darkMode={darkMode} /> - Cancel @@ -1381,9 +1382,8 @@ function UserProfile(props) { Confirm Status Change - {`Are you sure you want to change the user status to ${ - pendingRehireableStatus ? 'Rehireable' : 'Unrehireable' - }?`} + {`Are you sure you want to change the user status to ${pendingRehireableStatus ? 'Rehireable' : 'Unrehireable' + }?`}