Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
X-tee
X-Road-catalogue
Commits
439a6fcf
Commit
439a6fcf
authored
Mar 01, 2019
by
Vitali Stupin
Browse files
Updating node packages, support for multiple instances, refactoring
parent
ff845a4c
Changes
15
Hide whitespace changes
Inline
Side-by-side
package-lock.json
View file @
439a6fcf
...
...
@@ -5,12 +5,12 @@
"requires"
:
true
,
"dependencies"
:
{
"@angular-devkit/architect"
:
{
"version"
:
"0.13.
2
"
,
"resolved"
:
"https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.13.
2
.tgz"
,
"integrity"
:
"sha512-
wcUdMzcpsxzscEa+wrhV1SE2PsHS6FnHJlRURFOtQmKvQAq3Y8gVw28l008SMt5d0bTrRV4xLL2lgvwJJoc7L
A=="
,
"version"
:
"0.13.
3
"
,
"resolved"
:
"https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.13.
3
.tgz"
,
"integrity"
:
"sha512-
89VL75bq3+h3m0jhzWNqXqW+HQcrihnM3i6eiUE6P81LcllP159JMlusAvB1LHLNc6Cc62wTq4BJr7KDILkPO
A=="
,
"dev"
:
true
,
"requires"
:
{
"@angular-devkit/core"
:
"7.3.
2
"
,
"@angular-devkit/core"
:
"7.3.
3
"
,
"rxjs"
:
"6.3.3"
},
"dependencies"
:
{
...
...
@@ -26,16 +26,16 @@
}
},
"@angular-devkit/build-angular"
:
{
"version"
:
"0.13.
2
"
,
"resolved"
:
"https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.13.
2
.tgz"
,
"integrity"
:
"sha512-
zRrV/dknx8891XSjXTh5JcTZnX4h+YsCHi6u8GABnIZW9JyiCl9QZpv0mRIyGTEaK2udmfMo2Yp5qZo1sd8jeQ
=="
,
"version"
:
"0.13.
3
"
,
"resolved"
:
"https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.13.
3
.tgz"
,
"integrity"
:
"sha512-
UxD6UR/tXypMA4lqCiXLtcStI4wuIHLOJLwADmazndFjg1oLqH1onO6UQPHJ1drAUl+AzA5zTQZHzWYokxaLtg
=="
,
"dev"
:
true
,
"requires"
:
{
"@angular-devkit/architect"
:
"0.13.
2
"
,
"@angular-devkit/build-optimizer"
:
"0.13.
2
"
,
"@angular-devkit/build-webpack"
:
"0.13.
2
"
,
"@angular-devkit/core"
:
"7.3.
2
"
,
"@ngtools/webpack"
:
"7.3.
2
"
,
"@angular-devkit/architect"
:
"0.13.
3
"
,
"@angular-devkit/build-optimizer"
:
"0.13.
3
"
,
"@angular-devkit/build-webpack"
:
"0.13.
3
"
,
"@angular-devkit/core"
:
"7.3.
3
"
,
"@ngtools/webpack"
:
"7.3.
3
"
,
"ajv"
:
"6.9.1"
,
"autoprefixer"
:
"9.4.6"
,
"circular-dependency-plugin"
:
"5.0.2"
,
...
...
@@ -90,9 +90,9 @@
}
},
"@angular-devkit/build-optimizer"
:
{
"version"
:
"0.13.
2
"
,
"resolved"
:
"https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.13.
2
.tgz"
,
"integrity"
:
"sha512-
pM3t+6VD+gdcesgwuThR41DFdsZ9ZVQ97Hhr0JXHLbLyRt4eXxWi2+B5VL0jjAaX0RIiUIe8wgScwE6m/dxemg
=="
,
"version"
:
"0.13.
3
"
,
"resolved"
:
"https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.13.
3
.tgz"
,
"integrity"
:
"sha512-
lxM1icVFy3jyoQfWEGW8TG1M7LTl/Djc98MFBYp/lXoVo2JZoLxy7eo51sRuJFaB7/0mgMP2gs0FcU/Lr4gK+Q
=="
,
"dev"
:
true
,
"requires"
:
{
"loader-utils"
:
"1.2.3"
,
...
...
@@ -110,13 +110,13 @@
}
},
"@angular-devkit/build-webpack"
:
{
"version"
:
"0.13.
2
"
,
"resolved"
:
"https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.13.
2
.tgz"
,
"integrity"
:
"sha512-
Uemur2KhFu7VGU2QQmfRiMwmoSKprZrMZRZXwZdCQPN5srIcMAgGjm1PGbZuCUddhwd2XRP9dKY6zOZpMzm84Q
=="
,
"version"
:
"0.13.
3
"
,
"resolved"
:
"https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.13.
3
.tgz"
,
"integrity"
:
"sha512-
o2ymctVCuz5GhKJH3LO1sl3AUbA4j7zlrqSGB5ToVRBn3GckJJnmfCZzr2SX5Ya4VofxVsIidsiZcawy4FpB2w
=="
,
"dev"
:
true
,
"requires"
:
{
"@angular-devkit/architect"
:
"0.13.
2
"
,
"@angular-devkit/core"
:
"7.3.
2
"
,
"@angular-devkit/architect"
:
"0.13.
3
"
,
"@angular-devkit/core"
:
"7.3.
3
"
,
"rxjs"
:
"6.3.3"
},
"dependencies"
:
{
...
...
@@ -132,9 +132,9 @@
}
},
"@angular-devkit/core"
:
{
"version"
:
"7.3.
2
"
,
"resolved"
:
"https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.
2
.tgz"
,
"integrity"
:
"sha512-
W5KjkHRNVBcZRUNJamAn52IAj9Gl1zUjPA2r75JJK7k199xOA8UZqcIukQOgM1N7rwKCWht08i4FsdcTDghMh
Q=="
,
"version"
:
"7.3.
3
"
,
"resolved"
:
"https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.
3
.tgz"
,
"integrity"
:
"sha512-
fosULDtMoDWrOyUzTmBkJccOy7zodo02kENyKai7vOv9EWfv9jytkVdNc+jl0ys9OE2QadvSYBo49jhnZxFXf
Q=="
,
"dev"
:
true
,
"requires"
:
{
"ajv"
:
"6.9.1"
,
...
...
@@ -190,9 +190,9 @@
}
},
"@angular/animations"
:
{
"version"
:
"7.2.
6
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/animations/-/animations-7.2.
6
.tgz"
,
"integrity"
:
"sha512-
ICKPS+bKabhQNqnPoVZegUAhgNPbVFlrxHoJ+ZZeVGxw5iBE8TnP3a2sRvakdMTKhykDlwVVGMKLxu2Y34uhmg
=="
,
"version"
:
"7.2.
7
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/animations/-/animations-7.2.
7
.tgz"
,
"integrity"
:
"sha512-
eU/wSkBmukZXCCe/epUl02xsKPauF+deMbncxBE+w/NmmWjJ77Q09iZAcgzM92RVXj2LsVYQXsNEBGT3X0hRZw
=="
,
"requires"
:
{
"tslib"
:
"^1.9.0"
}
...
...
@@ -253,25 +253,25 @@
}
},
"@angular/common"
:
{
"version"
:
"7.2.
6
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/common/-/common-7.2.
6
.tgz"
,
"integrity"
:
"sha512-
jzWUgsgS0dmPy7yDHX4qCqVpt7ZZmHhApgkg5RkzTAlp+0cvZ/KsDpBgHXnZUIfmk/5g1/EtTbkbClgp1kCkI
g=="
,
"version"
:
"7.2.
7
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/common/-/common-7.2.
7
.tgz"
,
"integrity"
:
"sha512-
U1l2CIcmpTAJMWcyTXI9qt1E8CxwKNW1vr6XWZo4X5ziCIzf7RvClzK7Ci5KZKkoPJrJqBJu661Q75Yt22dJs
g=="
,
"requires"
:
{
"tslib"
:
"^1.9.0"
}
},
"@angular/compiler"
:
{
"version"
:
"7.2.
6
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/compiler/-/compiler-7.2.
6
.tgz"
,
"integrity"
:
"sha512-
GXdvgH8oxK8HRh/FelN3U5p0tsTUwGh8b/iuuJKaunBSSDDjIy7pPnn3zT+lN4YeEi6qN1XWudt+HpWHYHyymg
=="
,
"version"
:
"7.2.
7
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/compiler/-/compiler-7.2.
7
.tgz"
,
"integrity"
:
"sha512-
e61YVxW5x4w+X4yjGaptYoJIja7HwH0+8FFEaH6VuPl/DrK8wP4HDMhLo4NzdgeZKLR2jBIQSqLmoM8W7UXcqw
=="
,
"requires"
:
{
"tslib"
:
"^1.9.0"
}
},
"@angular/compiler-cli"
:
{
"version"
:
"7.2.
6
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.2.
6
.tgz"
,
"integrity"
:
"sha512-
sB0Bc5hE1zoXKwK4E9pC/UblCEHi3CwLBT/1nmVMYBdGzSSUxO4FaioJi+SCeGJJ+kk85Vny2up08gnupmLKq
A=="
,
"version"
:
"7.2.
7
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.2.
7
.tgz"
,
"integrity"
:
"sha512-
UPWROJzBLejgNf+aqgEUXYts8UiFOl2IavDhS/olA9irszv2lNFj9Yqr8OKdy0jK/lKaipZog3VZEx8g5dNeB
A=="
,
"dev"
:
true
,
"requires"
:
{
"canonical-path"
:
"1.0.0"
,
...
...
@@ -501,47 +501,47 @@
}
},
"@angular/core"
:
{
"version"
:
"7.2.
6
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/core/-/core-7.2.
6
.tgz"
,
"integrity"
:
"sha512-
MZg17DWH1KUoDa9wFYK9Z+3F7DnUW2DjSwGyIi9U4cB54IWFhgt1JsA0mcuSYuRSRpvwaArCDC2AN90f+0/EF
A=="
,
"version"
:
"7.2.
7
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/core/-/core-7.2.
7
.tgz"
,
"integrity"
:
"sha512-
E7qjMQdS77SbRROKu13VsfL+MJN52eTlrU0SzEAFGUOgdvbmDYJOaEwjqrouKpYZ0pul8KOoalvlPB7oVflC7
A=="
,
"requires"
:
{
"tslib"
:
"^1.9.0"
}
},
"@angular/forms"
:
{
"version"
:
"7.2.
6
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/forms/-/forms-7.2.
6
.tgz"
,
"integrity"
:
"sha512-
At72AJNGe+Zzmryb7DDIG+iws7zKdgZx/eEVjZ/Obu/yREefbZY4R7q83U90Vljtn97BwJPx9ur9ttxE9WpnlA
=="
,
"version"
:
"7.2.
7
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/forms/-/forms-7.2.
7
.tgz"
,
"integrity"
:
"sha512-
2gBs+BG2cMPsHq9JVEzmu2Ev539zjfHmr6cna2W38KLXeGbNf42rbbMUXpYD8cndY0QTYcnwfMpRNIl9zKRZnw
=="
,
"requires"
:
{
"tslib"
:
"^1.9.0"
}
},
"@angular/language-service"
:
{
"version"
:
"7.2.
6
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/language-service/-/language-service-7.2.
6
.tgz"
,
"integrity"
:
"sha512-
iFKgaat5MZlixsO5dqy1Km3tb4q3iAU+ZPMJCk7DN419aizF38UFnQY1gCYkw3dxZLZGIkXnwy8szGXUEhra/
A=="
,
"version"
:
"7.2.
7
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/language-service/-/language-service-7.2.
7
.tgz"
,
"integrity"
:
"sha512-
d3iCBpOfgLNSGMrtqZvN6NHZIEnKD2MV8Hz4WsRLU4WY0RbshZj5dqx2nO3YRT2tACpAvhWBQoYvtLpTCPzsM
A=="
,
"dev"
:
true
},
"@angular/platform-browser"
:
{
"version"
:
"7.2.
6
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.2.
6
.tgz"
,
"integrity"
:
"sha512-
VE4yS4l8Cdx6DlvrbOFOZDKmQuyz1RhVcshgSt9hKlkehvAXMtX8Sqnp6po7z0aPykTh0TZZtMtLEerkFEe+DA
=="
,
"version"
:
"7.2.
7
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.2.
7
.tgz"
,
"integrity"
:
"sha512-
9C3ffZs0ZUw+dYg1oJKiONf64UKTdAzIOaTQXTrVrCa3oN7Jb2tUfmpenmB+ATRxwhL2n7Yi725YWwxY2FwqvQ
=="
,
"requires"
:
{
"tslib"
:
"^1.9.0"
}
},
"@angular/platform-browser-dynamic"
:
{
"version"
:
"7.2.
6
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.2.
6
.tgz"
,
"integrity"
:
"sha512-
/co/q4v11nKin2MFscCMZyixbW103I2FxbPgCAYBN5NSvfIwTrt5J6xWmDoKJ8HkZBqL3R9B+uhYdzsRN/pQx
g=="
,
"version"
:
"7.2.
7
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.2.
7
.tgz"
,
"integrity"
:
"sha512-
3nlcwCZOzlKw/4CMJ4zy1JEVy8Ky4KyLRRePLledOMdsGbuDIoq/kyAnBzg295Xe9ovBxv8cmuSkShci+s/x8
g=="
,
"requires"
:
{
"tslib"
:
"^1.9.0"
}
},
"@angular/router"
:
{
"version"
:
"7.2.
6
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/router/-/router-7.2.
6
.tgz"
,
"integrity"
:
"sha512-
ayMVor4Mu4wk7JKpt51UxHovnLB4munZ8ELR1CA4w+s0rJsSSwyB4WXElC+DbgCyl7BYLAaGui2c5DbTAJ9jl
w=="
,
"version"
:
"7.2.
7
"
,
"resolved"
:
"https://registry.npmjs.org/@angular/router/-/router-7.2.
7
.tgz"
,
"integrity"
:
"sha512-
59+M8+IH7V2NPPqWw2mwdg+kh/jfwQcXE0tB8iZ5V2ldACPucY/Td6qiT5H6t7EkELtvkKJwS6vKFV22qdRp3
w=="
,
"requires"
:
{
"tslib"
:
"^1.9.0"
}
...
...
@@ -707,12 +707,12 @@
}
},
"@ngtools/webpack"
:
{
"version"
:
"7.3.
2
"
,
"resolved"
:
"https://registry.npmjs.org/@ngtools/webpack/-/webpack-7.3.
2
.tgz"
,
"integrity"
:
"sha512-
q98nt7HUTcdEtP+aJjsm5HUMDL+BXwLz80TthtFlu/f7JYdKxMSWZRHEv+q8Rs69pWMpwxj8RuHm8XiKD/8Cpg
=="
,
"version"
:
"7.3.
3
"
,
"resolved"
:
"https://registry.npmjs.org/@ngtools/webpack/-/webpack-7.3.
3
.tgz"
,
"integrity"
:
"sha512-
G/1P00XHWVrKT3qoSyy7yAPT5/fuja84YifcGg/2SwmNNo4hTXxWhqec0/uHwgQr6nYhGDyzwwXYeKKyQkcfgw
=="
,
"dev"
:
true
,
"requires"
:
{
"@angular-devkit/core"
:
"7.3.
2
"
,
"@angular-devkit/core"
:
"7.3.
3
"
,
"enhanced-resolve"
:
"4.1.0"
,
"rxjs"
:
"6.3.3"
,
"tree-kill"
:
"1.2.1"
,
...
...
@@ -1081,9 +1081,9 @@
}
},
"acorn"
:
{
"version"
:
"6.1.
0
"
,
"resolved"
:
"https://registry.npmjs.org/acorn/-/acorn-6.1.
0
.tgz"
,
"integrity"
:
"sha512-
MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw
=="
,
"version"
:
"6.1.
1
"
,
"resolved"
:
"https://registry.npmjs.org/acorn/-/acorn-6.1.
1
.tgz"
,
"integrity"
:
"sha512-
jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA
=="
,
"dev"
:
true
},
"acorn-dynamic-import"
:
{
...
...
@@ -1878,14 +1878,14 @@
}
},
"browserslist"
:
{
"version"
:
"4.4.
1
"
,
"resolved"
:
"https://registry.npmjs.org/browserslist/-/browserslist-4.4.
1
.tgz"
,
"integrity"
:
"sha512-
pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A
=="
,
"version"
:
"4.4.
2
"
,
"resolved"
:
"https://registry.npmjs.org/browserslist/-/browserslist-4.4.
2
.tgz"
,
"integrity"
:
"sha512-
ISS/AIAiHERJ3d45Fz0AVYKkgcy+F/eJHzKEvv1j0wwKGKD9T3BrwKr/5g45L+Y4XIK5PlTqefHciRFcfE1Jxg
=="
,
"dev"
:
true
,
"requires"
:
{
"caniuse-lite"
:
"^1.0.300009
2
9"
,
"electron-to-chromium"
:
"^1.3.1
0
3"
,
"node-releases"
:
"^1.1.
3
"
"caniuse-lite"
:
"^1.0.300009
3
9"
,
"electron-to-chromium"
:
"^1.3.1
1
3"
,
"node-releases"
:
"^1.1.
8
"
}
},
"browserstack"
:
{
...
...
@@ -2035,9 +2035,9 @@
}
},
"caniuse-lite"
:
{
"version"
:
"1.0.3000093
8
"
,
"resolved"
:
"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.3000093
8
.tgz"
,
"integrity"
:
"sha512-
ekW8NQ3/FvokviDxhdKLZZAx7PptXNwxKgXtnR5y+PR3hckwuP3yJ1Ir+4/c97dsHNqtAyfKUGdw8P4EYzBNgw
=="
,
"version"
:
"1.0.3000093
9
"
,
"resolved"
:
"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.3000093
9
.tgz"
,
"integrity"
:
"sha512-
oXB23ImDJOgQpGjRv1tCtzAvJr4/OvrHi5SO2vUgB0g0xpdZZoA/BxfImiWfdwoYdUTtQrPsXsvYU/dmCSM8gg
=="
,
"dev"
:
true
},
"canonical-path"
:
{
...
...
@@ -6926,9 +6926,9 @@
}
},
"on-headers"
:
{
"version"
:
"1.0.
1
"
,
"resolved"
:
"https://registry.npmjs.org/on-headers/-/on-headers-1.0.
1
.tgz"
,
"integrity"
:
"sha
1-ko9dD0cNSTQmUepnlLCFfBAGk/c
="
,
"version"
:
"1.0.
2
"
,
"resolved"
:
"https://registry.npmjs.org/on-headers/-/on-headers-1.0.
2
.tgz"
,
"integrity"
:
"sha
512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=
="
,
"dev"
:
true
},
"once"
:
{
...
...
package.json
View file @
439a6fcf
...
...
@@ -11,14 +11,14 @@
},
"private"
:
true
,
"dependencies"
:
{
"
@angular/animations
"
:
"
~
7.2.
0
"
,
"
@angular/common
"
:
"
~
7.2.
0
"
,
"
@angular/compiler
"
:
"
~
7.2.
0
"
,
"
@angular/core
"
:
"
~
7.2.
0
"
,
"
@angular/forms
"
:
"
~
7.2.
0
"
,
"
@angular/platform-browser
"
:
"
~
7.2.
0
"
,
"
@angular/platform-browser-dynamic
"
:
"
~
7.2.
0
"
,
"
@angular/router
"
:
"
~
7.2.
0
"
,
"
@angular/animations
"
:
"
^
7.2.
7
"
,
"
@angular/common
"
:
"
^
7.2.
7
"
,
"
@angular/compiler
"
:
"
^
7.2.
7
"
,
"
@angular/core
"
:
"
^
7.2.
7
"
,
"
@angular/forms
"
:
"
^
7.2.
7
"
,
"
@angular/platform-browser
"
:
"
^
7.2.
7
"
,
"
@angular/platform-browser-dynamic
"
:
"
^
7.2.
7
"
,
"
@angular/router
"
:
"
^
7.2.
7
"
,
"
bootstrap
"
:
"
^4.3.1
"
,
"
core-js
"
:
"
^2.5.4
"
,
"
rxjs
"
:
"
~6.4.0
"
,
...
...
@@ -26,13 +26,13 @@
"
zone.js
"
:
"
~0.8.26
"
},
"devDependencies"
:
{
"
@angular-devkit/build-angular
"
:
"
~
0.13.
0
"
,
"
@angular-devkit/build-angular
"
:
"
^
0.13.
3
"
,
"
@angular/cli
"
:
"
~7.3.3
"
,
"
@angular/compiler-cli
"
:
"
~7.2.0
"
,
"
@angular/language-service
"
:
"
~7.2.0
"
,
"
@types/node
"
:
"
~8.9.4
"
,
"
@angular/compiler-cli
"
:
"
^7.2.7
"
,
"
@angular/language-service
"
:
"
^7.2.7
"
,
"
@types/jasmine
"
:
"
~2.8.8
"
,
"
@types/jasminewd2
"
:
"
~2.0.3
"
,
"
@types/node
"
:
"
~8.9.4
"
,
"
codelyzer
"
:
"
~4.5.0
"
,
"
jasmine-core
"
:
"
~2.99.1
"
,
"
jasmine-spec-reporter
"
:
"
~4.2.1
"
,
...
...
src/app/app-routing.module.ts
View file @
439a6fcf
...
...
@@ -5,7 +5,8 @@ import { SubsystemComponent } from './subsystem/subsystem.component';
const
routes
:
Routes
=
[
{
path
:
''
,
component
:
SubsystemListComponent
},
{
path
:
'
subsystem/:id
'
,
component
:
SubsystemComponent
},
{
path
:
'
:instance
'
,
component
:
SubsystemListComponent
},
{
path
:
'
:instance/:class/:member/:subsystem
'
,
component
:
SubsystemComponent
},
];
@
NgModule
({
...
...
src/app/app.module.ts
View file @
439a6fcf
...
...
@@ -9,7 +9,6 @@ import { SearchComponent } from './search/search.component';
import
{
SubsystemItemComponent
}
from
'
./subsystem-list/subsystem-item/subsystem-item.component
'
;
import
{
AppRoutingModule
}
from
'
./app-routing.module
'
;
import
{
SubsystemComponent
}
from
'
./subsystem/subsystem.component
'
;
import
{
MessageComponent
}
from
'
./message/message.component
'
;
@
NgModule
({
declarations
:
[
...
...
@@ -17,8 +16,7 @@ import { MessageComponent } from './message/message.component';
SubsystemListComponent
,
SearchComponent
,
SubsystemItemComponent
,
SubsystemComponent
,
MessageComponent
SubsystemComponent
],
imports
:
[
BrowserModule
,
...
...
src/app/message/message.component.css
deleted
100644 → 0
View file @
ff845a4c
src/app/message/message.component.html
deleted
100644 → 0
View file @
ff845a4c
<div
class=
"alert alert-warning"
role=
"alert"
*ngIf=
"message"
>
{{message}}
</div>
\ No newline at end of file
src/app/message/message.component.spec.ts
deleted
100644 → 0
View file @
ff845a4c
import
{
async
,
ComponentFixture
,
TestBed
}
from
'
@angular/core/testing
'
;
import
{
MessageComponent
}
from
'
./message.component
'
;
describe
(
'
MessageComponent
'
,
()
=>
{
let
component
:
MessageComponent
;
let
fixture
:
ComponentFixture
<
MessageComponent
>
;
beforeEach
(
async
(()
=>
{
TestBed
.
configureTestingModule
({
declarations
:
[
MessageComponent
]
})
.
compileComponents
();
}));
beforeEach
(()
=>
{
fixture
=
TestBed
.
createComponent
(
MessageComponent
);
component
=
fixture
.
componentInstance
;
fixture
.
detectChanges
();
});
it
(
'
should create
'
,
()
=>
{
expect
(
component
).
toBeTruthy
();
});
});
src/app/message/message.component.ts
deleted
100644 → 0
View file @
ff845a4c
import
{
Component
,
OnInit
}
from
'
@angular/core
'
;
import
{
MethodsService
}
from
'
../methods.service
'
;
@
Component
({
selector
:
'
app-message
'
,
templateUrl
:
'
./message.component.html
'
,
styleUrls
:
[
'
./message.component.css
'
]
})
export
class
MessageComponent
implements
OnInit
{
message
:
string
=
''
constructor
(
private
methodsService
:
MethodsService
)
{
}
ngOnInit
()
{
// Service will tell when updated data is available!
this
.
methodsService
.
newMessage
.
subscribe
(
signal
=>
{
this
.
message
=
signal
;
});
// This line must be after subscription (data may be changed while we start subscription)
this
.
message
=
this
.
methodsService
.
getMessage
();
}
}
src/app/methods.service.ts
View file @
439a6fcf
...
...
@@ -6,38 +6,33 @@ import { Subsystem } from './subsystem';
import
{
Method
}
from
'
./method
'
;
const
MAX_LIMIT
:
number
=
1000000
;
const
CONFIG
=
{
'
EE
'
:
'
https://www.x-tee.ee/catalogue/EE/wsdls/
'
,
'
ee-test
'
:
'
https://www.x-tee.ee/catalogue/ee-test/wsdls/
'
,
'
ee-dev
'
:
'
https://www.x-tee.ee/catalogue/ee-dev/wsdls/
'
}
const
API_SERVICE
=
'
index.json
'
;
@
Injectable
({
providedIn
:
'
root
'
})
export
class
MethodsService
{
private
apiUrlBase
=
'
https://www.x-tee.ee/catalogue/EE/wsdls/
'
;
//public apiUrlBase = 'http://localhost/';
private
apiUrlBase
=
''
;
private
limit
:
number
=
10
;
private
offset
:
number
=
0
;
private
nonEmpty
:
boolean
=
false
;
private
filter
:
string
=
""
;
private
apiService
=
'
index.json
'
;
private
apiUrl
=
this
.
apiUrlBase
+
this
.
apiService
;
private
subsystems
:
Subsystem
[]
=
[];
private
loadingDone
:
boolean
=
false
;
private
lastMessage
:
string
=
''
;
private
loadingError
:
boolean
=
false
;
private
instance
:
string
=
''
;
private
instanceData
=
new
Object
();
@
Output
()
subsystemsUpdated
:
EventEmitter
<
any
>
=
new
EventEmitter
();
@
Output
()
newMessage
:
EventEmitter
<
string
>
=
new
EventEmitter
();
constructor
(
private
http
:
HttpClient
)
{
this
.
http
.
get
<
Subsystem
[]
>
(
this
.
apiUrl
)
.
pipe
(
catchError
(
this
.
handleError
(
'
getMethods
'
,
[]))
).
subscribe
(
subsystems
=>
{
this
.
subsystems
=
subsystems
;
this
.
setFullNames
();
this
.
loadingDone
=
true
;
this
.
signalRefresh
();
})
}
@
Output
()
warnings
:
EventEmitter
<
string
>
=
new
EventEmitter
();
constructor
(
private
http
:
HttpClient
)
{}
private
signalRefresh
()
{
this
.
subsystemsUpdated
.
emit
(
null
);
...
...
@@ -112,14 +107,54 @@ export class MethodsService {
*/
private
handleError
<
T
>
(
operation
=
'
operation
'
,
result
?:
T
)
{
return
(
error
:
any
):
Observable
<
T
>
=>
{
this
.
l
astMessage
=
'
Error loading data!
'
this
.
newMessage
.
emit
(
this
.
lastMessage
);
this
.
l
oadingError
=
true
this
.
emitWarning
(
'
Error while loading data from server!
'
)
// Let the app keep running by returning an empty result.
return
of
(
result
as
T
);
};
}
getDefaultInstance
():
string
{
return
Object
.
keys
(
CONFIG
)[
0
]
}
getInstances
():
string
[]
{
return
Object
.
keys
(
CONFIG
)
}
getInstance
():
string
{
return
this
.
instance
}
emitWarning
(
msg
:
string
)
{
this
.
warnings
.
emit
(
msg
);
}
setInstance
(
instance
:
string
)
{
this
.
instance
=
instance
this
.
apiUrlBase
=
CONFIG
[
instance
]
// Data of this instance already loaded
if
(
this
.
instanceData
[
instance
])
{
this
.
subsystems
=
this
.
instanceData
[
instance
]
this
.
signalRefresh
();
}
else
{
this
.
loadingDone
=
false
;
this
.
loadingError
=
false
;
this
.
http
.
get
<
Subsystem
[]
>
(
this
.
apiUrlBase
+
API_SERVICE
)
.
pipe
(
catchError
(
this
.
handleError
(
'
getMethods
'
,
[]))
).
subscribe
(
subsystems
=>
{
this
.
instanceData
[
instance
]
=
subsystems
this
.
subsystems
=
this
.
instanceData
[
instance
]
this
.
setFullNames
();
this
.
loadingDone
=
true
;
this
.
signalRefresh
();
})
}
}
getApiUrlBase
():
string
{
return
this
.
apiUrlBase
}
...
...
@@ -143,6 +178,10 @@ export class MethodsService {
return
this
.
loadingDone
}
isLoadingError
():
boolean
{
return
this
.
loadingError
}
getMethods
():
Subsystem
[]
{
return
this
.
filteredSubsystems
();
}
...
...
@@ -181,8 +220,4 @@ export class MethodsService {
return
element
.
fullSubsystemName
===
name
;
})
}
getMessage
():
string
{
return
this
.
lastMessage
}
}
src/app/subsystem-list/subsystem-item/subsystem-item.component.ts
View file @
439a6fcf
...
...
@@ -38,6 +38,12 @@ export class SubsystemItemComponent implements OnInit {
}
showDetail
()
{
this
.
router
.
navigateByUrl
(
'
/subsystem/
'
+
encodeURIComponent
(
this
.
subsystem
.
fullSubsystemName
))
//this.router.navigateByUrl('/subsystem/' + encodeURIComponent(this.subsystem.fullSubsystemName))
this
.
router
.
navigateByUrl
(
'
/
'
+
this
.
subsystem
.
xRoadInstance
+
'
/
'
+
this
.
subsystem
.
memberClass
+
'
/
'
+
this
.
subsystem
.
memberCode
+
'
/
'
+
this
.
subsystem
.
subsystemCode
)
}
}
src/app/subsystem-list/subsystem-list.component.html
View file @
439a6fcf
<h3>
All
subsystems with methods and WSDL descriptions
for X-tee instance "EE"
</h3>
<p>
This
report
is generated by making getWsdl requests from RIA's Monitoring Security Server
to all X-tee subsystems
in the "EE" instance
.
</p>
<h3>
Catalogue of all X-tee
subsystems with methods and WSDL descriptions
</h3>
<p>
This
catalogue
is generated by making getWsdl requests from RIA's Monitoring Security Server
to all X-tee subsystems.
</p>
<p>
Subsystems with the
<span
class=
"badge badge-secondary"
>
Empty
</span>
icon have no X-Tee
services available.
</p>
<p>
Subsystems with the
<span
class=
"badge badge-danger"
>
Error
</span>
icon either could not be
reached by RIA's Monitoring Security Server or there was some other error during the request.
</p>
<p>
Support:
<a
href=
"mailto:help@ria.ee"
>
help@ria.ee
</a></p>
<app-message></app-message>
<div
class=
"alert alert-warning"
role=
"alert"
*ngIf=
"message"
>
{{message}}
</div>
<div
class=
"btn-group"
role=
"group"
aria-label=
"Select X-tee instance"
>
<button
*ngFor=
"let instance of getInstances()"
type=
"button"
[ngClass]=
"getInstance() == instance ? 'btn btn-primary' : 'btn btn-secondary'"
(click)=
"switchInstance(instance)"
>
{{instance}}
</button>
</div>
<app-search></app-search>
...
...
src/app/subsystem-list/subsystem-list.component.ts
View file @
439a6fcf
import
{
Component
,
OnInit
}
from
'
@angular/core
'
;
import
{
Subsystem
}
from
'
../subsystem
'
;
import
{
MethodsService
}
from
'
../methods.service
'
;
import
{
ActivatedRoute
,
Router
}
from
'
@angular/router
'
;
@
Component
({
selector
:
'
app-subsystem-list
'
,
...
...
@@ -8,11 +9,36 @@ import { MethodsService } from '../methods.service';
styleUrls
:
[
'
./subsystem-list.component.css
'
]
})
export
class
SubsystemListComponent
implements
OnInit
{
subsystems
:
Subsystem
[];
subsystems
:
Subsystem
[]
message
:
string
=
''
constructor
(
private
methodsService
:
MethodsService
)
{
}
constructor
(
private
methodsService
:
MethodsService
,
private
route
:
ActivatedRoute
,
private
router
:
Router
)
{}
ngOnInit
()
{
// Reset message on page load
this
.
message
=
''
// Service will tell when data loading failed!
this
.
methodsService
.
warnings
.
subscribe
(
signal
=>
{
this
.
message
=
signal