Skip to content

Commit d8a6791

Browse files
authored
Merge pull request #2393 from intersective/prerelease
Release 2.4.3.2
2 parents 5b11a78 + ac2ce46 commit d8a6791

34 files changed

Lines changed: 277 additions & 148 deletions

.editorconfig

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
# https://editorconfig.org
2-
1+
# Root EditorConfig file
32
root = true
43

54
[*]
@@ -10,6 +9,30 @@ end_of_line = lf
109
insert_final_newline = true
1110
trim_trailing_whitespace = true
1211

12+
# TypeScript & JavaScript
13+
[*.ts,*.js]
14+
quote_type = single
15+
16+
# JSON (e.g., package.json, tsconfig.json)
17+
[*.json]
18+
quote_type = double
19+
indent_size = 2
20+
21+
# YAML files (e.g., CI/CD, Firebase configs)
22+
[*.yml,*.yaml]
23+
indent_size = 2
24+
25+
# HTML, CSS, SCSS files
26+
[*.html,*.css,*.scss]
27+
indent_size = 2
28+
29+
# Markdown (e.g., README.md)
1330
[*.md]
31+
max_line_length = off
1432
insert_final_newline = false
1533
trim_trailing_whitespace = false
34+
35+
# Prettier & ESLint config files
36+
[*.prettierrc,*.eslintrc,*.editorconfig]
37+
indent_size = 2
38+
quote_type = double

projects/v3/src/app/components/activity/activity.component.html

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,9 @@
33
[appBackgroundImage]="leadImage"
44
aria-live="polite"
55
aria-labelledby="activity-name">
6-
<h1 id="activity-name" *ngIf="activity.name" class="headline-2 activity-info">
7-
{{ activity.name }}
8-
</h1>
6+
<h1 id="activity-name" *ngIf="activity.name" class="headline-2 activity-info" [innerHtml]="activity.name"></h1>
97
<ion-skeleton-text *ngIf="!activity.name" animated style="width: 50%;" aria-hidden="true"></ion-skeleton-text>
10-
118
<ion-skeleton-text *ngIf="!activity.tasks" animated style="width: 30px;" aria-hidden="true"></ion-skeleton-text>
12-
139
<div class="overlay"></div>
1410
</div>
1511

@@ -66,5 +62,3 @@ <h1 id="activity-name" *ngIf="activity.name" class="headline-2 activity-info">
6662
<ion-skeleton-text animated style="width: 90%"></ion-skeleton-text>
6763
</div>
6864
</ng-template>
69-
70-

projects/v3/src/app/components/assessment/assessment.component.html

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
12
<div *ngIf="!assessment" class="ion-padding-horizontal">
23
<ion-skeleton-text animated style="width: 50%;"></ion-skeleton-text>
3-
<ion-skeleton-text animated ></ion-skeleton-text>
4-
<ion-skeleton-text animated ></ion-skeleton-text>
4+
<ion-skeleton-text animated></ion-skeleton-text>
5+
<ion-skeleton-text animated></ion-skeleton-text>
56
</div>
67

78
<!-- Manual Save -->
@@ -19,7 +20,7 @@
1920
<ion-grid class="ion-padding-horizontal">
2021
<ion-row size="12" class="ion-justify-content-center ion-align-items-center">
2122
<ion-col size="6" class="ion-align-self-center" i18n>Expert</ion-col>
22-
<ion-col size="6" class="ion-align-self-center">{{ submission.reviewerName }}</ion-col>
23+
<ion-col size="6" class="ion-align-self-center" [innerHTML]="submission.reviewerName"></ion-col>
2324
</ion-row>
2425
</ion-grid>
2526
</ion-item>
@@ -38,7 +39,8 @@
3839
<ion-grid class="ion-padding-horizontal">
3940
<ion-row size="12" class="ion-justify-content-center ion-align-items-center">
4041
<ion-col size="6" class="ion-align-self-center" i18n>Learner</ion-col>
41-
<ion-col size="6" class="ion-align-self-center">{{ submission.submitterName }}</ion-col>
42+
<ion-col size="6" class="ion-align-self-center"
43+
[innerHTML]="submission.submitterName"></ion-col>
4244
</ion-row>
4345
</ion-grid>
4446
</ion-item>
@@ -47,7 +49,8 @@
4749
<ion-grid class="ion-padding-horizontal">
4850
<ion-row size="12" class="ion-justify-content-center ion-align-items-center">
4951
<ion-col size="6" class="ion-align-self-center" i18n>Team</ion-col>
50-
<ion-col size="6" class="ion-align-self-center">{{ review.teamName }}</ion-col>
52+
<ion-col size="6" class="ion-align-self-center"
53+
[innerHTML]="review.teamName"></ion-col>
5154
</ion-row>
5255
</ion-grid>
5356
</ion-item>
@@ -61,10 +64,13 @@
6164
<div [ngClass]="{'ion-padding-horizontal padding-top': isMobile}">
6265
<div class="headline-2 assessment-title"
6366
[attr.aria-describedby]="randomCode(assessment.name)"
64-
role="heading" aria-level="2">{{ assessment.name }}</div>
67+
role="heading"
68+
aria-level="2"
69+
[innerHTML]="assessment.name"
70+
></div>
6571

6672
<ion-chip [class]="'label body-3 '+ labelColor" *ngIf="label">
67-
<ion-label>{{ label }}</ion-label>
73+
<ion-label [innerHTML]="label"></ion-label>
6874
</ion-chip>
6975

7076
<p class="assessment subtitle-1 due-date" *ngIf="assessment.dueDate" style="margin: 10px 0;">
@@ -87,7 +93,7 @@
8793
</ion-avatar>
8894

8995
<ion-label>
90-
<p class="subtitle-1" i18n="indicator of a team member is working on the same assessment">Locked by {{ submission.submitterName }}</p>
96+
<p class="subtitle-1" i18n="indicator of a team member is working on the same assessment">Locked by <span [innerHTML]="submission.submitterName"></span></p>
9197
<p class="caption gray-2" i18n>Please wait until the user finishes editing</p>
9298
</ion-label>
9399
</ion-item>
@@ -97,7 +103,7 @@
97103
<form [formGroup]="questionsForm" id="formgroup" #form>
98104
<ng-container *ngFor="let group of assessment.groups">
99105
<div [ngClass]="{'ion-padding': isMobile, 'ion-padding-top': !isMobile}">
100-
<h3 [attr.aria-describedby]="randomCode(group.name)">{{ group.name }}</h3>
106+
<h3 [attr.aria-describedby]="randomCode(group.name)" [innerHTML]="group.name"></h3>
101107
<ion-text color="dark" class="ion-text-left">
102108
<div
103109
*ngIf="group.description"
@@ -115,7 +121,7 @@ <h3 [attr.aria-describedby]="randomCode(group.name)">{{ group.name }}</h3>
115121
[attr.aria-label]="question.name"
116122
[attr.aria-describedby]="randomCode('reviewer-' + question.name)">
117123
<ion-label class="ion-margin-vertical">
118-
{{ question.name }}
124+
<span [innerHTML]="question.name"></span>
119125
<span class="required-mark"
120126
[ngClass]="{'contrast': isRedColor}"
121127
*ngIf="question.isRequired"

projects/v3/src/app/components/description/description.component.html

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66
</ng-container>
77
<ng-template #animated>
88
<div id="{{name}}" #description [innerHtml]="content"
9-
[ngClass]="{
10-
'limit-height': isTruncating && !isInPopup,
11-
'limit-height-popup': isTruncating && isInPopup,
12-
'full-height-animated': !isTruncating && !isInPopup,
13-
'full-height-popup': !isTruncating && isInPopup
14-
}"
15-
style="overflow-wrap: anywhere;">
16-
</div>
17-
</ng-template>
9+
[ngClass]="{
10+
'limit-height': isTruncating && !isInPopup,
11+
'limit-height-popup': isTruncating && isInPopup,
12+
'full-height-animated': !isTruncating && !isInPopup,
13+
'full-height-popup': !isTruncating && isInPopup
14+
}"
15+
style="overflow-wrap: anywhere;">
16+
</div>
17+
</ng-template>
1818
</div>
1919

2020
<ng-container *ngIf="isTruncating && heightExceeded">

projects/v3/src/app/components/fast-feedback/fast-feedback.component.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
[ngClass]="{'ion-padding-horizontal': !isMobile }"
2121
[formGroup]="fastFeedbackForm">
2222
<ion-list-header class="question-title">
23-
{{ question.name }}
23+
<span [innerHTML]="question.name"></span>
2424
<ion-text class="required-mark" [ngClass]="{'contrast': isRedColor}" *ngIf="question.isRequired">*</ion-text>
2525
<ion-text>
26-
<p><i>{{ question.description }}</i></p>
26+
<p><i [innerHTML]="question.description"></i></p>
2727
</ion-text>
2828
</ion-list-header>
2929

@@ -32,7 +32,7 @@
3232
*ngFor="let choice of question.choices"
3333
lines="none"
3434
>
35-
<ion-label class="white-space-normal">{{ choice.name }}</ion-label>
35+
<ion-label class="white-space-normal" [innerHTML]="choice.name"></ion-label>
3636
<ion-radio [value]="choice.id" slot="start" mode="md"></ion-radio>
3737
</ion-item>
3838
</ion-radio-group>

projects/v3/src/app/components/fast-feedback/fast-feedback.component.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,18 @@ export class FastFeedbackComponent implements OnInit {
7474
targetUserId: null,
7575
};
7676

77-
// if team_id exist, pass team_id
78-
if (this.meta?.team_id) {
79-
params.teamId = this.meta?.team_id;
80-
} else if (this.meta?.target_user_id) {
81-
// otherwise, pass target_user_id
82-
params.targetUserId = this.meta?.target_user_id;
77+
78+
// for temporary, "closable = true" is an indicator of this pulsecheck is opened from the traffic light group (self-assessment)
79+
if (this.closable === true) {
80+
params.teamId = this.storage.getUser().teamId;
81+
} else {
82+
// if team_id exist, pass team_id
83+
if (this.meta?.team_id) {
84+
params.teamId = this.meta?.team_id;
85+
} else if (this.meta?.target_user_id) {
86+
// otherwise, pass target_user_id
87+
params.targetUserId = this.meta?.target_user_id;
88+
}
8389
}
8490

8591
let submissionResult;

projects/v3/src/app/components/list-item/list-item.component.html

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
<div class="item-content ion-padding-vertical"
3232
[ngClass]="{'event-item': isEventItem, 'content-expired': eventExpired}">
3333
<div *ngIf="isEventItem" style="display: flex; flex-wrap: nowrap; flex-direction: row; align-items: center;">
34-
<div class="'item-title body-2 ion-color-' + titleColor">{{ title }}</div>
34+
<div class="'item-title body-2 ion-color-' + titleColor" [innerHTML]="title"></div>
3535
&nbsp; <!-- this is to add some space between two elements -->
3636
<span style="white-space: nowrap;"
3737
class="item-title subtitle-3"
@@ -42,17 +42,19 @@
4242
<div *ngIf="!isEventItem"
4343
[class]="'body-2 ' + titleColor"
4444
[attr.aria-label]="title"
45-
>{{ title }}</div>
45+
[innerHTML]="title"
46+
></div>
4647

4748
<div *ngIf="subtitle1"
4849
[class]="'item-subtitle-1 subtitle-2 ion-color-' + subtitle1Color"
4950
[innerHTML]="subtitle1"
5051
[attr.aria-label]="subtitle1"
5152
></div>
5253

53-
<div *ngIf="subtitle2" [class]="'item-subtitle-2 caption ion-color-' + subtitle2Color" [attr.aria-label]="subtitle2">
54-
{{ subtitle2 }}
55-
</div>
54+
<div *ngIf="subtitle2" [class]="'item-subtitle-2 caption ion-color-' + subtitle2Color"
55+
[attr.aria-label]="subtitle2"
56+
[innerHTML]="subtitle2"
57+
></div>
5658

5759
<div *ngIf="callToActionBtn"
5860
[class]="'call-to-action ion-color-' + callToActionBtn.color"
@@ -68,7 +70,7 @@
6870

6971
<div *ngIf="label" [attr.aria-label]="label">
7072
<ion-chip [class]="'label ion-no-margin ' + labelColor">
71-
<ion-label class="body-3">{{ label }}</ion-label>
73+
<ion-label class="body-3" [innerHTML]="label"></ion-label>
7274
</ion-chip>
7375
</div>
7476
</div>
@@ -78,7 +80,8 @@
7880
[color]="endingTextColor"
7981
slot="end"
8082
[attr.aria-label]="endingText"
81-
>{{ endingText }}</ion-text>
83+
[innerHTML]="endingText"
84+
></ion-text>
8285

8386
<ion-icon *ngIf="endingIcon"
8487
[name]="endingIcon"

projects/v3/src/app/components/lock-team-assessment-pop-up/lock-team-assessment-pop-up.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<div class="details-container">
1010
<div class="div-after-img">
1111
<div class="description body-1" *ngIf="name">
12-
<b>{{ name }}</b> <span class="gray-2" i18n>is currently edting this team submission. Click on</span> <b i18n>'View Read Only'</b> <span class="gray-2" i18n>to open in read only mode</span>.
12+
<b [innerHTML]="name"></b> <span class="gray-2" i18n>is currently editing this team submission. Click on</span> <b i18n>'View Read Only'</b> <span class="gray-2" i18n>to open in read only mode</span>.
1313
</div>
1414
</div>
1515

projects/v3/src/app/components/multi-team-member-selector/multi-team-member-selector.component.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ <h3 class="for-accessibility" [id]="'multi-team-member-selector-question-' + que
44
<ng-container *ngFor="let teamMember of question.teamMembers;let i = index">
55
<ion-item class="item-bottom-border" lines="none">
66
<ion-label>
7-
{{ teamMember.userName }}
7+
<span [innerHTML]="teamMember.userName"></span>
88
<ion-chip *ngIf="submission?.answer?.includes(teamMember.key)" class="label orange" i18n>Learner's answer</ion-chip>
99
<ion-chip *ngIf="review?.answer?.includes(teamMember.key)" class="label yellow black" i18n>Expert's answer</ion-chip>
1010
</ion-label>
@@ -31,7 +31,7 @@ <h3 class="for-accessibility" [id]="'multi-team-member-selector-question-' + que
3131
lines="none"
3232
*ngFor="let teamMember of question.teamMembers;let i = index"
3333
[ngClass]="{'item-bottom-border': i !== question.teamMembers.length - 1}">
34-
<ion-label class="white-space-normal body-2 black">{{ teamMember.userName }}</ion-label>
34+
<ion-label class="white-space-normal body-2 black" [innerHTML]="teamMember.userName"></ion-label>
3535
<ion-checkbox
3636
[attr.aria-label]="teamMember.userName"
3737
color="success"
@@ -56,7 +56,7 @@ <h3 class="for-accessibility" [id]="'multi-team-member-selector-question-' + que
5656
*ngFor="let teamMember of question.teamMembers;let i = index"
5757
[ngClass]="{'item-bottom-border': i !== question.teamMembers.length - 1 }">
5858
<ion-label class="white-space-normal body-2 black">
59-
{{ teamMember.userName }}
59+
<span [innerHTML]="teamMember.userName"></span>
6060
<p *ngIf="submission?.answer?.includes(teamMember.key)">
6161
<ion-chip class="label orange" i18n>Learner's answer</ion-chip>
6262
</p>

projects/v3/src/app/components/multiple/multiple.component.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ <h3 class="for-accessibility" [id]="'multiple-choice-question-' + question.id">{
55
<ion-item lines="none"
66
[ngClass]="{'item-bottom-border': !(choice.explanation && choice.explanation.changingThisBreaksApplicationSecurity && submission?.answer?.includes(choice.id))}">
77
<ion-label class="ion-text-wrap body-2 gray-3">
8-
<div class="answer-text" [ngClass]="{'explanation': submission?.answer?.includes(choice.id) || review?.answer?.includes(choice.id)}">{{ choice.name }}</div>
8+
<div class="answer-text" [ngClass]="{'explanation': submission?.answer?.includes(choice.id) || review?.answer?.includes(choice.id)}" [innerHTML]="choice.name"></div>
99
<ion-chip i18n
1010
class="label orange"
1111
*ngIf="submission?.answer?.includes(choice.id)"
@@ -44,7 +44,7 @@ <h3 class="for-accessibility" [id]="'multiple-choice-question-' + question.id">{
4444
<ng-container *ngFor="let choice of question.choices; let i = index">
4545
<ion-item [ngClass]="{'item-bottom-border': (i !== question.choices.length - 1 || !checkInnerValue(choice.id))}"
4646
lines='none'>
47-
<ion-label class="ion-text-wrap body-2 black">{{ choice.name }}</ion-label>
47+
<ion-label class="ion-text-wrap body-2 black" [innerHTML]="choice.name"></ion-label>
4848
<ion-checkbox color="success"
4949
[checked]="submission.answer ? submission.answer.includes(choice.id) : false"
5050
[value]="choice.id"
@@ -79,7 +79,7 @@ <h3 class="for-accessibility" [id]="'multiple-choice-question-' + question.id">{
7979
[ngClass]="{'item-bottom-border': i !== question.choices.length - 1}"
8080
lines="none">
8181
<ion-label class="ion-text-wrap body-2 black">
82-
{{ choice.name }}
82+
<span [innerHTML]="choice.name"></span>
8383
<p *ngIf="submission?.answer?.includes(choice.id)">
8484
<ion-chip class="label orange" i18n
8585
*ngIf="submission?.answer?.includes(choice.id)"

0 commit comments

Comments
 (0)