From 4582f5fa61e3c9ab230871025c951d09ef4836ca Mon Sep 17 00:00:00 2001 From: simodachich Date: Sat, 20 Jan 2018 19:48:56 +0000 Subject: [PATCH 1/2] adding favorit list --- src/app/app-routing.module.ts | 6 +- src/app/app.module.ts | 33 ++++- .../contact-card/contact-card.component.css | 17 +++ .../contact-card/contact-card.component.html | 40 +++--- .../contact-card/contact-card.component.ts | 20 ++- .../contact-form/adress/adress.component.css | 19 +++ .../contact-form/adress/adress.component.html | 48 +++++++ .../adress/adress.component.spec.ts | 25 ++++ .../contact-form/adress/adress.component.ts | 15 +++ .../contact-form/contact-form.component.css | 19 +++ .../contact-form/contact-form.component.html | 53 +++++--- .../contact-form/contact-form.component.ts | 30 ++++- .../contacts-list.component.html | 98 +-------------- .../contacts-list/contacts-list.component.ts | 28 ++++- .../edit-contact/edit-contact.component.css | 5 + .../edit-contact/edit-contact.component.html | 19 +++ .../edit-contact.component.spec.ts | 25 ++++ .../edit-contact/edit-contact.component.ts | 35 ++++++ .../favorites-contacts.component.html | 118 ++---------------- .../favorites-contacts.component.ts | 23 +++- src/app/contacts/components/index.ts | 8 +- .../new-contact/new-contact.component.css | 5 + .../new-contact/new-contact.component.html | 20 +++ .../new-contact/new-contact.component.spec.ts | 25 ++++ .../new-contact/new-contact.component.ts | 35 ++++++ src/app/model/adress.ts | 12 ++ src/app/model/contact.ts | 19 +++ src/app/profile/profile.component.css | 70 +++++++++++ src/app/profile/profile.component.html | 42 +++++-- src/app/profile/profile.component.ts | 11 +- src/app/services/contact.service.spec.ts | 15 +++ src/app/services/contact.service.ts | 103 +++++++++++++++ src/app/services/github.service.spec.ts | 15 +++ src/app/services/github.service.ts | 28 +++++ 34 files changed, 817 insertions(+), 267 deletions(-) create mode 100644 src/app/contacts/components/contact-form/adress/adress.component.css create mode 100644 src/app/contacts/components/contact-form/adress/adress.component.html create mode 100644 src/app/contacts/components/contact-form/adress/adress.component.spec.ts create mode 100644 src/app/contacts/components/contact-form/adress/adress.component.ts create mode 100644 src/app/contacts/components/edit-contact/edit-contact.component.css create mode 100644 src/app/contacts/components/edit-contact/edit-contact.component.html create mode 100644 src/app/contacts/components/edit-contact/edit-contact.component.spec.ts create mode 100644 src/app/contacts/components/edit-contact/edit-contact.component.ts create mode 100644 src/app/contacts/components/new-contact/new-contact.component.css create mode 100644 src/app/contacts/components/new-contact/new-contact.component.html create mode 100644 src/app/contacts/components/new-contact/new-contact.component.spec.ts create mode 100644 src/app/contacts/components/new-contact/new-contact.component.ts create mode 100644 src/app/model/adress.ts create mode 100644 src/app/model/contact.ts create mode 100644 src/app/services/contact.service.spec.ts create mode 100644 src/app/services/contact.service.ts create mode 100644 src/app/services/github.service.spec.ts create mode 100644 src/app/services/github.service.ts diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index aa8653b..6f57717 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -3,7 +3,8 @@ import { Routes, RouterModule } from '@angular/router'; import { ContactsListComponent, - ContactFormComponent, + NewContactComponent, + EditContactComponent, FavoritesContactsComponent } from './contacts/components'; import { ProfileComponent } from './profile/profile.component'; @@ -13,7 +14,8 @@ const routes: Routes = [ { path: 'contacts', component: ContactsListComponent }, { path: 'favorites', component: FavoritesContactsComponent }, { path: 'dashboard', component: DashboardComponent }, - { path: 'new-contact', component: ContactFormComponent }, + { path: 'new-contact', component: NewContactComponent }, + { path: 'contacts/:id', component: EditContactComponent }, { path: 'profile', component: ProfileComponent }, { path: '', diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 6bc25c6..68ba496 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -2,6 +2,12 @@ import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppRoutingModule } from './app-routing.module'; +import { FormsModule } from '@angular/forms'; +import { HttpClientModule } from '@angular/common/http'; +import { HttpModule } from '@angular/http'; + + + import { AppComponent } from './app.component'; import { HeaderComponent } from './blocks/header/header.component'; @@ -10,11 +16,19 @@ import { ContactsListComponent, ContactCardComponent, ContactFormComponent, - FavoritesContactsComponent + FavoritesContactsComponent, + NewContactComponent, + EditContactComponent } from './contacts/components'; import { ProfileComponent } from './profile/profile.component'; import { DashboardComponent } from './dashboard/dashboard.component'; +import { ContactService } from './services/contact.service'; +import { GithubService } from './services/github.service'; + +import { AdressComponent } from './contacts/components/contact-form/adress/adress.component'; + + @NgModule({ declarations: [ @@ -26,13 +40,22 @@ import { DashboardComponent } from './dashboard/dashboard.component'; ContactFormComponent, ProfileComponent, DashboardComponent, - FavoritesContactsComponent + FavoritesContactsComponent, + AdressComponent, + NewContactComponent, + EditContactComponent ], imports: [ BrowserModule, - AppRoutingModule + FormsModule, + AppRoutingModule, + HttpModule, + HttpClientModule + ], - providers: [], - bootstrap: [AppComponent] + providers: [ ContactService, GithubService ], + bootstrap: [AppComponent] }) export class AppModule { } + + diff --git a/src/app/contacts/components/contact-card/contact-card.component.css b/src/app/contacts/components/contact-card/contact-card.component.css index 328a6c7..7539b00 100644 --- a/src/app/contacts/components/contact-card/contact-card.component.css +++ b/src/app/contacts/components/contact-card/contact-card.component.css @@ -1,3 +1,20 @@ .contact-card { margin-bottom: 5px; } +.image{ + width: 200px; + height: 200px; +} +.card-contact-sizing{ + height: 500px; + margin-bottom: 15px; +} +.adjust-padding-card{ + margin-left: 15px; + +} +.bloc-shadow{ + box-shadow: 0px 0px 15px 0px rgba(0,0,0,0.15); + padding: 50px; + border-radius: 6px; +} \ No newline at end of file diff --git a/src/app/contacts/components/contact-card/contact-card.component.html b/src/app/contacts/components/contact-card/contact-card.component.html index 7e6f991..db6c97e 100644 --- a/src/app/contacts/components/contact-card/contact-card.component.html +++ b/src/app/contacts/components/contact-card/contact-card.component.html @@ -1,23 +1,23 @@ -
+ +
+
+
{{contact.firstName}} {{contact.lastName}}
+

email: {{contact.email}}.

+
+
    +
  • phone:{{contact.phone}}.
  • +
  • address : {{contact.addres}}.
  • +
+

Bio: {{contact.bio}}

-
- -
-

Mary Chesnut

-
Job Title
-
- -
+ + + + + + + + +
diff --git a/src/app/contacts/components/contact-card/contact-card.component.ts b/src/app/contacts/components/contact-card/contact-card.component.ts index 2a2bdd8..25e1494 100644 --- a/src/app/contacts/components/contact-card/contact-card.component.ts +++ b/src/app/contacts/components/contact-card/contact-card.component.ts @@ -1,4 +1,7 @@ -import { Component, OnInit } from '@angular/core'; + +import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core'; +import { Contact } from '../../../model/contact'; +import {ContactService} from '../../../services/contact.service'; @Component({ selector: 'contact-book-contact-card', @@ -6,10 +9,21 @@ import { Component, OnInit } from '@angular/core'; styleUrls: ['./contact-card.component.css'] }) export class ContactCardComponent implements OnInit { + @Input() contact: Contact; + @Output() DeleteContactevent: EventEmitter = new EventEmitter(); + @Output() FavoriteContactevent: EventEmitter = new EventEmitter(); - constructor() { } - + constructor( + private contactService: ContactService + ) { } ngOnInit() { } + delete(contact: Contact) { + this.DeleteContactevent.emit(contact); + } + favorite(contact: Contact) { + this.FavoriteContactevent.emit(contact); + } + } diff --git a/src/app/contacts/components/contact-form/adress/adress.component.css b/src/app/contacts/components/contact-form/adress/adress.component.css new file mode 100644 index 0000000..7e3a51b --- /dev/null +++ b/src/app/contacts/components/contact-form/adress/adress.component.css @@ -0,0 +1,19 @@ +.ng-valid[required], +.ng-valid.required { + border-left: 5px solid #42A948; + /* green */ +} + +.ng-invalid:not(form) { + border-left: 5px solid #a94442; + /* red */ +} +.field{ + width: 100%; + height: 100%; + box-shadow: inset 0 0 10px 2px #efefef; + padding: 20px 23px; + border: none; + border-radius:2px !important; + font-family: AkkuratRegular; +} \ No newline at end of file diff --git a/src/app/contacts/components/contact-form/adress/adress.component.html b/src/app/contacts/components/contact-form/adress/adress.component.html new file mode 100644 index 0000000..cbe8ffa --- /dev/null +++ b/src/app/contacts/components/contact-form/adress/adress.component.html @@ -0,0 +1,48 @@ +
+
+
+ + +
+ line1 is required!! +
+
+
+ + +
+ line2 is required!! +
+
+
+ + +
+ City is required!! +
+
+
+
+
+ + +
+ Country is required!! +
+
+
+ + +
+ Country is required!! +
+
+
+ + +
+ Zip Code is required!! +
+
+
+
\ No newline at end of file diff --git a/src/app/contacts/components/contact-form/adress/adress.component.spec.ts b/src/app/contacts/components/contact-form/adress/adress.component.spec.ts new file mode 100644 index 0000000..38413df --- /dev/null +++ b/src/app/contacts/components/contact-form/adress/adress.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AdressComponent } from './adress.component'; + +describe('AdressComponent', () => { + let component: AdressComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AdressComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AdressComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/contacts/components/contact-form/adress/adress.component.ts b/src/app/contacts/components/contact-form/adress/adress.component.ts new file mode 100644 index 0000000..07ee83a --- /dev/null +++ b/src/app/contacts/components/contact-form/adress/adress.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit, Input } from '@angular/core'; +import { Adress } from '../../../../model/adress'; + +@Component({ + selector: 'app-adress', + templateUrl: './adress.component.html', + styleUrls: ['./adress.component.css'] +}) +export class AdressComponent implements OnInit { + @Input() adress: Adress; + constructor() { } + + ngOnInit() { } + +} diff --git a/src/app/contacts/components/contact-form/contact-form.component.css b/src/app/contacts/components/contact-form/contact-form.component.css index e69de29..d3177c1 100644 --- a/src/app/contacts/components/contact-form/contact-form.component.css +++ b/src/app/contacts/components/contact-form/contact-form.component.css @@ -0,0 +1,19 @@ +.ng-valid[required], +.ng-valid.required { + border-left: 5px solid #42A948; + /* green */ +} + +.ng-invalid:not(form) { + border-left: 5px solid #a94442; + /* red */ +} +.bloc-separator{ + margin-top: 50px; + margin-bottom: 50px; +} +.bloc-shadow{ + box-shadow: 0px 0px 15px 0px rgba(0,0,0,0.15); + padding: 50px; + border-radius: 6px; +} \ No newline at end of file diff --git a/src/app/contacts/components/contact-form/contact-form.component.html b/src/app/contacts/components/contact-form/contact-form.component.html index 59bd36f..51bcc12 100644 --- a/src/app/contacts/components/contact-form/contact-form.component.html +++ b/src/app/contacts/components/contact-form/contact-form.component.html @@ -1,22 +1,37 @@ -