This commit is contained in:
Le Deng
2017-03-06 10:49:55 -05:00
parent 1773aff4e3
commit 41cd750b8d
15 changed files with 209 additions and 39 deletions

View File

@@ -15,13 +15,11 @@ import {LoginService} from './services/login.service';
import { AddNewBookComponent } from './components/add-new-book/add-new-book.component';
import {UploadImageService} from "./services/upload-image.service";
import {AddBookService} from "./services/add-book.service";
// import { BookListComponent } from './components/book-list/book-list.component';
import {GetBookListService} from "./services/get-book-list.service";
// import { ViewBookComponent } from './components/view-book/view-book.component';
import {GetBookService} from "./services/get-book.service";
// import { EditBookComponent } from './components/edit-book/edit-book.component';
import {EditBookService} from "./services/edit-book.service";
import { BookListComponent } from './components/book-list/book-list.component';
import {RemoveBookService} from "./services/remove-book.service";
import { BookListComponent, DialogResultExampleDialog } from './components/book-list/book-list.component';
import { EditBookComponent } from './components/edit-book/edit-book.component';
import { ViewBookComponent } from './components/view-book/view-book.component';
@@ -32,12 +30,9 @@ import { ViewBookComponent } from './components/view-book/view-book.component';
LoginComponent,
AddNewBookComponent,
BookListComponent,
DialogResultExampleDialog,
EditBookComponent,
ViewBookComponent,
// BookListComponent,
// BookListComponent,
// ViewBookComponent,
// EditBookComponent
],
imports: [
BrowserModule,
@@ -53,8 +48,9 @@ import { ViewBookComponent } from './components/view-book/view-book.component';
AddBookService,
GetBookListService,
GetBookService,
EditBookService
EditBookService,
RemoveBookService
],
bootstrap: [AppComponent]
bootstrap: [AppComponent, DialogResultExampleDialog]
})
export class AppModule { }

View File

@@ -27,7 +27,7 @@
<td>{{book.active}}</td>
<td>
<input hidden="hidden" name="id" />
<button md-button class='mat-warn' type="submit" value="delete"><span
<button md-button (click)="openDialog(book)" value="delete"><span
class="fa fa-times"></span> delete
</button>
</td>
@@ -37,3 +37,4 @@
</div>
<button md-raised-button class="mat-warn" id="deleteSelected">Delete Selected</button>
</div>

View File

@@ -2,8 +2,11 @@ import { Component, OnInit } from '@angular/core';
import {LoginService} from "../../services/login.service";
import {Book} from "../../models/book";
import {GetBookListService} from "../../services/get-book-list.service";
import {RemoveBookService} from "../../services/remove-book.service";
import {Router} from "@angular/router";
import {MdDialog, MdDialogRef} from '@angular/material';
@Component({
selector: 'app-book-list',
templateUrl: './book-list.component.html',
@@ -14,7 +17,7 @@ export class BookListComponent implements OnInit {
private selectedBook : Book;
private bookList: Book[];
constructor(private getBookListService: GetBookListService, private router: Router) {
constructor(private removeBookService:RemoveBookService, private getBookListService: GetBookListService, private router: Router, public dialog: MdDialog) {
this.getBookListService.getBookList().subscribe(
res => {
console.log(res.json());
@@ -31,8 +34,35 @@ export class BookListComponent implements OnInit {
this.router.navigate(['/viewBook', this.selectedBook.id]);
}
openDialog(book:Book) {
let dialogRef = this.dialog.open(DialogResultExampleDialog);
dialogRef.afterClosed().subscribe(result => {
console.log(result);
if(result=="yes") {
this.removeBookService.sendBook(book.id).subscribe(
res => {
console.log(res);
location.reload();
},
err => {
console.log(err);
}
);
}
});
}
ngOnInit() {
}
}
@Component({
selector: 'dialog-result-example-dialog',
templateUrl: './dialog-result-example-dialog.html'
})
export class DialogResultExampleDialog {
constructor(public dialogRef: MdDialogRef<DialogResultExampleDialog>) {}
}

View File

@@ -0,0 +1,6 @@
<h1 md-dialog-title>Confirm Deleting</h1>
<div md-dialog-content>Are you sure you want to delete?</div>
<div md-dialog-actions>
<button md-button (click)="dialogRef.close('yes')">Yes</button>
<button md-button (click)="dialogRef.close('no')">No</button>
</div>

View File

@@ -0,0 +1,16 @@
/* tslint:disable:no-unused-variable */
import { TestBed, async, inject } from '@angular/core/testing';
import { RemoveBookService } from './remove-book.service';
describe('RemoveBookService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
providers: [RemoveBookService]
});
});
it('should ...', inject([RemoveBookService], (service: RemoveBookService) => {
expect(service).toBeTruthy();
}));
});

View File

@@ -0,0 +1,18 @@
import { Injectable } from '@angular/core';
import {Book} from "../models/book";
import {Http, Headers} from "@angular/http";
@Injectable()
export class RemoveBookService {
constructor (private http: Http) {}
sendBook(bookId: number) {
let url = "http://localhost:8181/book/remove";
let headers1 = new Headers({
'Content-Type': 'application/json',
'x-auth-token' : localStorage.getItem("xAuthToken")
});
return this.http.post(url, bookId, {headers: headers1});
}
}

View File

@@ -19,8 +19,28 @@
<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="360">
<caret line="71" column="0" lean-forward="false" selection-start-line="71" selection-start-column="0" selection-end-line="71" selection-end-column="0" />
<state relative-caret-position="450">
<caret line="124" column="5" lean-forward="true" selection-start-line="124" selection-start-column="5" selection-end-line="124" selection-end-column="5" />
<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="525">
<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>
</file>
<file leaf-file-name="BookService.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/service/BookService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="285">
<caret line="21" column="28" lean-forward="false" selection-start-line="21" selection-start-column="28" selection-end-line="21" selection-end-column="28" />
<folding />
</state>
</provider>
@@ -76,12 +96,14 @@
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/resource/LoginController.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/config/HttpSessionConfig.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" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/config/RequestFilter.java" />
<option value="$PROJECT_DIR$/src/main/resources/application.properties" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/config/SecurityConfig.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/resource/UserResource.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/utility/MailConstructor.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/service/impl/BookServiceImpl.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/service/BookService.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/resource/BookResource.java" />
</list>
</option>
</component>
@@ -99,8 +121,8 @@
</option>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="50" />
<option name="y" value="23" />
<option name="x" value="71" />
<option name="y" value="38" />
<option name="width" value="1663" />
<option name="height" value="961" />
</component>
@@ -250,6 +272,70 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="bookstore-api" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="bookstore-api" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="main" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="java" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="bookstore" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="service" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="bookstore-api" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="bookstore-api" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="main" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="java" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="bookstore" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="service" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="impl" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="bookstore-api" />
@@ -755,15 +841,15 @@
<workItem from="1486538831944" duration="450000" />
<workItem from="1488378219247" duration="650000" />
<workItem from="1488461561430" duration="18419000" />
<workItem from="1488731165185" duration="3460000" />
<workItem from="1488731165185" duration="6656000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="65472000" />
<option name="totallyTimeSpent" value="68668000" />
</component>
<component name="ToolWindowManager">
<frame x="50" y="23" width="1663" height="961" extended-state="0" />
<frame x="71" y="38" width="1663" height="961" 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" />
@@ -783,7 +869,7 @@
<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="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.26697353" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.26697353" sideWeight="0.5" order="2" 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.33" sideWeight="0.5" order="8" 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" />
@@ -823,21 +909,6 @@
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/config/RequestFilter.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="195">
<caret line="13" column="12" lean-forward="false" selection-start-line="13" selection-start-column="12" selection-end-line="13" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/config/HttpSessionConfig.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="18" column="0" lean-forward="true" selection-start-line="18" selection-start-column="0" selection-end-line="18" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/config/SecurityConfig.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
@@ -1168,10 +1239,26 @@
<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="525">
<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/service/BookService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="285">
<caret line="21" column="28" lean-forward="false" selection-start-line="21" selection-start-column="28" selection-end-line="21" selection-end-column="28" />
<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="360">
<caret line="71" column="0" lean-forward="false" selection-start-line="71" selection-start-column="0" selection-end-line="71" selection-end-column="0" />
<state relative-caret-position="450">
<caret line="124" column="5" lean-forward="true" selection-start-line="124" selection-start-column="5" selection-end-line="124" selection-end-column="5" />
<folding />
</state>
</provider>

View File

@@ -5,6 +5,7 @@ import com.bookstore.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
@@ -114,4 +115,13 @@ public class BookResource {
return book;
}
@RequestMapping(value = "/remove", method = RequestMethod.POST)
public ResponseEntity remove(
@RequestBody String id, Model model
){
bookService.removeOne(Long.parseLong(id));
return new ResponseEntity("Remove Success!", HttpStatus.OK);
}
}

View File

@@ -19,4 +19,6 @@ public interface BookService {
List<Book> blurrySearch(String title);
void removeOne(Long id);
}

View File

@@ -68,4 +68,8 @@ public class BookServiceImpl implements BookService{
return activeBookList;
}
public void removeOne(Long id) {
bookRepository.delete(id);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 14 KiB