diff --git a/package.json b/package.json index 314f4f8..df3d17a 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,8 @@ "ngx-perfect-scrollbar": "^5.3.1", "nvd3": "^1.8.6", "rxjs": "^5.5.6", - "zone.js": "^0.8.20" + "zone.js": "^0.8.20", + "ip-cidr": "^1.1.2" }, "devDependencies": { "@angular/cli": "1.6.5", diff --git a/src/packages/commons/component/input-chip/input-chip.component.ts b/src/packages/commons/component/input-chip/input-chip.component.ts index 82cdd2a..9ce7656 100644 --- a/src/packages/commons/component/input-chip/input-chip.component.ts +++ b/src/packages/commons/component/input-chip/input-chip.component.ts @@ -15,6 +15,7 @@ export class InputChipComponent implements OnInit { } ngOnInit() { + this.selectAll(); } selected(app: any) { diff --git a/src/packages/discovery/component/setting/setting.component.html b/src/packages/discovery/component/setting/setting.component.html index 4b2fcab..61ee755 100644 --- a/src/packages/discovery/component/setting/setting.component.html +++ b/src/packages/discovery/component/setting/setting.component.html @@ -1,4 +1,4 @@ -
+

Discovery Setting

@@ -17,10 +17,10 @@
- + - +
@@ -30,10 +30,10 @@
- + - +
@@ -53,8 +53,12 @@ - + + + +
+ tree 나올꼬얌
\ No newline at end of file diff --git a/src/packages/discovery/component/setting/setting.component.ts b/src/packages/discovery/component/setting/setting.component.ts index c7d2b8d..fe002fc 100644 --- a/src/packages/discovery/component/setting/setting.component.ts +++ b/src/packages/discovery/component/setting/setting.component.ts @@ -1,11 +1,12 @@ import { Component, OnInit, AfterContentInit } from '@angular/core'; import { MatCheckboxChange } from '@angular/material'; -import { FormGroup } from '@angular/forms'; import { Store, select } from '@ngrx/store'; import { RPCError } from 'packages/core/rpc/error'; - import * as DiscoverySettingStore from '../../store/setting'; import { DiscoveryStartInfo } from '../../model'; +import * as CIDR from 'ip-cidr'; +import * as DiscoveryStore from '../../store/setting'; +import { SettingSelector } from '../../store'; @Component({ selector: 'of-setting', @@ -14,8 +15,18 @@ import { DiscoveryStartInfo } from '../../model'; }) export class SettingComponent implements OnInit, AfterContentInit { - private cidr; + settingSucceed$ = this.store.pipe(select(SettingSelector.select('isStart'))); + started = false; + + cidr; + startIP; + endIP; + startPort; + endPort; // private settingForm: FormGroup; + hostChecked = true; + portChecked = true; + serviceChecked = true; serviceItems = [ { name: 'MySQL' }, @@ -24,22 +35,55 @@ export class SettingComponent implements OnInit, AfterContentInit { { name: 'Nginx' }, ]; constructor( - private store: Store + private store: Store, ) { } ngOnInit() { + this.settingSucceed$.subscribe( + (ds: DiscoveryStartInfo) => { + if (ds !== null) { + this.started = true; + } + }, + (error: RPCError) => { + console.log(error.response.message); + } + ); } ngAfterContentInit() { this.cidr = '192.168.1.0/24'; + this.hostRange(); + this.portRange(); + } + + hostRange() { + const cidr = new CIDR(this.cidr); + if (!cidr.isValid()) { + alert('Invalid cidr : ' + this.cidr); + this.startIP = 'Unknown'; + this.endIP = 'Unknown'; + return; + } + this.startIP = cidr.addressStart.address; + this.endIP = cidr.addressEnd.address; + } + + portRange() { + this.startPort = '1'; + this.endPort = '1024'; } discovery() { const startInfo: DiscoveryStartInfo = { - startIp: '1111', - endIP: '11111', + startIp: this.startIP, + endIP: this.endIP, + startPort: this.startPort, + endPort: this.endPort }; this.store.dispatch(new DiscoverySettingStore.Setting(startInfo)); + this.started = true; } + } diff --git a/src/packages/discovery/store/index.ts b/src/packages/discovery/store/index.ts index 977eefb..d173ee3 100644 --- a/src/packages/discovery/store/index.ts +++ b/src/packages/discovery/store/index.ts @@ -34,3 +34,8 @@ export const NotificationSelector = new StateSelector(c selectDiscoveryState, (state: State) => state.notification )); + +export const SettingSelector = new StateSelector(createSelector( + selectDiscoveryState, + (state: State) => state.setting +)); diff --git a/yarn.lock b/yarn.lock index 1a62f59..321c918 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1425,6 +1425,12 @@ chownr@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" +cidr-range@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cidr-range/-/cidr-range-1.0.6.tgz#8ce6a648dca7eceb34e82013c22479f843f1c452" + dependencies: + ip "^1.1.3" + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -3501,11 +3507,30 @@ invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" +ip-address@^5.8.6: + version "5.8.9" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-5.8.9.tgz#6379277c23fc5adb20511e4d23ec2c1bde105dfd" + dependencies: + jsbn "1.1.0" + lodash.find "^4.6.0" + lodash.max "^4.0.1" + lodash.merge "^4.6.0" + lodash.padstart "^4.6.1" + lodash.repeat "^4.1.0" + sprintf-js "1.1.0" + +ip-cidr@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/ip-cidr/-/ip-cidr-1.1.2.tgz#3276a25145b716cb542a23eb944d4dfc45a20557" + dependencies: + ip-address "^5.8.6" + jsbn "^0.1.0" + ip@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ip/-/ip-1.0.1.tgz#c7e356cdea225ae71b36d70f2e71a92ba4e42590" -ip@^1.1.0, ip@^1.1.2, ip@^1.1.5: +ip@^1.1.0, ip@^1.1.2, ip@^1.1.3, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" @@ -3906,7 +3931,11 @@ js-yaml@~3.7.0: argparse "^1.0.7" esprima "^2.6.0" -jsbn@~0.1.0: +jsbn@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" + +jsbn@^0.1.0, jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -4223,6 +4252,14 @@ lodash.clonedeep@^4.3.2, lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" +lodash.find@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" + +lodash.max@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.max/-/lodash.max-4.0.1.tgz#8735566c618b35a9f760520b487ae79658af136a" + lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -4231,10 +4268,22 @@ lodash.memoize@~3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" +lodash.merge@^4.6.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54" + lodash.mergewith@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55" +lodash.padstart@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" + +lodash.repeat@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/lodash.repeat/-/lodash.repeat-4.1.0.tgz#fc7de8131d8c8ac07e4b49f74ffe829d1f2bec44" + lodash.tail@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" @@ -6637,6 +6686,10 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" +sprintf-js@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.0.tgz#cffcaf702daf65ea39bb4e0fa2b299cec1a1be46" + sprintf-js@^1.0.3, sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -7113,10 +7166,6 @@ typedarray@~0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -typescript-string-enums@^0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/typescript-string-enums/-/typescript-string-enums-0.3.5.tgz#00f5c30422ec5d8061ed49a0fe06610ae99f02a2" - typescript@~2.5.3: version "2.5.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.5.3.tgz#df3dcdc38f3beb800d4bc322646b04a3f6ca7f0d"