UNCLASSIFIED

Commit 89a1177e authored by hunter.congress's avatar hunter.congress
Browse files

adding teams

parents a87f386f 78a69f9e
...@@ -176,12 +176,6 @@ ...@@ -176,12 +176,6 @@
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"dev": true "dev": true
}, },
"semver": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
"integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
"dev": true
},
"source-map": { "source-map": {
"version": "0.5.7", "version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
...@@ -564,18 +558,7 @@ ...@@ -564,18 +558,7 @@
"lodash": { "lodash": {
"version": "4.17.21", "version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
},
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
},
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true "dev": true
} }
} }
...@@ -1592,7 +1575,8 @@ ...@@ -1592,7 +1575,8 @@
"lodash": { "lodash": {
"version": "4.17.21", "version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"dev": true
}, },
"source-map": { "source-map": {
"version": "0.5.7", "version": "0.5.7",
...@@ -13057,12 +13041,6 @@ ...@@ -13057,12 +13041,6 @@
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
}, },
"lodash.debounce": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
"integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
"dev": true
},
"lodash.defaultsdeep": { "lodash.defaultsdeep": {
"version": "4.6.1", "version": "4.6.1",
"resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz",
......
...@@ -26,12 +26,19 @@ export default { ...@@ -26,12 +26,19 @@ export default {
async updateTeam(team) { async updateTeam(team) {
const { name, description, capacity } = team; const { name, description, capacity } = team;
await HTTP.put(`/teams/${team.id}`, { name, description, capacity }); return HTTP.put(`/teams/${team.id}`, {
await HTTP.put( name,
`/teams/${team.id}/members`, description,
team.members.map((member) => member.value) capacity,
); });
return team; },
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) {
......
...@@ -28,5 +28,4 @@ export default { ...@@ -28,5 +28,4 @@ export default {
async updateUserPreferences(preferences) { async updateUserPreferences(preferences) {
return HTTP.post("/users/preferences", preferences); return HTTP.post("/users/preferences", preferences);
}, },
} };
...@@ -142,17 +142,21 @@ export default { ...@@ -142,17 +142,21 @@ 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) => {
<<<<<<< HEAD
member.isTeamLead = false; member.isTeamLead = false;
=======
member.TeamMember = { isTeamLead: false };
>>>>>>> 78a69f9ef6cde8f07878773231933cb881538a2f
members.set(member.id, member); members.set(member.id, member);
}); });
console.log(this.toAdd); console.log(this.toAdd);
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();
}, },
}, },
......
...@@ -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.getMyTeam(); await this.getTeams();
} }
} 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;
...@@ -314,15 +317,17 @@ export default { ...@@ -314,15 +317,17 @@ export default {
} }
}, },
async editTeam(editedTeam) { async editTeam(editedTeam) {
console.log("EDITTED", editedTeam);
this.state.isEditingTeamDetailsBusy = true; this.state.isEditingTeamDetailsBusy = true;
try { try {
this.team = await TeamService.updateTeam(editedTeam); await TeamService.updateTeam(editedTeam);
// the editedTeam.members will essentially just be the team leads
await TeamService.updateTeamMembers(editedTeam);
// 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;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment