latest
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
"@angular/platform-browser-dynamic": "^2.3.1",
|
||||
"@angular/router": "^3.3.1",
|
||||
"core-js": "^2.4.1",
|
||||
"hammerjs": "^2.0.8",
|
||||
"rxjs": "^5.0.1",
|
||||
"ts-helpers": "^1.1.1",
|
||||
"zone.js": "^0.7.2"
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
<h1>
|
||||
{{title}}
|
||||
</h1>
|
||||
<app-nav-bar></app-nav-bar>
|
||||
<router-outlet></router-outlet>
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
|
||||
import { BrowserModule } from '@angular/platform-browser';
|
||||
import { NgModule } from '@angular/core';
|
||||
import { FormsModule } from '@angular/forms';
|
||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||
import { HttpModule } from '@angular/http';
|
||||
import { routing } from './app.routing';
|
||||
import { MaterialModule } from '@angular/material';
|
||||
import 'hammerjs';
|
||||
|
||||
import { AppComponent } from './app.component';
|
||||
import { NavBarComponent } from './components/nav-bar/nav-bar.component';
|
||||
|
||||
import {LoginService} from './services/login.service';
|
||||
|
||||
@NgModule({
|
||||
declarations: [
|
||||
AppComponent,
|
||||
@@ -15,10 +20,14 @@ import { NavBarComponent } from './components/nav-bar/nav-bar.component';
|
||||
imports: [
|
||||
BrowserModule,
|
||||
FormsModule,
|
||||
ReactiveFormsModule,
|
||||
HttpModule,
|
||||
routing,
|
||||
MaterialModule
|
||||
],
|
||||
providers: [],
|
||||
providers: [
|
||||
LoginService
|
||||
],
|
||||
bootstrap: [AppComponent]
|
||||
})
|
||||
export class AppModule { }
|
||||
|
||||
11
admin-portal/src/app/app.routing.ts
Normal file
11
admin-portal/src/app/app.routing.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
/**
|
||||
* Created by z00382545 on 1/16/17.
|
||||
*/
|
||||
import {ModuleWithProviders} from '@angular/core';
|
||||
import {Routes, RouterModule} from '@angular/router';
|
||||
|
||||
const appRoutes: Routes = [
|
||||
|
||||
];
|
||||
|
||||
export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);
|
||||
@@ -0,0 +1,9 @@
|
||||
.example-container {
|
||||
width: 500px;
|
||||
}
|
||||
|
||||
.example-button-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
}
|
||||
@@ -1,3 +1,42 @@
|
||||
<p>
|
||||
nav-bar works!
|
||||
</p>
|
||||
<md-menu #appMenu="mdMenu">
|
||||
<button md-menu-item> Settings </button>
|
||||
<button md-menu-item> Help </button>
|
||||
</md-menu>
|
||||
|
||||
<button md-icon-button [mdMenuTriggerFor]="appMenu">
|
||||
<md-icon>more_vert</md-icon>
|
||||
</button>
|
||||
|
||||
<md-select placeholder="Favorite food">
|
||||
<md-option *ngFor="let food of foods" [value]="food.value">
|
||||
{{ food.viewValue }}
|
||||
</md-option>
|
||||
</md-select>
|
||||
|
||||
<md-grid-list cols="4" rowHeight="100px">
|
||||
<md-grid-tile
|
||||
*ngFor="let tile of tiles"
|
||||
[colspan]="tile.cols"
|
||||
[rowspan]="tile.rows"
|
||||
[style.background]="tile.color">
|
||||
{{tile.text}}
|
||||
</md-grid-tile>
|
||||
</md-grid-list>
|
||||
|
||||
<div class="example-container">
|
||||
<h3>Normal Buttons</h3>
|
||||
<div class="button-row">
|
||||
<button md-button>Flat button</button>
|
||||
<button md-raised-button>Raised button</button>
|
||||
<button md-fab><md-icon>check</md-icon></button>
|
||||
<button md-mini-fab><md-icon>check</md-icon></button>
|
||||
</div>
|
||||
|
||||
<h3>Link Buttons</h3>
|
||||
<div class="example-button-row">
|
||||
<a md-button routerLink=".">Flat button</a>
|
||||
<a md-raised-button routerLink=".">Raised button</a>
|
||||
<a md-fab routerLink="."><md-icon>check</md-icon></a>
|
||||
<a md-mini-fab routerLink="."><md-icon>check</md-icon></a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,4 +1,6 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import {LoginService} from "../../services/login.service";
|
||||
import {Router} from "@angular/router";
|
||||
|
||||
@Component({
|
||||
selector: 'app-nav-bar',
|
||||
@@ -6,10 +8,43 @@ import { Component, OnInit } from '@angular/core';
|
||||
styleUrls: ['./nav-bar.component.css']
|
||||
})
|
||||
export class NavBarComponent implements OnInit {
|
||||
private loggedIn = false;
|
||||
|
||||
constructor() { }
|
||||
foods = [
|
||||
{value: 'steak-0', viewValue: 'Steak'},
|
||||
{value: 'pizza-1', viewValue: 'Pizza'},
|
||||
{value: 'tacos-2', viewValue: 'Tacos'}
|
||||
];
|
||||
|
||||
tiles = [
|
||||
{text: 'One', cols: 3, rows: 1, color: 'lightblue'},
|
||||
{text: 'Two', cols: 1, rows: 2, color: 'lightgreen'},
|
||||
{text: 'Three', cols: 1, rows: 1, color: 'lightpink'},
|
||||
{text: 'Four', cols: 2, rows: 1, color: '#DDBDF1'},
|
||||
];
|
||||
|
||||
constructor(private loginService: LoginService, private router: Router) { }
|
||||
|
||||
ngOnInit() {
|
||||
this.loginService.checkSession().subscribe(
|
||||
res => {
|
||||
this.loggedIn=true;
|
||||
},
|
||||
error => {
|
||||
this.loggedIn=false;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
logout(){
|
||||
this.loginService.logout().subscribe(
|
||||
res => {
|
||||
location.reload();
|
||||
},
|
||||
err => console.log(err)
|
||||
);
|
||||
// location.reload();
|
||||
this.router.navigate(['/']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
16
admin-portal/src/app/services/login.service.spec.ts
Normal file
16
admin-portal/src/app/services/login.service.spec.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
/* tslint:disable:no-unused-variable */
|
||||
|
||||
import { TestBed, async, inject } from '@angular/core/testing';
|
||||
import { LoginService } from './login.service';
|
||||
|
||||
describe('LoginService', () => {
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({
|
||||
providers: [LoginService]
|
||||
});
|
||||
});
|
||||
|
||||
it('should ...', inject([LoginService], (service: LoginService) => {
|
||||
expect(service).toBeTruthy();
|
||||
}));
|
||||
});
|
||||
40
admin-portal/src/app/services/login.service.ts
Normal file
40
admin-portal/src/app/services/login.service.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import {Injectable} from "@angular/core";
|
||||
import {Http, Headers} from '@angular/http';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
|
||||
@Injectable()
|
||||
export class LoginService {
|
||||
|
||||
constructor (private http: Http) {}
|
||||
|
||||
sendCredential(username: string, password: string) {
|
||||
let url = "http://localhost:8181/token";
|
||||
let encodedCredentials = btoa(username+":"+password);
|
||||
let basicHeader = "Basic "+ encodedCredentials;
|
||||
let headers = new Headers(
|
||||
{
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'Authorization' : basicHeader
|
||||
|
||||
// 'Access-Control-Allow-Credentials' : true
|
||||
});
|
||||
return this.http.get(url, {headers: headers});
|
||||
}
|
||||
|
||||
checkSession() {
|
||||
let url = "http://localhost:8181/checkSession";
|
||||
let tokenHeader = new Headers ({
|
||||
'x-auth-token' : localStorage.getItem("xAuthToken")
|
||||
});
|
||||
return this.http.get(url, {headers : tokenHeader});
|
||||
}
|
||||
|
||||
logout() {
|
||||
let url = "http://localhost:8181/user/logout";
|
||||
let tokenHeader = new Headers ({
|
||||
'x-auth-token' : localStorage.getItem("xAuthToken")
|
||||
});
|
||||
return this.http.post(url,'', {headers : tokenHeader});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,6 +6,7 @@
|
||||
<base href="/">
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
/* You can add global styles to this file, and also import other style files */
|
||||
@import '~@angular/material/core/theming/prebuilt/deeppurple-amber.css';
|
||||
80
bookstore-api/.idea/workspace.xml
generated
80
bookstore-api/.idea/workspace.xml
generated
@@ -31,7 +31,9 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="330">
|
||||
<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 />
|
||||
<folding>
|
||||
<element signature="imports" expanded="false" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@@ -51,7 +53,15 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="585">
|
||||
<caret line="57" column="0" lean-forward="false" selection-start-line="57" selection-start-column="0" selection-end-line="58" selection-end-column="0" />
|
||||
<folding />
|
||||
<folding>
|
||||
<element signature="imports" expanded="false" />
|
||||
<element signature="e#3437#3438#0" expanded="false" />
|
||||
<element signature="e#3482#3483#0" expanded="false" />
|
||||
<element signature="e#3608#3609#0" expanded="false" />
|
||||
<element signature="e#3653#3654#0" expanded="false" />
|
||||
<element signature="e#3725#3726#0" expanded="false" />
|
||||
<element signature="e#3769#3770#0" expanded="false" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@@ -61,7 +71,17 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="870">
|
||||
<caret line="71" column="33" lean-forward="false" selection-start-line="71" selection-start-column="33" selection-end-line="71" selection-end-column="33" />
|
||||
<folding />
|
||||
<folding>
|
||||
<element signature="imports" expanded="false" />
|
||||
<element signature="e#2400#2401#0" expanded="false" />
|
||||
<element signature="e#2445#2446#0" expanded="false" />
|
||||
<element signature="e#2503#2504#0" expanded="false" />
|
||||
<element signature="e#2532#2533#0" expanded="false" />
|
||||
<element signature="e#2605#2606#0" expanded="false" />
|
||||
<element signature="e#2644#2645#0" expanded="false" />
|
||||
<element signature="e#2752#2753#0" expanded="false" />
|
||||
<element signature="e#2825#2826#0" expanded="false" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@@ -675,12 +695,12 @@
|
||||
<workItem from="1486538831944" duration="450000" />
|
||||
<workItem from="1488378219247" duration="650000" />
|
||||
<workItem from="1488461561430" duration="18419000" />
|
||||
<workItem from="1488731165185" duration="327000" />
|
||||
<workItem from="1488731165185" duration="698000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TimeTrackingManager">
|
||||
<option name="totallyTimeSpent" value="62339000" />
|
||||
<option name="totallyTimeSpent" value="62710000" />
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="50" y="23" width="1351" height="797" extended-state="0" />
|
||||
@@ -703,7 +723,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="3" 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="2" 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="3" 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.32907802" 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.32907802" 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="7" 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="7" 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="7" side_tool="false" content_ui="tabs" />
|
||||
@@ -801,7 +821,17 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="300">
|
||||
<caret line="29" column="49" lean-forward="false" selection-start-line="29" selection-start-column="49" selection-end-line="29" selection-end-column="49" />
|
||||
<folding />
|
||||
<folding>
|
||||
<element signature="imports" expanded="false" />
|
||||
<element signature="e#2400#2401#0" expanded="false" />
|
||||
<element signature="e#2445#2446#0" expanded="false" />
|
||||
<element signature="e#2503#2504#0" expanded="false" />
|
||||
<element signature="e#2532#2533#0" expanded="false" />
|
||||
<element signature="e#2605#2606#0" expanded="false" />
|
||||
<element signature="e#2644#2645#0" expanded="false" />
|
||||
<element signature="e#2752#2753#0" expanded="false" />
|
||||
<element signature="e#2825#2826#0" expanded="false" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@@ -809,7 +839,15 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
<folding>
|
||||
<element signature="imports" expanded="false" />
|
||||
<element signature="e#3437#3438#0" expanded="false" />
|
||||
<element signature="e#3482#3483#0" expanded="false" />
|
||||
<element signature="e#3608#3609#0" expanded="false" />
|
||||
<element signature="e#3653#3654#0" expanded="false" />
|
||||
<element signature="e#3725#3726#0" expanded="false" />
|
||||
<element signature="e#3769#3770#0" expanded="false" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@@ -1037,7 +1075,17 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="870">
|
||||
<caret line="71" column="33" lean-forward="false" selection-start-line="71" selection-start-column="33" selection-end-line="71" selection-end-column="33" />
|
||||
<folding />
|
||||
<folding>
|
||||
<element signature="imports" expanded="false" />
|
||||
<element signature="e#2400#2401#0" expanded="false" />
|
||||
<element signature="e#2445#2446#0" expanded="false" />
|
||||
<element signature="e#2503#2504#0" expanded="false" />
|
||||
<element signature="e#2532#2533#0" expanded="false" />
|
||||
<element signature="e#2605#2606#0" expanded="false" />
|
||||
<element signature="e#2644#2645#0" expanded="false" />
|
||||
<element signature="e#2752#2753#0" expanded="false" />
|
||||
<element signature="e#2825#2826#0" expanded="false" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@@ -1045,7 +1093,15 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="585">
|
||||
<caret line="57" column="0" lean-forward="false" selection-start-line="57" selection-start-column="0" selection-end-line="58" selection-end-column="0" />
|
||||
<folding />
|
||||
<folding>
|
||||
<element signature="imports" expanded="false" />
|
||||
<element signature="e#3437#3438#0" expanded="false" />
|
||||
<element signature="e#3482#3483#0" expanded="false" />
|
||||
<element signature="e#3608#3609#0" expanded="false" />
|
||||
<element signature="e#3653#3654#0" expanded="false" />
|
||||
<element signature="e#3725#3726#0" expanded="false" />
|
||||
<element signature="e#3769#3770#0" expanded="false" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@@ -1061,7 +1117,9 @@
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="330">
|
||||
<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 />
|
||||
<folding>
|
||||
<element signature="imports" expanded="false" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
|
||||
Reference in New Issue
Block a user