Users can now be added and deleted

This commit is contained in:
Nicolai Ort 2020-07-20 11:35:04 +02:00
parent b502f7cfe6
commit 12e60097bd
4 changed files with 1116 additions and 984 deletions

View File

@ -169,7 +169,7 @@
</div>
</div>
<div class="form-group">
<div ngbDropdown class="dropdown" [autoClose]="true">
<div ngbDropdown class="dropdown" [autoClose]="false">
<button
ngbDropdownToggle
class="btn btn-secondary dropdown-toggle"
@ -194,6 +194,35 @@
(click)="task.assignedtoId = user.id"
>{{ user.name }}</option
>
<div class="dropdown-divider"></div>
<div class="card-text" for="Inhalt">Neuer User</div>
<input
#username
type="text"
id="username"
class="dropdown-item"
(change)="user.name = username.value"
placeholder="New Title..."
style="background-color: rgba(211, 211, 211, 0.342);"
/>
<button
disable-auto-close
ngbDropdownItem
class="dropdown-item"
type="button"
(click)="createUser(user)"
>
User anlegen
</button>
<button
disable-auto-close
ngbDropdownItem
class="dropdown-item"
type="button"
(click)="deleteUser(task.assignedtoId)"
>
User löschen
</button>
</div>
</div>
<div class="dropdown-menu">

View File

@ -145,6 +145,21 @@ class TaskFormComponent implements OnInit {
});
}
/**
* If desired a new arbitrary user (such as "Testuser") can be created, which will be stored in an array.
* The new user is available to all tasks.
* @param user ScrumUser to store in the database
*/
createUser(user: ScrumUser) {
this.backendService.postUser(user).subscribe((response) => {
if (response.status > 399) {
alert('Fehler');
} else {
this.allUser.push(response.body);
}
});
}
// A custom status can even be deleted if not used anymore.
// This will remove the status from status-array.
/**
@ -167,6 +182,28 @@ class TaskFormComponent implements OnInit {
});
}
// A custom user can even be deleted if not used anymore.
// This will remove the user from user-array.
/**
* A custom user can even be deleted if not used anymore.
* This will remove the user from user-array
* @param id the id of the chosen user
*/
deleteUser(id: number) {
var user = this.allUser.find((x) => x.id === id);
this.backendService.deleteUser(user).subscribe((response) => {
if (response.status > 399) {
alert('Fehler');
} else {
const index = this.allUser.indexOf(user);
if (index !== -1) {
this.allUser.splice(index, 1);
}
}
this.task.assignedtoId = null;
});
}
/**
* Getting the value of the priority enum to be shown in a dropdown in popup window.
*/

View File

@ -217,17 +217,17 @@
</div>
</div>
<div class="form-group">
<div ngbDropdown class="dropdown" [autoClose]="true">
<div ngbDropdown class="dropdown" [autoClose]="false">
<button
ngbDropdownToggle
class="btn btn-secondary dropdown-toggle"
type="button"
id="dropdownMenu2"
id="dropdownMenu4"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false"
>
Autor: {{ getAuthorById(userstory.createdbyId) }}
Bearbeiter: {{ getAuthorById(userstory.createdbyId) }}
</button>
<div
ngbDropdownMenu
@ -242,6 +242,35 @@
(click)="userstory.createdbyId = user.id"
>{{ user.name }}</option
>
<div class="dropdown-divider"></div>
<div class="card-text" for="Inhalt">Neuer User</div>
<input
#username
type="text"
id="username"
class="dropdown-item"
(change)="user.name = username.value"
placeholder="New Title..."
style="background-color: rgba(211, 211, 211, 0.342);"
/>
<button
disable-auto-close
ngbDropdownItem
class="dropdown-item"
type="button"
(click)="createUser(user)"
>
User anlegen
</button>
<button
disable-auto-close
ngbDropdownItem
class="dropdown-item"
type="button"
(click)="deleteUser(task.assignedtoId)"
>
User löschen
</button>
</div>
</div>
<div class="dropdown-menu">

View File

@ -199,6 +199,21 @@ class UserstoryFormComponent implements OnInit {
});
}
/**
* If desired a new arbitrary user (such as "Testuser") can be created, which will be stored in an array.
* The new user is available to all userstories.
* @param user ScrumUser to store in the database
*/
createUser(user: ScrumUser) {
this.backendService.postUser(user).subscribe((response) => {
if (response.status > 399) {
alert('Fehler');
} else {
this.allUser.push(response.body);
}
});
}
// A custom category can even be deleted if not used anymore.
// This will remove the category from category-array.
/**
@ -221,6 +236,28 @@ class UserstoryFormComponent implements OnInit {
});
}
// A custom user can even be deleted if not used anymore.
// This will remove the user from user-array.
/**
* A custom user can even be deleted if not used anymore.
* This will remove the user from user-array
* @param id the id of the chosen user
*/
deleteUser(id: number) {
var user = this.allUser.find((x) => x.id === id);
this.backendService.deleteUser(user).subscribe((response) => {
if (response.status > 399) {
alert('Fehler');
} else {
const index = this.allUser.indexOf(user);
if (index !== -1) {
this.allUser.splice(index, 1);
}
}
this.userstory.createdbyId = null;
});
}
/**
* Shows the before choosen category in the category-field in the popup window.
* @param id reference to the category