UNCLASSIFIED
Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
Platform One
P
Party Bus
Launchboard
launchboard-fe
Commits
c4c40088
Commit
c4c40088
authored
Feb 24, 2021
by
graham.smith
Browse files
team changes
parent
d9c28ce6
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
49 additions
and
78 deletions
+49
-78
src/api/services/team.js
src/api/services/team.js
+15
-8
src/components/AddTeam.vue
src/components/AddTeam.vue
+4
-4
src/views/Team.vue
src/views/Team.vue
+30
-66
No files found.
src/api/services/team.js
View file @
c4c40088
...
@@ -24,14 +24,21 @@ export default {
...
@@ -24,14 +24,21 @@ export default {
}
}
},
},
async
updateTeam
(
team
,
addPOC
,
editedMembers
)
{
async
updateTeam
(
team
)
{
console
.
log
(
"
UPDATING
"
,
team
,
addPOC
,
editedMembers
);
const
{
name
,
description
,
capacity
}
=
team
;
await
HTTP
.
put
(
`/teams/
${
team
.
id
}
/members`
,
editedMembers
);
return
HTTP
.
put
(
`/teams/
${
team
.
id
}
`
,
{
if
(
addPOC
)
{
name
,
await
HTTP
.
post
(
`/teams/
${
team
.
id
}
/members`
,
addPOC
);
description
,
};
capacity
,
const
response
=
await
HTTP
.
put
(
`/teams/
${
team
.
id
}
`
,
team
);
});
return
response
;
},
async
updateTeamMembers
(
team
)
{
const
membersBody
=
team
.
members
.
map
((
m
)
=>
({
userId
:
m
.
id
,
isTeamLead
:
m
.
TeamMember
.
isTeamLead
,
}));
return
HTTP
.
put
(
`/teams/
${
team
.
id
}
/members`
,
membersBody
);
},
},
async
deleteMembers
(
members
,
teamId
)
{
async
deleteMembers
(
members
,
teamId
)
{
...
...
src/components/AddTeam.vue
View file @
c4c40088
...
@@ -141,16 +141,16 @@ export default {
...
@@ -141,16 +141,16 @@ export default {
// merge members and leads
// merge members and leads
const
members
=
new
Map
();
const
members
=
new
Map
();
this
.
toAdd
.
members
.
forEach
((
member
)
=>
{
this
.
toAdd
.
members
.
forEach
((
member
)
=>
{
member
.
TeamMember
.
isTeamLead
=
false
;
member
.
TeamMember
=
{
isTeamLead
:
false
}
;
members
.
set
(
member
.
id
,
member
);
members
.
set
(
member
.
id
,
member
);
});
});
this
.
leads
.
forEach
((
lead
)
=>
{
this
.
leads
.
forEach
((
lead
)
=>
{
lead
.
TeamMember
.
isTeamLead
=
true
;
lead
.
TeamMember
=
{
isTeamLead
:
true
}
;
members
.
set
(
lead
.
id
,
lead
);
members
.
set
(
lead
.
id
,
lead
);
});
});
this
.
toAdd
.
members
=
members
.
values
();
this
.
toAdd
.
members
=
[...
members
.
values
()
]
;
this
.
$emit
(
"
edit
"
,
this
.
toAdd
);
this
.
$emit
(
"
edit
"
,
this
.
toAdd
,
this
.
leads
);
this
.
init
();
this
.
init
();
},
},
},
},
...
...
src/views/Team.vue
View file @
c4c40088
...
@@ -273,32 +273,35 @@ export default {
...
@@ -273,32 +273,35 @@ export default {
inputRules
,
inputRules
,
}),
}),
async
mounted
()
{
async
mounted
()
{
try
{
this
.
init
();
this
.
loading
=
true
;
},
methods
:
{
async
init
()
{
try
{
this
.
loading
=
true
;
// no team specified
// no team specified
if
(
!
this
.
$route
.
params
.
teamId
)
{
if
(
!
this
.
$route
.
params
.
teamId
)
{
// Admin and Dojo Master don't have a team, so redirect them since
// Admin and Dojo Master don't have a team, so redirect them since
// they don't have a reason to be on this page without a specific id
// they don't have a reason to be on this page without a specific id
this
.
user
=
this
.
$store
.
state
.
user
.
user
;
this
.
user
=
this
.
$store
.
state
.
user
.
user
;
if
(
this
.
user
.
permission
!==
Permission
.
USER
)
{
if
(
this
.
user
.
permission
!==
Permission
.
USER
)
{
console
.
warn
(
"
redirecting privileged user to /teams
"
);
console
.
warn
(
"
redirecting privileged user to /teams
"
);
this
.
$router
.
push
(
"
/teams
"
);
this
.
$router
.
push
(
"
/teams
"
);
}
else
{
// get the current user's team
this
.
team
=
await
TeamService
.
getMyTeam
();
}
}
else
{
}
else
{
// get the current user's team
console
.
log
(
"
THIS CANNOT BE ME
"
);
this
.
team
=
await
TeamService
.
get
My
Team
();
await
this
.
getTeam
s
();
}
}
}
else
{
}
catch
(
error
)
{
console
.
log
(
"
THIS CANNOT BE ME
"
);
console
.
error
(
"
!user error!
"
,
error
);
await
this
.
getTeams
();
}
finally
{
this
.
loading
=
false
;
}
}
}
catch
(
error
)
{
},
console
.
error
(
"
!user error!
"
,
error
);
}
finally
{
this
.
loading
=
false
;
}
},
methods
:
{
async
getTeams
()
{
async
getTeams
()
{
if
(
this
.
initialLoad
)
{
if
(
this
.
initialLoad
)
{
this
.
loading
=
true
;
this
.
loading
=
true
;
...
@@ -315,55 +318,16 @@ export default {
...
@@ -315,55 +318,16 @@ export default {
},
},
async
editTeam
(
editedTeam
)
{
async
editTeam
(
editedTeam
)
{
this
.
state
.
isEditingTeamDetailsBusy
=
true
;
this
.
state
.
isEditingTeamDetailsBusy
=
true
;
//1 filtering out to only get IDs from various groups of users
const
editMembersId
=
editedTeam
.
members
.
map
((
member
)
=>
member
.
id
);
const
newPOCId
=
editedTeam
.
poc
.
map
((
member
)
=>
member
.
id
);
let
currentPOCId
=
this
.
team
.
members
.
filter
(
(
member
)
=>
member
.
TeamMember
.
isTeamLead
===
true
);
currentPOCId
=
currentPOCId
.
map
((
member
)
=>
member
.
id
);
console
.
log
(
"
ID
"
,
editMembersId
);
const
addTeamLeads
=
[];
const
editTeamMembers
=
[];
//2 sorting throught the new team leads to decide whether or not they need to be added or updated to team leads
for
(
let
i
=
0
;
i
<
editedTeam
.
poc
.
length
;
i
++
)
{
//adding
if
(
!
editMembersId
.
includes
(
editedTeam
.
poc
[
i
].
id
))
{
console
.
log
(
"
ADDING
"
,
editedTeam
.
poc
[
i
].
name
)
addTeamLeads
.
push
({
userId
:
editedTeam
.
poc
[
i
].
id
,
isTeamLead
:
true
});
}
//upgrading users
else
if
(
editMembersId
.
includes
(
editedTeam
.
poc
[
i
].
id
)
&&
!
currentPOCId
.
includes
(
editedTeam
.
poc
[
i
].
id
)
)
{
console
.
log
(
"
UPGRADING
"
,
editedTeam
.
poc
[
i
].
name
)
editTeamMembers
.
push
({
userId
:
editedTeam
.
poc
[
i
].
id
,
isTeamLead
:
true
,
});
}
}
//seeing a person needs to be removed from team lead
editTeamMembers
.
concat
(
currentPOCId
.
map
(
function
(
member
)
{
if
(
!
newPOCId
.
includes
(
member
))
{
console
.
log
(
"
DEMOTING
"
,
member
);
return
{
userId
:
member
,
isTeamLead
:
false
};
}
})
);
console
.
log
(
"
addTeamLeads
"
,
addTeamLeads
);
console
.
log
(
"
REMOVE TEAM LEAD
"
,
editTeamMembers
);
try
{
try
{
this
.
team
=
await
TeamService
.
updateTeam
(
await
TeamService
.
updateTeam
(
editedTeam
);
editedTeam
,
// the editedTeam.members will essentially just be the team leads
addTeamLeads
,
await
TeamService
.
updateTeamMembers
(
editedTeam
);
editTeamMembers
);
// success state
// success state
this
.
snackbars
.
teamDetails
=
true
;
this
.
snackbars
.
teamDetails
=
true
;
this
.
state
.
showEditDialog
=
false
;
this
.
state
.
showEditDialog
=
false
;
this
.
init
();
}
catch
(
e
)
{
}
catch
(
e
)
{
// TODO: no error message to the user???
console
.
error
(
"
error editing team
"
,
e
);
console
.
error
(
"
error editing team
"
,
e
);
}
finally
{
}
finally
{
this
.
state
.
isEditingTeamDetailsBusy
=
false
;
this
.
state
.
isEditingTeamDetailsBusy
=
false
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment