diff --git a/package-lock.json b/package-lock.json index d6f1a578cad4cae9ae63b44019aa23432c207f74..fe299f152d37be38e2bac5f1f44c53315c777b38 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,6 +27,7 @@ "@stomp/ng2-stompjs": "^7.2.0", "angular-tag-cloud-module": "^5.3.0", "angularx-qrcode": "^11.0.0", + "badwords-list": "^1.0.0", "chart.js": "^2.9.4", "core-js": "^2.5.7", "get-stream": "^6.0.1", @@ -34,8 +35,9 @@ "is-promise": "^4.0.0", "mat-color-picker": "^1.4.3", "material-design-icons": "^3.0.1", + "naughty-words": "^1.2.0", "ngx-color-picker": "^11.0.0", - "ngx-markdown": "^9.0.0", + "ngx-markdown": "^11.1.3", "ngx-matomo": "^0.1.4", "ngx-matomo-v9": "^0.3.0", "rxjs": "^6.5.4", @@ -2584,9 +2586,9 @@ "dev": true }, "node_modules/@types/marked": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.7.2.tgz", - "integrity": "sha512-A3EDyNaq6OCcpaOia2HQ/tu2QYt8DKuj4ExP21VU3cU3HTo2FLslvbqa2T1vux910RHvuSVqpwKnnykSFcRWOA==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-2.0.2.tgz", + "integrity": "sha512-P4zanhCQKs4tiWPPBGpB7lHflgFCP9DFGNI5YtpW9MALKoy2qs9rHNWJ+z55cegD9uCfnmsKuaosq9FNvbxrOw==" }, "node_modules/@types/minimatch": { "version": "3.0.4", @@ -3800,6 +3802,11 @@ "object.assign": "^4.1.0" } }, + "node_modules/badwords-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/badwords-list/-/badwords-list-1.0.0.tgz", + "integrity": "sha1-XphW2/E0gqKVw7CzBK+51M/FxXk=" + }, "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -4862,7 +4869,8 @@ "node_modules/commander": { "version": "2.20.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "dev": true }, "node_modules/comment-parser": { "version": "1.1.5", @@ -6171,6 +6179,11 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "node_modules/emoji-toolkit": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/emoji-toolkit/-/emoji-toolkit-6.5.1.tgz", + "integrity": "sha512-oY5E81cXvRUxXkbVgOI8NxYHKF5FeWfJhFCIYUKhbVfSmdCH8+bmJzgDdhufExa7t1+WEzpUFdHwYxJTXS90vQ==" + }, "node_modules/emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", @@ -10018,16 +10031,24 @@ } }, "node_modules/katex": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.11.1.tgz", - "integrity": "sha512-5oANDICCTX0NqYIyAiFCCwjQ7ERu3DQG2JFHLbYOf+fXaMoH8eg/zOq5WSYJsKMi/QebW+Eh3gSM+oss1H/bww==", + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.13.11.tgz", + "integrity": "sha512-yJBHVIgwlAaapzlbvTpVF/ZOs8UkTj/sd46Fl8+qAf2/UiituPYVeapVD8ADZtqyRg/qNWUKt7gJoyYVWLrcXw==", "dependencies": { - "commander": "^2.19.0" + "commander": "^6.0.0" }, "bin": { "katex": "cli.js" } }, + "node_modules/katex/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "engines": { + "node": ">= 6" + } + }, "node_modules/killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", @@ -10535,9 +10556,9 @@ } }, "node_modules/marked": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.0.tgz", - "integrity": "sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.3.tgz", + "integrity": "sha512-5otztIIcJfPc2qGTN8cVtOJEjNJZ0jwa46INMagrYfk0EvqtRuEHLsEe0LrFS0/q+ZRKT0+kXK7P2T1AN5lWRA==", "bin": { "marked": "bin/marked" }, @@ -11177,6 +11198,11 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "node_modules/naughty-words": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/naughty-words/-/naughty-words-1.2.0.tgz", + "integrity": "sha512-0iadX6fN+3NsfvIRtWmmpEX9VsoIQ6n9FwyIxmew9w5yzFNqMgs/Ky0eAC/z5xXSHtqlVoByiovdROikwH9SXQ==" + }, "node_modules/needle": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz", @@ -11242,14 +11268,23 @@ } }, "node_modules/ngx-markdown": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/ngx-markdown/-/ngx-markdown-9.0.0.tgz", - "integrity": "sha512-wcXMxA4Skgk9SzhfDRjihap/Kjq17jmMQiE/Ccp0bNibGaDgS5DbZiPBlMNLkp669UvjY9wVuxE4NuDtmQHS9w==", + "version": "11.1.3", + "resolved": "https://registry.npmjs.org/ngx-markdown/-/ngx-markdown-11.1.3.tgz", + "integrity": "sha512-z32q8l76ubrcP62L03mdvrizwueLBHV10LkT8MEDnFcjmY+8J1PytxFJ9EBTJpvc+CaPolgAoi7felN2XJZTSg==", "dependencies": { - "@types/marked": "^0.7.2", - "katex": "^0.11.0", - "marked": "^0.8.0", - "prismjs": "^1.16.0" + "@types/marked": "^2.0.0", + "emoji-toolkit": "^6.0.1", + "katex": "^0.13.0", + "marked": "^2.0.0", + "prismjs": "^1.23.0", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": "^11.0.0", + "@angular/core": "^11.0.0", + "@angular/platform-browser": "^11.0.0", + "rxjs": "^6.6.0", + "zone.js": "^0.10.2 || ^0.11.3" } }, "node_modules/ngx-matomo": { @@ -23438,9 +23473,9 @@ "dev": true }, "clipboard": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.8.tgz", - "integrity": "sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.4.tgz", + "integrity": "sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ==", "optional": true, "requires": { "good-listener": "^1.2.2", diff --git a/src/app/components/shared/header/header.component.html b/src/app/components/shared/header/header.component.html index 6184ca014676f48aed356782fb14c9ad409a02e3..11f0ef435ef23c65af39373dbae244724787eb71 100644 --- a/src/app/components/shared/header/header.component.html +++ b/src/app/components/shared/header/header.component.html @@ -18,7 +18,7 @@ <ng-container *ngIf="room && room.closed"> - <h1>{{'header.questions-blocked'|translate}}</h1> + <mat-icon>block</mat-icon><h1>{{'header.questions-blocked'|translate}}</h1> </ng-container> <ars-style-btn-material @@ -348,7 +348,7 @@ <span>{{'header.delete-account' | translate}}</span> </button> - <ng-container *ngIf="shortId && user && user.role > 0"> + <ng-container *ngIf="shortId && user && user.role > 0 && !router.url.includes('/participant')"> <button mat-menu-item (click)="blockQuestions()" [ngClass]="{'color-warn': room.closed}" diff --git a/src/app/components/shared/header/header.component.scss b/src/app/components/shared/header/header.component.scss index c36df0f777a8529ab3e3e983094459b11295425b..a6e4125f8ccaefefcaa5a7f435a7632a5452948b 100644 --- a/src/app/components/shared/header/header.component.scss +++ b/src/app/components/shared/header/header.component.scss @@ -120,4 +120,4 @@ svg { } h1{ color: red; -} \ No newline at end of file +} diff --git a/src/app/components/shared/questionwall/question-wall/question-wall.component.html b/src/app/components/shared/questionwall/question-wall/question-wall.component.html index e4bfc4f2e959fb31d928027c15fa373ef57a6281..baf41d2806b86563bd2b74f3e7f757f58b5cc305 100644 --- a/src/app/components/shared/questionwall/question-wall/question-wall.component.html +++ b/src/app/components/shared/questionwall/question-wall/question-wall.component.html @@ -6,6 +6,10 @@ <button ars-btn (click)="leave()" matRipple aria-labelledby="back-lbl"><i>arrow_back</i></button> </ars-col> </ars-fill> + <ng-container *ngIf="room && room.closed"> + <mat-icon>block</mat-icon> + <h2>{{'question-wall.questions-blocked'|translate}}</h2> + </ng-container> <ars-col> <!-- centered col --> </ars-col> diff --git a/src/app/components/shared/questionwall/question-wall/question-wall.component.scss b/src/app/components/shared/questionwall/question-wall/question-wall.component.scss index df024156e568c7d7ce0bf2726e503f730ddb5f0c..4379b12598a8474c22d0e34544323e98a731509e 100644 --- a/src/app/components/shared/questionwall/question-wall/question-wall.component.scss +++ b/src/app/components/shared/questionwall/question-wall/question-wall.component.scss @@ -302,3 +302,6 @@ .selection:focus{ background-color: black !important; } +h2{ + color: red; +} diff --git a/src/assets/i18n/participant/de.json b/src/assets/i18n/participant/de.json index f82fa30c7e299e1c96e95d9223eef07e1871b3ae..91ec776c5a09f4b3c731a7df6cf53ad951b322a2 100644 --- a/src/assets/i18n/participant/de.json +++ b/src/assets/i18n/participant/de.json @@ -222,7 +222,8 @@ "prev-comment-lbl": "Vorherige Frage", "next-comment-lbl": "Nächste Frage", "overview-question-tooltip": "Anzahl gestellter Fragen", - "overview-questioners-tooltip": "Anzahl Fragensteller*innen" + "overview-questioners-tooltip": "Anzahl Fragensteller*innen", + "questions-blocked": "Fragen sind deaktiviert!" }, "tag-cloud": { "config": "Wolkenansicht ändern", diff --git a/src/assets/i18n/participant/en.json b/src/assets/i18n/participant/en.json index 66531c05ea3c932889bfea80c4e918f52f642229..3945272ecbfe33e5f2e487b5c4eefe473d4e3f31 100644 --- a/src/assets/i18n/participant/en.json +++ b/src/assets/i18n/participant/en.json @@ -227,7 +227,8 @@ "prev-comment-lbl": "Previous question", "next-comment-lbl": "Next question", "overview-question-tooltip": "Number of questions", - "overview-questioners-tooltip": "Number of questioners" + "overview-questioners-tooltip": "Number of questioners", + "questions-blocked": "No further questions!" }, "tag-cloud": { "config": "Modify cloud view",