latest
This commit is contained in:
@@ -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 { }
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>) {}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
16
admin-portal/src/app/services/remove-book.service.spec.ts
Normal file
16
admin-portal/src/app/services/remove-book.service.spec.ts
Normal 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();
|
||||
}));
|
||||
});
|
||||
18
admin-portal/src/app/services/remove-book.service.ts
Normal file
18
admin-portal/src/app/services/remove-book.service.ts
Normal 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});
|
||||
}
|
||||
}
|
||||
139
bookstore-api/.idea/workspace.xml
generated
139
bookstore-api/.idea/workspace.xml
generated
@@ -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	" 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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -19,4 +19,6 @@ public interface BookService {
|
||||
|
||||
List<Book> blurrySearch(String title);
|
||||
|
||||
void removeOne(Long id);
|
||||
|
||||
}
|
||||
|
||||
@@ -68,4 +68,8 @@ public class BookServiceImpl implements BookService{
|
||||
|
||||
return activeBookList;
|
||||
}
|
||||
|
||||
public void removeOne(Long id) {
|
||||
bookRepository.delete(id);
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bookstore-api/target/classes/static/image/book/10.png
Normal file
BIN
bookstore-api/target/classes/static/image/book/10.png
Normal file
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 |
Reference in New Issue
Block a user