sensor regist store
This commit is contained in:
parent
3c636a238a
commit
4196a124c2
|
@ -5,7 +5,7 @@
|
|||
</tr>
|
||||
</table> -->
|
||||
<form *ngFor="let elem of data">
|
||||
<mat-form-field class="example-full-width" >
|
||||
<input matInput placeholder={{elem.key}} value={{elem.value}} readonly="readonly">
|
||||
<mat-form-field class="full-width" >
|
||||
<input matInput placeholder={{elem.key}} value={{elem.value}} [readonly]="true">
|
||||
</mat-form-field>
|
||||
</form>
|
|
@ -1,10 +1,4 @@
|
|||
.example-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 300px;
|
||||
.full-width {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mat-table {
|
||||
overflow: auto;
|
||||
max-height: 500px;
|
||||
}
|
|
@ -22,12 +22,16 @@
|
|||
Status: 기본 센서 데이터에서 저장한 metric으로..
|
||||
</mat-grid-tile>
|
||||
<mat-grid-tile [colspan]="2" [rowspan]="1" class="text-inside-grid">
|
||||
<div class="text-inside-grid">????</div>
|
||||
<div class="text-inside-grid">
|
||||
service list
|
||||
</div>
|
||||
</mat-grid-tile>
|
||||
<mat-grid-tile [colspan]="1" [rowspan]="1">
|
||||
</mat-grid-tile>
|
||||
<mat-grid-tile [colspan]="2" [rowspan]="1" class="text-inside-grid">
|
||||
<div class="text-inside-grid">?????</div>
|
||||
<div class="text-inside-grid">
|
||||
sensor list
|
||||
</div>
|
||||
</mat-grid-tile>
|
||||
<mat-grid-tile [colspan]="1" [rowspan]="1">
|
||||
<div class="add-sensor-button">
|
||||
|
|
|
@ -18,9 +18,10 @@
|
|||
<input *ngIf="inputItem.inputType.id == 1" matInput type="text" placeholder={{inputItem.name}} required={{inputItem.required}}>
|
||||
<input *ngIf="inputItem.inputType.id == 2" matInput type="password" placeholder={{inputItem.name}} required={{inputItem.required}}>
|
||||
<input *ngIf="inputItem.inputType.id == 3" matInput type="number" placeholder={{inputItem.name}} required={{inputItem.required}}>
|
||||
|
||||
<input *ngIf="inputItem.inputType.id == 4" matInput type="text" placeholder={{inputItem.name}} required={{inputItem.required}}>
|
||||
|
||||
<mat-select *ngIf="inputItem.inputType.id == 4" placeholder={{inputItem.name}}>
|
||||
<mat-option value="true">Yes</mat-option>
|
||||
<mat-option value="true">No</mat-option>
|
||||
</mat-select>
|
||||
<mat-select *ngIf="inputItem.inputType.id == 5" placeholder={{inputItem.name}}>
|
||||
<mat-option *ngFor="let option of inputItem.keyValue.split('|')" value="option">{{option}}</mat-option>
|
||||
</mat-select>
|
||||
|
|
|
@ -44,7 +44,6 @@ export class CrawlerAuthComponent implements OnInit, OnChanges {
|
|||
}
|
||||
|
||||
ngOnChanges() {
|
||||
if (this.selectedCrawler === null) { return; }
|
||||
this.getCrawlerAuthInputItems();
|
||||
}
|
||||
|
||||
|
|
|
@ -5,8 +5,10 @@ import 'rxjs/add/operator/map';
|
|||
|
||||
import { RPCService } from '@loafer/ng-rpc/service';
|
||||
|
||||
import { Domain } from '../../domain/model';
|
||||
import { PageParams, Page } from 'app/commons/model';
|
||||
import { SensorItem } from 'packages/sensor-item/model/SensorItem';
|
||||
import { Sensor } from '../model';
|
||||
import { Domain } from 'packages/domain/model';
|
||||
|
||||
|
||||
@Injectable()
|
||||
|
@ -22,5 +24,7 @@ export class SensorService {
|
|||
return this.rpcService.call('SensorService.readAllByDomain', domain, pageParams);
|
||||
}
|
||||
|
||||
|
||||
public regist(sensor: Sensor, sensorItems: SensorItem[]): Observable<Sensor> {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,22 +9,31 @@ import {
|
|||
import { MODULE } from '../sensor.constant';
|
||||
|
||||
import * as ReadAllByDomainStore from './list';
|
||||
import * as RegistStore from './regist';
|
||||
|
||||
export interface State {
|
||||
list: ReadAllByDomainStore.State;
|
||||
sensor: RegistStore.State;
|
||||
}
|
||||
|
||||
export const REDUCERS = {
|
||||
list: ReadAllByDomainStore.reducer,
|
||||
sensor: RegistStore.reducer,
|
||||
};
|
||||
|
||||
export const EFFECTS = [
|
||||
ReadAllByDomainStore.Effects,
|
||||
RegistStore.Effects,
|
||||
];
|
||||
|
||||
export const selectState = createFeatureSelector<State>(MODULE.name);
|
||||
export const sensorState = createFeatureSelector<State>(MODULE.name);
|
||||
|
||||
export const sensorListSelector = new StateSelector<ReadAllByDomainStore.State>(createSelector(
|
||||
selectState,
|
||||
sensorState,
|
||||
(state: State) => state.list
|
||||
));
|
||||
export const sensorSelector = new StateSelector<RegistStore.State>(createSelector(
|
||||
sensorState,
|
||||
(state: State) => state.sensor
|
||||
));
|
||||
|
||||
|
|
4
src/packages/sensor/store/regist/index.ts
Normal file
4
src/packages/sensor/store/regist/index.ts
Normal file
|
@ -0,0 +1,4 @@
|
|||
export * from './regist.action';
|
||||
export * from './regist.effect';
|
||||
export * from './regist.reducer';
|
||||
export * from './regist.state';
|
38
src/packages/sensor/store/regist/regist.action.ts
Normal file
38
src/packages/sensor/store/regist/regist.action.ts
Normal file
|
@ -0,0 +1,38 @@
|
|||
import { Action } from '@ngrx/store';
|
||||
|
||||
import { RPCClientError } from '@loafer/ng-rpc/protocol';
|
||||
|
||||
import { Domain } from 'packages/domain/model';
|
||||
import { PageParams, Page } from 'app/commons/model';
|
||||
import { Sensor } from '../../model';
|
||||
import { SensorItem } from 'packages/sensor-item/model/SensorItem';
|
||||
|
||||
export enum ActionType {
|
||||
Regist = '[Sensor.Regist] Regist',
|
||||
RegistSuccess = '[Sensor.RegistSuccess] RegistSuccess',
|
||||
RegistFailure = '[Sensor.RegistFailure] RegistFailure',
|
||||
}
|
||||
|
||||
export class Regist implements Action {
|
||||
readonly type = ActionType.Regist;
|
||||
|
||||
constructor(public payload: { sensor: Sensor, sensorItems: SensorItem[]}) {}
|
||||
}
|
||||
|
||||
export class RegistSuccess implements Action {
|
||||
readonly type = ActionType.RegistSuccess;
|
||||
|
||||
constructor(public payload: Sensor) {}
|
||||
}
|
||||
|
||||
export class RegistFailure implements Action {
|
||||
readonly type = ActionType.RegistFailure;
|
||||
|
||||
constructor(public payload: RPCClientError) {}
|
||||
}
|
||||
|
||||
export type Actions =
|
||||
| Regist
|
||||
| RegistSuccess
|
||||
| RegistFailure
|
||||
;
|
49
src/packages/sensor/store/regist/regist.effect.ts
Normal file
49
src/packages/sensor/store/regist/regist.effect.ts
Normal file
|
@ -0,0 +1,49 @@
|
|||
import { Injectable } from '@angular/core';
|
||||
import { Router } from '@angular/router';
|
||||
|
||||
import { Effect, Actions, ofType } from '@ngrx/effects';
|
||||
import { Action } from '@ngrx/store';
|
||||
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
import { of } from 'rxjs/observable/of';
|
||||
|
||||
import 'rxjs/add/operator/catch';
|
||||
import 'rxjs/add/operator/do';
|
||||
import 'rxjs/add/operator/exhaustMap';
|
||||
import 'rxjs/add/operator/map';
|
||||
import 'rxjs/add/operator/take';
|
||||
|
||||
import { RPCClientError } from '@loafer/ng-rpc/protocol';
|
||||
|
||||
import { Sensor } from '../../model';
|
||||
import { SensorService } from '../../service/sensor.service';
|
||||
|
||||
import {
|
||||
Regist,
|
||||
RegistSuccess,
|
||||
RegistFailure,
|
||||
ActionType,
|
||||
} from './regist.action';
|
||||
|
||||
@Injectable()
|
||||
export class Effects {
|
||||
|
||||
constructor(
|
||||
private actions$: Actions,
|
||||
private service: SensorService,
|
||||
private router: Router
|
||||
) { }
|
||||
|
||||
@Effect()
|
||||
regist$: Observable<Action> = this.actions$
|
||||
.ofType(ActionType.Regist)
|
||||
.map((action: Regist) => action.payload)
|
||||
.switchMap(payload => this.service.regist(payload.sensor, payload.sensorItems))
|
||||
.map(list => {
|
||||
return new RegistSuccess(list);
|
||||
})
|
||||
.catch((error: RPCClientError) => {
|
||||
return of(new RegistFailure(error));
|
||||
});
|
||||
|
||||
}
|
45
src/packages/sensor/store/regist/regist.reducer.ts
Normal file
45
src/packages/sensor/store/regist/regist.reducer.ts
Normal file
|
@ -0,0 +1,45 @@
|
|||
import {
|
||||
Actions,
|
||||
ActionType,
|
||||
} from './regist.action';
|
||||
|
||||
import {
|
||||
State,
|
||||
initialState,
|
||||
} from './regist.state';
|
||||
|
||||
import { Sensor } from '../../model';
|
||||
|
||||
export function reducer(state = initialState, action: Actions): State {
|
||||
switch (action.type) {
|
||||
case ActionType.Regist: {
|
||||
return {
|
||||
...state,
|
||||
error: null,
|
||||
pending: true,
|
||||
};
|
||||
}
|
||||
|
||||
case ActionType.RegistSuccess: {
|
||||
return {
|
||||
...state,
|
||||
error: null,
|
||||
pending: false,
|
||||
sensor: action.payload
|
||||
};
|
||||
}
|
||||
|
||||
case ActionType.RegistFailure: {
|
||||
return {
|
||||
...state,
|
||||
error: action.payload,
|
||||
pending: false,
|
||||
sensor: null,
|
||||
};
|
||||
}
|
||||
|
||||
default: {
|
||||
return state;
|
||||
}
|
||||
}
|
||||
}
|
16
src/packages/sensor/store/regist/regist.state.ts
Normal file
16
src/packages/sensor/store/regist/regist.state.ts
Normal file
|
@ -0,0 +1,16 @@
|
|||
import { RPCClientError } from '@loafer/ng-rpc/protocol';
|
||||
|
||||
import { Page } from 'app/commons/model';
|
||||
import { Sensor } from '../../model';
|
||||
|
||||
export interface State {
|
||||
error: RPCClientError | null;
|
||||
pending: boolean;
|
||||
sensor: Sensor | null;
|
||||
}
|
||||
|
||||
export const initialState: State = {
|
||||
error: null,
|
||||
pending: false,
|
||||
sensor: null,
|
||||
};
|
4
src/packages/sensor/store/regist/regist.ts
Normal file
4
src/packages/sensor/store/regist/regist.ts
Normal file
|
@ -0,0 +1,4 @@
|
|||
export * from './regist.action';
|
||||
export * from './regist.effect';
|
||||
export * from './regist.reducer';
|
||||
export * from './regist.state';
|
Loading…
Reference in New Issue
Block a user