From 5afb782e87311edbed6397d11c6acda53a14cb6c Mon Sep 17 00:00:00 2001 From: majid noureddine Date: Thu, 14 May 2020 02:09:03 +0100 Subject: [PATCH 1/2] generate component architecture --- src/app/app.module.ts | 4 +++- src/app/blog/blog.component.html | 1 + src/app/blog/blog.component.scss | 0 src/app/blog/blog.component.ts | 15 +++++++++++++++ 4 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 src/app/blog/blog.component.html create mode 100644 src/app/blog/blog.component.scss create mode 100644 src/app/blog/blog.component.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 73e91b5..c590e20 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -3,11 +3,13 @@ import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { AppareilComponent } from './appareil/appareil.component'; import { FormsModule } from '@angular/forms'; +import { BlogComponent } from './blog/blog.component'; @NgModule({ declarations: [ AppComponent, - AppareilComponent + AppareilComponent, + BlogComponent ], imports: [ BrowserModule, diff --git a/src/app/blog/blog.component.html b/src/app/blog/blog.component.html new file mode 100644 index 0000000..ff0c151 --- /dev/null +++ b/src/app/blog/blog.component.html @@ -0,0 +1 @@ +

blog works!

diff --git a/src/app/blog/blog.component.scss b/src/app/blog/blog.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/blog/blog.component.ts b/src/app/blog/blog.component.ts new file mode 100644 index 0000000..8502585 --- /dev/null +++ b/src/app/blog/blog.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-blog', + templateUrl: './blog.component.html', + styleUrls: ['./blog.component.scss'] +}) +export class BlogComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} From 305964b5b70a3fa65e8891db11dc8e35c91914c9 Mon Sep 17 00:00:00 2001 From: majid noureddine Date: Thu, 14 May 2020 04:37:16 +0100 Subject: [PATCH 2/2] blog component v1 --- src/app/app.component.html | 14 +++++------ src/app/app.component.ts | 40 +++++++++++--------------------- src/app/blog/blog.component.html | 29 ++++++++++++++++++++++- src/app/blog/blog.component.scss | 10 ++++++++ src/app/blog/blog.component.ts | 14 ++++++++++- 5 files changed, 71 insertions(+), 36 deletions(-) diff --git a/src/app/app.component.html b/src/app/app.component.html index c220c79..000ba19 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,16 +1,14 @@
-

Mes appareils

-

Mis à jour le : {{ lastUpdate | async | date: 'd MMMM y' | uppercase }}

+

Posts

    - +
-
diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 7e526d6..7906508 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -7,39 +7,27 @@ import { Component } from '@angular/core'; }) export class AppComponent { - isAuth = false; - lastUpdate = new Promise((resolve, reject) => { - const date = new Date(); - setTimeout( - () => { - resolve(date); - }, 2000 - ); - }); - appareils = [ + posts = [ { - name: 'Machine à laver', - status: 'éteint' + title: 'Mon premier post', + content: 'Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l\'imprimerie depuis les années 1500, quand un imprimeur anonyme assembla ensemble des morceaux de texte pour réaliser un livre spécimen de polices de texte. Il n\'a pas fait que survivre cinq siècles, mais s\'est aussi adapté à la bureautique informatique, sans que son contenu n\'en soit modifié. Il a été popularisé dans les années 1960 grâce à la vente de feuilles Letraset contenant des passages du Lorem Ipsum', + loveIts: 2, + created_at: new Date() }, { - name: 'Frigo', - status: 'allumé' + title: 'Mon deuxième post', + content: 'Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l\'imprimerie depuis les années 1500, quand un imprimeur anonyme assembla ensemble des morceaux de texte pour réaliser un livre spécimen de polices de texte. Il n\'a pas fait que survivre cinq siècles, mais s\'est aussi adapté à la bureautique informatique, sans que son contenu n\'en soit modifié. Il a été popularisé dans les années 1960 grâce à la vente de feuilles Letraset contenant des passages du Lorem Ipsum', + loveIts: 3, + created_at: new Date() }, { - name: 'Ordinateur', - status: 'éteint' - } + title: 'Encore un post', + content: 'Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l\'imprimerie depuis les années 1500, quand un imprimeur anonyme assembla ensemble des morceaux de texte pour réaliser un livre spécimen de polices de texte. Il n\'a pas fait que survivre cinq siècles, mais s\'est aussi adapté à la bureautique informatique, sans que son contenu n\'en soit modifié. Il a été popularisé dans les années 1960 grâce à la vente de feuilles Letraset contenant des passages du Lorem Ipsum', + loveIts: 5, + created_at: new Date() + }, ]; constructor() { - setTimeout( - () => { - this.isAuth = true; - }, 4000 - ); - } - - onAllumer() { - console.log('On allume tout !'); } } diff --git a/src/app/blog/blog.component.html b/src/app/blog/blog.component.html index ff0c151..ddec213 100644 --- a/src/app/blog/blog.component.html +++ b/src/app/blog/blog.component.html @@ -1 +1,28 @@ -

blog works!

+
  • +
    +
    +

    {{ title }}

    +
    +
    +

    {{ createdAt | date: 'd/MM/y, h:mm a' }}

    +
    +
    +
    +

    + {{ content }} +

    +
    +
    +
    +
    + + +
    +
    +

    + Loves : {{ loveIts }} +

    +
    +
    +
    +
  • diff --git a/src/app/blog/blog.component.scss b/src/app/blog/blog.component.scss index e69de29..35c11bd 100644 --- a/src/app/blog/blog.component.scss +++ b/src/app/blog/blog.component.scss @@ -0,0 +1,10 @@ +.post_item { + padding: 20px; +} +.created_at_block { + float: right; + color: dimgrey; +} +.post_action_btn { + margin-right: 5px; +} diff --git a/src/app/blog/blog.component.ts b/src/app/blog/blog.component.ts index 8502585..97b4c76 100644 --- a/src/app/blog/blog.component.ts +++ b/src/app/blog/blog.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, Input } from '@angular/core'; @Component({ selector: 'app-blog', @@ -7,9 +7,21 @@ import { Component, OnInit } from '@angular/core'; }) export class BlogComponent implements OnInit { + @Input() title: string; + @Input() createdAt: Date; + @Input() content: string; + @Input() loveIts: number; + constructor() { } ngOnInit(): void { } + loveIt() { + this.loveIts++; + } + + dontLoveIt() { + this.loveIts--; + } }