Add functionalty to add task

This commit is contained in:
2025-05-18 16:15:34 +02:00
parent f72cc8a802
commit 61694e340f
8 changed files with 124 additions and 35 deletions

View File

@@ -1,7 +1,7 @@
<ion-header [translucent]="true">
<ion-toolbar>
<ion-title *ngIf="isAddMode">Create Task</ion-title>
<ion-title **ngIf="!isAddMode">Edit Task</ion-title>
<ion-title *ngIf="!isAddMode">Edit Task</ion-title>
</ion-toolbar>
</ion-header>
@@ -13,7 +13,12 @@
<label>Reward</label>
<input id="name" type="number" formControlName="reward"/>
<button type="button" [disabled]="!form.valid">
<label>Assigned</label>
<select formControlName="assigned">
<option *ngFor="let user of users" [value]="user.id">{{ user.name }}</option>
</select>
<button type="button" [disabled]="!form.valid" (click)="submit()">
<span *ngIf="isAddMode">Add Task</span>
<span *ngIf="!isAddMode">Update Task</span>
</button>

View File

@@ -0,0 +1,34 @@
form {
display: flex;
flex-direction: column;
align-items: center;
height: 100%;
}
label {
color: var(--ion-color-primary);
margin-top: 25px;
margin-bottom: 10px;
}
input,
select {
border: 1px solid var(--ion-color-primary);
border-radius: 5px;
width: 250px;
}
button {
background-color: var(--ion-color-primary);
border-radius: 5px;
color: white;
padding: 10px;
width: 250px;
margin-top: auto;
margin-bottom: 50px;
}
button:disabled,
button[disabled]{
opacity: 0.5;
}

View File

@@ -1,7 +1,10 @@
import { Location } from '@angular/common';
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRoute, Router } from '@angular/router';
import { User } from 'src/app/models/user';
import { TaskService } from 'src/app/services/task.service';
import { UserService } from 'src/app/services/user.service';
@Component({
selector: 'app-edit-task',
@@ -13,25 +16,30 @@ export class EditTaskPage implements OnInit {
form: FormGroup;
id: number;
isAddMode: boolean;
users: Array<User> = [{id: 0, name: 'unassigned'}];
constructor(
private route: ActivatedRoute,
private formBuilder: FormBuilder,
private taskService: TaskService,
private userService: UserService,
private router: Router
) {
console.log('Test?')
this.id = this.route.snapshot.params['id'];
this.isAddMode = !this.id;
this.form = this.formBuilder.group({
name: ['', Validators.required],
reward: ['', Validators.required],
assigned: ['', Validators.required]
reward: ['', [Validators.required, Validators.pattern("^[0-9]*$")]],
assigned: [0, Validators.required]
});
}
ngOnInit() {
console.log('Test?')
this.userService.getUserList().subscribe(users => {
this.users.push(...users);
});
if (!this.isAddMode) {
this.taskService.getTaskById(this.id).subscribe(task => {
this.form.setValue({
@@ -43,4 +51,23 @@ export class EditTaskPage implements OnInit {
}
}
submit() {
const formValue = this.form.value;
let assigned: number | null = Number(formValue.assigned);
if (assigned === 0) {
assigned = null;
}
const task = {
name: formValue.name,
reward: formValue.reward,
assigned
}
if (this.isAddMode) {
this.taskService.createTask(task);
} else {}
this.router.navigate(['/tabs/tasks']);
}
}