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 @@
-
@@ -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"