diff --git a/src/components/lists/EditList.vue b/src/components/lists/EditList.vue
index 74fae091..d17c99b9 100644
--- a/src/components/lists/EditList.vue
+++ b/src/components/lists/EditList.vue
@@ -112,6 +112,81 @@
+
+
+
+
+
+
+
+
+
+
+ {{t.name}}
+
+
+
+
+
+
+
+ Admin
+
+
+
+
+
+ Write
+
+
+
+
+
+ Read-only
+
+
+
+
+ Make
+
+ Member
+
+
+ Admin
+
+
+
+
+
+
+
+
+
+
+
+
+
- Remove a user from the team
- Are you sure you want to remove this user from the team?
- He will loose access to all lists and namespaces this team has access to.
+ Remove a user from the list
+
Are you sure you want to remove this user from the list?
+ This CANNOT BE UNDONE!
+
+
+
+
+ Remove a team from the list
+ Are you sure you want to remove this team from the list?
This CANNOT BE UNDONE!
@@ -148,12 +232,19 @@
error: '',
loading: false,
showDeleteModal: false,
- listUsers: [],
user: auth.user,
userIsAdmin: false,
+
+ listUsers: [],
newUser: {user_id: 0},
showUserDeleteModal: false,
userToDelete: 0,
+
+ listTeams: [],
+ teamIsAdmin: false,
+ newTeam: {team_id: 0},
+ showTeamDeleteModal: false,
+ teamToDelete: 0,
}
},
beforeMount() {
@@ -180,6 +271,7 @@
this.userIsAdmin = true
}
this.loadUsers()
+ this.loadTeams()
this.loading = false
})
.catch(e => {
@@ -263,6 +355,51 @@
this.deleteUser()
this.addUser(!current)
},
+ loadTeams() {
+ HTTP.get(`lists/` + this.$route.params.id + `/teams`, {headers: {'Authorization': 'Bearer ' + localStorage.getItem('token')}})
+ .then(response => {
+ this.$set(this, 'listTeams', response.data)
+ this.loading = false
+ })
+ .catch(e => {
+ this.handleError(e)
+ })
+ },
+ deleteTeam() {
+ HTTP.delete(`lists/` + this.$route.params.id + `/teams/` + this.teamToDelete, {headers: {'Authorization': 'Bearer ' + localStorage.getItem('token')}})
+ .then(() => {
+ this.showTeamDeleteModal = false;
+ this.handleSuccess({message: 'The team was successfully deleted from the list.'})
+ this.loadTeams()
+ })
+ .catch(e => {
+ this.handleError(e)
+ })
+ },
+ addTeam(admin) {
+ if(admin === null) {
+ admin = false
+ }
+ this.newTeam.right = 0
+ if (admin) {
+ this.newTeam.right = 2
+ }
+
+ HTTP.put(`lists/` + this.$route.params.id + `/teams`, this.newTeam, {headers: {'Authorization': 'Bearer ' + localStorage.getItem('token')}})
+ .then(() => {
+ this.loadTeams()
+ this.handleSuccess({message: 'The team was successfully added.'})
+ })
+ .catch(e => {
+ this.handleError(e)
+ })
+ },
+ toggleTeamType(teamid, current) {
+ this.teamToDelete = teamid
+ this.newTeam.team_id = teamid
+ this.deleteTeam()
+ this.addTeam(!current)
+ },
handleError(e) {
this.loading = false
message.error(e, this)
@@ -283,7 +420,7 @@
.card{
margin-bottom: 1rem;
- .add-user-form {
+ .add-user-form, .add-team-form {
margin: 1rem;
}
@@ -304,7 +441,7 @@
}
}
- .users-list{
+ .users-list, .teams-list{
padding: 0;
}
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 161fb192..812e435c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -28,6 +28,7 @@ import { faTrashAlt } from '@fortawesome/free-solid-svg-icons'
import { faUsers } from '@fortawesome/free-solid-svg-icons'
import { faUser } from '@fortawesome/free-solid-svg-icons'
import { faLock } from '@fortawesome/free-solid-svg-icons'
+import { faPen } from '@fortawesome/free-solid-svg-icons'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
library.add(faSignOutAlt)
@@ -41,6 +42,7 @@ library.add(faTrashAlt)
library.add(faUsers)
library.add(faUser)
library.add(faLock)
+library.add(faPen)
Vue.component('icon', FontAwesomeIcon)