This commit is contained in:
Le Deng
2017-03-08 15:09:33 -05:00
parent 46a9a73867
commit 4bd11ae1e8
8 changed files with 133 additions and 155 deletions

View File

@@ -16,21 +16,11 @@
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="UserResource.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/resource/UserResource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="368">
<caret line="99" column="0" lean-forward="false" selection-start-line="99" selection-start-column="0" selection-end-line="100" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="PaymentResource.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/resource/PaymentResource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="266">
<caret line="56" column="0" lean-forward="false" selection-start-line="56" selection-start-column="0" selection-end-line="56" selection-end-column="0" />
<state relative-caret-position="272">
<caret line="69" column="0" lean-forward="true" selection-start-line="69" selection-start-column="0" selection-end-line="69" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
</folding>
@@ -38,81 +28,11 @@
</provider>
</entry>
</file>
<file leaf-file-name="UserSecurityService.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/service/impl/UserSecurityService.java">
<file leaf-file-name="UserServiceImpl.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/service/impl/UserServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
<caret line="26" column="0" lean-forward="false" selection-start-line="26" selection-start-column="0" selection-end-line="26" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="UserPayment.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/domain/UserPayment.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="210">
<caret line="29" column="15" lean-forward="false" selection-start-line="29" selection-start-column="15" selection-end-line="29" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="UserBilling.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/domain/UserBilling.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="315">
<caret line="27" column="15" lean-forward="false" selection-start-line="27" selection-start-column="15" selection-end-line="27" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ShoppingCart.java" pinned="false" current-in-tab="false">
<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">
<caret line="28" column="15" lean-forward="false" selection-start-line="28" selection-start-column="15" selection-end-line="28" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="MailConstructor.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/utility/MailConstructor.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="345">
<caret line="37" column="176" lean-forward="false" selection-start-line="37" selection-start-column="176" selection-end-line="37" selection-end-column="176" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="BookResource.java" pinned="false" current-in-tab="false">
<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="1200">
<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="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>
</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" />
<state relative-caret-position="135">
<caret line="22" column="13" lean-forward="false" selection-start-line="22" selection-start-column="13" selection-end-line="22" selection-end-column="13" />
<folding />
</state>
</provider>
@@ -174,9 +94,9 @@
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/resource/BookResource.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/resource/UserResource.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/domain/ShoppingCart.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/resource/PaymentResource.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/domain/UserPayment.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/domain/UserBilling.java" />
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/resource/PaymentResource.java" />
</list>
</option>
</component>
@@ -194,6 +114,7 @@
</option>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="82" />
<option name="y" value="23" />
<option name="width" value="1280" />
<option name="height" value="797" />
@@ -973,15 +894,15 @@
<workItem from="1486538831944" duration="450000" />
<workItem from="1488378219247" duration="650000" />
<workItem from="1488461561430" duration="18419000" />
<workItem from="1488731165185" duration="16666000" />
<workItem from="1488731165185" duration="19048000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="78678000" />
<option name="totallyTimeSpent" value="81060000" />
</component>
<component name="ToolWindowManager">
<frame x="0" y="23" width="1280" height="797" extended-state="0" />
<frame x="82" 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" />
@@ -1001,7 +922,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.32765958" 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.32765958" 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" />
@@ -1025,14 +946,6 @@
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/com/bookstore/resource/PaymentResource.java</url>
<line>56</line>
<properties />
<option name="timeStamp" value="6" />
</line-breakpoint>
</breakpoints>
<option name="time" value="7" />
</breakpoint-manager>
<watches-manager />
@@ -1120,13 +1033,6 @@
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/static/image/book/new course.jpg" />
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/service/impl/UserServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60">
<caret line="22" column="13" lean-forward="false" selection-start-line="22" selection-start-column="13" selection-end-line="22" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/domain/Book.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
@@ -1364,16 +1270,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/resource/PaymentResource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="266">
<caret line="56" column="0" lean-forward="false" selection-start-line="56" selection-start-column="0" selection-end-line="56" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/service/impl/UserSecurityService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
@@ -1398,5 +1294,23 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/resource/PaymentResource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272">
<caret line="69" column="0" lean-forward="true" selection-start-line="69" selection-start-column="0" selection-end-line="69" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/service/impl/UserServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="135">
<caret line="22" column="13" lean-forward="false" selection-start-line="22" selection-start-column="13" selection-end-line="22" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
</component>
</project>

View File

@@ -3,6 +3,7 @@ package com.bookstore.resource;
import com.bookstore.domain.User;
import com.bookstore.domain.UserBilling;
import com.bookstore.domain.UserPayment;
import com.bookstore.service.UserPaymentService;
import com.bookstore.service.UserService;
import com.bookstore.utility.USConstants;
import org.springframework.beans.factory.annotation.Autowired;
@@ -28,23 +29,8 @@ public class PaymentResource {
@Autowired
private UserService userService;
@RequestMapping("/listOfCreditCards")
public String listOfCreditCards(
Model model, Principal principal, HttpServletRequest request
) {
User user = userService.findByUsername(principal.getName());
model.addAttribute("user", user);
model.addAttribute("userPaymentList", user.getUserPaymentList());
model.addAttribute("userShippingList", user.getUserShippingList());
model.addAttribute("orderList", user.getOrderList());
model.addAttribute("listOfCreditCards", true);
model.addAttribute("classActiveBilling", true);
model.addAttribute("listOfShippingAddresses", true);
return "myProfile";
}
@Autowired
private UserPaymentService userPaymentService;
@RequestMapping(value = "/add", method = RequestMethod.POST)
public ResponseEntity addNewCreditCardPost(
@@ -60,4 +46,28 @@ public class PaymentResource {
}
@RequestMapping(value = "/remove", method = RequestMethod.POST)
public ResponseEntity removePaymentPost(
@RequestBody String id,
Principal principal, Model model) {
User user = userService.findByUsername(principal.getName());
model.addAttribute("user", user);
userPaymentService.removeById(Long.parseLong(id));
return new ResponseEntity("Payment Removed Successfully!", HttpStatus.OK);
}
@RequestMapping(value = "/setDefault", method = RequestMethod.POST)
public ResponseEntity setDefaultPaymentPost(
@RequestBody String id,
Principal principal, Model model) {
User user = userService.findByUsername(principal.getName());
userService.setUserDefaultPayment(Long.parseLong(id), user);
return new ResponseEntity("Set Default Payment Successfully!", HttpStatus.OK);
}
}

View File

@@ -23,6 +23,7 @@
"@angular/router": "^3.3.1",
"bootstrap": "^3.3.7",
"core-js": "^2.4.1",
"font-awesome": "^4.7.0",
"hammerjs": "^2.0.8",
"rxjs": "^5.0.1",
"ts-helpers": "^1.1.1",

View File

@@ -15,7 +15,7 @@
<div class="panel-group">
<div class="panel panel-default panel-faq" style="border: none;">
<div class="panel-body" style="background-color: #ededed; margin-top: 20px;">
<md-tab-group>
<md-tab-group [selectedIndex]="selectedProfileTab">
<md-tab label="Edit">
<div style="margin-top:20px;">
<div class="alert alert-danger" *ngIf="incorrectPassword">
@@ -73,7 +73,7 @@
<br>
<br>
<div>
<md-tab-group>
<md-tab-group [selectedIndex]="selectedBillingTab">
<md-tab label="List of Credit Cards">
<form (ngSubmit)="setDefaultPayment()" method="post">
<table class="table">
@@ -87,14 +87,14 @@
<tbody>
<tr *ngFor="let userPayment of userPaymentList">
<td>
<input type="radio" name="defaultUserPaymentId" [(ngModel)]="userPayment.id" />
<input type="radio" name="defaultUserPaymentId" [(ngModel)]="defaultUserPaymentId" [value]="userPayment.id" />
<span>default</span>
</td>
<td>{{userPayment.cardName}}</td>
<td>
<a><i
<a md-button><i
class="fa fa-pencil"></i></a>
<a><i
<a md-button (click)="onRemovePayment(userPayment.id)"><i
class="fa fa-times"></i></a>
</td>
</tr>

View File

@@ -36,6 +36,11 @@ export class MyProfileComponent implements OnInit {
private userPaymentList: UserPayment[] = [];
private stateList: string[] = [];
private selectedProfileTab:number = 0;
private selectedBillingTab:number = 0;
private defaultUserPaymentId:number;
constructor (private paymentService:PaymentService, private loginService: LoginService, private userService: UserService, private router: Router){
}
@@ -46,12 +51,12 @@ export class MyProfileComponent implements OnInit {
localStorage.setItem("xAuthToken", res.json().token);
this.loggedIn=true;
location.reload();
this.router.navigate(['/home']);
this.router.navigate(['/home']);
},
error=>{
this.loggedIn=false;
}
);
);
}
onNewAccount() {
@@ -70,7 +75,7 @@ export class MyProfileComponent implements OnInit {
if (errorMessage==="usernameExists") this.usernameExists=true;
if (errorMessage==="emailExists") this.emailExists=true;
}
);
);
}
onForgetPassword() {
@@ -88,18 +93,41 @@ export class MyProfileComponent implements OnInit {
if (errorMessage==="usernameExists") this.usernameExists=true;
if (errorMessage==="emailExists") this.emailExists=true;
}
);
);
}
onNewPayment () {
this.paymentService.newPayment(this.userPayment).subscribe(
res => {
console.log(res);
location.reload();
},
error => {
console.log(error.text());
}
);
);
}
onRemovePayment(id:number) {
this.paymentService.removePayment(id).subscribe(
res => {
location.reload();
},
error => {
console.log(error.text());
}
);
}
setDefaultPayment() {
this.paymentService.setDefaultPayment(this.defaultUserPaymentId).subscribe(
res => {
console.log(res.text());
location.reload();
},
error => {
console.log(error.text());
}
);
}
ngOnInit() {
@@ -110,20 +138,24 @@ export class MyProfileComponent implements OnInit {
error => {
this.loggedIn=false;
}
);
);
this.userService.getCurrentUser().subscribe(
res => {
console.log(res.json());
this.user=res.json();
console.log(this.user);
this.userPaymentList = this.user.userPaymentList;
console.log(this.userPaymentList);
},
error => {
console.log(error);
}
);
for (let index in this.userPaymentList) {
if (this.userPaymentList[index].defaultPayment) {
this.defaultUserPaymentId=this.userPaymentList[index].id;
return;
}
}
},
error => {
console.log(error);
}
);
for (let s in AppConst.usStates) {
this.stateList.push(s);
@@ -135,5 +167,5 @@ export class MyProfileComponent implements OnInit {
this.userPayment.expiryYear="";
this.userPayment.userBilling = this.userBilling;
}
}
}

View File

@@ -9,7 +9,7 @@ export class PaymentService {
constructor(private http:Http) { }
newPayment(payment: UsePayment) {
newPayment(payment: UserPayment) {
let url = this.serverPath+"/payment/add";
let tokenHeader = new Headers ({
@@ -18,4 +18,24 @@ export class PaymentService {
});
return this.http.post(url, JSON.stringify(payment), {headers : tokenHeader});
}
removePayment(id: number) {
let url = this.serverPath+"/payment/remove";
let tokenHeader = new Headers ({
'Content-Type': 'application/json',
'x-auth-token' : localStorage.getItem("xAuthToken")
});
return this.http.post(url, id, {headers : tokenHeader});
}
setDefaultPayment(id: number) {
let url = this.serverPath+"/payment/setDefault";
let tokenHeader = new Headers ({
'Content-Type': 'application/json',
'x-auth-token' : localStorage.getItem("xAuthToken")
});
return this.http.post(url, id, {headers : tokenHeader});
}
}

View File

@@ -1,6 +1,7 @@
/* You can add global styles to this file, and also import other style files */
@import '../node_modules/bootstrap/dist/css/bootstrap.min.css';
@import '~@angular/material/core/theming/prebuilt/pink-bluegrey.css';
@import "../node_modules/font-awesome/css/font-awesome.min.css";
@import './non-responsive.css';
/*@import '../node_modules/@swimlane/ngx-datatable/release/index.css';
@import '../node_modules/@swimlane/ngx-datatable/release/themes/material.css';