Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11,074 changes: 10,634 additions & 440 deletions package-lock.json

Large diffs are not rendered by default.

11 changes: 6 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@
"description": "",
"main": "index.js",
"scripts": {
"server": "cp ./data/orig-db.json ./data/db.json && json-server --watch ./data/db.json",
"setup": "bower install",
"start": "cd src && serve",
"build": "rimraf src/dist && webpack --bail --progress --profile"
"setup": "npm install",
"build": "rimraf src/dist && webpack --bail --progress --profile",
"server-linux": "cp ./data/orig-db.json ./data/db.json && json-server --watch ./data/db.json",
"server-windows": "cd ./data && copy orig-db.json db.json && json-server --watch db.json",
"start": "cd src && serve -o"
},
"author": "",
"license": "ISC",
Expand Down Expand Up @@ -43,7 +44,7 @@
"css-loader": "^0.28.7",
"extract-text-webpack-plugin": "^3.0.2",
"json-server": "^0.9.6",
"node-sass": "^4.7.2",
"node-sass": "^4.14.1",
"rimraf": "^2.6.2",
"sass-loader": "^6.0.6",
"serve": "^5.1.2",
Expand Down
12 changes: 6 additions & 6 deletions src/app/app.routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import {PersonCreateComponent} from "./components/person-create.component";
import {PersonEditComponent} from "./components/person-edit.component";

export const routes: Routes = [
{path: '', redirectTo: '/list(header:search)', pathMatch: 'full'},
{path: 'list', component: PersonListComponent},
{path: 'search', component: SearchComponent, outlet: 'header'},
{path: 'create', component: PersonCreateComponent},
{path: 'edit/:email', component: PersonEditComponent},
];
{path: "", redirectTo: "/list(header:search)", pathMatch: "full"},
{path: "list", component: PersonListComponent},
{path: "search", component: SearchComponent, outlet: "header"},
{path: "create", component: PersonCreateComponent},
{path: "edit/:email", component: PersonEditComponent}
];
56 changes: 28 additions & 28 deletions src/app/components/app-root.component.ts
Original file line number Diff line number Diff line change
@@ -1,41 +1,41 @@
import { Component } from "@angular/core";
import {Component} from "@angular/core";

@Component({
selector: "app-root",
template: `
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="/">Contacts
</a>
</div>
selector: "app-root",
template: `
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="/">Contacts
</a>
</div>

<router-outlet name="header"></router-outlet>

<div class="collapse navbar-collapse">
<ul class="nav navbar-nav navbar-right">
<li [routerLinkActive]="['active']">
<a [routerLink]="[{outlets: {primary: 'list', header: 'search'}}]">Search</a>
</li>
<li [routerLinkActive]="['active']">
<a [routerLink]="[{outlets: {primary: 'create', header: null}}]">Create</a>
</li>
</ul>
</div>

<router-outlet name="header"></router-outlet>

<div class="collapse navbar-collapse">
<ul class="nav navbar-nav navbar-right">
<li [routerLinkActive]="['active']" >
<a [routerLink]="[{outlets: {primary: 'list', header: 'search'}}]">Search</a>
</li>
<li [routerLinkActive]="['active']">
<a [routerLink]="[{outlets: {primary: 'create', header: null}}]">Create</a>
</li>
</ul>
</div>
</nav>

</div>
</nav>

<div class="container main-content">
<div class="container main-content">

<toaster-container></toaster-container>
<toaster-container></toaster-container>

<div class="row">
<div class="row">

<router-outlet></router-outlet>
<router-outlet></router-outlet>

</div>
</div>
</div>
`
})
export class AppRootComponent {
Expand Down
87 changes: 43 additions & 44 deletions src/app/components/card.component.ts
Original file line number Diff line number Diff line change
@@ -1,67 +1,66 @@
import { Component, Input, Inject } from "@angular/core";
import { downgradeComponent } from "@angular/upgrade/static";
import {Component, Inject, Input} from "@angular/core";

import { ContactService } from "../services/contact.service";
import {ContactService} from "../services/contact.service";

@Component({
selector: "ccCard",
template: `
<div class="col-md-6">
<div class="well well-sm">
<div class="row">
<div class="col-md-4">
<img src="{{ user.photo | defaultImage }}"
alt=""
class="img-rounded img-responsive" />
</div>
<div class="col-md-8">
<h4>{{ user.name }}
<i class="fa"
[ngClass]="{'fa-female':user.sex == 'F', 'fa-male': user.sex == 'M'}"></i>
</h4>
<small>{{ user.city }}, {{ user.country }}
<i class="fa fa-map-marker"></i>
</small>
<p>
<i class="fa fa-envelope-o"></i>
{{ user.email }}
<br />
<i class="fa fa-gift"></i>
{{ user.birthdate | date:"longDate"}}
</p>
<div class="col-md-6">
<div class="well well-sm">
<div class="row">
<div class="col-md-4">
<img src="{{ user.photo | defaultImage }}"
alt=""
class="img-rounded img-responsive" />
</div>
<div class="col-md-8">
<h4>{{ user.name }}
<i class="fa"
[ngClass]="{'fa-female':user.sex == 'F', 'fa-male': user.sex == 'M'}"></i>
</h4>
<small>{{ user.city }}, {{ user.country }}
<i class="fa fa-map-marker"></i>
</small>
<p>
<i class="fa fa-envelope-o"></i>
{{ user.email }}
<br />
<i class="fa fa-gift"></i>
{{ user.birthdate | date:"longDate"}}
</p>


<a class="btn btn-default btn-sm"
[routerLink]="['/edit', user.email]">
<i class="fa fa-pencil"></i>
&nbsp;Edit
</a>
<a class="btn btn-default btn-sm"
[routerLink]="['/edit', user.email]">
<i class="fa fa-pencil"></i>
&nbsp;Edit
</a>

<a class="btn btn-danger btn-sm"
[ladda]="isDeleting"
(click)="deleteUser()">
<i class="fa fa-trash"></i>
&nbsp;Delete
</a>
<a class="btn btn-danger btn-sm"
[ladda]="isDeleting"
(click)="deleteUser()">
<i class="fa fa-trash"></i>
&nbsp;Delete
</a>

</div>
</div>
</div>
</div>
</div>
</div>
`
})
export class CardComponent {
protected isDeleting;
@Input() private user;
isDeleting;
@Input() public user;

constructor( @Inject(ContactService) private contacts: ContactService) {
constructor(@Inject(ContactService) private contacts: ContactService) {
this.isDeleting = false;
}

deleteUser() {
this.isDeleting = true;
this.contacts.removeContact(this.user).then(() => {
this.isDeleting = false;
})
});
}
}
}
39 changes: 19 additions & 20 deletions src/app/components/person-create.component.ts
Original file line number Diff line number Diff line change
@@ -1,28 +1,27 @@
import { Inject, Component } from "@angular/core";
import { downgradeComponent } from "@angular/upgrade/static";
import { Router } from "@angular/router";
import {Component, Inject} from "@angular/core";
import {Router} from "@angular/router";

import { ContactService } from "../services/contact.service";
import {ContactService} from "../services/contact.service";


@Component({
selector: 'personCreate',
templateUrl: 'app/components/person-form.html'
selector: "personCreate",
templateUrl: "app/components/person-form.html"
})
export class PersonCreateComponent {
public person = {};
public mode: string = 'Create';
public person = {};
public mode: string = "Create";

constructor(@Inject(ContactService) public contacts: ContactService,
private router: Router) {
this.person = {};
}
constructor(@Inject(ContactService) public contacts: ContactService,
private router: Router) {
this.person = {};
}

save() {
console.log("createContact");
this.contacts.createContact(this.person)
.then(() => {
this.router.navigate(['']);
})
}
}
save() {
console.log("createContact");
this.contacts.createContact(this.person)
.then(() => {
this.router.navigate([""]).then();
});
}
}
55 changes: 27 additions & 28 deletions src/app/components/person-edit.component.ts
Original file line number Diff line number Diff line change
@@ -1,39 +1,38 @@
import { Inject, Component } from "@angular/core";
import {Router, ActivatedRoute} from "@angular/router";
import { downgradeComponent } from "@angular/upgrade/static";
import {Component, Inject} from "@angular/core";
import {ActivatedRoute, Router} from "@angular/router";

import { ContactService } from "../services/contact.service";
import {ContactService} from "../services/contact.service";

@Component({
selector: "personEdit",
templateUrl: 'app/components/person-form.html'
templateUrl: "app/components/person-form.html"
})
export class PersonEditComponent {
public mode: string = 'Edit';
public person: any;
public mode: string = "Edit";
public person: any;

constructor(private route: ActivatedRoute,
private router: Router,
@Inject(ContactService) public contacts: ContactService) {
this.route.params.subscribe(params => {
console.log(params);
if (params['email']) {
this.person = this.contacts.getPerson(params['email']);
}
});
constructor(private route: ActivatedRoute,
private router: Router,
@Inject(ContactService) public contacts: ContactService) {
this.route.params.subscribe(params => {
console.log(params);
if (params["email"]) {
this.person = this.contacts.getPerson(params["email"]);
}
});

}
}

save() {
this.contacts.updateContact(this.person).then(() => {
this.router.navigate(['']);
});
};
save() {
this.contacts.updateContact(this.person).then(() => {
this.router.navigate([""]).then();
});
};

remove() {
this.contacts.removeContact(this.person).then(() => {
this.router.navigate(['']);
});
};
remove() {
this.contacts.removeContact(this.person).then(() => {
this.router.navigate([""]).then();
});
};

}
}
Loading