This commit is contained in:
Le Deng
2017-03-11 16:44:57 -05:00
parent ae51a4ad4b
commit 190058907a
10 changed files with 132 additions and 67 deletions

View File

@@ -99,7 +99,7 @@
</md-grid-tile>
</md-grid-list>
<md-input-container>
<textarea mdInput id="title" [(ngModel)]="newBook.description" name="description" placeholder="Description"></textarea>
<textarea mdInput id="title" [(ngModel)]="newBook.description" name="description" placeholder="Description" required></textarea>
</md-input-container>
Image &nbsp;
<input id="title" type="file" id="bookImage" name="bookImage" (change)="uploadImageService.fileChangeEvent($event)">

View File

@@ -60,26 +60,6 @@
</provider>
</entry>
</file>
<file leaf-file-name="CartItem.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/domain/CartItem.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-162">
<caret line="38" column="15" lean-forward="false" selection-start-line="38" selection-start-column="15" selection-end-line="38" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="OrderServiceImpl.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/service/impl/OrderServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="533">
<caret line="81" column="24" lean-forward="false" selection-start-line="81" selection-start-column="17" selection-end-line="81" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Payment.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/domain/Payment.java">
<provider selected="true" editor-type-id="text-editor">
@@ -90,16 +70,39 @@
</provider>
</entry>
</file>
<file leaf-file-name="LoginResource.java" pinned="false" current-in-tab="true">
<file leaf-file-name="LoginResource.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/resource/LoginResource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="348">
<caret line="103" column="50" lean-forward="false" selection-start-line="103" selection-start-column="50" selection-end-line="103" selection-end-column="50" />
<state relative-caret-position="975">
<caret line="78" column="69" lean-forward="true" selection-start-line="78" selection-start-column="69" selection-end-line="78" selection-end-column="69" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="BookResource.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/resource/BookResource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="206">
<caret line="144" column="0" lean-forward="false" selection-start-line="144" selection-start-column="0" selection-end-line="144" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="BookServiceImpl.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/service/impl/BookServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="608">
<caret line="73" column="5" lean-forward="false" selection-start-line="73" selection-start-column="5" selection-end-line="73" selection-end-column="5" />
<folding>
<element signature="e#1749#1750#0" expanded="true" />
<element signature="e#1790#1791#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="BillingAddress.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/domain/BillingAddress.java">
<provider selected="true" editor-type-id="text-editor">
@@ -179,7 +182,6 @@
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/resource/UserResource.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/domain/Book.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/resource/CartResource.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/resource/BookResource.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/resource/ShoppingCartResource.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/resource/ShippingResource.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/resource/PaymentResource.java" />
@@ -192,6 +194,7 @@
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/domain/BillingAddress.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/domain/Payment.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/resource/LoginResource.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/resource/BookResource.java" />
</list>
</option>
</component>
@@ -209,7 +212,7 @@
</option>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="72" />
<option name="x" value="112" />
<option name="y" value="23" />
<option name="width" value="1280" />
<option name="height" value="797" />
@@ -1017,15 +1020,15 @@
<workItem from="1488378219247" duration="650000" />
<workItem from="1488461561430" duration="18419000" />
<workItem from="1488731165185" duration="30270000" />
<workItem from="1489159532831" duration="13888000" />
<workItem from="1489159532831" duration="14854000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="106170000" />
<option name="totallyTimeSpent" value="107136000" />
</component>
<component name="ToolWindowManager">
<frame x="72" y="23" width="1280" height="797" extended-state="0" />
<frame x="112" y="23" width="1280" height="797" extended-state="0" />
<editor active="true" />
<layout>
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
@@ -1039,14 +1042,14 @@
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32907802" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
<window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32907802" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32624114" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32624114" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Spring" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32907802" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32229403" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
@@ -1069,7 +1072,7 @@
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<option name="time" value="19" />
<option name="time" value="20" />
</breakpoint-manager>
<watches-manager />
</component>
@@ -1197,14 +1200,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/service/impl/BookServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="697">
<caret line="73" column="5" lean-forward="false" selection-start-line="73" selection-start-column="5" selection-end-line="73" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/domain/ShoppingCart.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="248">
@@ -1403,14 +1398,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/resource/BookResource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="124" column="0" lean-forward="true" selection-start-line="124" selection-start-column="0" selection-end-line="124" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/resource/ShippingResource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="143">
@@ -1549,8 +1536,27 @@
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/resource/LoginResource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="348">
<caret line="103" column="50" lean-forward="false" selection-start-line="103" selection-start-column="50" selection-end-line="103" selection-end-column="50" />
<state relative-caret-position="975">
<caret line="78" column="69" lean-forward="true" selection-start-line="78" selection-start-column="69" selection-end-line="78" selection-end-column="69" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/service/impl/BookServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="608">
<caret line="73" column="5" lean-forward="false" selection-start-line="73" selection-start-column="5" selection-end-line="73" selection-end-column="5" />
<folding>
<element signature="e#1749#1750#0" expanded="true" />
<element signature="e#1790#1791#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/resource/BookResource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="206">
<caret line="144" column="0" lean-forward="false" selection-start-line="144" selection-start-column="0" selection-end-line="144" selection-end-column="0" />
<folding />
</state>
</provider>

View File

@@ -132,4 +132,18 @@ public class BookResource {
return new ResponseEntity("Remove Success!", HttpStatus.OK);
}
@RequestMapping(value="/searchBook", method = RequestMethod.POST)
public List<Book> searchBook(
@RequestBody String keyword,
Principal principal
) {
if (principal != null) {
String username = principal.getName();
User user = userService.findByUsername(username);
}
List<Book> bookList = bookService.blurrySearch(keyword);
return bookList;
}
}

View File

@@ -18,7 +18,7 @@
<th colspan="5">
<div class="row">
<div class="col-md-9">
Filter by Title:
Filter by Description:
<input class="form-control" [(ngModel)]="filterQuery" />
</div>
<div class="col-md-3">

View File

@@ -1,7 +1,7 @@
import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';
import {Book} from "../../models/book";
import {BookService} from "../../services/book.service";
import {Router} from "@angular/router";
import {Params, ActivatedRoute,Router} from "@angular/router";
import {Http} from "@angular/http";
import {AppConst} from '../../constants/app-const';
@@ -19,16 +19,8 @@ export class BookListComponent implements OnInit {
private bookList: Book[];
private serverPath = AppConst.serverPath;
constructor(private bookService:BookService, private router: Router, private http: Http) {
this.bookService.getBookList().subscribe(
res => {
console.log(res.json());
this.bookList=res.json();
},
err => {
console.log(err);
}
);
constructor(private bookService:BookService, private router: Router, private http: Http, private route:ActivatedRoute) {
}
onSelect(book:Book) {
@@ -38,6 +30,24 @@ export class BookListComponent implements OnInit {
ngOnInit() {
this.route.queryParams.subscribe(params => {
if (params['bookList']){
console.log("filtered book list");
this.bookList = JSON.parse(params['bookList']);
} else {
this.bookService.getBookList().subscribe(
res => {
console.log(res.json());
this.bookList=res.json();
},
err => {
console.log(err);
}
);
}
});
}
}

View File

@@ -8,7 +8,7 @@ export class DataFilterPipe implements PipeTransform {
transform(array: any[], query: string): any {
if (query) {
return _.filter(array, row=>row.title.indexOf(query) > -1);
return _.filter(array, row=>row.description.indexOf(query) > -1);
}
return array;
}

View File

@@ -9,9 +9,9 @@
<div id="navbar">
<ul class="nav navbar-nav navbar-left">
<li ><a md-button routerLink="/bookList" routerLinkActive="active">BOOK</a></li>
<form class="navbar-form" method="post">
<form (ngSubmit)="onSearchByTitle()" class="navbar-form" method="post">
<div class="form-group">
<input type="text" name="keyword" class="form-control" placeholder="Book title" />
<input type="text" name="searcyByTitle" [(ngModel)]="keyword" class="form-control" placeholder="Book title" />
</div>
<button type="submit" class="btn btn-default">Search</button>
</form>

View File

@@ -1,6 +1,8 @@
import { Component, OnInit } from '@angular/core';
import {LoginService} from "../../services/login.service";
import {Router} from "@angular/router";
import {Router, NavigationExtras} from "@angular/router";
import {BookService} from "../../services/book.service";
import {Book} from "../../models/book";
@Component({
selector: 'app-nav-bar',
@@ -9,8 +11,14 @@ import {Router} from "@angular/router";
})
export class NavBarComponent implements OnInit {
private loggedIn = false;
private keyword:string;
private bookList:Book[] = [];
constructor(private loginService: LoginService, private router: Router) { }
constructor(
private loginService: LoginService,
private router: Router,
private bookService:BookService
) { }
ngOnInit() {
this.loginService.checkSession().subscribe(
@@ -23,6 +31,25 @@ export class NavBarComponent implements OnInit {
);
}
onSearchByTitle(){
this.bookService.searchBook(this.keyword).subscribe(
res => {
this.bookList=res.json();
let navigationExtras: NavigationExtras = {
queryParams: {
"bookList": JSON.stringify(this.bookList)
}
};
this.router.navigate(['/bookList'], navigationExtras);
},
error => {
console.log(error);
}
);
}
logout(){
this.loginService.logout().subscribe(
res => {

View File

@@ -24,4 +24,12 @@ export class BookService {
return this.http.get(url, {headers : tokenHeader});
}
searchBook(keyword:string) {
let url = AppConst.serverPath+"/book/searchBook";
let tokenHeader = new Headers ({
'x-auth-token' : localStorage.getItem("xAuthToken")
});
return this.http.post(url, keyword, {headers : tokenHeader});
}
}