This commit is contained in:
insanity 2018-03-13 19:40:59 +09:00
commit 311dfee153
12 changed files with 180 additions and 21 deletions

View File

@ -19,7 +19,7 @@
<!-- target 별 sensor list --> <!-- target 별 sensor list -->
<div fxFlex="80%" class="example-container mat-elevation-z8"> <div fxFlex="80%" class="example-container mat-elevation-z8">
<!-- <div fxLayout="row" > <div fxLayout="row" >
<div fxFlex="20">aaaaaaaaaaaaaaaaaaa</div> <div fxFlex="20">aaaaaaaaaaaaaaaaaaa</div>
<div fxFlex="80"> <div fxFlex="80">
@ -48,7 +48,7 @@
<mat-row *matRowDef="let row; columns: displayedColumns;" (click)="handleRowClick(row)"></mat-row> <mat-row *matRowDef="let row; columns: displayedColumns;" (click)="handleRowClick(row)"></mat-row>
</mat-table> </mat-table>
</div> </div>
</div> --> </div>
</div> </div>

View File

@ -4,6 +4,14 @@ import { AfterContentInit } from '@angular/core/src/metadata/lifecycle_hooks';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { Sensor } from '../../model'; import { Sensor } from '../../model';
import { Store, select } from '@ngrx/store';
import * as SensorStore from '../../store';
import { RPCError } from 'packages/core/rpc/error';
import * as ReadAllByDomainStore from '../../store/readallbydomain';
import { ReadAllByMemberSelector } from '../../store';
import { Domain } from '../../../domain/model';
@Component({ @Component({
selector: 'of-sensor-list', selector: 'of-sensor-list',
@ -12,6 +20,8 @@ import { Sensor } from '../../model';
}) })
export class ListComponent implements OnInit, AfterContentInit { export class ListComponent implements OnInit, AfterContentInit {
sensorList$ = this.store.pipe(select(ReadAllByMemberSelector.select('sensorList')));
displayedColumns = ['crawler', 'type', 'name', 'sensors']; displayedColumns = ['crawler', 'type', 'name', 'sensors'];
dataSource: MatTableDataSource<Sensor>; dataSource: MatTableDataSource<Sensor>;
@ViewChild(MatSort) sort: MatSort; @ViewChild(MatSort) sort: MatSort;
@ -22,27 +32,55 @@ export class ListComponent implements OnInit, AfterContentInit {
*/ */
ngAfterContentInit() { ngAfterContentInit() {
// temporary data // temporary data
const data: Sensor[] = new Array(); // const data: Sensor[] = new Array();
for (let i = 0; i < 3; i++) { // for (let i = 0; i < 3; i++) {
const t: Sensor = { // const t: Sensor = {
id: i, // id: i,
target: { // target: {
id: 1, // id: 1,
displayName: '192.168.1.1', // displayName: '192.168.1.1',
}, // },
crawler: { // crawler: {
id: 1, // id: 1,
name: 'WMI' // name: 'WMI'
}, // },
}; // };
data.push(t); // data.push(t);
} // }
this.dataSource = new MatTableDataSource(data); this.store.select(ReadAllByMemberSelector.select('domain')).subscribe(
(domain: Domain) => {
this.store.dispatch(new ReadAllByDomainStore.ReadAllByDomain(domain));
},
(error) => {
console.log(error);
}
);
// const domain: Domain = {
// id: 1
// };
// this.store.dispatch(new ReadAllByDomainStore.ReadAllByDomain(domain));
this.sensorList$.subscribe(
(probes: Sensor[]) => {
console.log(probes);
this.dataSource = new MatTableDataSource(probes);
this.dataSource.sort = this.sort; this.dataSource.sort = this.sort;
},
(error: RPCError) => {
console.log(error.message);
}
);
// this.dataSource = new MatTableDataSource(data);
// this.dataSource.sort = this.sort;
} }
constructor(private router: Router) { } constructor(private router: Router,
private store: Store<ReadAllByDomainStore.State>) { }
ngOnInit() { ngOnInit() {
} }

View File

@ -6,6 +6,7 @@ import { MaterialModule } from 'app/commons/ui/material/material.module';
import { QRCodeModule } from 'angularx-qrcode'; import { QRCodeModule } from 'angularx-qrcode';
import { COMPONENTS } from './component'; import { COMPONENTS } from './component';
import {SERVICES} from "../../probe/service";
@NgModule({ @NgModule({
imports: [ imports: [
CommonModule, CommonModule,
@ -18,6 +19,9 @@ import { COMPONENTS } from './component';
], ],
declarations: [ declarations: [
COMPONENTS, COMPONENTS,
] ],
providers: [
SERVICES,
],
}) })
export class MemberModule { } export class MemberModule { }

View File

@ -0,0 +1,5 @@
import {MemberTotpService} from './member-totp.service';
export const SERVICES = [
MemberTotpService,
];

View File

@ -0,0 +1,15 @@
import { TestBed, inject } from '@angular/core/testing';
import { MemberTotpService } from './member-totp.service';
describe('MemberTotpService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
providers: [MemberTotpService]
});
});
it('should be created', inject([MemberTotpService], (service: MemberTotpService) => {
expect(service).toBeTruthy();
}));
});

View File

@ -0,0 +1,30 @@
import { Injectable } from '@angular/core';
import { RPCClient } from '../../../core/rpc/client/RPCClient';
import { Observable } from 'rxjs/Observable';
import { MemberTotp } from '../model/MemberTotp';
import { Member } from '../../../member/model';
@Injectable()
export class MemberTotpService {
public constructor(
private rpcClient: RPCClient,
) {
}
public createTotp(): Observable<MemberTotp[]> {
// Todo Store get member object
return this.rpcClient.call<MemberTotp[]>('MemberTotpService.createTotp', {id: '1'});
}
public regist(): Observable<boolean> {
const param = {
Member: {id: 1,},
MemberTotp: {id: 1, secretCode: 'dkdkdkdk'},
code: '123123'
};
return this.rpcClient.call<boolean>('MemberTotpService.regist', param);
}
}

View File

@ -0,0 +1,4 @@
export * from './totp.action';
// export * from './totp.effect';
// export * from './totp.reducer';
// export * from './totp.state';

View File

@ -0,0 +1,63 @@
import { Action } from '@ngrx/store';
import { RESTError } from 'packages/core/rest/error';
import { DomainMember } from 'packages/domain/model';
import {Member} from "../../../../member/model";
export enum ActionType {
CreateTotp = '[member.totp] CreateTotp',
CreateTotpSuccess = '[member.totp] CreateTotpSuccess',
CreateTotpFailure = '[member.totp] CreateTotpFailure',
Regist = '[member.auth] SigninCookie',
RegistSuccess = '[member.auth] SigninCookieSuccess',
RegistFailure = '[member.auth] SigninCookieFailure',
}
export class CreateTotp implements Action {
readonly type = ActionType.CreateTotp;
constructor(public payload: {key: string, uri: string}) {}
}
export class CreateTotpSuccess implements Action {
readonly type = ActionType.CreateTotpSuccess;
constructor(public payload: {key: string, uri: string}) {}
}
export class CreateTotpFailure implements Action {
readonly type = ActionType.CreateTotpFailure;
constructor(public payload: RESTError) {}
}
// ----------------------------------------------------------------------------------------
export class Regist implements Action {
readonly type = ActionType.Regist;
constructor(public payload: {member: Member, secretCode: string, code: string}) {}
}
export class RegistSuccess implements Action {
readonly type = ActionType.RegistSuccess;
constructor(public payload: void) {}
}
export class RegistFailure implements Action {
readonly type = ActionType.RegistFailure;
constructor(public payload: RESTError) {}
}
export type Actions =
| CreateTotp
| CreateTotpSuccess
| CreateTotpFailure
| Regist
| RegistSuccess
| RegistFailure
;