Compare commits

..

No commits in common. "59483b29d8c84e865cff33ad75723c54722029e8" and "96163b4266ec436de628ea56f7c0147fd6f8565d" have entirely different histories.

19 changed files with 4277 additions and 4290 deletions

3523
api/package-lock.json generated

File diff suppressed because it is too large Load Diff

192
package-lock.json generated
View File

@ -10,10 +10,10 @@
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
"dev": true, "dev": true,
"requires": { "requires": {
"co": "4.6.0", "co": "^4.6.0",
"fast-deep-equal": "1.1.0", "fast-deep-equal": "^1.0.0",
"fast-json-stable-stringify": "2.0.0", "fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "0.3.1" "json-schema-traverse": "^0.3.0"
} }
}, },
"ansi-styles": { "ansi-styles": {
@ -22,7 +22,7 @@
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true, "dev": true,
"requires": { "requires": {
"color-convert": "1.9.2" "color-convert": "^1.9.0"
} }
}, },
"asn1": { "asn1": {
@ -62,7 +62,7 @@
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
"tweetnacl": "0.14.5" "tweetnacl": "^0.14.3"
} }
}, },
"builtin-modules": { "builtin-modules": {
@ -83,9 +83,9 @@
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"ansi-styles": "3.2.1", "ansi-styles": "^3.2.1",
"escape-string-regexp": "1.0.5", "escape-string-regexp": "^1.0.5",
"supports-color": "5.4.0" "supports-color": "^5.3.0"
}, },
"dependencies": { "dependencies": {
"supports-color": { "supports-color": {
@ -94,7 +94,7 @@
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
"dev": true, "dev": true,
"requires": { "requires": {
"has-flag": "3.0.0" "has-flag": "^3.0.0"
} }
} }
} }
@ -126,7 +126,7 @@
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
"dev": true, "dev": true,
"requires": { "requires": {
"delayed-stream": "1.0.0" "delayed-stream": "~1.0.0"
} }
}, },
"commander": { "commander": {
@ -141,15 +141,15 @@
"integrity": "sha512-6XiIYtYzmGEccNZFkih5JOH92jLA4ulZArAYy5j1uDSdrPLB3KzdE8GW7t2fHPcg9ry2+5LP9IEYzXzxw9lFdA==", "integrity": "sha512-6XiIYtYzmGEccNZFkih5JOH92jLA4ulZArAYy5j1uDSdrPLB3KzdE8GW7t2fHPcg9ry2+5LP9IEYzXzxw9lFdA==",
"dev": true, "dev": true,
"requires": { "requires": {
"chalk": "2.4.1", "chalk": "^2.4.1",
"commander": "2.6.0", "commander": "2.6.0",
"date-fns": "1.29.0", "date-fns": "^1.23.0",
"lodash": "4.17.10", "lodash": "^4.5.1",
"read-pkg": "3.0.0", "read-pkg": "^3.0.0",
"rx": "2.3.24", "rx": "2.3.24",
"spawn-command": "0.0.2-1", "spawn-command": "^0.0.2-1",
"supports-color": "3.2.3", "supports-color": "^3.2.3",
"tree-kill": "1.2.0" "tree-kill": "^1.1.0"
} }
}, },
"core-js": { "core-js": {
@ -170,7 +170,7 @@
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"dev": true, "dev": true,
"requires": { "requires": {
"assert-plus": "1.0.0" "assert-plus": "^1.0.0"
} }
}, },
"date-fns": { "date-fns": {
@ -192,7 +192,7 @@
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
"jsbn": "0.1.1" "jsbn": "~0.1.0"
} }
}, },
"error-ex": { "error-ex": {
@ -201,7 +201,7 @@
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
"dev": true, "dev": true,
"requires": { "requires": {
"is-arrayish": "0.2.1" "is-arrayish": "^0.2.1"
} }
}, },
"escape-string-regexp": { "escape-string-regexp": {
@ -246,9 +246,9 @@
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
"dev": true, "dev": true,
"requires": { "requires": {
"asynckit": "0.4.0", "asynckit": "^0.4.0",
"combined-stream": "1.0.6", "combined-stream": "1.0.6",
"mime-types": "2.1.18" "mime-types": "^2.1.12"
} }
}, },
"getpass": { "getpass": {
@ -257,7 +257,7 @@
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"dev": true, "dev": true,
"requires": { "requires": {
"assert-plus": "1.0.0" "assert-plus": "^1.0.0"
} }
}, },
"graceful-fs": { "graceful-fs": {
@ -278,8 +278,8 @@
"integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
"dev": true, "dev": true,
"requires": { "requires": {
"ajv": "5.5.2", "ajv": "^5.1.0",
"har-schema": "2.0.0" "har-schema": "^2.0.0"
} }
}, },
"has-flag": { "has-flag": {
@ -306,9 +306,9 @@
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"dev": true, "dev": true,
"requires": { "requires": {
"assert-plus": "1.0.0", "assert-plus": "^1.0.0",
"jsprim": "1.4.1", "jsprim": "^1.2.2",
"sshpk": "1.14.2" "sshpk": "^1.7.0"
} }
}, },
"is-arrayish": { "is-arrayish": {
@ -323,7 +323,7 @@
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
"dev": true, "dev": true,
"requires": { "requires": {
"builtin-modules": "1.1.1" "builtin-modules": "^1.0.0"
} }
}, },
"is-typedarray": { "is-typedarray": {
@ -356,11 +356,11 @@
"integrity": "sha1-M4WseQGSEwy+Iw6ALsAskhW7/to=", "integrity": "sha1-M4WseQGSEwy+Iw6ALsAskhW7/to=",
"dev": true, "dev": true,
"requires": { "requires": {
"hoek": "4.2.1", "hoek": "4.x.x",
"isemail": "2.2.1", "isemail": "2.x.x",
"items": "2.1.1", "items": "2.x.x",
"moment": "2.22.2", "moment": "2.x.x",
"topo": "2.0.2" "topo": "2.x.x"
} }
}, },
"jsbn": { "jsbn": {
@ -412,10 +412,10 @@
"integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
"dev": true, "dev": true,
"requires": { "requires": {
"graceful-fs": "4.1.11", "graceful-fs": "^4.1.2",
"parse-json": "4.0.0", "parse-json": "^4.0.0",
"pify": "3.0.0", "pify": "^3.0.0",
"strip-bom": "3.0.0" "strip-bom": "^3.0.0"
} }
}, },
"lodash": { "lodash": {
@ -436,7 +436,7 @@
"integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"mime-db": "1.33.0" "mime-db": "~1.33.0"
} }
}, },
"minimist": { "minimist": {
@ -457,10 +457,10 @@
"integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
"dev": true, "dev": true,
"requires": { "requires": {
"hosted-git-info": "2.6.1", "hosted-git-info": "^2.1.4",
"is-builtin-module": "1.0.0", "is-builtin-module": "^1.0.0",
"semver": "5.5.0", "semver": "2 || 3 || 4 || 5",
"validate-npm-package-license": "3.0.3" "validate-npm-package-license": "^3.0.1"
} }
}, },
"oauth-sign": { "oauth-sign": {
@ -475,8 +475,8 @@
"integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
"dev": true, "dev": true,
"requires": { "requires": {
"error-ex": "1.3.2", "error-ex": "^1.3.1",
"json-parse-better-errors": "1.0.2" "json-parse-better-errors": "^1.0.1"
} }
}, },
"path-type": { "path-type": {
@ -485,7 +485,7 @@
"integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
"dev": true, "dev": true,
"requires": { "requires": {
"pify": "3.0.0" "pify": "^3.0.0"
} }
}, },
"performance-now": { "performance-now": {
@ -518,9 +518,9 @@
"integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
"dev": true, "dev": true,
"requires": { "requires": {
"load-json-file": "4.0.0", "load-json-file": "^4.0.0",
"normalize-package-data": "2.4.0", "normalize-package-data": "^2.3.2",
"path-type": "3.0.0" "path-type": "^3.0.0"
} }
}, },
"request": { "request": {
@ -529,26 +529,26 @@
"integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
"dev": true, "dev": true,
"requires": { "requires": {
"aws-sign2": "0.7.0", "aws-sign2": "~0.7.0",
"aws4": "1.7.0", "aws4": "^1.6.0",
"caseless": "0.12.0", "caseless": "~0.12.0",
"combined-stream": "1.0.6", "combined-stream": "~1.0.5",
"extend": "3.0.1", "extend": "~3.0.1",
"forever-agent": "0.6.1", "forever-agent": "~0.6.1",
"form-data": "2.3.2", "form-data": "~2.3.1",
"har-validator": "5.0.3", "har-validator": "~5.0.3",
"http-signature": "1.2.0", "http-signature": "~1.2.0",
"is-typedarray": "1.0.0", "is-typedarray": "~1.0.0",
"isstream": "0.1.2", "isstream": "~0.1.2",
"json-stringify-safe": "5.0.1", "json-stringify-safe": "~5.0.1",
"mime-types": "2.1.18", "mime-types": "~2.1.17",
"oauth-sign": "0.8.2", "oauth-sign": "~0.8.2",
"performance-now": "2.1.0", "performance-now": "^2.1.0",
"qs": "6.5.2", "qs": "~6.5.1",
"safe-buffer": "5.1.2", "safe-buffer": "^5.1.1",
"tough-cookie": "2.3.4", "tough-cookie": "~2.3.3",
"tunnel-agent": "0.6.0", "tunnel-agent": "^0.6.0",
"uuid": "3.3.2" "uuid": "^3.1.0"
} }
}, },
"rx": { "rx": {
@ -587,8 +587,8 @@
"integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==",
"dev": true, "dev": true,
"requires": { "requires": {
"spdx-expression-parse": "3.0.0", "spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "3.0.0" "spdx-license-ids": "^3.0.0"
} }
}, },
"spdx-exceptions": { "spdx-exceptions": {
@ -603,8 +603,8 @@
"integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
"dev": true, "dev": true,
"requires": { "requires": {
"spdx-exceptions": "2.1.0", "spdx-exceptions": "^2.1.0",
"spdx-license-ids": "3.0.0" "spdx-license-ids": "^3.0.0"
} }
}, },
"spdx-license-ids": { "spdx-license-ids": {
@ -619,15 +619,15 @@
"integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
"dev": true, "dev": true,
"requires": { "requires": {
"asn1": "0.2.3", "asn1": "~0.2.3",
"assert-plus": "1.0.0", "assert-plus": "^1.0.0",
"bcrypt-pbkdf": "1.0.2", "bcrypt-pbkdf": "^1.0.0",
"dashdash": "1.14.1", "dashdash": "^1.12.0",
"ecc-jsbn": "0.1.1", "ecc-jsbn": "~0.1.1",
"getpass": "0.1.7", "getpass": "^0.1.1",
"jsbn": "0.1.1", "jsbn": "~0.1.0",
"safer-buffer": "2.1.2", "safer-buffer": "^2.0.2",
"tweetnacl": "0.14.5" "tweetnacl": "~0.14.0"
} }
}, },
"strip-bom": { "strip-bom": {
@ -642,7 +642,7 @@
"integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
"dev": true, "dev": true,
"requires": { "requires": {
"has-flag": "1.0.0" "has-flag": "^1.0.0"
}, },
"dependencies": { "dependencies": {
"has-flag": { "has-flag": {
@ -659,7 +659,7 @@
"integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=", "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=",
"dev": true, "dev": true,
"requires": { "requires": {
"hoek": "4.2.1" "hoek": "4.x.x"
} }
}, },
"tough-cookie": { "tough-cookie": {
@ -668,7 +668,7 @@
"integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
"dev": true, "dev": true,
"requires": { "requires": {
"punycode": "1.4.1" "punycode": "^1.4.1"
} }
}, },
"tree-kill": { "tree-kill": {
@ -683,7 +683,7 @@
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"dev": true, "dev": true,
"requires": { "requires": {
"safe-buffer": "5.1.2" "safe-buffer": "^5.0.1"
} }
}, },
"tweetnacl": { "tweetnacl": {
@ -705,8 +705,8 @@
"integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==",
"dev": true, "dev": true,
"requires": { "requires": {
"spdx-correct": "3.0.0", "spdx-correct": "^3.0.0",
"spdx-expression-parse": "3.0.0" "spdx-expression-parse": "^3.0.0"
} }
}, },
"verror": { "verror": {
@ -715,9 +715,9 @@
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"dev": true, "dev": true,
"requires": { "requires": {
"assert-plus": "1.0.0", "assert-plus": "^1.0.0",
"core-util-is": "1.0.2", "core-util-is": "1.0.2",
"extsprintf": "1.3.0" "extsprintf": "^1.2.0"
} }
}, },
"wait-on": { "wait-on": {
@ -726,11 +726,11 @@
"integrity": "sha512-hDwJ674+7dfiiK/cxtYCwPxlnjXDjto/pCz1PF02sXUhqCqCWsgvxZln0699PReWqXXgkxqkF6DDo5Rj9sjNvw==", "integrity": "sha512-hDwJ674+7dfiiK/cxtYCwPxlnjXDjto/pCz1PF02sXUhqCqCWsgvxZln0699PReWqXXgkxqkF6DDo5Rj9sjNvw==",
"dev": true, "dev": true,
"requires": { "requires": {
"core-js": "2.5.7", "core-js": "^2.4.1",
"joi": "9.2.0", "joi": "^9.2.0",
"minimist": "1.2.0", "minimist": "^1.2.0",
"request": "2.87.0", "request": "^2.78.0",
"rx": "4.1.0" "rx": "^4.1.0"
}, },
"dependencies": { "dependencies": {
"rx": { "rx": {

4765
static/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -20,9 +20,9 @@
<li routerLinkActive="active"> <li routerLinkActive="active">
<a [routerLink]="[config.publicPath,{outlets:{right:'ranks'}}]" class="link">Ränge</a> <a [routerLink]="[config.publicPath,{outlets:{right:'ranks'}}]" class="link">Ränge</a>
</li> </li>
<!--<li routerLinkActive="active">--> <li routerLinkActive="active">
<!--<a [routerLink]="[config.publicPath,{outlets:{right:'decorations'}}]" class="link">Auszeichnungen</a>--> <a [routerLink]="[config.publicPath,{outlets:{right:'decorations'}}]" class="link">Auszeichnungen</a>
<!--</li>--> </li>
<li routerLinkActive="active"> <li routerLinkActive="active">
<a routerLink='{{config.statsPath}}' class="link">Statistiken</a> <a routerLink='{{config.statsPath}}' class="link">Statistiken</a>
</li> </li>

View File

@ -5,8 +5,8 @@ import {PromotionService} from './services/army-management/promotion.service';
import {AwardingService} from './services/army-management/awarding.service'; import {AwardingService} from './services/army-management/awarding.service';
import {RouteConfig} from './app.config'; import {RouteConfig} from './app.config';
import {DOCUMENT} from '@angular/common'; import {DOCUMENT} from '@angular/common';
import {DomSanitizer} from '@angular/platform-browser'; import {DomSanitizer} from "@angular/platform-browser";
import {MatIconRegistry} from '@angular/material'; import {MatIconRegistry} from "@angular/material";
declare function require(url: string); declare function require(url: string);

View File

@ -24,7 +24,7 @@ import {UserStore} from './services/stores/user.store';
import {CookieService} from 'ngx-cookie-service'; import {CookieService} from 'ngx-cookie-service';
import {SnackBarService} from './services/user-interface/snack-bar/snack-bar.service'; import {SnackBarService} from './services/user-interface/snack-bar/snack-bar.service';
import {MaterialComponentsModule} from './material-components.module'; import {MaterialComponentsModule} from './material-components.module';
import {HttpClientModule} from '@angular/common/http'; import {HttpClientModule} from "@angular/common/http";
@NgModule({ @NgModule({
imports: [SharedModule, BrowserModule, BrowserAnimationsModule, appRouting, HttpModule, HttpClientModule, imports: [SharedModule, BrowserModule, BrowserAnimationsModule, appRouting, HttpModule, HttpClientModule,

View File

@ -11,10 +11,7 @@
Global Global
</mat-button-toggle> </mat-button-toggle>
</mat-button-toggle-group> </mat-button-toggle-group>
<button mat-icon-button class="add-btn"> <a class="pull-right btn btn-success" (click)="openNewDecorationForm()">+</a>
<mat-icon svgIcon="add" title="Neue Auszeichnung hinzufügen"
(click)="openNewDecorationForm()"></mat-icon>
</button>
</div> </div>
<div class="input-group list-header"> <div class="input-group list-header">

View File

@ -5,13 +5,10 @@ import {DecorationStore} from '../services/stores/decoration.store';
import {DecorationService} from '../services/army-management/decoration.service'; import {DecorationService} from '../services/army-management/decoration.service';
import {NgModule} from '@angular/core'; import {NgModule} from '@angular/core';
import {MatButtonToggleModule} from '@angular/material'; import {MatButtonToggleModule} from '@angular/material';
import {MatIconModule} from '@angular/material/icon';
import {MatButtonModule} from '@angular/material/button';
@NgModule({ @NgModule({
declarations: decorationsRoutingComponents, declarations: decorationsRoutingComponents,
imports: [CommonModule, SharedModule, MatButtonToggleModule, MatButtonModule, MatIconModule, imports: [CommonModule, SharedModule, MatButtonToggleModule, decorationRoutesModule],
decorationRoutesModule],
providers: [DecorationStore, DecorationService] providers: [DecorationStore, DecorationService]
}) })
export class DecorationsModule { export class DecorationsModule {

View File

@ -8,10 +8,7 @@
{{fraction.OPFOR}} {{fraction.OPFOR}}
</mat-button-toggle> </mat-button-toggle>
</mat-button-toggle-group> </mat-button-toggle-group>
<button mat-icon-button class="add-btn"> <a class="pull-right btn btn-success" (click)="openNewRankForm()">+</a>
<mat-icon svgIcon="add" title="Neuen Rang hinzufügen"
(click)="openNewRankForm()"></mat-icon>
</button>
</div> </div>
<div class="input-group list-header"> <div class="input-group list-header">

View File

@ -5,13 +5,10 @@ import {CommonModule} from '@angular/common';
import {RankService} from '../services/army-management/rank.service'; import {RankService} from '../services/army-management/rank.service';
import {RankStore} from '../services/stores/rank.store'; import {RankStore} from '../services/stores/rank.store';
import {MatButtonToggleModule} from '@angular/material'; import {MatButtonToggleModule} from '@angular/material';
import {MatIconModule} from '@angular/material/icon';
import {MatButtonModule} from '@angular/material/button';
@NgModule({ @NgModule({
declarations: ranksRoutingComponents, declarations: ranksRoutingComponents,
imports: [CommonModule, SharedModule, MatButtonToggleModule, MatButtonModule, MatIconModule, imports: [CommonModule, SharedModule, MatButtonToggleModule, rankRouterModule],
rankRouterModule],
providers: [RankStore, RankService] providers: [RankStore, RankService]
}) })
export class RanksModule { export class RanksModule {

View File

@ -8,10 +8,7 @@
{{fraction.OPFOR}} {{fraction.OPFOR}}
</mat-button-toggle> </mat-button-toggle>
</mat-button-toggle-group> </mat-button-toggle-group>
<button mat-icon-button class="add-btn"> <a class="pull-right btn btn-success" (click)="openNewSquadForm()">+</a>
<mat-icon svgIcon="add" title="Neues Squad hinzufügen"
(click)="openNewSquadForm()"></mat-icon>
</button>
</div> </div>
<div class="input-group search-bar"> <div class="input-group search-bar">

View File

@ -5,13 +5,10 @@ import {squadRouterModule, squadsRoutingComponents} from './squads.routing';
import {SquadStore} from '../services/stores/squad.store'; import {SquadStore} from '../services/stores/squad.store';
import {SquadService} from '../services/army-management/squad.service'; import {SquadService} from '../services/army-management/squad.service';
import {MatButtonToggleModule} from '@angular/material'; import {MatButtonToggleModule} from '@angular/material';
import {MatIconModule} from '@angular/material/icon';
import {MatButtonModule} from '@angular/material/button';
@NgModule({ @NgModule({
declarations: squadsRoutingComponents, declarations: squadsRoutingComponents,
imports: [CommonModule, SharedModule, MatButtonToggleModule, MatButtonModule, MatIconModule, imports: [CommonModule, SharedModule, MatButtonToggleModule, squadRouterModule],
squadRouterModule],
providers: [SquadStore, SquadService] providers: [SquadStore, SquadService]
}) })
export class SquadsModule { export class SquadsModule {

View File

@ -8,12 +8,12 @@ import {CampaignService} from '../services/logs/campaign.service';
import {NgxDatatableModule} from '@swimlane/ngx-datatable'; import {NgxDatatableModule} from '@swimlane/ngx-datatable';
import {PlayerService} from '../services/logs/player.service'; import {PlayerService} from '../services/logs/player.service';
import {LogsService} from '../services/logs/logs.service'; import {LogsService} from '../services/logs/logs.service';
import {MatButtonModule, MatButtonToggleModule, MatExpansionModule} from '@angular/material'; import {MatButtonToggleModule, MatExpansionModule} from '@angular/material';
@NgModule({ @NgModule({
declarations: statsRoutingComponents, declarations: statsRoutingComponents,
imports: [CommonModule, SharedModule, statsRouterModule, NgxChartsModule, NgxDatatableModule, imports: [CommonModule, SharedModule, statsRouterModule, NgxChartsModule, NgxDatatableModule, MatExpansionModule,
MatButtonModule, MatExpansionModule, MatButtonToggleModule], MatButtonToggleModule],
providers: [WarService, CampaignService, PlayerService, LogsService] providers: [WarService, CampaignService, PlayerService, LogsService]
}) })
export class StatsModule { export class StatsModule {

View File

@ -65,11 +65,3 @@ mat-expansion-panel-header.mat-expansion-panel-header:focus {
.select-list > mat-accordion:first-child .mat-expansion-panel-header { .select-list > mat-accordion:first-child .mat-expansion-panel-header {
border-radius: 4px 4px 0 0; border-radius: 4px 4px 0 0;
} }
.stats-add-btn {
background: white;
font-weight: 700;
color: #3e3e3e;
margin: 5px;
width: 95%;
}

View File

@ -1,11 +1,11 @@
<div class="select-list"> <div class="select-list">
<div class="input-group list-header" *ngIf="loginService.hasPermission(3)"> <div class="input-group list-header" *ngIf="loginService.hasPermission(3)">
<button mat-stroked-button class="stats-add-btn" (click)="selectNewWar()"> <a class="pull-left btn btn-success" (click)="selectNewWar()">
Schlacht hinzufügen Schlacht hinzufügen
</button> </a>
<button mat-stroked-button class="stats-add-btn" (click)="selectNewCampaign()"> <a class="pull-right btn btn-success" (click)="selectNewCampaign()">
Kampagne hinzufügen Kampagne hinzufügen
</button> </a>
</div> </div>
<mat-accordion *ngFor="let campaign of campaigns; let isFirstRow=first"> <mat-accordion *ngFor="let campaign of campaigns; let isFirstRow=first">
@ -15,8 +15,8 @@
{{campaign.title}} {{campaign.title}}
</mat-panel-title> </mat-panel-title>
<mat-panel-description class="war-interaction-panel" *ngIf="loginService.hasPermission(3)"> <mat-panel-description class="war-interaction-panel" *ngIf="loginService.hasPermission(3)">
<span (click)="deleteCampaign(campaign); $event.stopPropagation()" title="Löschen" <span (click)="deleteCampaign(campaign); $event.stopPropagation()" title="Löschen"
class="glyphicon glyphicon-trash trash"> class="glyphicon glyphicon-trash trash">
</span> </span>
<span (click)="editCampaign(campaign); $event.stopPropagation()" title="Bearbeiten" <span (click)="editCampaign(campaign); $event.stopPropagation()" title="Bearbeiten"
class="glyphicon glyphicon-edit trash" class="glyphicon glyphicon-edit trash"

View File

@ -1,5 +1,5 @@
<form #form="ngForm" class="overview"> <form #form="ngForm" class="overview">
<h3>Neue Schlacht hinzufügen</h3> <h3>Schlacht hinzufügen</h3>
<div class="form-group"> <div class="form-group">
<label for="title">Titel</label> <label for="title">Titel</label>

View File

@ -2,7 +2,7 @@
overflow: hidden !important; overflow: hidden !important;
padding-top: 80px !important; padding-top: 80px !important;
width: 20%; width: 20%;
min-width: 380px; min-width: 280px;
} }
h3 { h3 {

View File

@ -7,13 +7,7 @@
padding-bottom: 20px; padding-bottom: 20px;
} }
.add-btn {
margin-right: 16px;
margin-top: -3px;
float: right;
}
:host/deep/.mat-icon { :host/deep/.mat-icon {
height: 32px; height: 42px;
width: 32px; width: 42px;
} }

View File

@ -11,9 +11,8 @@
Ohne Squad Ohne Squad
</mat-button-toggle> </mat-button-toggle>
</mat-button-toggle-group> </mat-button-toggle-group>
<button mat-icon-button class="add-btn"> <button mat-icon-button class="pull-right" style="margin-right: 16px;">
<mat-icon svgIcon="add-user" title="Neuen Teilnehmer hinzufügen" <mat-icon svgIcon="add-user" (click)="openNewUserForm()"></mat-icon>
(click)="openNewUserForm()"></mat-icon>
</button> </button>
</div> </div>