Add button to show task addition pane.

This commit is contained in:
florian
2021-10-20 14:01:23 +02:00
parent 89b50142c7
commit ee3a24d238
10 changed files with 116 additions and 6 deletions

View File

@@ -31,6 +31,7 @@
"src/assets" "src/assets"
], ],
"styles": [ "styles": [
"./node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css",
"src/styles.scss" "src/styles.scss"
], ],
"scripts": [] "scripts": []
@@ -99,6 +100,7 @@
"src/assets" "src/assets"
], ],
"styles": [ "styles": [
"./node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css",
"src/styles.scss" "src/styles.scss"
], ],
"scripts": [] "scripts": []

65
package-lock.json generated
View File

@@ -9,10 +9,12 @@
"version": "0.0.0", "version": "0.0.0",
"dependencies": { "dependencies": {
"@angular/animations": "~12.2.0", "@angular/animations": "~12.2.0",
"@angular/cdk": "^12.2.10",
"@angular/common": "~12.2.0", "@angular/common": "~12.2.0",
"@angular/compiler": "~12.2.0", "@angular/compiler": "~12.2.0",
"@angular/core": "~12.2.0", "@angular/core": "~12.2.0",
"@angular/forms": "~12.2.0", "@angular/forms": "~12.2.0",
"@angular/material": "^12.2.10",
"@angular/platform-browser": "~12.2.0", "@angular/platform-browser": "~12.2.0",
"@angular/platform-browser-dynamic": "~12.2.0", "@angular/platform-browser-dynamic": "~12.2.0",
"@angular/router": "~12.2.0", "@angular/router": "~12.2.0",
@@ -290,6 +292,28 @@
"@angular/core": "12.2.10" "@angular/core": "12.2.10"
} }
}, },
"node_modules/@angular/cdk": {
"version": "12.2.10",
"resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-12.2.10.tgz",
"integrity": "sha512-jF/tyZXcAS0i11aH8061lMf/ofKs8U52smm/q7k5llTj/NvMZl4s6o3SmdYYE/ByljvCzObz+2j3TzJS/ioDFg==",
"dependencies": {
"tslib": "^2.2.0"
},
"optionalDependencies": {
"parse5": "^5.0.0"
},
"peerDependencies": {
"@angular/common": "^12.0.0 || ^13.0.0-0",
"@angular/core": "^12.0.0 || ^13.0.0-0",
"rxjs": "^6.5.3 || ^7.0.0"
}
},
"node_modules/@angular/cdk/node_modules/parse5": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
"integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
"optional": true
},
"node_modules/@angular/cli": { "node_modules/@angular/cli": {
"version": "12.2.10", "version": "12.2.10",
"resolved": "https://registry.npmjs.org/@angular/cli/-/cli-12.2.10.tgz", "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-12.2.10.tgz",
@@ -428,6 +452,22 @@
"rxjs": "^6.5.3 || ^7.0.0" "rxjs": "^6.5.3 || ^7.0.0"
} }
}, },
"node_modules/@angular/material": {
"version": "12.2.10",
"resolved": "https://registry.npmjs.org/@angular/material/-/material-12.2.10.tgz",
"integrity": "sha512-iC0EA8ogpn/KJ+kr3TEfQJLYPAtrguMr21KAGwtKOOLng1HiEhH6qEqlc0PPYUUQ06i+8nJr/WWfL0ORKXh3fg==",
"dependencies": {
"tslib": "^2.2.0"
},
"peerDependencies": {
"@angular/animations": "^12.0.0 || ^13.0.0-0",
"@angular/cdk": "12.2.10",
"@angular/common": "^12.0.0 || ^13.0.0-0",
"@angular/core": "^12.0.0 || ^13.0.0-0",
"@angular/forms": "^12.0.0 || ^13.0.0-0",
"rxjs": "^6.5.3 || ^7.0.0"
}
},
"node_modules/@angular/platform-browser": { "node_modules/@angular/platform-browser": {
"version": "12.2.10", "version": "12.2.10",
"resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.2.10.tgz", "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.2.10.tgz",
@@ -16235,6 +16275,23 @@
"tslib": "^2.2.0" "tslib": "^2.2.0"
} }
}, },
"@angular/cdk": {
"version": "12.2.10",
"resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-12.2.10.tgz",
"integrity": "sha512-jF/tyZXcAS0i11aH8061lMf/ofKs8U52smm/q7k5llTj/NvMZl4s6o3SmdYYE/ByljvCzObz+2j3TzJS/ioDFg==",
"requires": {
"parse5": "^5.0.0",
"tslib": "^2.2.0"
},
"dependencies": {
"parse5": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
"integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
"optional": true
}
}
},
"@angular/cli": { "@angular/cli": {
"version": "12.2.10", "version": "12.2.10",
"resolved": "https://registry.npmjs.org/@angular/cli/-/cli-12.2.10.tgz", "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-12.2.10.tgz",
@@ -16324,6 +16381,14 @@
"tslib": "^2.2.0" "tslib": "^2.2.0"
} }
}, },
"@angular/material": {
"version": "12.2.10",
"resolved": "https://registry.npmjs.org/@angular/material/-/material-12.2.10.tgz",
"integrity": "sha512-iC0EA8ogpn/KJ+kr3TEfQJLYPAtrguMr21KAGwtKOOLng1HiEhH6qEqlc0PPYUUQ06i+8nJr/WWfL0ORKXh3fg==",
"requires": {
"tslib": "^2.2.0"
}
},
"@angular/platform-browser": { "@angular/platform-browser": {
"version": "12.2.10", "version": "12.2.10",
"resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.2.10.tgz", "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.2.10.tgz",

View File

@@ -11,10 +11,12 @@
"private": true, "private": true,
"dependencies": { "dependencies": {
"@angular/animations": "~12.2.0", "@angular/animations": "~12.2.0",
"@angular/cdk": "^12.2.10",
"@angular/common": "~12.2.0", "@angular/common": "~12.2.0",
"@angular/compiler": "~12.2.0", "@angular/compiler": "~12.2.0",
"@angular/core": "~12.2.0", "@angular/core": "~12.2.0",
"@angular/forms": "~12.2.0", "@angular/forms": "~12.2.0",
"@angular/material": "^12.2.10",
"@angular/platform-browser": "~12.2.0", "@angular/platform-browser": "~12.2.0",
"@angular/platform-browser-dynamic": "~12.2.0", "@angular/platform-browser-dynamic": "~12.2.0",
"@angular/router": "~12.2.0", "@angular/router": "~12.2.0",
@@ -37,4 +39,4 @@
"karma-jasmine-html-reporter": "~1.7.0", "karma-jasmine-html-reporter": "~1.7.0",
"typescript": "~4.3.5" "typescript": "~4.3.5"
} }
} }

View File

@@ -1 +1,3 @@
<p>add-task works!</p> <div>
<mat-icon>add</mat-icon>
</div>

View File

@@ -6,6 +6,8 @@ import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component'; import { AppComponent } from './app.component';
import { MainPageComponent } from './main-page/main-page.component'; import { MainPageComponent } from './main-page/main-page.component';
import { AddTaskComponent } from './add-task/add-task.component'; import { AddTaskComponent } from './add-task/add-task.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import {MatIconModule} from '@angular/material/icon';
@NgModule({ @NgModule({
declarations: [ declarations: [
@@ -15,11 +17,12 @@ import { AddTaskComponent } from './add-task/add-task.component';
], ],
imports: [ imports: [
BrowserModule, BrowserModule,
AppRoutingModule AppRoutingModule,
BrowserAnimationsModule,
MatIconModule
], ],
providers: [ providers: [
CookieService, CookieService,
], ],
bootstrap: [AppComponent] bootstrap: [AppComponent]
}) })

View File

@@ -1,7 +1,12 @@
<div> <div class="component">
<h1>Todo List</h1> <h1>Todo List</h1>
<div *ngFor="let task of tasks" [title]="task.creationDate"> <div *ngFor="let task of tasks" [title]="task.creationDate">
<h1>{{ task.title }}</h1> <h1>{{ task.title }}</h1>
<p>{{ task.description }}</p> <p>{{ task.description }}</p>
</div> </div>
<div id="add-task-btn" *ngIf="!isAddingATask" (click)="startTaskAddition()">
<mat-icon>add</mat-icon>
<span>Ajouter une nouvelle tâche...</span>
</div>
<app-add-task *ngIf="isAddingATask"></app-add-task>
</div> </div>

View File

@@ -0,0 +1,21 @@
.component {
#add-task-btn {
border-radius: 3px;
border-width: 1px;
border-color: #AAAAAA;
border-style: solid;
background-color: #FFFFFF;
display: flex;
align-items: center;
padding: 10px 20px;
cursor: pointer;
mat-icon {
margin: 0 10px;
}
span {
color: #AAAAAA;
}
}
}

View File

@@ -9,6 +9,7 @@ import { TaskService } from '../core/service/task.service';
}) })
export class MainPageComponent implements OnInit { export class MainPageComponent implements OnInit {
tasks: Task[] = []; tasks: Task[] = [];
isAddingATask = false;
constructor( constructor(
private _taskService: TaskService private _taskService: TaskService
@@ -18,4 +19,7 @@ export class MainPageComponent implements OnInit {
this._taskService.tasks.subscribe(tasks => this.tasks = tasks); this._taskService.tasks.subscribe(tasks => this.tasks = tasks);
} }
startTaskAddition(): void {
this.isAddingATask = true;
}
} }

View File

@@ -6,8 +6,11 @@
<base href="/"> <base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico"> <link rel="icon" type="image/x-icon" href="favicon.ico">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
</head> </head>
<body> <body class="mat-typography">
<app-root></app-root> <app-root></app-root>
</body> </body>
</html> </html>

View File

@@ -1 +1,4 @@
/* You can add global styles to this file, and also import other style files */ /* You can add global styles to this file, and also import other style files */
html, body { height: 100%; }
body { margin: 0; font-family: Roboto, "Helvetica Neue", sans-serif; }