latest
This commit is contained in:
74
bookstore-api/.idea/workspace.xml
generated
74
bookstore-api/.idea/workspace.xml
generated
@@ -16,11 +16,21 @@
|
||||
<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="true">
|
||||
<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="697">
|
||||
<caret line="172" column="45" lean-forward="false" selection-start-line="172" selection-start-column="45" selection-end-line="172" selection-end-column="45" />
|
||||
<state relative-caret-position="293">
|
||||
<caret line="182" column="0" lean-forward="false" selection-start-line="182" selection-start-column="0" selection-end-line="182" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="ShoppingCart.java" pinned="false" current-in-tab="true">
|
||||
<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="225">
|
||||
<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>
|
||||
@@ -98,7 +108,6 @@
|
||||
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/domain/Order.java" />
|
||||
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/domain/Payment.java" />
|
||||
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/domain/ShippingAddress.java" />
|
||||
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/domain/ShoppingCart.java" />
|
||||
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/domain/User.java" />
|
||||
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/domain/UserBilling.java" />
|
||||
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/domain/UserPayment.java" />
|
||||
@@ -124,6 +133,7 @@
|
||||
<option value="$PROJECT_DIR$/src/main/java/com/bookstore/service/BookService.java" />
|
||||
<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" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
@@ -415,6 +425,36 @@
|
||||
<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="domain" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="bookstore-api" />
|
||||
@@ -890,12 +930,12 @@
|
||||
<workItem from="1486538831944" duration="450000" />
|
||||
<workItem from="1488378219247" duration="650000" />
|
||||
<workItem from="1488461561430" duration="18419000" />
|
||||
<workItem from="1488731165185" duration="11348000" />
|
||||
<workItem from="1488731165185" duration="12477000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TimeTrackingManager">
|
||||
<option name="totallyTimeSpent" value="73360000" />
|
||||
<option name="totallyTimeSpent" value="74489000" />
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="0" y="23" width="1280" height="797" extended-state="0" />
|
||||
@@ -918,7 +958,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="false" show_stripe_button="true" weight="0.32796317" 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="true" 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" />
|
||||
@@ -1110,13 +1150,6 @@
|
||||
</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="150">
|
||||
<caret line="16" column="0" lean-forward="true" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/main/java/com/bookstore/domain/User.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="135">
|
||||
@@ -1198,6 +1231,7 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="248">
|
||||
<caret line="34" column="41" lean-forward="true" selection-start-line="34" selection-start-column="41" selection-end-line="34" selection-end-column="41" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@@ -1304,8 +1338,16 @@
|
||||
</entry>
|
||||
<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="697">
|
||||
<caret line="172" column="45" lean-forward="false" selection-start-line="172" selection-start-column="45" selection-end-line="172" selection-end-column="45" />
|
||||
<state relative-caret-position="293">
|
||||
<caret line="182" column="0" lean-forward="false" selection-start-line="182" selection-start-column="0" selection-end-line="182" selection-end-column="0" />
|
||||
<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="225">
|
||||
<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>
|
||||
|
||||
@@ -26,6 +26,7 @@ public class ShoppingCart implements Serializable {
|
||||
private List<CartItem> cartItemList;
|
||||
|
||||
@OneToOne(cascade = CascadeType.ALL)
|
||||
@JsonIgnore
|
||||
private User user;
|
||||
|
||||
public Long getId() {
|
||||
|
||||
@@ -21,6 +21,7 @@ import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.security.Principal;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
@@ -173,4 +174,12 @@ public class UserResource {
|
||||
return new ResponseEntity("Email sent!", HttpStatus.OK);
|
||||
|
||||
}
|
||||
|
||||
@RequestMapping("/getCurrentUser")
|
||||
public User getCurrentUser(Principal principal){
|
||||
User user = userService.findByUsername(principal.getName());
|
||||
|
||||
return user;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -6,6 +6,7 @@ import {Routes, RouterModule} from '@angular/router';
|
||||
|
||||
import {HomeComponent} from './components/home/home.component';
|
||||
import {MyAccountComponent} from './components/my-account/my-account.component';
|
||||
import {MyProfileComponent} from './components/my-profile/my-profile.component';
|
||||
|
||||
|
||||
const appRoutes: Routes = [
|
||||
@@ -21,6 +22,10 @@ const appRoutes: Routes = [
|
||||
{
|
||||
path: 'myAccount',
|
||||
component: MyAccountComponent
|
||||
},
|
||||
{
|
||||
path: 'myProfile',
|
||||
component: MyProfileComponent
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
@@ -1,3 +1,82 @@
|
||||
<p>
|
||||
my-profile works!
|
||||
</p>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-xs-8">
|
||||
<h2 class="section-headline"><span>My Account</span></h2>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<img src="../../../assets/image/logo.png" class="img-responsive right" style="width:400px; z-index: 1;" />
|
||||
</div>
|
||||
<img class="img-responsive" src="../../../assets/image/wood.png" style="position: absolute;margin-top: 90px;z-index: -2;" />
|
||||
</div>
|
||||
<hr style="position: absolute; width:85%; height:6px; background-color: #333; z-index: -1; margin-top: -170px " />
|
||||
<div class="row" style="margin-top: 30px;">
|
||||
<div class="col-xs-3"></div>
|
||||
<div class="col-xs-9">
|
||||
<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 label="Edit">
|
||||
<div style="margin-top:20px;">
|
||||
<div class="alert alert-danger" *ngIf="incorrectPassword">
|
||||
<strong>Incorrect Password!</strong> Please enter the correct password for the current user.
|
||||
</div>
|
||||
<div class="alert alert-success" *ngIf="updateSuccess">
|
||||
<strong>Update Success!</strong>
|
||||
</div>
|
||||
<form (ngSubmit)="updateUserInfo" method="post">
|
||||
<input type="hidden" name="id" [(ngModel)]="user.id" />
|
||||
<div class="bg-info" *ngIf="updateUserInfo">User info updated.</div>
|
||||
<div class="form-group">
|
||||
<div class="row">
|
||||
<div class="col-xs-6">
|
||||
<label for="firstName">First Name</label>
|
||||
<input type="text" class="form-control" id="firstName" name="firstName" [(ngModel)]="user.firstName" />
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<label for="lastName">Last Name</label>
|
||||
<input type="text" class="form-control" id="lastName" name="lastName" [(ngModel)]="user.lastName" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="username">Username *</label> <span *ngIf="usernameExists" style="color:red;">Username already exists. Choose a different one.</span>
|
||||
<input required="required" type="text" class="form-control" id="username" name="username" [(ngModel)]="user.username" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="currentPassword">Current password</label>
|
||||
<input type="password" class="form-control" id="currentPassword" name="password" [(ngModel)]="currentPassword" />
|
||||
<p style="color: #828282;"> Enter your current password to change the E-mail address or Password.</p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="email">E-mail Address *</label> <span *ngIf="emailExists" style="color:red;">Email already exists. Choose a different one.</span>
|
||||
<input required="required" type="text" class="form-control" id="email" name="email" [(ngModel)]="user.email" />
|
||||
<p style="color: #828282;"> A valid e-mail address. All e-mails from the system will be sent to this address. The e-mail address is not made public and will only be used if you wish to receive a new password or wish to receive certain news or notifications by e-mail.</p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="txtNewPassword">Password</label> <span id="checkPasswordMatch" style="color:red;"></span>
|
||||
<input type="password" class="form-control" id="txtNewPassword" name="newPassword" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="txtConfirmPassword">Confirm Password</label>
|
||||
<input type="password" class="form-control" id="txtConfirmPassword" />
|
||||
<p style="color: #828282;"> To change the current user password, enter the new password in both fields.</p>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary" id="updateUserInfoButton">Save
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</md-tab>
|
||||
<md-tab label="Orders">
|
||||
</md-tab>
|
||||
<md-tab label="Billing">
|
||||
</md-tab>
|
||||
<md-tab label="Shipping">
|
||||
</md-tab>
|
||||
</md-tab-group>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -3,6 +3,7 @@ import {AppConst} from '../../constants/app-const';
|
||||
import {Router} from "@angular/router";
|
||||
import {LoginService} from "../../services/login.service";
|
||||
import {UserService} from "../../services/user.service";
|
||||
import {User} from '../../models/user';
|
||||
|
||||
@Component({
|
||||
selector: 'app-my-profile',
|
||||
@@ -26,6 +27,8 @@ export class MyProfileComponent implements OnInit {
|
||||
private forgetPasswordEmailSent: boolean = false;
|
||||
private recoverEmail:string;
|
||||
|
||||
private user: User = new User();
|
||||
|
||||
constructor (private loginService: LoginService, private userService: UserService, private router: Router){
|
||||
}
|
||||
|
||||
@@ -91,4 +94,15 @@ export class MyProfileComponent implements OnInit {
|
||||
}
|
||||
);
|
||||
|
||||
this.userService.getCurrentUser().subscribe(
|
||||
res => {
|
||||
console.log(res.json());
|
||||
this.user=res.json();
|
||||
},
|
||||
error => {
|
||||
console.log(error);
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
</li>
|
||||
<li *ngIf="!loggedIn" ><a md-button routerLink="/myAccount" routerLinkActive="active">MY ACCOUNT</a></li>
|
||||
<li *ngIf="loggedIn"><a md-button routerLink="/myProfile" routerLinkActive="active">MY PROFILE</a></li>
|
||||
<li *ngIf="loggedIn"><a md-button (click)="logout()">LOGOUT</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -32,4 +32,14 @@ export class UserService {
|
||||
});
|
||||
return this.http.post(url, JSON.stringify(userInfo), {headers : tokenHeader});
|
||||
}
|
||||
|
||||
getCurrentUser(){
|
||||
let url = this.serverPath+"/user/getCurrentUser";
|
||||
|
||||
let tokenHeader = new Headers ({
|
||||
'Content-Type': 'application/json',
|
||||
'x-auth-token' : localStorage.getItem("xAuthToken")
|
||||
});
|
||||
return this.http.get(url, {headers : tokenHeader});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user