diff --git a/codecamp-front/.angular-cli.json b/codecamp-front/.angular-cli.json
index 3b1ab53..3d14ebf 100644
--- a/codecamp-front/.angular-cli.json
+++ b/codecamp-front/.angular-cli.json
@@ -20,7 +20,8 @@
"prefix": "app",
"styles": [
"../node_modules/bootstrap/dist/css/bootstrap.min.css",
- "styles.css"
+ "styles.css",
+ "../node_modules/font-awesome/css/font-awesome.min.css"
],
"scripts": [
"../node_modules/popper.js/dist/umd/popper.min.js",
@@ -28,8 +29,6 @@
"../node_modules/bootstrap/dist/js/bootstrap.min.js",
"../node_modules/ace-builds/src-min/ace.js",
"../node_modules/ace-builds/src-min/theme-sqlserver.js",
- "../node_modules/ace-builds/src-min/mode-c.js",
- "../node_modules/ace-builds/src-min/mode-cpp.js",
"../node_modules/ace-builds/src-min/mode-python.js",
"../node_modules/ace-builds/src-min/mode-java.js"
],
@@ -66,6 +65,7 @@
},
"defaults": {
"styleExt": "css",
- "component": {}
+ "component": {
+ }
}
}
diff --git a/codecamp-front/package-lock.json b/codecamp-front/package-lock.json
index b6bd625..c7a5e6b 100644
--- a/codecamp-front/package-lock.json
+++ b/codecamp-front/package-lock.json
@@ -47,9 +47,9 @@
}
},
"@angular/animations": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-5.2.1.tgz",
- "integrity": "sha512-f8viyt1xDC2NC2ap0lczw+AiL3S1WVSDOmNp3UKwA66gm+Hs9AdDX0PjpxgMR9KQY8c4P7mztNax55jj2Sbe1Q==",
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-5.2.7.tgz",
+ "integrity": "sha512-t/B0z2OYO+yy8SJKB1/evSNPvnLsl+AclhM1p21/NnETxQUqvct1KXeDM7nYDu5hmnGmuavhua8LDo6rN5zS+Q==",
"requires": {
"tslib": "1.9.0"
}
@@ -121,31 +121,31 @@
}
},
"@angular/common": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/@angular/common/-/common-5.2.1.tgz",
- "integrity": "sha512-O7FA4Qpcu6GYMzlsNTHtUsAl6W0SXepP7qEMx83fC1Xje2GEtulp/99Pg6bvpFKiZYdCjJDhjbUZhIO5x0UncQ==",
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@angular/common/-/common-5.2.7.tgz",
+ "integrity": "sha512-TqsDMmPX1JlEH2QIneuAVzEO4ubzxLBAdV4XbKWDQKC/UfbWIIpSrSp2cIi85NV1tKkg0WAaodCIZ02NucHIHg==",
"requires": {
"tslib": "1.9.0"
}
},
"@angular/compiler": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-5.2.1.tgz",
- "integrity": "sha512-c/HDfbDr8yDUCoVCbGHgoae3YCoWG3EuM/l7jfHflE8sbdppiFVxCRd3VkygkwfPGpUZbZaW2x/OK4Z1dQa34g==",
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-5.2.7.tgz",
+ "integrity": "sha512-26RG+Dy+M/95OyNNqM+OAruarIPOmbndiaglz2dMrNYzenfbSgG/AoPlL5uCdSqZDiXgnlKnS2K6/ePWXDSKNw==",
"requires": {
"tslib": "1.9.0"
}
},
"@angular/compiler-cli": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-5.2.1.tgz",
- "integrity": "sha512-9Yud6euknHKPQhh/noho0/xNgYeCyly0Ugkgh0306/RNLW5ngcWE876wdUweU13LJgWQ9+SHqFI5rJbsseqkZw==",
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-5.2.7.tgz",
+ "integrity": "sha512-91gQolzsKyOlmBNW1J7lyu+dXHe/KHbAXU459hn6rycMHuTt60XvxA5O3xy3Pqt28VgbOOSrQfq5eVjZodKjWg==",
"dev": true,
"requires": {
"chokidar": "1.7.0",
"minimist": "1.2.0",
"reflect-metadata": "0.1.12",
- "tsickle": "0.26.0"
+ "tsickle": "0.27.2"
},
"dependencies": {
"minimist": {
@@ -157,25 +157,25 @@
}
},
"@angular/core": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/@angular/core/-/core-5.2.1.tgz",
- "integrity": "sha512-2kyXVl+OK/LRUisSfILkRyWiD2BGXysQkN2dwxfwYZwDciH7o8wGSlDDZw0lXIBt0Ly0stYiorIIJGVs5TffaA==",
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@angular/core/-/core-5.2.7.tgz",
+ "integrity": "sha512-DQuL6n7cjBfZmWX5RCV271g6PW9N8b93g2skWnM/zjm+BL9tfHPgvmsjMNB7QEHSxW8VBaaQ6gjj422O01A87g==",
"requires": {
"tslib": "1.9.0"
}
},
"@angular/forms": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-5.2.1.tgz",
- "integrity": "sha512-DeTpReZcK93FBxTdXqtmuzuW5blMu4fWe7JtmDXWD9UhTw7DwRbPO+7yFRbbfSDd3UzfGfqYBqOlSOdPh9dLbg==",
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-5.2.7.tgz",
+ "integrity": "sha512-43oLKdzMjMV/hOLpSTg8aOggcx+veTnPp/JN+KzMGo2qtbim5nk3fnuscWDeDOdkh8hPRPGarKxeFNEE9ZZSTg==",
"requires": {
"tslib": "1.9.0"
}
},
"@angular/http": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/@angular/http/-/http-5.2.1.tgz",
- "integrity": "sha512-wMX7rnZcanYT2uVeqr1V9k9lduxZprVjvgetUlj6IuO7kbr22SAJN7phuubI0uAd7MUb7uDXBG8cJ00Q/NH6zw==",
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@angular/http/-/http-5.2.7.tgz",
+ "integrity": "sha512-048+tCbsNYc9xVvIn5/sOvO4fXVkbB5b1IRYRGiRYXpTz6+JWIm5AwOqZIOeVDgqgZHFf96QllXDcFbdNVDgSA==",
"requires": {
"tslib": "1.9.0"
}
@@ -187,25 +187,35 @@
"dev": true
},
"@angular/platform-browser": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-5.2.1.tgz",
- "integrity": "sha512-+cE7FM6/WIMZWpxf+LxYhfTPBbxSvLNZv5+RnGcOeg4nEG3x0Ny1dr14r5HyudvKfu/A+xTlVCNY7RjZ6HsWVw==",
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-5.2.7.tgz",
+ "integrity": "sha512-SdLx4F6tOy4/s3y1KZ/Z3YA6fiIrydaO2bry2FJglDxJh24p6TZIob+zC16N2MTuFW819KY5OlacNhc8aj6Yag==",
"requires": {
"tslib": "1.9.0"
}
},
"@angular/platform-browser-dynamic": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.2.1.tgz",
- "integrity": "sha512-S73suoYfGIj7eQlOBXvj3BO8mW8TUUZEUZ/nvFgB/jsb6PtYk1ByIVIWjcV5yttd4TXf7ZhaEYZPm1vBjIN0pA==",
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.2.7.tgz",
+ "integrity": "sha512-95Rwf1JcGF/BI48k+VG2moLTVC863jPSjmHaGkz7cA9bi/QrRFGvFghl1qIm4Ezp3dj8CH8TE3TWB+1AmAg3AQ==",
"requires": {
"tslib": "1.9.0"
}
},
+ "@angular/platform-server": {
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-5.2.7.tgz",
+ "integrity": "sha512-5+pj+YYfJ7ZGVEtP2oTVqWErObWRVeY32AxVIs3pE3WuqKPjwnKzd+HY+YeD8D+LDJZ5DdphtYBp26NFrnw0xA==",
+ "requires": {
+ "domino": "1.0.30",
+ "tslib": "1.9.0",
+ "xhr2": "0.1.4"
+ }
+ },
"@angular/router": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/@angular/router/-/router-5.2.1.tgz",
- "integrity": "sha512-NS8ttrfpjETfIt8Wn4oCP5KQ55UKuj6g3iG/yduoDMWel19KOINUYqz5ujL1gHha4A4Tgs1tBZKQKr0LmapTdA==",
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@angular/router/-/router-5.2.7.tgz",
+ "integrity": "sha512-ppl0X7EfEgKYXIEPtdy8cOKj5KXuwCQ5Ila+IuGnSjKIRXt/olhBLJMprVl1VJgoxXj7z2i14U7kKaqSvGtpXw==",
"requires": {
"tslib": "1.9.0"
}
@@ -743,8 +753,7 @@
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
"integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
- "dev": true,
- "optional": true
+ "dev": true
},
"async-limiter": {
"version": "1.0.0",
@@ -877,7 +886,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.5.3",
+ "core-js": "2.4.1",
"regenerator-runtime": "0.11.1"
}
},
@@ -1074,7 +1083,6 @@
"resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
"dev": true,
- "optional": true,
"requires": {
"inherits": "2.0.3"
}
@@ -2232,9 +2240,9 @@
}
},
"core-js": {
- "version": "2.5.3",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz",
- "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4="
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz",
+ "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4="
},
"core-object": {
"version": "3.1.5",
@@ -2315,7 +2323,6 @@
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
"integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
"dev": true,
- "optional": true,
"requires": {
"lru-cache": "4.1.1",
"which": "1.3.0"
@@ -3014,6 +3021,11 @@
"domelementtype": "1.3.0"
}
},
+ "domino": {
+ "version": "1.0.30",
+ "resolved": "https://registry.npmjs.org/domino/-/domino-1.0.30.tgz",
+ "integrity": "sha512-ikq8WiDSkICdkElud317F2Sigc6A3EDpWsxWBwIZqOl95km4p/Vc9Rj98id7qKgsjDmExj0AVM7JOd4bb647Xg=="
+ },
"domutils": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
@@ -3780,6 +3792,11 @@
"debug": "2.6.9"
}
},
+ "font-awesome": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz",
+ "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM="
+ },
"for-in": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
@@ -4870,7 +4887,6 @@
"resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz",
"integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=",
"dev": true,
- "optional": true,
"requires": {
"globule": "1.2.0"
}
@@ -4879,15 +4895,13 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
"integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
- "dev": true,
- "optional": true
+ "dev": true
},
"generate-object-property": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
"integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
"dev": true,
- "optional": true,
"requires": {
"is-property": "1.0.2"
}
@@ -5006,7 +5020,6 @@
"resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz",
"integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=",
"dev": true,
- "optional": true,
"requires": {
"glob": "7.1.2",
"lodash": "4.17.4",
@@ -5647,8 +5660,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
"integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
- "dev": true,
- "optional": true
+ "dev": true
},
"indent-string": {
"version": "2.1.0",
@@ -5990,7 +6002,6 @@
"resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz",
"integrity": "sha512-Q2khNw+oBlWuaYvEEHtKSw/pCxD2L5Rc1C+UQme9X6JdRDh7m5D7HkozA0qa3DUkQ6VzCnEm8mVIQPyIRkI5sQ==",
"dev": true,
- "optional": true,
"requires": {
"generate-function": "2.0.0",
"generate-object-property": "1.2.0",
@@ -6090,8 +6101,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
"integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
- "dev": true,
- "optional": true
+ "dev": true
},
"is-regex": {
"version": "1.0.4",
@@ -6342,6 +6352,14 @@
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz",
"integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg=="
},
+ "jquery-slimscroll": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/jquery-slimscroll/-/jquery-slimscroll-1.3.8.tgz",
+ "integrity": "sha1-hIHETnpHaHZTkIoo9/cK7WTITjY=",
+ "requires": {
+ "jquery": "3.3.1"
+ }
+ },
"js-base64": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.2.tgz",
@@ -6447,8 +6465,7 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
"integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
- "dev": true,
- "optional": true
+ "dev": true
},
"jsprim": {
"version": "1.4.1",
@@ -6483,7 +6500,7 @@
"colors": "1.1.2",
"combine-lists": "1.0.1",
"connect": "3.6.5",
- "core-js": "2.5.3",
+ "core-js": "2.4.1",
"di": "0.0.1",
"dom-serialize": "2.2.1",
"expand-braces": "0.1.2",
@@ -6775,8 +6792,7 @@
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
"integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
- "dev": true,
- "optional": true
+ "dev": true
},
"lodash.camelcase": {
"version": "4.3.0",
@@ -6800,8 +6816,7 @@
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz",
"integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=",
- "dev": true,
- "optional": true
+ "dev": true
},
"lodash.tail": {
"version": "4.1.1",
@@ -7475,8 +7490,7 @@
"version": "2.8.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz",
"integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=",
- "dev": true,
- "optional": true
+ "dev": true
},
"nanomatch": {
"version": "1.2.7",
@@ -7553,6 +7567,11 @@
"resolved": "https://registry.npmjs.org/ng2-file-upload/-/ng2-file-upload-1.3.0.tgz",
"integrity": "sha512-Pudxik6LWYsT8hNiEW7RfjgGWAnvfQywxwJYMdt1snTUe+KnlRc/QqPv3QEQW6plXTanuLkYz/TbqilSfSHOsw=="
},
+ "ngx-progressbar": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ngx-progressbar/-/ngx-progressbar-2.1.1.tgz",
+ "integrity": "sha512-RyfW1Dhp9G+QZRhp0SsVZJOxvfXHq335aea9rAwVOORSzch6NFBuE+XYx3etlEh2avOYfigyWUX8vAlEXrHXKQ=="
+ },
"no-case": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
@@ -7573,7 +7592,6 @@
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz",
"integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=",
"dev": true,
- "optional": true,
"requires": {
"fstream": "1.0.11",
"glob": "7.1.2",
@@ -7595,7 +7613,6 @@
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
"dev": true,
- "optional": true,
"requires": {
"abbrev": "1.1.1"
}
@@ -7604,8 +7621,7 @@
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
"integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
- "dev": true,
- "optional": true
+ "dev": true
}
}
},
@@ -7651,7 +7667,6 @@
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.7.2.tgz",
"integrity": "sha512-CaV+wLqZ7//Jdom5aUFCpGNoECd7BbNhjuwdsX/LkXBrHl8eb1Wjw4HvWqcFvhr5KuNgAk8i/myf/MQ1YYeroA==",
"dev": true,
- "optional": true,
"requires": {
"async-foreach": "0.1.3",
"chalk": "1.1.3",
@@ -7684,8 +7699,7 @@
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
"integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
- "dev": true,
- "optional": true
+ "dev": true
},
"chalk": {
"version": "1.1.3",
@@ -7705,7 +7719,6 @@
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
"integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
"dev": true,
- "optional": true,
"requires": {
"chalk": "1.1.3",
"commander": "2.12.2",
@@ -7717,15 +7730,13 @@
"version": "6.3.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz",
"integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=",
- "dev": true,
- "optional": true
+ "dev": true
},
"request": {
"version": "2.79.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
"integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
"dev": true,
- "optional": true,
"requires": {
"aws-sign2": "0.6.0",
"aws4": "1.6.0",
@@ -7759,8 +7770,7 @@
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
"integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
- "dev": true,
- "optional": true
+ "dev": true
}
}
},
@@ -11278,7 +11288,6 @@
"resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
"integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
"dev": true,
- "optional": true,
"requires": {
"glob": "7.1.2",
"lodash": "4.17.4",
@@ -11328,7 +11337,6 @@
"resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
"integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
"dev": true,
- "optional": true,
"requires": {
"js-base64": "2.4.2",
"source-map": "0.4.4"
@@ -11339,7 +11347,6 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
"integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
"dev": true,
- "optional": true,
"requires": {
"amdefine": "1.0.1"
}
@@ -12159,7 +12166,6 @@
"resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz",
"integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=",
"dev": true,
- "optional": true,
"requires": {
"readable-stream": "2.3.3"
}
@@ -12456,7 +12462,6 @@
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
"dev": true,
- "optional": true,
"requires": {
"block-stream": "0.0.9",
"fstream": "1.0.11",
@@ -12688,7 +12693,6 @@
"resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz",
"integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=",
"dev": true,
- "optional": true,
"requires": {
"glob": "6.0.4"
},
@@ -12698,7 +12702,6 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
"integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
"dev": true,
- "optional": true,
"requires": {
"inflight": "1.0.6",
"inherits": "2.0.3",
@@ -12782,15 +12785,15 @@
}
},
"tsickle": {
- "version": "0.26.0",
- "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.26.0.tgz",
- "integrity": "sha512-eWJ2CUfttGK0LqF9iJ/Avnxbj4M+fCyJ50Zag3wm73Fut1hsasPRHKxKdrMWVj4BMHnQNx7TO+DdNmLmJTSuNw==",
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.27.2.tgz",
+ "integrity": "sha512-KW+ZgY0t2cq2Qib1sfdgMiRnk+cr3brUtzZoVWjv+Ot3jNxVorFBUH+6In6hl8Dg7BI2AAFf69NHkwvZNMSFwA==",
"dev": true,
"requires": {
"minimist": "1.2.0",
"mkdirp": "0.5.1",
- "source-map": "0.5.7",
- "source-map-support": "0.4.18"
+ "source-map": "0.6.1",
+ "source-map-support": "0.5.3"
},
"dependencies": {
"minimist": {
@@ -12798,6 +12801,21 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "source-map-support": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz",
+ "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==",
+ "dev": true,
+ "requires": {
+ "source-map": "0.6.1"
+ }
}
}
},
@@ -12903,9 +12921,9 @@
"dev": true
},
"typescript": {
- "version": "2.5.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.5.3.tgz",
- "integrity": "sha512-ptLSQs2S4QuS6/OD1eAKG+S5G8QQtrU5RT32JULdZQtM1L3WTi34Wsu48Yndzi8xsObRAB9RPt/KhA9wlpEF6w==",
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz",
+ "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==",
"dev": true
},
"uglify-js": {
@@ -14312,6 +14330,11 @@
"ultron": "1.1.1"
}
},
+ "xhr2": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz",
+ "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8="
+ },
"xml-char-classes": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz",
@@ -14379,7 +14402,6 @@
"resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
"integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
"dev": true,
- "optional": true,
"requires": {
"camelcase": "3.0.0",
"cliui": "3.2.0",
@@ -14400,8 +14422,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
"integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
- "dev": true,
- "optional": true
+ "dev": true
}
}
},
@@ -14410,7 +14431,6 @@
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
"integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
"dev": true,
- "optional": true,
"requires": {
"camelcase": "3.0.0"
},
@@ -14419,8 +14439,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
"integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
- "dev": true,
- "optional": true
+ "dev": true
}
}
},
@@ -14437,9 +14456,9 @@
"dev": true
},
"zone.js": {
- "version": "0.8.20",
- "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.20.tgz",
- "integrity": "sha512-FXlA37ErSXCMy5RNBcGFgCI/Zivqzr0D19GuvDxhcYIJc7xkFp6c29DKyODJu0Zo+EMyur/WPPgcBh1EHjB9jA=="
+ "version": "0.8.19",
+ "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.19.tgz",
+ "integrity": "sha512-l9rofaOs6a4y1W8zt4pDmnCUCnYG377dG+5SZlXNWrTWYUuXFqcJZiOarhYiRVR0NI9sH/8ooPJiz4uprB/Mkg=="
}
}
}
diff --git a/codecamp-front/package.json b/codecamp-front/package.json
index 3f3cf30..57691b8 100644
--- a/codecamp-front/package.json
+++ b/codecamp-front/package.json
@@ -12,30 +12,34 @@
},
"private": true,
"dependencies": {
- "@angular/animations": "^5.2.0",
- "@angular/common": "^5.2.0",
- "@angular/compiler": "^5.2.0",
- "@angular/core": "^5.2.0",
- "@angular/forms": "^5.2.0",
- "@angular/http": "^5.2.0",
- "@angular/platform-browser": "^5.2.0",
- "@angular/platform-browser-dynamic": "^5.2.0",
- "@angular/router": "^5.2.0",
- "@types/jquery": "^3.3.0",
- "angular2-flash-messages": "^2.0.5",
- "angular2-jwt": "^0.2.3",
- "bootstrap": "^4.0.0-beta.2",
- "core-js": "^2.4.1",
- "jquery": "^3.3.1",
- "ng2-ace-editor": "^0.3.4",
- "ng2-file-upload": "^1.3.0",
- "popper.js": "^1.12.9",
- "rxjs": "^5.5.6",
- "zone.js": "^0.8.19"
+ "@angular/animations": "5.2.7",
+ "@angular/common": "5.2.7",
+ "@angular/compiler": "5.2.7",
+ "@angular/core": "5.2.7",
+ "@angular/forms": "5.2.7",
+ "@angular/http": "5.2.7",
+ "@angular/platform-browser": "5.2.7",
+ "@angular/platform-browser-dynamic": "5.2.7",
+ "@angular/platform-server": "5.2.7",
+ "@angular/router": "5.2.7",
+ "@types/jquery": "3.3.0",
+ "angular2-flash-messages": "2.0.5",
+ "angular2-jwt": "0.2.3",
+ "bootstrap": "4.0.0-beta.2",
+ "core-js": "2.4.1",
+ "font-awesome": "4.7.0",
+ "jquery": "3.3.1",
+ "jquery-slimscroll": "1.3.8",
+ "ng2-ace-editor": "0.3.4",
+ "ng2-file-upload": "1.3.0",
+ "ngx-progressbar": "2.1.1",
+ "popper.js": "1.12.9",
+ "rxjs": "5.5.6",
+ "zone.js": "0.8.19"
},
"devDependencies": {
"@angular/cli": "1.6.5",
- "@angular/compiler-cli": "^5.2.0",
+ "@angular/compiler-cli": "^5.2.7",
"@angular/language-service": "^5.2.0",
"@types/jasmine": "~2.8.3",
"@types/jasminewd2": "~2.0.2",
@@ -49,9 +53,10 @@
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
+ "node-sass": "^4.7.2",
"protractor": "~5.1.2",
"ts-node": "~4.1.0",
"tslint": "~5.9.1",
- "typescript": "~2.5.3"
+ "typescript": "^2.7.2"
}
}
diff --git a/codecamp-front/src/app/app-routing.module.ts b/codecamp-front/src/app/app-routing.module.ts
index 7ea9b59..8af44b7 100644
--- a/codecamp-front/src/app/app-routing.module.ts
+++ b/codecamp-front/src/app/app-routing.module.ts
@@ -23,6 +23,7 @@ import { AuthGuard } from './guards/auth.guard';
import { NotAuthGuard } from './guards/not-auth.guard';
import { SolultionSubmitComponent } from './components/solultion-submit/solultion-submit.component';
import { SolutionComponent } from './components/solultion-submit/solution/solution.component';
+import { RanklistComponent } from './components/ranklist/ranklist.component';
const appRoutes: Routes = [
@@ -69,7 +70,8 @@ const appRoutes: Routes = [
},
{
path: 'submit/complete',
- component: SolutionComponent
+ component: SolutionComponent,
+ canActivate: [AuthGuard]
},
{
path: 'contest/add-contest',
@@ -89,6 +91,10 @@ const appRoutes: Routes = [
path: 'contest/:contest/:problem',
component: ProblemComponent
},
+ {
+ path: 'contest/:contest/ranklist',
+ component: RanklistComponent
+ },
{
path: 'contest/edit/:edit-contest',
component: EditContestComponent,
diff --git a/codecamp-front/src/app/app.component.css b/codecamp-front/src/app/app.component.css
index e69de29..2c4d3cd 100644
--- a/codecamp-front/src/app/app.component.css
+++ b/codecamp-front/src/app/app.component.css
@@ -0,0 +1,11 @@
+.container-fluid{
+ padding: 0;
+ overflow: hidden;
+}
+
+@media only screen and (max-width:896px){
+ .wrapper{
+ margin: 0;
+ }
+}
+
diff --git a/codecamp-front/src/app/app.component.html b/codecamp-front/src/app/app.component.html
index 6659729..c5c3019 100644
--- a/codecamp-front/src/app/app.component.html
+++ b/codecamp-front/src/app/app.component.html
@@ -1,2 +1,16 @@
+